Sfoglia il codice sorgente

aps-报工如果有待判和不合格的,都不要自动检验

sucheng 7 mesi fa
parent
commit
91a4d620cf

+ 4 - 0
bs-common/src/main/java/com/rongwei/safecommon/utils/SaveConstans.java

@@ -921,6 +921,10 @@ public class SaveConstans {
          * 待判
          */
         public static final String WAITING_JUDGMENT = "待判";
+        /**
+         * 不合格
+         */
+        public static final String UNQUALIFIED = "不合格";
     }
 
     /**

+ 24 - 22
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsReportRecordsServiceImpl.java

@@ -95,6 +95,7 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
     private SysSerialNumberService sysSerialNumberService;
     @Autowired
     private AspCheckItemsService aspCheckItemsService;
+
     @Override
     @Transactional
     public R cancelRecord(Map<String, String> req) {
@@ -515,7 +516,7 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
             /**
              * 新增需求:新增字段保存
              */
-            insertReportNew(apsReportRecordsDo,apsProductionOrderDo,apsBlankOrderDo,apsProcessOperationDo,apsProcessOperationProcessEquDo,aspCheckItemsDo);
+            insertReportNew(apsReportRecordsDo, apsProductionOrderDo, apsBlankOrderDo, apsProcessOperationDo, apsProcessOperationProcessEquDo, aspCheckItemsDo);
 
             //=================更新工序作业明细的报工ID、已开工卷数============
             //将报工记录ID存入工序作业的设备子表中
@@ -1000,13 +1001,13 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
                     return R.error("该坯料批次号:" + String.join(",", batchNumbers) + " 已经存在");
                 }
             }
-            if ("铸轧".equals(apsProcessOperationDo.getProcess())&&"是".equals(apsProcessOperationDo.getIfblankprocess())){
-                for (ApsReportOutputDo outputDo:apsReportOutputDoList){
+            if ("铸轧".equals(apsProcessOperationDo.getProcess()) && "是".equals(apsProcessOperationDo.getIfblankprocess())) {
+                for (ApsReportOutputDo outputDo : apsReportOutputDoList) {
                     //后端补充校验:当'铸轧'工序并且'是否坯料工序'为是的时候校验输出物料中序列号必须大于等于批次号后三位
-                    if (ObjectUtil.isNotEmpty(outputDo.getOutputnumber())){
+                    if (ObjectUtil.isNotEmpty(outputDo.getOutputnumber())) {
                         //取出批次号最后三位字符串
                         String lastThreeChars = outputDo.getOutputnumber().substring(outputDo.getOutputnumber().length() - 3);
-                        if (outputDo.getSerialnumber()!= null&&outputDo.getSerialnumber()<Long.parseLong(lastThreeChars)){
+                        if (outputDo.getSerialnumber() != null && outputDo.getSerialnumber() < Long.parseLong(lastThreeChars)) {
                             return R.error("序列号必须大于等于批次号的后三位");
                         }
                     }
@@ -1281,19 +1282,19 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
             }
 
             //===========提交校验================
-            //如果输出物料中不存在 检验等级 为 待判 的,则直接提交校验
+            //如果输出物料中不存在 检验等级 为 待判 和 不合格 的,则直接提交校验
             //获取当前的输出物料
             List<ApsReportOutputDo> outputDos = apsReportOutputService.list(new QueryWrapper<ApsReportOutputDo>().lambda().eq(ApsReportOutputDo::getMainid, apsReportRecordsDo.getId()));
-            List<ApsReportOutputDo> collect = outputDos.stream().filter(item -> item.getInsepctionlevel().equals(SaveConstans.CheckLevel.WAITING_JUDGMENT)).collect(Collectors.toList());
+            List<ApsReportOutputDo> collect = outputDos.stream().filter(item -> item.getInsepctionlevel().equals(SaveConstans.CheckLevel.WAITING_JUDGMENT) || item.getQualified().equals(SaveConstans.CheckLevel.UNQUALIFIED)).collect(Collectors.toList());
             List<ApsReportOutputDo> qualifiedCollect = outputDos.stream().filter(item -> !item.getInsepctionlevel().equals(SaveConstans.CheckLevel.WAITING_JUDGMENT)).collect(Collectors.toList());
             if (collect.size() > 0) {
                 /**
                  * 新增需求:提交检验之前需要将检验等级为非待判的检验状态更新为已检验
                  */
-                qualifiedCollect.forEach(info->{
+                qualifiedCollect.forEach(info -> {
                     info.setCheckstatus("已检验");
                 });
-                if (ObjectUtil.isNotEmpty(qualifiedCollect)){
+                if (ObjectUtil.isNotEmpty(qualifiedCollect)) {
                     apsReportOutputService.updateBatchById(qualifiedCollect);
                 }
                 return R.ok();
@@ -1568,7 +1569,7 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
             /**
              * 新增需求:新增字段保存
              */
-            insertReportNew(apsReportRecordsDo,apsProductionOrderDo,apsBlankOrderDo,apsProcessOperationDo,apsProcessOperationProcessEquDo,aspCheckItemsDo);
+            insertReportNew(apsReportRecordsDo, apsProductionOrderDo, apsBlankOrderDo, apsProcessOperationDo, apsProcessOperationProcessEquDo, aspCheckItemsDo);
 
             //============开工时,生成炉号和批次号=============
             //获取设备/炉 的炉号(每月、每个设备/炉 更新)
@@ -1969,6 +1970,7 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
     /**
      * 更新合并加工的工序作业明细相关的报工记录下面的报工记录加工参数子表数据
      * 需求变更:前面条件成立的前提下增加查找与当前工序作业炉次号相同的数据
+     *
      * @param apsProcessOperationDo
      * @param apsProcessOperationProcessEquDo
      * @param processEquId
@@ -1989,7 +1991,7 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
             if (!equIds.isEmpty()) {
                 List<ApsReportRecordsDo> recordsDos = this.list(new LambdaQueryWrapper<ApsReportRecordsDo>()
                         .eq(ApsReportRecordsDo::getDeleted, "0")
-                        .eq(ApsReportRecordsDo::getHeatnumber,heatnumber)
+                        .eq(ApsReportRecordsDo::getHeatnumber, heatnumber)
                         .in(ApsReportRecordsDo::getProcessequid, equIds)
                         .in(ApsReportRecordsDo::getReportworkstatus, "已开工", "已报工"));
                 recordsDos.forEach(info -> {
@@ -2063,9 +2065,9 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
                 if (index != -1) {
                     //需要判断每条数据在当前月
                     if ("铸轧".equals(apsProcessOperationDo.getProcess())) {
-                        if (outputCode.length()>index + nowYear.length()){
+                        if (outputCode.length() > index + nowYear.length()) {
                             nextChar = String.valueOf(outputCode.charAt(index + nowYear.length()));
-                            if (nodeMonthCode.equals(nextChar)){
+                            if (nodeMonthCode.equals(nextChar)) {
                                 //取出批次号最后三位字符串
                                 String lastThreeChars = outputCode.substring(outputCode.length() - 3);
                                 //校验序列号大小是否大于等于批次号后三位
@@ -2089,7 +2091,7 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
         });
     }
 
-    private void insertReportNew(ApsReportRecordsDo apsReportRecordsDo,ApsProductionOrderDo apsProductionOrderDo,ApsBlankOrderDo apsBlankOrderDo,ApsProcessOperationDo apsProcessOperationDo,ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo,AspCheckItemsDo aspCheckItemsDo) {
+    private void insertReportNew(ApsReportRecordsDo apsReportRecordsDo, ApsProductionOrderDo apsProductionOrderDo, ApsBlankOrderDo apsBlankOrderDo, ApsProcessOperationDo apsProcessOperationDo, ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo, AspCheckItemsDo aspCheckItemsDo) {
         apsReportRecordsDo.setReportorderno(apsProductionOrderDo.getOrderno());
         apsReportRecordsDo.setReportcustomorderno(apsProductionOrderDo.getCustomorderno());
         apsReportRecordsDo.setReportcustomname(apsProductionOrderDo.getCustomname());
@@ -2103,20 +2105,20 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
         apsReportRecordsDo.setReportprocess(apsProcessOperationDo.getProcess());
         apsReportRecordsDo.setReportprocessname(apsProcessOperationDo.getProcessname());
         apsReportRecordsDo.setReportifblankprocess(apsProcessOperationDo.getIfblankprocess());
-        if (ObjectUtil.isNotEmpty(apsProcessOperationProcessEquDo.getNextprocessesids())){
+        if (ObjectUtil.isNotEmpty(apsProcessOperationProcessEquDo.getNextprocessesids())) {
             List<String> nextEquIds = Arrays.asList(apsProcessOperationProcessEquDo.getNextprocessesids().split(","));
-            List<ApsProcessOperationProcessEquDo> nextEquDos = (List<ApsProcessOperationProcessEquDo>)apsProcessOperationProcessEquService.listByIds(nextEquIds);
+            List<ApsProcessOperationProcessEquDo> nextEquDos = (List<ApsProcessOperationProcessEquDo>) apsProcessOperationProcessEquService.listByIds(nextEquIds);
             List<String> workShops = nextEquDos.stream().map(ApsProcessOperationProcessEquDo::getProcessworkshop).distinct().collect(Collectors.toList());
             List<String> devices = nextEquDos.stream().map(ApsProcessOperationProcessEquDo::getProcessdevice).distinct().collect(Collectors.toList());
-            apsReportRecordsDo.setReportnextworkshop(String.join(",",workShops));
-            apsReportRecordsDo.setReportnextprocessdevice(String.join(",",devices));
+            apsReportRecordsDo.setReportnextworkshop(String.join(",", workShops));
+            apsReportRecordsDo.setReportnextprocessdevice(String.join(",", devices));
             List<String> nextProcessIds = nextEquDos.stream().map(ApsProcessOperationProcessEquDo::getProcessid).distinct().collect(Collectors.toList());
-            if (ObjectUtil.isNotEmpty(nextProcessIds)){
-                List<ApsProcessOperationDo> nextProcessDos = (List<ApsProcessOperationDo>)apsProcessOperationService.listByIds(nextProcessIds);
+            if (ObjectUtil.isNotEmpty(nextProcessIds)) {
+                List<ApsProcessOperationDo> nextProcessDos = (List<ApsProcessOperationDo>) apsProcessOperationService.listByIds(nextProcessIds);
                 List<String> process = nextProcessDos.stream().map(ApsProcessOperationDo::getProcess).distinct().collect(Collectors.toList());
                 List<String> processNames = nextProcessDos.stream().map(ApsProcessOperationDo::getProcessname).distinct().collect(Collectors.toList());
-                apsReportRecordsDo.setReportnextprocess(String.join(",",process));
-                apsReportRecordsDo.setReportnextprocessname(String.join(",",processNames));
+                apsReportRecordsDo.setReportnextprocess(String.join(",", process));
+                apsReportRecordsDo.setReportnextprocessname(String.join(",", processNames));
             }
         }
     }