Browse Source

针筒管理

24282 2 years ago
parent
commit
e692f66538

+ 10 - 0
hx-service-api/syringe-management-api/src/main/java/com/fjhx/entity/bom/Bom.java

@@ -20,6 +20,16 @@ import lombok.EqualsAndHashCode;
 public class Bom extends BaseEntity {
 
     /**
+     * 1产品bom 2包装bom
+     */
+    private Integer type;
+
+    /**
+     * 包装bom名称
+     */
+    private String packName;
+
+    /**
      * 产品id
      */
     private Long productId;

+ 9 - 0
hx-service/syringe-management/src/main/java/com/fjhx/controller/bom/BomController.java

@@ -1,5 +1,6 @@
 package com.fjhx.controller.bom;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.entity.bom.Bom;
 import com.fjhx.params.bom.BomEx;
@@ -83,5 +84,13 @@ public class BomController {
         return R.success();
     }
 
+    /**
+     * 包装bom列表
+     */
+    @PostMapping("/packList")
+    public R packList(@RequestBody Bom bom) {
+        List<Bom> list = bomService.list(q -> q.eq(ObjectUtil.isNotEmpty(bom.getPackName()), Bom::getPackName, bom.getPackName()));
+        return R.success(list);
+    }
 
 }

+ 47 - 31
hx-service/syringe-management/src/main/java/com/fjhx/service/bom/impl/BomServiceImpl.java

@@ -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