|
@@ -22,6 +22,7 @@ import com.fjhx.utils.UserClientUtil;
|
|
|
import com.fjhx.utils.WrapperUtil;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.springblade.core.redis.lock.RedisLockClient;
|
|
|
+import org.springblade.core.tool.utils.ObjectUtil;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
@@ -78,38 +79,48 @@ public class BomServiceImpl extends ServiceImpl<BomMapper, Bom> implements BomSe
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public void add(BomVo bomVo) {
|
|
|
- Integer addType = bomVo.getAddType();
|
|
|
- Assert.notEmpty(addType, "新增类型不能为空");
|
|
|
-
|
|
|
- Long productId = bomVo.getProductId();
|
|
|
- Assert.notEmpty(productId, "产品id不能为空");
|
|
|
-
|
|
|
- String edition = bomVo.getEdition();
|
|
|
- Assert.notEmpty(edition, "版本号不能为空");
|
|
|
-
|
|
|
- // 保证一个产品只有一个bom是启用状态
|
|
|
- Boolean flag = redisLockClient.lockFair(IotManagementLockConstant.BOM_EDITION_LOCK + productId, () -> {
|
|
|
- List<Bom> list = list(Bom::getProductId, productId);
|
|
|
-
|
|
|
- // 新增产品逻辑
|
|
|
- if (addType == 1) {
|
|
|
- Assert.eqZero(list.size(), "产品已添加");
|
|
|
- bomVo.setCurrentEdition(StatusConstant.YES);
|
|
|
- }
|
|
|
- // 新建版本逻辑
|
|
|
- else {
|
|
|
- Assert.gtZero(list.size(), "未添加过产品");
|
|
|
-
|
|
|
- long count = list.stream().filter(item -> edition.equals(item.getEdition())).count();
|
|
|
- Assert.eqZero(count, "此版本已存在");
|
|
|
- bomVo.setCurrentEdition(StatusConstant.NO);
|
|
|
- }
|
|
|
|
|
|
+ Integer type = bomVo.getType();
|
|
|
+ Assert.notEmpty(type, "bom类型不能为空");
|
|
|
+
|
|
|
+ if (type.equals(1)) {
|
|
|
+ Integer addType = bomVo.getAddType();
|
|
|
+ Assert.notEmpty(addType, "新增类型不能为空");
|
|
|
+
|
|
|
+ Long productId = bomVo.getProductId();
|
|
|
+ Assert.notEmpty(productId, "产品id不能为空");
|
|
|
+
|
|
|
+ String edition = bomVo.getEdition();
|
|
|
+ Assert.notEmpty(edition, "版本号不能为空");
|
|
|
+
|
|
|
+ // 保证一个产品只有一个bom是启用状态
|
|
|
+ Boolean flag = redisLockClient.lockFair(IotManagementLockConstant.BOM_EDITION_LOCK + productId, () -> {
|
|
|
+ List<Bom> list = list(Bom::getProductId, productId);
|
|
|
+
|
|
|
+ // 新增产品逻辑
|
|
|
+ if (addType == 1) {
|
|
|
+ Assert.eqZero(list.size(), "产品已添加");
|
|
|
+ bomVo.setCurrentEdition(StatusConstant.YES);
|
|
|
+ }
|
|
|
+ // 新建版本逻辑
|
|
|
+ else {
|
|
|
+ Assert.gtZero(list.size(), "未添加过产品");
|
|
|
+
|
|
|
+ long count = list.stream().filter(item -> edition.equals(item.getEdition())).count();
|
|
|
+ Assert.eqZero(count, "此版本已存在");
|
|
|
+ bomVo.setCurrentEdition(StatusConstant.NO);
|
|
|
+ }
|
|
|
+
|
|
|
+ save(bomVo);
|
|
|
+ return true;
|
|
|
+ });
|
|
|
+
|
|
|
+ Assert.eqTrue(flag, ErrorMsgConstant.SYSTEM_BUSY_ERROR);
|
|
|
+ } else {
|
|
|
+ String packName = bomVo.getPackName();
|
|
|
+ Assert.notEmpty(packName, "包装bom名称不能为空");
|
|
|
save(bomVo);
|
|
|
- return true;
|
|
|
- });
|
|
|
-
|
|
|
- Assert.eqTrue(flag, ErrorMsgConstant.SYSTEM_BUSY_ERROR);
|
|
|
+ }
|
|
|
|
|
|
// bom明细
|
|
|
List<BomDetails> bomDetailsList = bomVo.getBomDetailsList();
|
|
@@ -128,6 +139,12 @@ public class BomServiceImpl extends ServiceImpl<BomMapper, Bom> implements BomSe
|
|
|
Long id = bomVo.getId();
|
|
|
Assert.notEmpty(id, "bomId不能为空");
|
|
|
|
|
|
+ // 如果包装名称不为空
|
|
|
+ String packName = bomVo.getPackName();
|
|
|
+ if (ObjectUtil.isNotEmpty(packName)) {
|
|
|
+ updateById(bomVo);
|
|
|
+ }
|
|
|
+
|
|
|
// 删除bom明细
|
|
|
List<Long> deleteBomIdList = bomVo.getDeleteBomIdList();
|
|
|
if (deleteBomIdList.size() > 0) {
|
|
@@ -150,7 +167,6 @@ public class BomServiceImpl extends ServiceImpl<BomMapper, Bom> implements BomSe
|
|
|
public void delete(BomVo bomVo) {
|
|
|
removeById(bomVo.getId());
|
|
|
bomDetailsService.remove(q -> q.eq(BomDetails::getBomId, bomVo.getId()));
|
|
|
- FileClientUtil.relieveBindingFile(bomVo.getId());
|
|
|
}
|
|
|
|
|
|
@Override
|