Prechádzať zdrojové kódy

aps-校验坯料计划的输出成品:如果坯料输出成品的计划输出订单重量合计>坯料的总重量,错误提示:坯料输出成品的计划输出订单重量合计不能大于坯料的总重量

sucheng 1 rok pred
rodič
commit
9b57dd0f76

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

@@ -689,9 +689,9 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             equBackupDo.setBackupdate(currentDate);
             equBackupDos.add(equBackupDo);
         }
-        apsProcessOperationProcessEquBackupService.saveBatch(equBackupDos,600);
+        apsProcessOperationProcessEquBackupService.saveBatch(equBackupDos, 600);
         stopWatch1.stop();
-        log.error("工序作业明细备份时长: {}"+stopWatch1.getTotalTimeSeconds());
+        log.error("工序作业明细备份时长: {}" + stopWatch1.getTotalTimeSeconds());
     }
 
     /**
@@ -1599,6 +1599,19 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             return R.error("以下坯料输出成品重复:" + join);
         }
 
+        //如果坯料输出成品的计划输出订单重量合计>坯料的总重量,错误提示:坯料输出成品的计划输出订单重量合计不能大于坯料的总重量
+        //计算输出成品的总计划输出重量
+        BigDecimal planAll = new BigDecimal("0");
+        for (ApsProcessOutputProductDo apsProcessOutputProductDo : apsProcessOutputProductDoList) {
+            BigDecimal planoutputonerollweight = apsProcessOutputProductDo.getPlanoutputonerollweight();
+            planAll = planAll.add(planoutputonerollweight);
+        }
+        //坯料的总重量
+        BigDecimal totalweight = apsBlankOrderDo.getTotalweight();
+        if (planAll.compareTo(totalweight) > 0) {//如果坯料输出成品的计划输出订单重量合计>坯料的总重量
+            return R.error("坯料输出成品的计划输出订单重量合计不能大于坯料的总重量");
+        }
+
         //===========坯料计划保存之前的校验=============
         //校验坯料需求
         //后台校验备料:如果是备料计划,
@@ -1880,6 +1893,20 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             return R.error("第" + j + "个坯料计划 以下坯料输出成品重复:" + join);
         }
 
+        //如果坯料输出成品的计划输出订单重量合计>坯料的总重量,错误提示:坯料输出成品的计划输出订单重量合计不能大于坯料的总重量
+        //计算输出成品的总计划输出重量
+        BigDecimal planAll = new BigDecimal("0");
+        for (ApsProcessOutputProductDo apsProcessOutputProductDo : apsProcessOutputProductDoList) {
+            BigDecimal planoutputonerollweight = apsProcessOutputProductDo.getPlanoutputonerollweight();
+            planAll = planAll.add(planoutputonerollweight);
+        }
+        //坯料的总重量
+        BigDecimal totalweight = apsBlankOrderDo.getTotalweight();
+        if (planAll.compareTo(totalweight) > 0) {//如果坯料输出成品的计划输出订单重量合计>坯料的总重量
+            return R.error("第" + j + "个坯料计划 坯料输出成品的计划输出订单重量合计不能大于坯料的总重量");
+        }
+
+
         if (checkLevel == 3) {
             //============校验工艺路线=============
             //如果坯料需求的坯料输出成品字段值不等于坯料需求的工艺输出成品字段值,错误提示:工艺路线输出成品与坯料输出成品不一致