Prechádzať zdrojové kódy

aps-当前坯料计划正在排程,不允许编辑当前坯料计划及其工序作业,而不是所有的都不允许编辑,需要标记当前哪些坯料计划正在排程

sucheng 4 mesiacov pred
rodič
commit
f850f93cd2

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

@@ -1022,7 +1022,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         if (productionScheduleRetVo.getProcesses() != null && productionScheduleRetVo.getProcesses().size() > 0) {
             for (ProductionProcesses process : productionScheduleRetVo.getProcesses()) {
                 // 锁定的数据不参与更新
-                if(process.isIfLock()){
+                if (process.isIfLock()) {
                     continue;
                 }
                 ApsProcessOperationProcessEquDo apsProcessOperationProcessEqu = new ApsProcessOperationProcessEquDo();
@@ -1076,8 +1076,8 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                         if (orders != null && orders.size() > 0) {
                             nowOrder = orders.get(0);
                         }
-                        if(nowOrder == null){
-                            log.error("坯料计划(编号:"+order.getOrderNo()+")被删除,排程明细还存在");
+                        if (nowOrder == null) {
+                            log.error("坯料计划(编号:" + order.getOrderNo() + ")被删除,排程明细还存在");
                             continue;
                         }
 
@@ -1968,20 +1968,21 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         //获取校验级别
         Integer checkLevel = req.getCheckLevel();
 
+        //获取当前用户信息
+        //获取当前用户的所属工厂
+        SysUserVo currentUser = CXCommonUtils.getCurrentUser();
+        String tenantId = CXCommonUtils.getCurrentUserFactoryId(currentUser);
         //获取坯料计划内容
         ApsBlankOrderDo apsBlankOrderDo = req.getApsBlankOrderDo();
 
+        ApsUtils.checkSchedulingByBlankId(currentUser, apsBlankOrderDo.getId());
+
         //如果数据库存在此坯料计划 并且 坯料计划的生产状态和数据库的生产状态不一致,提示
         ApsBlankOrderDo newBlankOrder = this.getById(apsBlankOrderDo.getId());
         if (ObjectUtil.isNotEmpty(newBlankOrder) && !apsBlankOrderDo.getProductstatus().equals(newBlankOrder.getProductstatus())) {
             return R.error("该坯料计划状态已被其他人修改,请刷新页面后重新进入");
         }
 
-        //获取当前用户信息
-        //获取当前用户的所属工厂
-        SysUserVo currentUser = CXCommonUtils.getCurrentUser();
-        String tenantId = CXCommonUtils.getCurrentUserFactoryId(currentUser);
-
 
         //=============校验坯料长度=================
         //如果坯料需求的外观类型是板锭或铝板,并且坯料长度为空,则提示:坯料是板锭和铝板时长度必填
@@ -2844,6 +2845,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         if (ObjectUtil.isEmpty(req.getId())) {
             return R.error("坯料Id不能为空");
         }
+        ApsUtils.checkSchedulingByBlankId(null, req.getId());
         ApsBlankOrderDo apsBlankOrderDo = this.getById(req.getId());
 
         //如果是否备料=是,备料对应在制品的备料计划ID=(空),在制品状态=备料中

+ 1 - 1
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/utils/ApsUtils.java

@@ -110,7 +110,7 @@ public class ApsUtils {
         if (hasKey) {
             String blankIds = redisService.getRedisCatchObj(key).toString();
             if (Arrays.asList(blankIds.split(",")).contains(blankId)) {
-                throw new CustomException("正在排程,请稍后操作");
+                throw new CustomException("改坯料计划正在排程,不可以修改");
             }
         }
     }

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

@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import com.rongwei.bscommon.sys.service.ApsBlankOrderService;
 import com.rongwei.bscommon.sys.service.ApsService;
+import com.rongwei.bscommon.sys.utils.ApsUtils;
 import com.rongwei.bsentity.domain.ApsBlankOrderDo;
 import com.rongwei.bsentity.domain.ApsProductionTechnicalRequirementDo;
 import com.rongwei.bsentity.vo.*;
@@ -263,5 +264,14 @@ public class ApsBlankOrderController {
         apsBlankOrderService.sortTuiHuo(DateUtil.parseDate(chongpaiEndDate), CXCommonUtils.getCurrentUserFactoryId(null));
         return R.ok();
     }
+
+    /**
+     * 查询坯料计划是否正在被排程
+     */
+    @GetMapping("/checkBlankScheduling")
+    public R checkBlankScheduling(@RequestParam("blankId") String blankId){
+        ApsUtils.checkSchedulingByBlankId(null, blankId);
+        return R.ok();
+    }
 }