浏览代码

盖码自动获取幅面逻辑

tanzhongran 4 年之前
父节点
当前提交
5f9e32e8d6

+ 22 - 24
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/QrPackageServiceImpl.java

@@ -48,11 +48,7 @@ import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
 import javax.servlet.http.HttpServletResponse;
 import java.text.MessageFormat;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
@@ -123,6 +119,9 @@ public class QrPackageServiceImpl implements QrPackageService {
     @Autowired
     private FactoryService factoryService;
 
+    @Autowired
+    private QrBoxCodeFormatMapper qrBoxCodeFormatMapper;
+
     /**
      * 保存码包
      */
@@ -199,7 +198,17 @@ public class QrPackageServiceImpl implements QrPackageService {
         }
 
         //3-如果是盖码,那么查询盖码得默认箱码幅面,并放入入参
-        //TODO
+        QueryWrapper<QrBoxCodeFormat> formatQw = new QueryWrapper<>();
+        formatQw.eq("is_sys",1);
+        //1-盖码默认幅面
+        formatQw.eq("sys_type",1);
+        formatQw.eq("is_delete",0);
+        List<QrBoxCodeFormat> beerFormatList = qrBoxCodeFormatMapper.selectList(formatQw);
+        if(CollectionUtil.isEmpty(beerFormatList)){
+            throw new BusinessException("盖码默认幅面与码格式不存在,请检查初始数据");
+        }
+        QrBoxCodeFormat beerFormat = beerFormatList.get(0);
+        req.setBoxCodeFormatId(beerFormat.getId());
 
         //4-根据物料ID查询物料类型,判断码类型,保存至码包表中
         BaseMaterial material = baseMaterialMapper.selectById(req.getMaterialId());
@@ -319,29 +328,18 @@ public class QrPackageServiceImpl implements QrPackageService {
         }
 
         //如果SAP订单号和物料有重复数据,需提交额外申请原因
-        if(StringUtils.isNotBlank(req.getSapOrderNo())){
+        if(StringUtils.isNotBlank(req.getSapOrderNo()) && req.getReasonApply()==null){
             ValidSAPOrderNoAndMaterialReq reqValid = new ValidSAPOrderNoAndMaterialReq();
             reqValid.setMaterialId(req.getMaterialId());
             reqValid.setSapOrderNo(req.getSapOrderNo());
             ValidSAPOrderNoAndMaterialRes validSAPOrderNoAndMaterialRes = validSAPOrderNoAndMaterial(reqValid);
             if (Objects.nonNull(validSAPOrderNoAndMaterialRes) && CollectionUtil.isNotEmpty(validSAPOrderNoAndMaterialRes.getPackageBeanList())) {
-                Long id = validSAPOrderNoAndMaterialRes.getPackageBeanList().get(0).getId();
-                if (validSAPOrderNoAndMaterialRes.getPackageBeanList().size() > 1) {
-                    if (Objects.isNull(req.getReasonApply())) {
-                        throw new BusinessException("该SAP订单号和物料与码包" + id + "重复,若仍需申请需要提交额外码包申请原因");
-                    }
-                }
-                if (validSAPOrderNoAndMaterialRes.getPackageBeanList().size() == 1) {
-                    if (req.getId() == null) {
-                        if (Objects.isNull(req.getReasonApply())) {
-                            throw new BusinessException("该SAP订单号和物料与码包" + id + "重复,若仍需申请需要提交额外码包申请原因");
-                        }
-                    }
-                    if (!id.equals(req.getId())) {
-                        if (Objects.isNull(req.getReasonApply())) {
-                            throw new BusinessException("该SAP订单号和物料与码包" + id + "重复,若仍需申请需要提交额外码包申请原因");
-                        }
-                    }
+                Set<Long> validQrPackageIdSet = validSAPOrderNoAndMaterialRes.getPackageBeanList().stream().map(bean -> bean.getId()).collect(Collectors.toSet());
+                if(validQrPackageIdSet.size()>1
+                ||(isAdd && validQrPackageIdSet.size()==1)
+                ||(!isAdd && !validQrPackageIdSet.contains(req.getId()))){
+                    Long id = validSAPOrderNoAndMaterialRes.getPackageBeanList().get(0).getId();
+                    throw new BusinessException("该SAP订单号和物料与码包" + id + "重复,若仍需申请需要提交额外码包申请原因");
                 }
             }
         }