Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsBlankOrderServiceImpl.java
xiahan 1 gadu atpakaļ
vecāks
revīzija
1cc2e69fcf

+ 1 - 1
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsBlankOrderDao.java

@@ -85,7 +85,7 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
 
     int checkConflictByBlankId(@Param("blankIds") List<String> blankIds);
 
-    @Select("select * from sys_dict where DELETED = 0 AND ID = (select PID from sys_dict where DELETED = 0 AND ID = #{productionorderid}) limit 1")
+    @Select("select * from sys_dict where DELETED = 0 AND ID =(select PID from sys_dict where DELETED = 0 AND ID = (select PID from sys_dict where DELETED = 0 AND ID = #{productionorderid})) limit 1")
     String selectDictAboutProductType(@Param("productionorderid") String productionorderid);
 
     @Select("SELECT apoom.OUTPUTFINISHPRODUCT FROM aps_process_operation apo LEFT JOIN aps_process_operation_out_mater apoom ON apo.ID = apoom.MAINID AND apoom.DELETED = 0 where apo.DELETED = 0 AND apoom.OUTPUTFINISHPRODUCT is not null AND apoom.OUTPUTFINISHPRODUCT != '' AND apo.BLANKID = #{id}")

+ 52 - 8
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsBlankOrderServiceImpl.java

@@ -104,10 +104,6 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
     @Autowired
     private ApsProcessOperationProcessEquBackupServiceImpl apsProcessOperationProcessEquBackupService;
 
-    public static String removeExtraZerosAndDecimal(BigDecimal bd) {
-        bd = bd.stripTrailingZeros();
-        return bd.toPlainString();
-    }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -146,6 +142,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         deleteBackup(blankids, apsProductionOrderIds);
     }
 
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void blankApsCancel(List<String> apsBlankIds) {
@@ -694,7 +691,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         }
         apsProcessOperationProcessEquBackupService.saveBatch(equBackupDos,600);
         stopWatch1.stop();
-        log.error("工序作业明细备份时长: {}" + stopWatch1.getTotalTimeSeconds());
+        log.error("工序作业明细备份时长: {}"+stopWatch1.getTotalTimeSeconds());
     }
 
     /**
@@ -1441,7 +1438,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         //如果坯料产品类型对应产品外观类型是铝板或板锭,并且坯料长度为空,则提示:坯料是铝板和板锭时长度必填
         if (ObjectUtil.isNotEmpty(apsBlankOrderDo.getProducttypeid())) {
             //目前数据字典存在3层关系,选择只能选择最后一层,二开查询最后一层的父节点对应数据的父节点,判断是否为铝板或板锭的主键ID
-            String pid = this.baseMapper.selectDictAboutProductType(apsBlankOrderDo.getProductionorderid());
+            String pid = this.baseMapper.selectDictAboutProductType(apsBlankOrderDo.getProducttypeid());
             //如果是铝板或板锭
             if (ObjectUtil.isNotEmpty(pid) && (pid.equals(SaveConstans.ProductionType.BANDING_ID) || pid.equals(SaveConstans.ProductionType.LVBAN_ID))) {
                 //坯料长度为空
@@ -1474,7 +1471,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         //产品明细
         List<ApsProductDetailDo> apsProductDetailDoList = req.getApsProductDetailDoList();
         //输出成品
-        List<ApsProcessOutputProductDo> apsProcessOutputProductDoList = req.getApsProcessOutputProductDoList();
+        List<ApsProcessOutputProductDo> apsProcessOutputProductDoList = req.getApsProcessOutputProductDoList().stream().filter(item -> ObjectUtil.isEmpty(item.getDeleted()) || item.getDeleted().equals("0")).collect(Collectors.toList());
 
         //如果坯料计划未开工(生产状态<=30)
         if (apsBlankOrderDo.getProductstatus().compareTo(TO_BE_STARTED) <= 0) {
@@ -1638,6 +1635,14 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             }
         }
 
+        //校验是否有工序作业
+        if (checkLevel == 2) {
+            List<ApsProcessOperationDo> processOperationDos = apsProcessOperationService.list(new QueryWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getBlankid, apsBlankOrderDo.getId()));
+            if (processOperationDos.size() <= 0) {
+                return R.error("请选择工艺路线");
+            }
+        }
+
         if (checkLevel == 3) {
             //============校验工序作业=============
             Map<String, Object> params = new HashMap<>();
@@ -1689,6 +1694,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         return R.ok();
     }
 
+
     public R checkBlankOrder(CheckAndSaveOrUpdateBlankReq req, int j) {
         //获取校验等级
         Integer checkLevel = req.getCheckLevel();
@@ -1704,7 +1710,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         //如果坯料产品类型对应产品外观类型是铝板或板锭,并且坯料长度为空,则提示:坯料是铝板和板锭时长度必填
         if (ObjectUtil.isNotEmpty(apsBlankOrderDo.getProducttypeid())) {
             //目前数据字典存在3层关系,选择只能选择最后一层,二开查询最后一层的父节点对应数据的父节点,判断是否为铝板或板锭的主键ID
-            String pid = this.baseMapper.selectDictAboutProductType(apsBlankOrderDo.getProductionorderid());
+            String pid = this.baseMapper.selectDictAboutProductType(apsBlankOrderDo.getProducttypeid());
             //如果是铝板或板锭
             if (ObjectUtil.isNotEmpty(pid) && (pid.equals(SaveConstans.ProductionType.BANDING_ID) || pid.equals(SaveConstans.ProductionType.LVBAN_ID))) {
                 //坯料长度为空
@@ -1844,6 +1850,31 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             }
         }
 
+        //如果存在订单产品和输出单卷重都相同坯料输出成品,错误提示:以下坯料输出成品重复:{订单产品1}{输出单卷重}{数量单位},{订单产品2}{输出单卷重}{数量单位}
+        //组装一下list
+        List<String> processOutputDesList = apsProcessOutputProductDoList.stream().map(item -> {
+            String unit = "吨";
+            if (item.getCountunit().equals(SaveConstans.CountUnit.KG)) {
+                unit = "千克";
+            }
+            return item.getProductname() + item.getOutputonerollweigth() + unit;
+        }).collect(Collectors.toList());
+
+        //用于判断是否重复
+        List<String> checkOutputDesList = new LinkedList<>();
+        //有重复数据订单产品的数组
+        List<String> endCheckOutputDesList = new LinkedList<>();
+        for (String s : processOutputDesList) {
+            if (checkOutputDesList.contains(s)) {
+                endCheckOutputDesList.add(s);
+            } else {
+                checkOutputDesList.add(s);
+            }
+        }
+        if (endCheckOutputDesList.size() > 0) {
+            String join = String.join(",", endCheckOutputDesList);
+            return R.error("第" + j + "个坯料计划 以下坯料输出成品重复:" + join);
+        }
 
         if (checkLevel == 3) {
             //============校验工艺路线=============
@@ -1868,6 +1899,14 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             }
         }
 
+        //校验是否有工序作业
+        if (checkLevel == 2) {
+            List<ApsProcessOperationDo> processOperationDos = apsProcessOperationService.list(new QueryWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getBlankid, apsBlankOrderDo.getId()));
+            if (processOperationDos.size() <= 0) {
+                return R.error("第" + j + "个坯料计划 请选择工艺路线");
+            }
+        }
+
         if (checkLevel == 3) {
             //============校验工序作业=============
             Map<String, Object> params = new HashMap<>();
@@ -2078,4 +2117,9 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
 
         return R.ok();
     }
+
+    public static String removeExtraZerosAndDecimal(BigDecimal bd) {
+        bd = bd.stripTrailingZeros();
+        return bd.toPlainString();
+    }
 }

+ 1 - 1
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProductionOrderServiceImpl.java

@@ -157,7 +157,7 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
         if (checkLevel == 3) {
             for (int i = 0; i < apsBlankOrderDoList.size(); i++) {
                 if (apsBlankOrderDoList.get(i).getIsstag().equals("是")) {
-                    return R.error("第" + (i + 1) + "个坯料计划未提交坯料计划,请先提交坯料计划,再提交流程");
+                    return R.error("第" + (i + 1) + "个坯料计划还未提交,请先提交坯料计划再提交订单");
                 }
             }
         }

+ 9 - 3
cx-aps/cx-aps-server/src/main/java/com/rongwei/bsserver/controller/ApsProductionOrderController.java

@@ -56,7 +56,13 @@ public class ApsProductionOrderController {
      */
     @PostMapping("/checkAndSaveOrUpdateOrder")
     public R checkAndSaveOrUpdateOrder(@RequestBody CheckAndSaveOrUpdateOrderReq req) {
-        return apsProductionOrderService.checkAndSaveOrUpdateOrder(req);
+        try {
+            return apsProductionOrderService.checkAndSaveOrUpdateOrder(req);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error("校验失败,请检查是否有必填项未填");
+        }
+
     }
 
     /*
@@ -71,7 +77,7 @@ public class ApsProductionOrderController {
      * 调整订单时打开编辑页之前的操作(废弃)
      */
     @PostMapping("/changeOrder")
-    public R changeOrder(@RequestBody ApsProductionOrderDo req){
+    public R changeOrder(@RequestBody ApsProductionOrderDo req) {
         return apsProductionOrderService.changeOrder(req);
     }
 
@@ -95,7 +101,7 @@ public class ApsProductionOrderController {
      * 删除订单评审
      */
     @PostMapping("/deleteOrder")
-    public R deleteOrder(@RequestBody DeleteOrderVo req){
+    public R deleteOrder(@RequestBody DeleteOrderVo req) {
         return apsProductionOrderService.deleteOrder(req);
     }