浏览代码

aps-甘特图超出承诺交货期问题修复testin1636

zhoudazhuang 9 月之前
父节点
当前提交
4bcf6fbd0b

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

@@ -47,7 +47,6 @@ 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.EQUIPMENT_RUN_TIME;
 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;
@@ -2600,7 +2599,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
      *
      * @return
      */
-    public void updateBlankDeliveryDate(ApsBlankOrderDo apsBlankOrderDo, String id) {
+    public List<String> updateBlankDeliveryDate(ApsBlankOrderDo apsBlankOrderDo, String id) {
         if (apsBlankOrderDo == null) {
             apsBlankOrderDo = this.getById(id);
         }
@@ -2611,8 +2610,9 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         logger.debug("开始更新坯料计划:{}对应的交货期没", apsBlankOrderDo.getId());
         List<UpdateBlankDeliveryDateVo> blankDeliveryDate = this.getBaseMapper().getBlankDeliveryDate(apsBlankOrderDo.getId());
         logger.debug("获取当前坯料计划的相关的计划完工时间:{}", blankDeliveryDate);
+        List<String> aboutIds = removeOtherConflictdes(apsBlankOrderDo.getId(), blankDeliveryDate.stream().map(UpdateBlankDeliveryDateVo::getId).collect(Collectors.toList()));
         if (blankDeliveryDate.isEmpty()) {
-            return;
+            return aboutIds;
         }
         if (blankDeliveryDate.size() == 1) {
             blankDeliveryDate.add(blankDeliveryDate.get(0));
@@ -2693,8 +2693,46 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                 apsProcessOperationProcessEquService.updateBatchById(equDos);
             }
         }
+        return aboutIds;
 
+    }
 
+    /**
+     * 根據坯料計劃ID 刪除工序作業明細的 超出承諾交貨期衝突
+     *
+     * @param blankId
+     * @param operationId
+     */
+    public List<String> removeOtherConflictdes(String blankId, List<String> operationId) {
+        if (StringUtils.isBlank(blankId)) {
+            return new ArrayList<>();
+        }
+        List<ApsProcessOperationProcessEquDo> list = apsProcessOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
+                .eq(ApsProcessOperationProcessEquDo::getBlankid, blankId)
+                .notIn(operationId == null && operationId.size() > 0, ApsProcessOperationProcessEquDo::getId, operationId)
+                .like(ApsProcessOperationProcessEquDo::getConflictdes, EXCEEDING_THE_PROMISED_DELIVERY_DEADLINE));
+
+        List<ApsProcessOperationProcessEquDo> updates = new ArrayList<>();
+        ApsProcessOperationProcessEquDo updateDo;
+        for (ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo : list) {
+            updateDo = new ApsProcessOperationProcessEquDo();
+            apsConflictLogService.recordLog(apsProcessOperationProcessEquDo.getId(),
+                    "", EXCEEDING_THE_PROMISED_DELIVERY_DEADLINE, 2, null);
+
+            updateDo.setConflictdes(removeConflictsDesc(apsProcessOperationProcessEquDo.getConflictdes(), EXCEEDING_THE_PROMISED_DELIVERY_DEADLINE));
+            if (StringUtils.isBlank(updateDo.getConflictdes()) && StringUtils.isBlank(apsProcessOperationProcessEquDo.getSoftconflictdes())) {
+                updateDo.setHasconflict("n");
+            } else {
+                updateDo.setHasconflict("y");
+            }
+            updateDo.setId(apsProcessOperationProcessEquDo.getId());
+            updateDo.setModifydate(new Date());
+            updates.add(updateDo);
+        }
+        if (!updates.isEmpty()) {
+            apsProcessOperationProcessEquService.updateBatchById(updates);
+        }
+        return updates.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList());
     }
 
     public Date timeAddHour(Date date, int hour) {