浏览代码

Merge remote-tracking branch 'origin/mode-min-unit' into mode-min-unit

fangpy 9 月之前
父节点
当前提交
1c34d835ad

+ 13 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsConflictLogDao.java

@@ -0,0 +1,13 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwei.bsentity.domain.ApsConflictLogDo;
+
+/**
+ * ApsConflictLogDao class
+ *
+ * @author XH
+ * @date 2024/10/22
+ */
+public interface ApsConflictLogDao extends BaseMapper<ApsConflictLogDo> {
+}

+ 5 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProcessOperationDao.java

@@ -1,6 +1,7 @@
 package com.rongwei.bscommon.sys.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwei.bsentity.domain.ApsCraftRouteDo;
 import com.rongwei.bsentity.domain.ApsProcessOperationDo;
 import com.rongwei.bsentity.domain.ApsProcessOperationProcessEquDo;
 import com.rongwei.bsentity.vo.ApsProcessOperationAndMaterialVo;
@@ -86,4 +87,8 @@ public interface ApsProcessOperationDao extends BaseMapper<ApsProcessOperationDo
 
     @Update("update aps_process_operation_process_equ set BACHMATERIALPROCESS = IF(BACHMATERIALPROCESS is null || BACHMATERIALPROCESS = '',#{batchnumber},concat(BACHMATERIALPROCESS,',',#{batchnumber})) where DELETED = 0 AND PREVIOUSPROCESSESIDS = #{previousprocessesids}")
     void updateBatchNumberByPrevious(@Param("batchnumber") String batchnumber, @Param("previousprocessesids") String previousprocessesids);
+
+    @Select("SELECT CRAFTROUTEID as ID,ROUTEPRODUCTTYPEID as PRODUCTTYPE,ROUTEMETAL as METAL,ROUTEMETALSTATE as METALSTATE,ROUTETHICKSTR as THICKSTR,ROUTETHICKEND as THICKEND," +
+            "ROUTEWIDTHSTR as WIDTHSTR,ROUTEWIDTHEND as WIDTHEND,ROUTELENGTHSTR as LENGTHSTR,ROUTELENGTHEND as LENGTHEND FROM aps_blank_order WHERE ID=#{newblankid}")
+    ApsCraftRouteDo getApsCraftRoute(@Param("newblankid") String newblankid);
 }

+ 13 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/ApsConflictLogService.java

@@ -0,0 +1,13 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwei.bsentity.domain.ApsConflictLogDo;
+
+/**
+ * ApsConflictLogService class
+ *
+ * @author XH
+ * @date 2024/10/22
+ */
+public interface ApsConflictLogService extends IService<ApsConflictLogDo> {
+}

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

@@ -47,6 +47,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.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;
@@ -64,8 +65,10 @@ import static com.rongwei.safecommon.utils.SaveConstans.SchedulstatusTyep.*;
 @Service
 public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsBlankOrderDo> implements ApsBlankOrderService {
 
+    public static final String LOG_MSG = "当前坯料计划的排程交货期-起:%tc,承诺交货期-起: %tc,排程交货期-止 : %tc,承诺交货期-止: %tc";
     private static final Logger logger = LoggerFactory.getLogger(ApsBlankOrderServiceImpl.class);
-
+    @Autowired
+    private ApsConflictLogServiceImpl apsConflictLogService;
     @Autowired
     private ApsProcessOperationService apsProcessOperationService;
     @Autowired
@@ -1811,16 +1814,17 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         }
 
         if (checkLevel == 2 || checkLevel == 3) {
-            //如果坯料需求的坯料来源=备料,并且首道工序作业的是否坯料工序=是,错误提示:备料工艺路线首道工序作业不应该包含坯料工序:{首道工序作业的工序}
+            //新需求:如果坯料需求的坯料来源不是新料,并且首道工序作业的是否坯料工序=是,错误提示:坯料不是新料,不可以包含坯料工序:{首道工序作业的工序}
+            //旧需求:如果坯料需求的坯料来源=备料,并且首道工序作业的是否坯料工序=是,错误提示:备料工艺路线首道工序作业不应该包含坯料工序:{首道工序作业的工序}
             //是否备料
-            if (apsBlankOrderDo.getBlankcomefrom().equals("备料")) {
+            if (!apsBlankOrderDo.getBlankcomefrom().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("备料工艺路线首道工序作业不应该包含坯料工序:" + processOperationDo.getProcess());
+                            return R.error("坯料不是新料,不可以包含坯料工序:" + processOperationDo.getProcess());
                         }
                         break;
                     }
@@ -2229,16 +2233,17 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             }
         }
         if (checkLevel == 2 || checkLevel == 3) {
-            //如果坯料需求的坯料来源=备料,并且首道工序作业的是否坯料工序=是,错误提示:备料工艺路线首道工序作业不应该包含坯料工序:{首道工序作业的工序}
+            //新需求:如果坯料需求的坯料来源不是新料,并且首道工序作业的是否坯料工序=是,错误提示:坯料不是新料,不可以包含坯料工序:{首道工序作业的工序}
+            //旧需求:如果坯料需求的坯料来源=备料,并且首道工序作业的是否坯料工序=是,错误提示:备料工艺路线首道工序作业不应该包含坯料工序:{首道工序作业的工序}
             //是否备料
-            if (apsBlankOrderDo.getBlankcomefrom().equals("备料")) {
+            if (!apsBlankOrderDo.getBlankcomefrom().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("坯料计划" + apsBlankOrderDo.getBlanknumber() + " 备料工艺路线首道工序作业不应该包含坯料工序:" + processOperationDo.getProcess());
+                            return R.error("坯料计划" + apsBlankOrderDo.getBlanknumber() + " 坯料不是新料,不可以包含坯料工序:" + processOperationDo.getProcess());
                         }
                         break;
                     }
@@ -2668,17 +2673,20 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         } else {
             removeIds.add(blankDeliveryDate.get(1).getId());
         }
-
+        String format = String.format(LOG_MSG, startDate, startDate, endDate, newEndDate);
         if (!updateIds.isEmpty()) {
             List<ApsProcessOperationProcessEquDo> equDos = apsProcessOperationProcessEquService.getBaseMapper().selectBatchIds(updateIds);
             logger.debug("记录冲突信息超出承诺交货期:{}", equDos);
             equDos.forEach(data -> {
+                apsConflictLogService.recordLog(data.getId(),
+                        format, EXCEEDING_THE_PROMISED_DELIVERY_DEADLINE, 1, null);
                 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");
                 }
+                data.setModifydate(new Date());
             });
             if (!equDos.isEmpty()) {
                 apsProcessOperationProcessEquService.updateBatchById(equDos);
@@ -2686,14 +2694,17 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         }
         if (!removeIds.isEmpty()) {
             List<ApsProcessOperationProcessEquDo> equDos = apsProcessOperationProcessEquService.getBaseMapper().selectBatchIds(removeIds);
-            logger.debug("记录冲突信息超出承诺交货期:{}", equDos);
+            logger.debug("删除超出承诺交货期冲突:{}", equDos);
             equDos.forEach(data -> {
+                apsConflictLogService.recordLog(data.getId(),
+                        format, EXCEEDING_THE_PROMISED_DELIVERY_DEADLINE, 2, null);
                 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");
                 }
+                data.setModifydate(new Date());
             });
             if (!equDos.isEmpty()) {
                 apsProcessOperationProcessEquService.updateBatchById(equDos);
@@ -3108,6 +3119,18 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
 //            }
 //        }
 
+        //更新坯料计划对应的领料批次号
+        ApsBlankOrderDo apsBlankOrderDo = this.getById(req.getBlankId());
+        List<String> preparematerialbatchnoList = new LinkedList<>();
+        if (ObjectUtil.isNotEmpty(apsBlankOrderDo.getPreparematerialbatchno())) {
+            preparematerialbatchnoList = new LinkedList<>(Arrays.asList(apsBlankOrderDo.getPreparematerialbatchno().split(",")));
+        }
+        preparematerialbatchnoList.removeAll(delBatchNumberList);
+        preparematerialbatchnoList.addAll(addBatchNumberList);
+        ApsBlankOrderDo updateBlank = new ApsBlankOrderDo();
+        updateBlank.setId(apsBlankOrderDo.getId());
+        updateBlank.setPreparematerialbatchno(String.join(",", preparematerialbatchnoList));
+        this.updateById(updateBlank);
 
         /**
          * 检验通过,

+ 51 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsConflictLogServiceImpl.java

@@ -0,0 +1,51 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bscommon.sys.dao.ApsConflictLogDao;
+import com.rongwei.bscommon.sys.service.ApsConflictLogService;
+import com.rongwei.bsentity.domain.ApsConflictLogDo;
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
+import com.rongwei.safecommon.utils.CXCommonUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * ApsConflictLogServiceImpl class
+ *
+ * @author XH
+ * @date 2024/10/22
+ */
+@Service
+public class ApsConflictLogServiceImpl extends ServiceImpl<ApsConflictLogDao, ApsConflictLogDo> implements ApsConflictLogService {
+
+    private final Logger log = LoggerFactory.getLogger(this.getClass().getName());
+
+    @Async("customThreadPool")
+    public void recordLog(String processequid, String aboutid,
+                          String conflictname, int conflictstate, SysUserVo sysUserVo) {
+        if (sysUserVo == null) {
+            sysUserVo = CXCommonUtils.getCurrentUser();
+        }
+        ApsConflictLogDo apsConflictLogDo = new ApsConflictLogDo();
+        apsConflictLogDo.setAboutid(aboutid);
+        apsConflictLogDo.setConflictstate(conflictstate == 1 ? "增加" : "删除");
+        apsConflictLogDo.setProcessequid(processequid);
+        apsConflictLogDo.setConflictname(conflictname);
+
+        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+        apsConflictLogDo.setOperation(request.getRequestURI());
+        apsConflictLogDo.setCreatedate(new Date());
+        apsConflictLogDo.setCreateuserid(sysUserVo.getId());
+        apsConflictLogDo.setCreateusername(sysUserVo.getName());
+        this.save(apsConflictLogDo);
+    }
+
+}

+ 31 - 11
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationProcessEquServiceImpl.java

@@ -14,6 +14,7 @@ import com.rongwei.bscommon.sys.utils.ApsUtils;
 import com.rongwei.bsentity.domain.*;
 import com.rongwei.bsentity.vo.*;
 import com.rongwei.rwadmincommon.system.vo.SysUserVo;
+import com.rongwei.rwcommon.base.BaseDo;
 import com.rongwei.rwcommon.base.R;
 import com.rongwei.rwcommon.base.exception.CustomException;
 import com.rongwei.rwcommon.utils.SecurityUtil;
@@ -65,6 +66,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
     private ApsEquipmentCalendarServiceImpl apsEquipmentCalendarService;
     @Autowired
     private GanttService ganttService;
+    @Autowired
+    private ApsConflictLogServiceImpl apsConflictLogService;
 
     /**
      * 更新工序的待加工批次号信息
@@ -406,7 +409,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                     String previousprocessesids = newProcessEqu.getPreviousprocessesids();
                     if (StringUtils.isNotBlank(previousprocessesids)) {
                         ApsProcessOperationProcessEquDo previousProcessEqu = this.getById(previousprocessesids);
-                        if(previousProcessEqu==null){
+                        if (previousProcessEqu == null) {
                             throw new CustomException("无法找到上一个工序作业明细信息");
                         }
                         this.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
@@ -476,7 +479,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                         apsProcessOperationProcessEquDo.getPlanenddate());
             });
         }
-        blankIds.forEach(data->{
+        blankIds.forEach(data -> {
             // 更新坯料交货期
             apsBlankOrderService.updateBlankDeliveryDate(null, data);
         });
@@ -515,7 +518,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
         log.debug("根据工序作业明细:{},获取可选设备", operationJobDetailsId);
         // 防止工序作业ID重复
         operationJobDetailsId = operationJobDetailsId.stream().distinct().filter(StringUtils::isNotBlank).collect(Collectors.toList());
-        List<OptionalEquipmentVo> optionalEquipment = this.baseMapper.getOptionalEquipmentById(null,currentUserFactoryId);
+        List<OptionalEquipmentVo> optionalEquipment = this.baseMapper.getOptionalEquipmentById(null, currentUserFactoryId);
         if (optionalEquipment.isEmpty()) {
             log.error("当前所选作业不存在共同的加工设备");
             return R.error("没有可共用的加工设备,无法合并换线");
@@ -701,11 +704,11 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                 .distinct()
                 .filter(StringUtils::isNotBlank)
                 .collect(Collectors.toList());
-        if(previousIds.isEmpty()){
+        if (previousIds.isEmpty()) {
             log.error("无法找到当前工序作业明细的上一个工序作业明细信息");
             throw new CustomException("无法找到前道工序作业明细信息");
         }
-        List<ApsProcessOperationProcessEquDo> previousApsProcessOperationProcessEquDos = this.getBaseMapper().selectBatchIds(previousIds) ;
+        List<ApsProcessOperationProcessEquDo> previousApsProcessOperationProcessEquDos = this.getBaseMapper().selectBatchIds(previousIds);
         // 获取工序作业信息
         List<String> processId = apsProcessOperationProcessEquDos.stream()
                 .map(ApsProcessOperationProcessEquDo::getProcessid)
@@ -714,7 +717,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                 .collect(Collectors.toList());
         if (processId.isEmpty()) {
             log.error("无法根据工序作业明细获取工序作业信息");
-           throw new CustomException("无法获取到工序作业信息");
+            throw new CustomException("无法获取到工序作业信息");
         }
         List<ApsProcessOperationDo> apsProcessOperationDos = (List<ApsProcessOperationDo>) apsProcessOperationService.listByIds(processId);
         // 合并加工
@@ -1063,7 +1066,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
     public void updateProcessEquBeforeAddConflictsDesc(List<ApsProcessOperationProcessEquDo> beforeUpdatingConflictId,
                                                        String removeConflictsDesc, String processway,
                                                        Date newPlanStartDate,
-                                                       Date newOldEndDate) {
+                                                       Date newOldEndDate,
+                                                       String aboutId) {
         if (beforeUpdatingConflictId.isEmpty()) {
             return;
         }
@@ -1082,6 +1086,9 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                 info.setHasconflict(StringUtils.isBlank(info.getConflictdes()) &&
                         StringUtils.isBlank(info.getSoftconflictdes()) ?
                         LOCKMARK_N : LOCKMARK_Y);
+                info.setModifydate(new Date());
+                apsConflictLogService.recordLog(info.getId(),
+                        aboutId, removeConflictsDesc, 2, null);
             } else {
                 if (newPlanStartDate.compareTo(info.getPlanenddate()) > 0 ||
                         newOldEndDate.compareTo(info.getPlanstartdate()) < 0) {
@@ -1089,9 +1096,13 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                     info.setHasconflict(StringUtils.isBlank(info.getConflictdes()) &&
                             StringUtils.isBlank(info.getSoftconflictdes()) ?
                             LOCKMARK_N : LOCKMARK_Y);
+                    info.setModifydate(new Date());
+                    apsConflictLogService.recordLog(info.getId(),
+                            aboutId, removeConflictsDesc, 2, null);
                 }
 
             }
+
 //            else {
 //                info.setConflictdes(addNewConflictsDesc(info.getConflictdes(), removeConflictsDesc));
 //                info.setHasconflict(LOCKMARK_Y);
@@ -1108,7 +1119,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
      * @param conflictsDesc            冲突描述
      */
     public void updateProcessEquAfterAddConflictsDesc(List<ApsProcessOperationProcessEquDo> afterTheUpdateConflictId,
-                                                      String conflictsDesc) {
+                                                      String conflictsDesc,String aboutId) {
         if (afterTheUpdateConflictId.isEmpty()) {
             return;
         }
@@ -1117,6 +1128,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
             info.setConflictdes(newConflictsDesc);
             info.setHasconflict(StringUtils.isBlank(info.getConflictdes()) && StringUtils.isBlank(info.getSoftconflictdes()) ?
                     LOCKMARK_N : LOCKMARK_Y);
+            info.setModifydate(new Date());
+            apsConflictLogService.recordLog(info.getId(),aboutId, EQ_TIME_CROSS, 1, null);
         });
         this.updateBatchById(afterTheUpdateConflictId);
     }
@@ -1155,13 +1168,17 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
         );
         String newConflictdes;
         if (list.isEmpty()) {
+            apsConflictLogService.recordLog(processEquDo.getId(), "", EQUIPMENT_RUN_TIME, 2, null);
             newConflictdes = removeConflictsDesc(processEquDo.getConflictdes(), EQUIPMENT_RUN_TIME);
         } else {
+            apsConflictLogService.recordLog(processEquDo.getId(),
+                    list.stream().map(ApsEquipmentCalendarDo::getId).collect(Collectors.joining(",")), EQUIPMENT_RUN_TIME, 1, null);
             newConflictdes = addNewConflictsDesc(processEquDo.getConflictdes(), EQUIPMENT_RUN_TIME);
         }
         this.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
                 .eq(ApsProcessOperationProcessEquDo::getId, processEquDo.getId())
                 .set(ApsProcessOperationProcessEquDo::getConflictdes, newConflictdes)
+                .set(BaseDo::getModifydate, new Date())
                 .set(ApsProcessOperationProcessEquDo::getHasconflict, StringUtils.isBlank(newConflictdes) &&
                         StringUtils.isBlank(processEquDo.getSoftconflictdes()) ? LOCKMARK_N : LOCKMARK_Y)
         );
@@ -1188,7 +1205,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
             affectedIdList.addAll(beforeUpdatingConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList()));
             updateProcessEquBeforeAddConflictsDesc(beforeUpdatingConflictId, EQ_TIME_CROSS, currentProcessWay,
                     apsProcessOperationProcessEquDo.getPlanstartdate(),
-                    apsProcessOperationProcessEquDo.getPlanenddate());
+                    apsProcessOperationProcessEquDo.getPlanenddate(), apsProcessOperationProcessEquDo.getId());
         }
 
         // 找到更新时间之后存在冲突的工序作业
@@ -1202,11 +1219,13 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
             // 更新当前工序作业增加新的冲突
             String newConflictsDesc = addNewConflictsDesc(apsProcessOperationProcessEquDo.getConflictdes(), EQ_TIME_CROSS);
             apsProcessOperationProcessEquDo.setConflictdes(newConflictsDesc);
-            updateProcessEquAfterAddConflictsDesc(afterTheUpdateConflictId, EQ_TIME_CROSS);
-            this.updateBatchById(afterTheUpdateConflictId);
+            apsConflictLogService.recordLog(apsProcessOperationProcessEquDo.getId(),
+                    afterTheUpdateConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.joining(",")), EQ_TIME_CROSS, 1, null);
+            updateProcessEquAfterAddConflictsDesc(afterTheUpdateConflictId, EQ_TIME_CROSS,apsProcessOperationProcessEquDo.getId());
         } else {
             // 去掉工序作业的冲突
             String newConflictsDesc = removeConflictsDesc(apsProcessOperationProcessEquDo.getConflictdes(), EQ_TIME_CROSS);
+            apsConflictLogService.recordLog(apsProcessOperationProcessEquDo.getId(),"", EQ_TIME_CROSS, 2, null);
             apsProcessOperationProcessEquDo.setConflictdes(newConflictsDesc);
             apsProcessOperationProcessEquDo.setHasconflict(StringUtils.isBlank(apsProcessOperationProcessEquDo.getConflictdes()) &&
                     StringUtils.isBlank(apsProcessOperationProcessEquDo.getSoftconflictdes()) ?
@@ -1215,6 +1234,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                     .eq(ApsProcessOperationProcessEquDo::getId, apsProcessOperationProcessEquDo.getId())
                     .set(ApsProcessOperationProcessEquDo::getConflictdes, newConflictsDesc)
                     .set(ApsProcessOperationProcessEquDo::getHasconflict, apsProcessOperationProcessEquDo.getHasconflict())
+                    .set(BaseDo::getModifydate, new Date())
             );
         }
         return affectedIdList;

+ 8 - 20
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationServiceImpl.java

@@ -603,9 +603,9 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                         .set(ApsBlankOrderDo::getRouteproducttypeid, apsCraftRouteDo.getProducttype())
                         .set(ApsBlankOrderDo::getRoutemetal, apsCraftRouteDo.getMetal())
                         .set(ApsBlankOrderDo::getRoutemetalstate, apsCraftRouteDo.getMetalstate())
-                        .set(ApsBlankOrderDo::getRoutewidthstr, apsCraftRouteDo.getThickstr())
+                        .set(ApsBlankOrderDo::getRoutethickstr, apsCraftRouteDo.getThickstr())
                         .set(ApsBlankOrderDo::getRoutethickend, apsCraftRouteDo.getThickend())
-                        .set(ApsBlankOrderDo::getRoutelengthstr, apsCraftRouteDo.getWidthstr())
+                        .set(ApsBlankOrderDo::getRoutewidthstr, apsCraftRouteDo.getWidthstr())
                         .set(ApsBlankOrderDo::getRoutewidthend, apsCraftRouteDo.getWidthend())
                         .set(ApsBlankOrderDo::getRoutelengthstr, apsCraftRouteDo.getLengthstr())
                         .set(ApsBlankOrderDo::getRoutelengthend, apsCraftRouteDo.getLengthend())
@@ -1103,7 +1103,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
             apsProcessOperationProcessEquService.updateProductionStatus(req);
 
             //更新坯料计划的所选工艺路线相关信息
-            ApsCraftRouteDo apsCraftRouteDo = apsCraftRouteService.getById(craftrouteid);
+            ApsCraftRouteDo apsCraftRouteDo = apsProcessOperationDao.getApsCraftRoute(newblankid);
             apsBlankOrderService.update(new LambdaUpdateWrapper<ApsBlankOrderDo>()
                     .eq(ApsBlankOrderDo::getId, blanckdata.getStr("ID"))
                     .set(ApsBlankOrderDo::getRoption, newblankid)
@@ -1111,9 +1111,9 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                     .set(ApsBlankOrderDo::getRouteproducttypeid, apsCraftRouteDo.getProducttype())
                     .set(ApsBlankOrderDo::getRoutemetal, apsCraftRouteDo.getMetal())
                     .set(ApsBlankOrderDo::getRoutemetalstate, apsCraftRouteDo.getMetalstate())
-                    .set(ApsBlankOrderDo::getRoutewidthstr, apsCraftRouteDo.getThickstr())
+                    .set(ApsBlankOrderDo::getRoutethickstr, apsCraftRouteDo.getThickstr())
                     .set(ApsBlankOrderDo::getRoutethickend, apsCraftRouteDo.getThickend())
-                    .set(ApsBlankOrderDo::getRoutelengthstr, apsCraftRouteDo.getWidthstr())
+                    .set(ApsBlankOrderDo::getRoutewidthstr, apsCraftRouteDo.getWidthstr())
                     .set(ApsBlankOrderDo::getRoutewidthend, apsCraftRouteDo.getWidthend())
                     .set(ApsBlankOrderDo::getRoutelengthstr, apsCraftRouteDo.getLengthstr())
                     .set(ApsBlankOrderDo::getRoutelengthend, apsCraftRouteDo.getLengthend())
@@ -1328,11 +1328,6 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
             List<ApsScheduleConfigDo> apsConfigs = apsScheduleConfigService.list();
             BigDecimal aluminumdensity = apsConfigs.get(0).getAluminumdensity();
 
-            String craftrouteid = params.getCraftrouteid();
-            if (craftrouteid == null) {
-                ApsBlankOrderDo apsBlankOrderDo = apsBlankOrderService.getById(params.getBlankid());
-                craftrouteid = apsBlankOrderDo.getCraftrouteid();
-            }
             //该坯料计划所有的工序及输出
             Map<String, Object> map = new HashMap<>();
             map.put("BLANKID", params.getBlankid());
@@ -1507,13 +1502,12 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                 if (operationOutMaterDos.size() > 0) {
                     ResetProcessOperationVo resetmap = new ResetProcessOperationVo();
                     resetmap.setBlankid(params.getBlankid());
-                    resetmap.setCraftrouteid(craftrouteid);
                     resetmap.setOutmeterinfo(operationOutMaterDos);
                     resetProcessOperation(resetmap);
                 }
             }
             //更新坯料计划的所选工艺路线相关信息
-            ApsCraftRouteDo apsCraftRouteDo = apsCraftRouteService.getById(craftrouteid);
+            ApsCraftRouteDo apsCraftRouteDo = apsProcessOperationDao.getApsCraftRoute(params.getBlankid());
             R r = new R();
             r.setCode("200");
             r.setData(apsCraftRouteDo);
@@ -1837,12 +1831,11 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
             if (operationOutMaterDos.size() > 0) {
                 ResetProcessOperationVo resetmap = new ResetProcessOperationVo();
                 resetmap.setBlankid(blanckdata.getStr("ID"));
-                resetmap.setCraftrouteid(blanckdata.getStr("CRAFTROUTEID"));
                 resetmap.setOutmeterinfo(operationOutMaterDos);
                 resetProcessOperation(resetmap);
             }
             //更新坯料计划的所选工艺路线相关信息
-            ApsCraftRouteDo apsCraftRouteDo = apsCraftRouteService.getById(blanckdata.getStr("CRAFTROUTEID"));
+            ApsCraftRouteDo apsCraftRouteDo = apsProcessOperationDao.getApsCraftRoute(blanckdata.getStr("ID"));
             R r = new R();
             r.setCode("200");
             r.setData(apsCraftRouteDo);
@@ -1975,7 +1968,6 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
     public R cancelProcessOperation(CancelProcessOperationVo cancelProcessOperationVo) {
         List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDoList = new ArrayList<>();
         try {
-            String craftrouteid = cancelProcessOperationVo.getCraftrouteid();
             Integer curcancelroll = cancelProcessOperationVo.getCurcancelroll();//作业本次取消卷数
 
             //本道工序作业
@@ -2083,7 +2075,6 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                 List<ApsProcessOperationDo> apsProcessOperationDos = apsProcessOperationDao.getNextProcessOperations(apsProcessOperationDo.getNextprocessid().replace(",", "','"));
                 for (ApsProcessOperationDo processOperationDo : apsProcessOperationDos) {
                     CancelProcessOperationVo cancelProcessOperationVo1 = new CancelProcessOperationVo();
-                    cancelProcessOperationVo1.setCraftrouteid(craftrouteid);
                     cancelProcessOperationVo1.setSetincancelroll(false);
                     cancelProcessOperationVo1.setUpdatecuropration(false);
                     Integer nextCurCancelRoll = (int) Math.floor((double) (curcancelroll * processOperationDo.getPlanprocessrall()) / apsProcessOperationDo.getPlanprocessrall());
@@ -2158,10 +2149,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                         currentUser == null ? "" : currentUser.getName());
 
                 //更新坯料计划的所选工艺路线相关信息
-                ApsCraftRouteDo apsCraftRouteDo = null;
-                if (StringUtils.isNotBlank(craftrouteid)) {
-                    apsCraftRouteDo = apsCraftRouteService.getById(craftrouteid);
-                }
+                ApsCraftRouteDo apsCraftRouteDo = apsProcessOperationDao.getApsCraftRoute(apsProcessOperationDo.getBlankid());
                 R r = new R();
                 r.setCode("200");
                 r.setData(apsCraftRouteDo);

+ 37 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/domain/ApsConflictLogDo.java

@@ -0,0 +1,37 @@
+package com.rongwei.bsentity.domain;
+
+import com.rongwei.rwcommon.base.BaseDo;
+import lombok.Data;
+
+/**
+ * ApsConflictLogDo class
+ *
+ * @author XH
+ * @date 2024/10/22
+ */
+@Data
+public class ApsConflictLogDo extends BaseDo {
+
+    /**
+     * 主键ID
+     */
+    private String id;
+    /**
+     * 操作的功能描述
+     */
+    private String operation;
+    /**
+     * 工序作业明细ID
+     */
+    private String processequid;
+    /**
+     * 相关联的ID
+     */
+    private String aboutid;
+    /**
+     * 冲突名称
+      */
+    private String conflictname;
+
+    private String conflictstate;
+}