|
@@ -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,22 +505,25 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
}
|
|
|
// 作业明细锁定
|
|
|
if (orderLockVo.getId() != null && orderLockVo.getId().size() > 0) {
|
|
|
- //校验工序作业状态
|
|
|
- List<ApsProcessOperationDo> apsProcessOperationDos = new ArrayList<>(apsProcessOperationService.listByIds(orderLockVo.getId()));
|
|
|
- //解锁的情况下校验 工序作业对应的生产状态
|
|
|
- boolean b = apsProcessOperationDos.stream().allMatch(info -> COMPLETED.equals(info.getProcessstatus()) ||
|
|
|
- PROCESSING.equals(info.getProcessstatus()));
|
|
|
- if (b) {
|
|
|
- return R.error("所选作业都已开工,不可以解锁,不能锁定");
|
|
|
- }
|
|
|
- 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));
|
|
@@ -552,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) {
|
|
@@ -570,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 = "";
|
|
|
// 锁定
|
|
@@ -580,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);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -937,7 +953,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
|
|
|
//更新生产状态为“待发布”(20)
|
|
|
List<ApsBlankOrderVo> toupstatus = apsBlankOrders.stream().filter(v ->
|
|
|
- blankids.contains(v.getId()) && (StringUtils.isBlank(v.getIfcp()) || "N".equals(v.getIfcp())))
|
|
|
+ blankids.contains(v.getId()) && (StringUtils.isBlank(v.getIfcp()) || "N".equals(v.getIfcp())))
|
|
|
.collect(Collectors.toList());
|
|
|
updateProductStatusByOrderIds(toupstatus);
|
|
|
// 自动加锁坯料计划下的工序作业
|
|
@@ -3591,6 +3607,10 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
String batchnumber = progressWork.getBatchnumber();
|
|
|
//查询被借调批次号的作业明细信息
|
|
|
ApsProcessOperationProcessEquDo needBorrowOperationEqu = this.baseMapper.selectUseThisBatchNumberProcessEqu(batchnumber);
|
|
|
+ //没找到被借调的作业明细,则直接结束借调逻辑
|
|
|
+ if (ObjectUtil.isEmpty(needBorrowOperationEqu)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
//查询被借调作业的信息
|
|
|
ApsProcessOperationDo needBorrowOperation = apsProcessOperationService.getById(needBorrowOperationEqu.getProcessid());
|
|
|
// //获取该在制品作业明细的ID
|