Переглянути джерело

bugFix
1.解决没有记录冲突的问题

xiahan 10 місяців тому
батько
коміт
f76d79f053

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

@@ -46,6 +46,7 @@ import java.util.stream.Collectors;
 
 import static com.rongwei.bscommon.sys.service.impl.ApsProductionOrderServiceImpl.ERROR_MSG;
 import static com.rongwei.bscommon.sys.utils.ApsUtils.addNewConflictsDesc;
+import static com.rongwei.bscommon.sys.utils.ApsUtils.removeConflictsDesc;
 import static com.rongwei.safecommon.utils.SaveConstans.ForcedConflictsDescription.EXCEEDING_THE_PROMISED_DELIVERY_DEADLINE;
 import static com.rongwei.safecommon.utils.SaveConstans.LockmarkType.LOCKMARK_N;
 import static com.rongwei.safecommon.utils.SaveConstans.LockmarkType.LOCKMARK_Y;
@@ -2750,29 +2751,50 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
 
 
         List<String> updateIds = new ArrayList<>();
+        List<String> removeIds = new ArrayList<>();
         if (startDate.compareTo(newStartDate) > 0) {
             updateIds.add(blankDeliveryDate.get(0).getId());
+        }else{
+            removeIds.add(blankDeliveryDate.get(0).getId());
         }
         if (endDate.compareTo(newEndDate) > 0) {
             updateIds.add(blankDeliveryDate.get(1).getId());
+        }else{
+            removeIds.add(blankDeliveryDate.get(1).getId());
         }
-        if (updateIds.isEmpty()) {
-            return;
+
+        if (!updateIds.isEmpty()) {
+            List<ApsProcessOperationProcessEquDo> equDos = apsProcessOperationProcessEquService.getBaseMapper().selectBatchIds(updateIds);
+            logger.debug("记录冲突信息超出承诺交货期:{}", equDos);
+            equDos.forEach(data -> {
+                data.setConflictdes(addNewConflictsDesc(data.getConflictdes(), EXCEEDING_THE_PROMISED_DELIVERY_DEADLINE));
+                if (StringUtils.isBlank(data.getConflictdes()) && StringUtils.isBlank(data.getSoftconflictdes())) {
+                    data.setHasconflict("n");
+                } else {
+                    data.setHasconflict("y");
+                }
+            });
+            if (!equDos.isEmpty()) {
+                apsProcessOperationProcessEquService.updateBatchById(equDos);
+            }
         }
-        List<ApsProcessOperationProcessEquDo> equDos = apsProcessOperationProcessEquService.getBaseMapper().selectBatchIds(updateIds);
-        logger.debug("记录冲突信息超出承诺交货期:{}", equDos);
-        equDos.forEach(data -> {
-            data.setConflictdes(addNewConflictsDesc(data.getConflictdes(), EXCEEDING_THE_PROMISED_DELIVERY_DEADLINE));
-            if (StringUtils.isBlank(data.getConflictdes()) && StringUtils.isBlank(data.getSoftconflictdes())) {
-                data.setHasconflict("n");
-            } else {
-                data.setHasconflict("y");
+        if(!removeIds.isEmpty()){
+            List<ApsProcessOperationProcessEquDo> equDos = apsProcessOperationProcessEquService.getBaseMapper().selectBatchIds(removeIds);
+            logger.debug("记录冲突信息超出承诺交货期:{}", equDos);
+            equDos.forEach(data -> {
+                data.setConflictdes(removeConflictsDesc(data.getConflictdes(), EXCEEDING_THE_PROMISED_DELIVERY_DEADLINE));
+                if (StringUtils.isBlank(data.getConflictdes()) && StringUtils.isBlank(data.getSoftconflictdes())) {
+                    data.setHasconflict("n");
+                } else {
+                    data.setHasconflict("y");
+                }
+            });
+            if (!equDos.isEmpty()) {
+                apsProcessOperationProcessEquService.updateBatchById(equDos);
             }
-        });
-        if (!equDos.isEmpty()) {
-            apsProcessOperationProcessEquService.updateBatchById(equDos);
         }
 
+
     }
 
     public Date timeAddHour(Date date, int hour) {

+ 15 - 1
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/utils/ApsUtils.java

@@ -100,5 +100,19 @@ public class ApsUtils {
         }
         return conflictdeList.stream().distinct().filter(StringUtils::isNotBlank).collect(Collectors.joining(","));
     }
-
+    /**
+     * 删除旧冲突
+     *
+     * @param oldConflictDesc    工序作业的旧冲突
+     * @param removeConflictDesc 需要删除的冲突
+     * @return
+     */
+    public static String removeConflictsDesc(String oldConflictDesc, String removeConflictDesc) {
+        if (StringUtils.isBlank(oldConflictDesc)) {
+            return oldConflictDesc;
+        }
+        List<String> conflictdeList = new ArrayList<>(Arrays.asList(oldConflictDesc.split(",")));
+        conflictdeList.remove(removeConflictDesc);
+        return conflictdeList.stream().distinct().collect(Collectors.joining(","));
+    }
 }