DLC 1 год назад
Родитель
Сommit
7e50688af1

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

@@ -26,6 +26,7 @@ import com.rongwei.safecommon.utils.CXCommonUtils;
 import com.rongwei.safecommon.utils.SaveConstans;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -331,26 +332,37 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         SimpleDateFormat formatter = new SimpleDateFormat(DATE_PATTERN_YMDHMS);
         Date deliveryDate = formatter.parse(deliveryDateStr);
 
-        //更新订单期望交货期
-        ApsProductionOrderDo productionOrderDo = apsProductionOrderService.getById(productionOrderId);
-        productionOrderDo.setDeliverydate(deliveryDate);
-        boolean bool1 = apsProductionOrderService.updateById(productionOrderDo);
+        //撤回发布该作业的坯料计划的排程结果
+        publishCancel(Arrays.asList(blankOrderId));
 
-        // 更新坯料计划的生产状态为已发布
-        boolean bool2 = this.update(new LambdaUpdateWrapper<ApsBlankOrderDo>().eq(ApsBlankOrderDo::getId, blankOrderId)
+        //重新自动备份,以便插单重排后可以恢复之前的排程结果 备份工序作业及作业明细
+        List<ApsProcessOperationDo> apsProcessOperationList = apsProcessOperationService.getBaseMapper().selectList(new QueryWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getBlankid, blankOrderId));
+        List<String> processIds = apsProcessOperationList.stream().map(ApsProcessOperationDo::getId).collect(Collectors.toList());
+        SysUserVo currentUser = CXCommonUtils.getCurrentUser();
+        apsProcessOperationBackupDao.processOperationBackup(processIds,
+                currentUser == null ? "" : currentUser.getId(),
+                currentUser == null ? "" : currentUser.getName());
+        apsProcessOperationProcessEquBackupDao.processOperationEquCopy(processIds,
+                currentUser == null ? "" : currentUser.getId(),
+                currentUser == null ? "" : currentUser.getName());
+
+        // 保存坯料需求的期望交货期
+        boolean bool1 = this.update(new LambdaUpdateWrapper<ApsBlankOrderDo>().eq(ApsBlankOrderDo::getId, blankOrderId)
                 .set(ApsBlankOrderDo::getDeliverydate, deliveryDate)
                 .set(ApsBlankOrderDo::getLockmark, LOCKMARK_N));
 
-        // 解锁订单所有作业状态=待开工的作业明细(是否锁定=否)
-        boolean bool3 = apsProcessOperationService.update(new LambdaUpdateWrapper<ApsProcessOperationDo>()
-                .eq(ApsProcessOperationDo::getBlankid, blankOrderId)
-                .eq(ApsProcessOperationDo::getWorkstatus, JOBSTATUS_TO_BE_START)
-                .set(ApsProcessOperationDo::getLockmark, LOCKMARK_N));
+        // 解锁该坯料计划所有作业明细,设置是否锁定=否
+        boolean bool2 = apsProcessOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
+                .eq(ApsProcessOperationProcessEquDo::getBlankid, blankOrderId)
+                .set(ApsProcessOperationProcessEquDo::getLockmark, LOCKMARK_N));
 
-        if (bool1 && bool2 && bool3) {
+        if (bool1 && bool2) {
             //重新排程
             this.apsReScheduling();
-            return R.ok();
+            R r = new R();
+            r.setCode("200");
+            r.setMsg("正在插单重排,并已自动备份排程结果,如果重排结果不满意,可以恢复排程结果");
+            return r;
         } else {
             return R.error();
         }

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

@@ -1571,8 +1571,8 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
         }
         List<ApsProcessOperationProcessEquDo> list = apsProcessOperationProcessEquService.list(
                 new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
-                .in(ApsProcessOperationProcessEquDo::getId, ids)
-                .eq(BaseDo::getDeleted, "0"));
+                        .in(ApsProcessOperationProcessEquDo::getId, ids)
+                        .eq(BaseDo::getDeleted, "0"));
         if (list.isEmpty()) {
             log.error("无法根据工序作业ID:{} 获取到工序作业明细", ids);
             return R.error("无法找到工序作业明细");
@@ -2047,8 +2047,8 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
             if (bool1 && bool2 && bool3) {
                 String blanckId = apsProcessOperationDo.getBlankid();
                 List<String> blankIds = Arrays.asList(blanckId.split(","));
-                String processId = apsProcessOperationDo.getId();
-                List<String> processIds = Arrays.asList(processId.split(","));
+                List<ApsProcessOperationDo> apsProcessOperationList = apsProcessOperationService.getBaseMapper().selectList(new QueryWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getBlankid, blanckId));
+                List<String> processIds = apsProcessOperationList.stream().map(ApsProcessOperationDo::getId).collect(Collectors.toList());
                 //先清除该坯料计划的排程结果备份
                 apsProcessOperationBackupDao.deletedByBlankId(blankIds, null);
                 apsProcessOperationProcessEquBackupDao.deletedByBlankId(blankIds, null);