|
@@ -486,6 +486,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
* @return
|
|
|
*/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
+ @Override
|
|
|
public R processDetailLock(OrderLockVo orderLockVo) {
|
|
|
ApsUtils.checkScheduling(null);
|
|
|
String lockMark = orderLockVo.getLockMark();
|
|
@@ -495,10 +496,46 @@ 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());
|
|
|
+ // 所有作业ID
|
|
|
+ List<String> proids = apsProcessOperationProcessEquDos.stream().map(ApsProcessOperationProcessEquDo::getProcessid).collect(Collectors.toList());
|
|
|
+ proids = proids.stream().distinct().collect(Collectors.toList());
|
|
|
+ // 查询存在未锁定作业明细的作业ID
|
|
|
+ List<ApsProcessOperationProcessEquDo> popes = apsProcessOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>().in(ApsProcessOperationProcessEquDo::getProcessid, proids)
|
|
|
+ .eq(ApsProcessOperationProcessEquDo::getLockmarkdetail, LOCKMARK_N));
|
|
|
+ List<String> notlockdetailproids = popes.stream().map(ApsProcessOperationProcessEquDo::getProcessid).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
|
|
|
+ String retMsg = "";
|
|
|
+ // 锁定
|
|
|
+ if(LOCKMARK_Y.equals(lockMark)){
|
|
|
+ if(notlockdetailproids != null && notlockdetailproids.size()>0){
|
|
|
+ // 没有未锁定作业明细的作业ID
|
|
|
+ List<String> yproids = proids.stream().filter(v -> !notlockdetailproids.contains(v)).collect(Collectors.toList());
|
|
|
+ if(yproids != null && yproids.size()>0){
|
|
|
+ // 所有作业明细都是锁定状态则锁定作业
|
|
|
+ apsProcessOperationService.update(new LambdaUpdateWrapper<ApsProcessOperationDo>()
|
|
|
+ .in(ApsProcessOperationDo::getId, yproids)
|
|
|
+ .set(ApsProcessOperationDo::getLockmark, LOCKMARK_Y));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ retMsg = "锁定成功";
|
|
|
+ }
|
|
|
+ // 解锁
|
|
|
+ else if (LOCKMARK_N.equals(lockMark)) {
|
|
|
+ if(notlockdetailproids != null && notlockdetailproids.size()>0){
|
|
|
+ // 存在作业明细是未锁定状态则解锁作业
|
|
|
+ apsProcessOperationService.update(new LambdaUpdateWrapper<ApsProcessOperationDo>()
|
|
|
+ .in(ApsProcessOperationDo::getId, notlockdetailproids)
|
|
|
+ .set(ApsProcessOperationDo::getLockmark, LOCKMARK_N));
|
|
|
+ }
|
|
|
+ retMsg = "解锁成功";
|
|
|
+ }
|
|
|
+ return R.ok("200", retMsg, orderLockVo.getId());
|
|
|
}
|
|
|
-
|
|
|
- return R.ok();
|
|
|
+ return R.ok("200", "没有需要操作的数据", orderLockVo.getId());
|
|
|
}
|
|
|
|
|
|
/**
|