فهرست منبع

feature 记录冲突时增加相关日志

xiahan 9 ماه پیش
والد
کامیت
cb22a08661

+ 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> {
+}

+ 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> {
+}

+ 7 - 1
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;
@@ -65,7 +66,8 @@ import static com.rongwei.safecommon.utils.SaveConstans.SchedulstatusTyep.*;
 public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsBlankOrderDo> implements ApsBlankOrderService {
 
     private static final Logger logger = LoggerFactory.getLogger(ApsBlankOrderServiceImpl.class);
-
+    @Autowired
+    private ApsConflictLogServiceImpl apsConflictLogService;
     @Autowired
     private ApsProcessOperationService apsProcessOperationService;
     @Autowired
@@ -2658,6 +2660,8 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             List<ApsProcessOperationProcessEquDo> equDos = apsProcessOperationProcessEquService.getBaseMapper().selectBatchIds(updateIds);
             logger.debug("记录冲突信息超出承诺交货期:{}", equDos);
             equDos.forEach(data -> {
+                apsConflictLogService.recordLog(data.getId(),
+                      "", 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");
@@ -2674,6 +2678,8 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             List<ApsProcessOperationProcessEquDo> equDos = apsProcessOperationProcessEquService.getBaseMapper().selectBatchIds(removeIds);
             logger.debug("删除超出承诺交货期冲突:{}", equDos);
             equDos.forEach(data -> {
+                apsConflictLogService.recordLog(data.getId(),
+                        "", 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");

+ 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);
+    }
+
+}

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

@@ -66,6 +66,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
     private ApsEquipmentCalendarServiceImpl apsEquipmentCalendarService;
     @Autowired
     private GanttService ganttService;
+    @Autowired
+    private ApsConflictLogServiceImpl apsConflictLogService;
 
     /**
      * 更新工序的待加工批次号信息
@@ -407,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>()
@@ -477,7 +479,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                         apsProcessOperationProcessEquDo.getPlanenddate());
             });
         }
-        blankIds.forEach(data->{
+        blankIds.forEach(data -> {
             // 更新坯料交货期
             apsBlankOrderService.updateBlankDeliveryDate(null, data);
         });
@@ -516,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("没有可共用的加工设备,无法合并换线");
@@ -702,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)
@@ -715,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);
         // 合并加工
@@ -1064,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;
         }
@@ -1084,6 +1087,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                         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) {
@@ -1092,9 +1097,12 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                             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);
@@ -1111,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;
         }
@@ -1121,6 +1129,7 @@ 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, EQ_TIME_CROSS, 1, null);
         });
         this.updateBatchById(afterTheUpdateConflictId);
     }
@@ -1159,14 +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(BaseDo::getModifydate, new Date())
                 .set(ApsProcessOperationProcessEquDo::getHasconflict, StringUtils.isBlank(newConflictdes) &&
                         StringUtils.isBlank(processEquDo.getSoftconflictdes()) ? LOCKMARK_N : LOCKMARK_Y)
         );
@@ -1193,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());
         }
 
         // 找到更新时间之后存在冲突的工序作业
@@ -1207,10 +1219,13 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
             // 更新当前工序作业增加新的冲突
             String newConflictsDesc = addNewConflictsDesc(apsProcessOperationProcessEquDo.getConflictdes(), EQ_TIME_CROSS);
             apsProcessOperationProcessEquDo.setConflictdes(newConflictsDesc);
-            updateProcessEquAfterAddConflictsDesc(afterTheUpdateConflictId, EQ_TIME_CROSS);
+            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()) ?
@@ -1219,7 +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())
+                    .set(BaseDo::getModifydate, new Date())
             );
         }
         return affectedIdList;

+ 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;
+}