Browse Source

aps-调度重排之后将这之前解锁的作业和明细重新解锁

sucheng 4 months ago
parent
commit
ed778ec75d

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

@@ -4226,6 +4226,14 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         }
         if (ObjectUtil.isNotEmpty(needScheduleDate)) {
             String tenantId = CXCommonUtils.getCurrentUserFactoryId(currentUser);
+            //查询所有已解锁的作业和作业明细
+            List<ApsProcessOperationProcessEquDo> unLockingEquList = apsProcessOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
+                    .eq(ApsProcessOperationProcessEquDo::getLockmarkdetail, "n"));
+            List<String> unLockingEquIdList = unLockingEquList.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList());
+            List<ApsProcessOperationDo> unLockingProcessList = apsProcessOperationService.list(new LambdaQueryWrapper<ApsProcessOperationDo>()
+                    .eq(ApsProcessOperationDo::getLockmark, "n"));
+            List<String> unLockingProcessIdList = unLockingProcessList.stream().map(ApsProcessOperationDo::getId).collect(Collectors.toList());
+
             //将实际完工时间大于明天的作业挪到实际完工时间
             this.baseMapper.updateFinishDateAboutProcessEqu(needScheduleDate, tenantId, chongpaiStartDate, chongpaiEndDate);
             //锁定所有 未锁定的 作业和作业明细
@@ -4261,6 +4269,19 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             //推算退火,按序排列
             sortTuiHuo(chongpaiEndDate, tenantId);
 
+            //调度排程结束
+            //将之前锁定的作业和明细重新解锁
+            if (!unLockingEquIdList.isEmpty()) {
+                apsProcessOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
+                        .set(ApsProcessOperationProcessEquDo::getLockmarkdetail, "n")
+                        .in(ApsProcessOperationProcessEquDo::getId, unLockingEquIdList));
+            }
+            if (!unLockingProcessIdList.isEmpty()) {
+                apsProcessOperationService.update(new LambdaUpdateWrapper<ApsProcessOperationDo>()
+                        .set(ApsProcessOperationDo::getLockmark, "n")
+                        .in(ApsProcessOperationDo::getId, unLockingProcessIdList));
+            }
+
         }
     }