|
@@ -50,6 +50,7 @@ import static com.rongwei.bscommon.sys.service.impl.ApsProductionOrderServiceImp
|
|
|
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.EXCEEDING_THE_PROMISED_DELIVERY_DEADLINE;
|
|
|
+import static com.rongwei.safecommon.utils.SaveConstans.JobStatus.*;
|
|
|
import static com.rongwei.safecommon.utils.SaveConstans.LockmarkType.LOCKMARK_N;
|
|
|
import static com.rongwei.safecommon.utils.SaveConstans.LockmarkType.LOCKMARK_Y;
|
|
|
import static com.rongwei.safecommon.utils.SaveConstans.ProductionStatus.*;
|
|
@@ -504,14 +505,25 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
}
|
|
|
// 作业明细锁定
|
|
|
if (orderLockVo.getId() != null && orderLockVo.getId().size() > 0) {
|
|
|
- apsProcessOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
- .in(ApsProcessOperationProcessEquDo::getId, orderLockVo.getId())
|
|
|
- .set(ApsProcessOperationProcessEquDo::getLockmarkdetail, lockMark));
|
|
|
// 查询作业明细的所属作业ID
|
|
|
List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDos = (List<ApsProcessOperationProcessEquDo>) apsProcessOperationProcessEquService.listByIds(orderLockVo.getId());
|
|
|
+ //校验工序作业明细状态
|
|
|
+ if (!apsProcessOperationProcessEquDos.isEmpty()){
|
|
|
+ //解锁的情况下校验 工序作业对应的生产状态
|
|
|
+ boolean b = apsProcessOperationProcessEquDos.stream().allMatch(info -> JOBSTATUS_TO_BE_STARTING.equals(info.getWorkstatus()) ||
|
|
|
+ JOBSTATUS_TO_BE_END.equals(info.getWorkstatus()));
|
|
|
+ if (b) {
|
|
|
+ return R.error("所选作业明细都已开工,不可以解锁,不能锁定");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ apsProcessOperationProcessEquDos = apsProcessOperationProcessEquDos.stream().filter(detail-> JOBSTATUS_TO_BE_START.equals(detail.getWorkstatus())).collect(Collectors.toList());
|
|
|
+ List<String> updateEquIds = apsProcessOperationProcessEquDos.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList());
|
|
|
// 所有作业ID
|
|
|
List<String> proids = apsProcessOperationProcessEquDos.stream().map(ApsProcessOperationProcessEquDo::getProcessid).collect(Collectors.toList());
|
|
|
proids = proids.stream().distinct().collect(Collectors.toList());
|
|
|
+ apsProcessOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
+ .in(ApsProcessOperationProcessEquDo::getId, updateEquIds)
|
|
|
+ .set(ApsProcessOperationProcessEquDo::getLockmarkdetail, lockMark));
|
|
|
// 查询存在未锁定作业明细的作业ID
|
|
|
List<ApsProcessOperationProcessEquDo> popes = apsProcessOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>().in(ApsProcessOperationProcessEquDo::getProcessid, proids)
|
|
|
.eq(ApsProcessOperationProcessEquDo::getLockmarkdetail, LOCKMARK_N));
|
|
@@ -544,7 +556,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
}
|
|
|
retMsg = "解锁成功";
|
|
|
}
|
|
|
- return R.ok("200", retMsg, orderLockVo.getId());
|
|
|
+ return R.ok("200", retMsg, updateEquIds);
|
|
|
} else {
|
|
|
Date lockStartTime = orderLockVo.getLockStartTime();
|
|
|
if (lockStartTime != null) {
|
|
@@ -562,8 +574,20 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
List<ApsProcessOperationProcessEquDo> processDetailInfoByLockTime = this.baseMapper.getProcessDetailInfoByLockTime(date, lockMark);
|
|
|
if (processDetailInfoByLockTime != null && processDetailInfoByLockTime.size() > 0) {
|
|
|
List<String> lpeus = processDetailInfoByLockTime.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList());
|
|
|
+ List<ApsProcessOperationProcessEquDo> equDos = new ArrayList<>(apsProcessOperationProcessEquService.listByIds(lpeus));
|
|
|
+ //校验工序作业明细状态
|
|
|
+ if (!equDos.isEmpty()){
|
|
|
+ //解锁的情况下校验 工序作业对应的生产状态
|
|
|
+ boolean b = equDos.stream().allMatch(info -> JOBSTATUS_TO_BE_STARTING.equals(info.getWorkstatus()) ||
|
|
|
+ JOBSTATUS_TO_BE_END.equals(info.getWorkstatus()));
|
|
|
+ if (b) {
|
|
|
+ return R.error("所选作业明细都已开工,不可以解锁,不能锁定");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ equDos = equDos.stream().filter(detail-> JOBSTATUS_TO_BE_START.equals(detail.getWorkstatus())).collect(Collectors.toList());
|
|
|
+ List<String> updateEquIds = equDos.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList());
|
|
|
apsProcessOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
- .in(ApsProcessOperationProcessEquDo::getId, lpeus)
|
|
|
+ .in(ApsProcessOperationProcessEquDo::getId, updateEquIds)
|
|
|
.set(ApsProcessOperationProcessEquDo::getLockmarkdetail, lockMark));
|
|
|
String retMsg = "";
|
|
|
// 锁定
|
|
@@ -572,7 +596,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
} else if (LOCKMARK_N.equals(lockMark)) {
|
|
|
retMsg = "解锁成功";
|
|
|
}
|
|
|
- return R.ok("200", retMsg, lpeus);
|
|
|
+ return R.ok("200", retMsg, updateEquIds);
|
|
|
}
|
|
|
}
|
|
|
}
|