Ver código fonte

aps-删除坯料计划时,如果没有其余坯料计划,更新订单和产品明细的生产状态为“待排程”

sucheng 1 ano atrás
pai
commit
cdc44b65f2

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

@@ -197,13 +197,13 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         List<ApsProcessOperationProcessEquDo> processOperationProcessEquDos = processOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
                 .in(ApsProcessOperationProcessEquDo::getBlankid, blankIds)
                 .eq(BaseDo::getDeleted, "0"));
-        if(processOperationProcessEquDos.isEmpty()){
+        if (processOperationProcessEquDos.isEmpty()) {
             log.error("当前坯料计划不存在工序作业明细");
             return R.error("无法根据坯料计划找到工序作业明细");
         }
         // 判断是否存在强制冲突不为空的数据
         boolean b = processOperationProcessEquDos.stream().anyMatch(info -> StringUtils.isNotBlank(info.getConflictdes()));
-        if(b){
+        if (b) {
             log.error("存在强制冲突无法发布");
             return R.error("请先解决冲突在发布");
         }
@@ -483,13 +483,13 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         // 当前等路人所属工厂
         SysUserVo currentUser = CXCommonUtils.getCurrentUser();
         String tenantId = currentUser.getOrganizationDoList().get(0).getFullpid().split(",")[1];
-        if(StringUtils.isBlank(tenantId)){
+        if (StringUtils.isBlank(tenantId)) {
             throw new CustomException("所属工厂不能为空");
         }
         assert apsBlankOrders != null : "排程订单不能为空";
         // 按照所属工厂加锁
         RLock rLock = redissonClient.getLock(tenantId);
-        try{
+        try {
             // 加锁最大1小时
             rLock.lock(1, TimeUnit.HOURS);
             // 合并待发布未锁定的订单一起排程
@@ -497,7 +497,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             String idStrs = CollUtil.join(hasIds, "','");
             idStrs = "'" + idStrs + "'";
             // 查询存在未锁定的作业坯料计划
-            List<ApsBlankOrderVo> fbNotLock = apsBlankOrderDao.getFbNotLock(idStrs,tenantId);
+            List<ApsBlankOrderVo> fbNotLock = apsBlankOrderDao.getFbNotLock(idStrs, tenantId);
             if (fbNotLock != null && fbNotLock.size() > 0) {
                 apsBlankOrders.addAll(fbNotLock);
             }
@@ -513,7 +513,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             logger.info("排程数据:" + JSONUtil.toJsonStr(productionScheduleVo, jsonConfig));
             // APS平台排程接口调用
             ProductionScheduleRetVo productionScheduleRetVo = rwApsServer.productionSchedule(productionScheduleVo);
-            if(!"200".equals(productionScheduleRetVo.getCode())){
+            if (!"200".equals(productionScheduleRetVo.getCode())) {
                 throw new CustomException(productionScheduleRetVo.getMsg());
             }
             // 排程结果保存
@@ -625,9 +625,9 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             }
 
             backupProcessOperation(apsProcessOperationProcessEquDos, productionScheduleRetVo.getProcesses());
-        }catch (Exception e){
+        } catch (Exception e) {
             throw e;
-        }finally {
+        } finally {
             rLock.unlock();
         }
     }
@@ -1263,9 +1263,9 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                 .in(ApsProcessOperationProcessEquDo::getBlankid, blankids));
         // 更新生产订单的状态
         apsProductionOrderService.update(new LambdaUpdateWrapper<ApsProductionOrderDo>()
-                .in(ApsProductionOrderDo::getId,apsProductionOrderIds)
+                .in(ApsProductionOrderDo::getId, apsProductionOrderIds)
                 .set(ApsProductionOrderDo::getScheduledeliverydate, null)
-                .set(ApsProductionOrderDo::getProductionstatus,TO_BE_SCHEDULED));
+                .set(ApsProductionOrderDo::getProductionstatus, TO_BE_SCHEDULED));
         // 更新坯料计划的状态
         this.baseMapper.cancelSchedulingUpdate(blankids);
         //获取坯料计划用到的产品明细ID
@@ -1669,10 +1669,18 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         List<ApsBlankOrderDo> list = this.list(new QueryWrapper<ApsBlankOrderDo>().lambda().eq(ApsBlankOrderDo::getProductionorderid, apsBlankOrderDo.getProductionorderid()));
         if (ObjectUtil.isNotEmpty(list)) {
             commonUpdateProductionStatusReq.setBlankId(list.get(0).getId());
+            apsProcessOperationProcessEquService.updateProductionStatus(commonUpdateProductionStatusReq);
         } else {
-            commonUpdateProductionStatusReq.setOrderId(apsBlankOrderDo.getProductionorderid());
+            //更新订单生产状态为“待排程10”
+            apsProductionOrderService.update(new LambdaUpdateWrapper<ApsProductionOrderDo>()
+                    .eq(ApsProductionOrderDo::getId, apsBlankOrderDo.getProductionorderid())
+                    .set(ApsProductionOrderDo::getProductionstatus, TO_BE_SCHEDULED));
+            //更新订单的产品明细的生产状态为“待排程10”
+            apsProductDetailService.update(new LambdaUpdateWrapper<ApsProductDetailDo>()
+                    .eq(ApsProductDetailDo::getMainid, apsBlankOrderDo.getProductionorderid())
+                    .set(ApsProductDetailDo::getProductstatus, TO_BE_SCHEDULED));
         }
-        apsProcessOperationProcessEquService.updateProductionStatus(commonUpdateProductionStatusReq);
+
 
         return R.ok();
     }