Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/master'

xiahan 1 anno fa
parent
commit
5641d02f0b

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

@@ -1389,6 +1389,9 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
     @Override
     @Transactional
     public R checkAndSaveOrUpdateBlank(CheckAndSaveOrUpdateBlankReq req) {
+        //获取校验级别
+        Integer checkLevel = req.getCheckLevel();
+
         //获取坯料计划内容
         ApsBlankOrderDo apsBlankOrderDo = req.getApsBlankOrderDo();
         //获取当前用户信息
@@ -1410,22 +1413,24 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                 }
             }
         }
-        //==============拼接工艺路线输出成品==============
-        //查询坯料计划对应工艺路线的输出成品
-        List<String> processOutputList = this.baseMapper.selectProcessByBlankId(apsBlankOrderDo.getId());
-        if (processOutputList != null && processOutputList.size() > 0) {
-            String outputProcessMaterial = "";
-            //排序
-            processOutputList.sort(String::compareTo);
-            for (int i = 0; i < processOutputList.size(); i++) {
-                outputProcessMaterial += "[" + (i + 1) + "]" + processOutputList.get(i);
-                if (i < processOutputList.size() - 1) {
-                    outputProcessMaterial += ",\r\n";
+        if (checkLevel == 3) {
+            //==============拼接工艺路线输出成品==============
+            //查询坯料计划对应工艺路线的输出成品
+            List<String> processOutputList = this.baseMapper.selectProcessByBlankId(apsBlankOrderDo.getId());
+            if (processOutputList != null && processOutputList.size() > 0) {
+                String outputProcessMaterial = "";
+                //排序
+                processOutputList.sort(String::compareTo);
+                for (int i = 0; i < processOutputList.size(); i++) {
+                    outputProcessMaterial += "[" + (i + 1) + "]" + processOutputList.get(i);
+                    if (i < processOutputList.size() - 1) {
+                        outputProcessMaterial += ",\r\n";
+                    }
                 }
+                apsBlankOrderDo.setOutputmaterial(outputProcessMaterial);
+            } else {
+                return R.error("工艺路线没有输出成品");
             }
-            apsBlankOrderDo.setOutputmaterial(outputProcessMaterial);
-        } else {
-            return R.error("工艺路线没有输出成品");
         }
 
         //=============校验输出成品==============
@@ -1570,33 +1575,40 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             }
         }
 
-        //============校验工艺路线=============
-        //如果坯料需求的坯料输出成品字段值不等于坯料需求的工艺输出成品字段值,错误提示:工艺路线输出成品与坯料输出成品不一致
-        if (!apsBlankOrderDo.getOutputfinishproduct().equals(apsBlankOrderDo.getOutputmaterial())) {
-            return R.error("工艺路线输出成品" + apsBlankOrderDo.getOutputmaterial() + "与坯料输出成品" + apsBlankOrderDo.getOutputfinishproduct() + "不一致");
+        if (checkLevel == 3) {
+            //============校验工艺路线=============
+            //如果坯料需求的坯料输出成品字段值不等于坯料需求的工艺输出成品字段值,错误提示:工艺路线输出成品与坯料输出成品不一致
+            if (!apsBlankOrderDo.getOutputfinishproduct().equals(apsBlankOrderDo.getOutputmaterial())) {
+                return R.error("工艺路线输出成品" + apsBlankOrderDo.getOutputmaterial() + "与坯料输出成品" + apsBlankOrderDo.getOutputfinishproduct() + "不一致");
+            }
         }
-        //如果坯料需求的是否备料=是,并且首道工序作业的是否坯料工序=是,错误提示:工艺路线错误,首道工序作业是坯料工序,备料不能作为输入物料
-        //是否备料
-        if (apsBlankOrderDo.getPreparematerial().equals("是")) {
-            //查询坯料计划的工序作业
-            List<ApsProcessOperationDo> processOperationList = apsProcessOperationService.list(new QueryWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getBlankid, apsBlankOrderDo.getId()));
-            for (ApsProcessOperationDo processOperationDo : processOperationList) {
-                //没有前道工序作业ID
-                if (ObjectUtil.isEmpty(processOperationDo.getPreviousprocessid())) {
-                    if (processOperationDo.getIfblankprocess().equals("是")) {
-                        return R.error("工艺路线错误,首道工序作业是坯料工序,备料不能作为输入物料");
+
+        if (checkLevel == 2 || checkLevel == 3) {
+            //如果坯料需求的是否备料=是,并且首道工序作业的是否坯料工序=是,错误提示:工艺路线错误,首道工序作业是坯料工序,备料不能作为输入物料
+            //是否备料
+            if (apsBlankOrderDo.getPreparematerial().equals("是")) {
+                //查询坯料计划的工序作业
+                List<ApsProcessOperationDo> processOperationList = apsProcessOperationService.list(new QueryWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getBlankid, apsBlankOrderDo.getId()));
+                for (ApsProcessOperationDo processOperationDo : processOperationList) {
+                    //没有前道工序作业ID
+                    if (ObjectUtil.isEmpty(processOperationDo.getPreviousprocessid())) {
+                        if (processOperationDo.getIfblankprocess().equals("是")) {
+                            return R.error("工艺路线错误,首道工序作业是坯料工序,备料不能作为输入物料");
+                        }
+                        break;
                     }
-                    break;
                 }
             }
         }
 
-        //============校验工序作业=============
-        Map<String, Object> params = new HashMap<>();
-        params.put("BLANKID", apsBlankOrderDo.getId());
-        R r = apsProcessOperationService.checkOperation(params);
-        if (!(r.getCode().equals("200"))) {
-            return R.error(r.getMsg());
+        if (checkLevel == 3) {
+            //============校验工序作业=============
+            Map<String, Object> params = new HashMap<>();
+            params.put("BLANKID", apsBlankOrderDo.getId());
+            R r = apsProcessOperationService.checkOperation(params);
+            if (!(r.getCode().equals("200"))) {
+                return R.error(r.getMsg());
+            }
         }
 
         //更新或保存坯料计划和输出成品
@@ -1642,6 +1654,8 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
 
 
     public R checkBlankOrder(CheckAndSaveOrUpdateBlankReq req, int j) {
+        //获取校验等级
+        Integer checkLevel = req.getCheckLevel();
         //获取坯料计划内容
         ApsBlankOrderDo apsBlankOrderDo = req.getApsBlankOrderDo();
         //获取当前用户信息
@@ -1663,41 +1677,43 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                 }
             }
         }
-        //==============校验交期==================
-        /**
-         * 如果有评审日志,并且变更内容为空,则错误提示:请填写变更内容(暂未实现)
-         * 如果有任一坯料计划的承诺交货期-起或止为空,错误提示:请填写所有坯料计划的承诺交货期
-         * 如果有坯料计划的承诺交货期-止 < 排程交货期,错误提示:第{几}个坯料计划的承诺交货期-止不能早于排程交货期{排程交货期}
-         */
-        if (req.getCheckDevice()) {
-            if (ObjectUtil.isEmpty(apsBlankOrderDo.getPromisedateend())) {
-                return R.error("请填写所有坯料计划的承诺交货期-止");
-            }
-            if (ObjectUtil.isEmpty(apsBlankOrderDo.getScheduledateend())) {
-                return R.error("第" + j + "个坯料计划 排程交货期-止不能为空");
-            }
-            if (apsBlankOrderDo.getPromisedateend().compareTo(apsBlankOrderDo.getScheduledateend()) < 0) {
-                return R.error("第" + j + "个坯料计划的承诺交货期-止不能早于排程交货期-止" + DateUtil.format(apsBlankOrderDo.getScheduledateend(), "yyyy-MM-dd"));
+        if (checkLevel == 3) {
+            //==============校验交期==================
+            /**
+             * 如果有评审日志,并且变更内容为空,则错误提示:请填写变更内容(暂未实现)
+             * 如果有任一坯料计划的承诺交货期-起或止为空,错误提示:请填写所有坯料计划的承诺交货期
+             * 如果有坯料计划的承诺交货期-止 < 排程交货期,错误提示:第{几}个坯料计划的承诺交货期-止不能早于排程交货期{排程交货期}
+             */
+            if (req.getCheckDevice()) {
+                if (ObjectUtil.isEmpty(apsBlankOrderDo.getPromisedateend())) {
+                    return R.error("请填写所有坯料计划的承诺交货期-止");
+                }
+                if (ObjectUtil.isEmpty(apsBlankOrderDo.getScheduledateend())) {
+                    return R.error("第" + j + "个坯料计划 排程交货期-止不能为空");
+                }
+                if (apsBlankOrderDo.getPromisedateend().compareTo(apsBlankOrderDo.getScheduledateend()) < 0) {
+                    return R.error("第" + j + "个坯料计划的承诺交货期-止不能早于排程交货期-止" + DateUtil.format(apsBlankOrderDo.getScheduledateend(), "yyyy-MM-dd"));
+                }
             }
-        }
 
 
-        //==============拼接工艺路线输出成品==============
-        //查询坯料计划对应工艺路线的输出成品
-        List<String> processOutputList = this.baseMapper.selectProcessByBlankId(apsBlankOrderDo.getId());
-        if (processOutputList != null && processOutputList.size() > 0) {
-            String outputProcessMaterial = "";
-            //排序
-            processOutputList.sort(String::compareTo);
-            for (int i = 0; i < processOutputList.size(); i++) {
-                outputProcessMaterial += "[" + (i + 1) + "]" + processOutputList.get(i);
-                if (i < processOutputList.size() - 1) {
-                    outputProcessMaterial += ",\r\n";
+            //==============拼接工艺路线输出成品==============
+            //查询坯料计划对应工艺路线的输出成品
+            List<String> processOutputList = this.baseMapper.selectProcessByBlankId(apsBlankOrderDo.getId());
+            if (processOutputList != null && processOutputList.size() > 0) {
+                String outputProcessMaterial = "";
+                //排序
+                processOutputList.sort(String::compareTo);
+                for (int i = 0; i < processOutputList.size(); i++) {
+                    outputProcessMaterial += "[" + (i + 1) + "]" + processOutputList.get(i);
+                    if (i < processOutputList.size() - 1) {
+                        outputProcessMaterial += ",\r\n";
+                    }
                 }
+                apsBlankOrderDo.setOutputmaterial(outputProcessMaterial);
+            } else {
+                return R.error("第" + j + "个坯料计划 工艺路线没有输出成品");
             }
-            apsBlankOrderDo.setOutputmaterial(outputProcessMaterial);
-        } else {
-            return R.error("第" + j + "个坯料计划 工艺路线没有输出成品");
         }
 
         //=============校验输出成品==============
@@ -1793,10 +1809,12 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         }
 
 
-        //============校验工艺路线=============
-        //如果坯料需求的坯料输出成品字段值不等于坯料需求的工艺输出成品字段值,错误提示:工艺路线输出成品与坯料输出成品不一致
-        if (!apsBlankOrderDo.getOutputfinishproduct().equals(apsBlankOrderDo.getOutputmaterial())) {
-            return R.error("第" + j + "个坯料计划 工艺路线输出成品" + apsBlankOrderDo.getOutputmaterial() + "与坯料输出成品" + apsBlankOrderDo.getOutputfinishproduct() + "不一致");
+        if (checkLevel == 3) {
+            //============校验工艺路线=============
+            //如果坯料需求的坯料输出成品字段值不等于坯料需求的工艺输出成品字段值,错误提示:工艺路线输出成品与坯料输出成品不一致
+            if (!apsBlankOrderDo.getOutputfinishproduct().equals(apsBlankOrderDo.getOutputmaterial())) {
+                return R.error("第" + j + "个坯料计划 工艺路线输出成品" + apsBlankOrderDo.getOutputmaterial() + "与坯料输出成品" + apsBlankOrderDo.getOutputfinishproduct() + "不一致");
+            }
         }
         //如果坯料需求的是否备料=是,并且首道工序作业的是否坯料工序=是,错误提示:工艺路线错误,首道工序作业是坯料工序,备料不能作为输入物料
         //是否备料
@@ -1814,15 +1832,17 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             }
         }
 
-        //============校验工序作业=============
-        Map<String, Object> params = new HashMap<>();
-        params.put("BLANKID", apsBlankOrderDo.getId());
-        if (req.getCheckDevice()) {
-            params.put("checkDeviceAndOrgCode", true);
-        }
-        R r = apsProcessOperationService.checkOperation(params);
-        if (!(r.getCode().equals("200"))) {
-            return R.error("第" + j + "个坯料计划 " + r.getMsg());
+        if (checkLevel == 3) {
+            //============校验工序作业=============
+            Map<String, Object> params = new HashMap<>();
+            params.put("BLANKID", apsBlankOrderDo.getId());
+            if (req.getCheckDevice()) {
+                params.put("checkDeviceAndOrgCode", true);
+            }
+            R r = apsProcessOperationService.checkOperation(params);
+            if (!(r.getCode().equals("200"))) {
+                return R.error("第" + j + "个坯料计划 " + r.getMsg());
+            }
         }
         return R.ok();
     }

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

@@ -147,14 +147,18 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
         List<ApsBlankOrderDo> apsBlankOrderDoList = apsBlankOrderDao.selectList(new QueryWrapper<ApsBlankOrderDo>().lambda().eq(ApsBlankOrderDo::getProductionorderid, apsProductionOrderDo.getId()).orderByDesc(ApsBlankOrderDo::getModifydate));
         //是否需要检验坯料计划是否已排程
         Boolean checkSchedule = req.getCheckSchedule();
+        //坯料计划校验等级
+        Integer checkLevel = req.getCheckLevel();
 
         //=========检查坯料计划的个数和状态=============
         if (ObjectUtil.isEmpty(apsBlankOrderDoList)) {
             return R.error("坯料计划至少有一个");
         }
-        for (int i = 0; i < apsBlankOrderDoList.size(); i++) {
-            if (apsBlankOrderDoList.get(i).getIsstag().equals("是")) {
-                return R.error("第" + (i + 1) + "个坯料计划为暂存数据,请先保存再提交");
+        if (checkLevel == 3) {
+            for (int i = 0; i < apsBlankOrderDoList.size(); i++) {
+                if (apsBlankOrderDoList.get(i).getIsstag().equals("是")) {
+                    return R.error("第" + (i + 1) + "个坯料计划未提交坯料计划,请先提交坯料计划,再提交流程");
+                }
             }
         }
 
@@ -251,9 +255,11 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
             checkAndSaveOrUpdateBlankReq.setApsBlankOrderDo(apsBlankOrderDoList.get(i));
             checkAndSaveOrUpdateBlankReq.setApsProcessOutputProductDoList(apsProcessOutputProductService.list(new QueryWrapper<ApsProcessOutputProductDo>().lambda().eq(ApsProcessOutputProductDo::getBlankid, apsBlankOrderDoList.get(i).getId())));
             checkAndSaveOrUpdateBlankReq.setApsProductDetailDoList(productDetailDoList);
+            checkAndSaveOrUpdateBlankReq.setCheckLevel(checkLevel);
             if (checkSchedule) {
                 checkAndSaveOrUpdateBlankReq.setCheckDevice(true);
             }
+
             R r = apsBlankOrderService.checkBlankOrder(checkAndSaveOrUpdateBlankReq, i + 1);
             if (!r.getCode().equals("200")) {
                 return R.error(r.getMsg());

+ 3 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/CheckAndSaveOrUpdateBlankReq.java

@@ -27,4 +27,7 @@ public class CheckAndSaveOrUpdateBlankReq {
 
     //是否需要检验坯料计划的工序作业的加工设备
     private Boolean checkDevice = false;
+
+    //检验级别 默认最高级别(1:校验坯料需求,2:校验坯料需求和工艺路线【不校验分卷数量和重量】,3:全部校验)
+    private Integer checkLevel = 3;
 }

+ 3 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/CheckAndSaveOrUpdateOrderReq.java

@@ -34,4 +34,7 @@ public class CheckAndSaveOrUpdateOrderReq {
 
     //是否需要发布
     private Boolean isNeedPublish = false;
+
+    //坯料计划 校验等级
+    private Integer checkLevel = 3;
 }