Ver código fonte

排程明细锁定

fangpy 8 meses atrás
pai
commit
324cf45863

+ 2 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/ApsBlankOrderService.java

@@ -27,6 +27,8 @@ public interface ApsBlankOrderService extends IService<ApsBlankOrderDo> {
 
     R orderLock(OrderLockVo orderLockVo) throws Exception;
 
+    R processDetailLock(OrderLockVo orderLockVo) throws Exception;
+
     void apsReScheduling() throws Exception;
 
     void apsScheduling(ApsPlanVo apsPlanVo) throws Exception;

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

@@ -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());
     }
 
     /**

+ 11 - 0
cx-aps/cx-aps-server/src/main/java/com/rongwei/bsserver/controller/ApsBlankOrderController.java

@@ -68,6 +68,17 @@ public class ApsBlankOrderController {
         return apsBlankOrderService.orderLock(orderLockVo);
     }
 
+    /**
+     * 坯料计划锁定解锁
+     *
+     * @param
+     * @return
+     */
+    @PostMapping("/processDetailLock")
+    public R processDetailLock(@RequestBody OrderLockVo orderLockVo) throws Exception {
+        return apsBlankOrderService.processDetailLock(orderLockVo);
+    }
+
     /**
      * 订单排程取消
      *