Kaynağa Gözat

feature 存在强制冲突时不然房补

xiahan 1 yıl önce
ebeveyn
işleme
f534d6ca37

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

@@ -19,6 +19,7 @@ import com.rongwei.bscommon.sys.utils.ApsUtils;
 import com.rongwei.bsentity.domain.*;
 import com.rongwei.bsentity.vo.*;
 import com.rongwei.rwadmincommon.system.vo.SysUserVo;
+import com.rongwei.rwcommon.base.BaseDo;
 import com.rongwei.rwcommon.base.R;
 import com.rongwei.rwcommon.base.exception.CustomException;
 import com.rongwei.rwcommon.utils.SecurityUtil;
@@ -181,6 +182,20 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             logger.error("存在排程交货期大于承诺交货期 的订单:{}", collect);
             return R.error(String.format(ERROR_MSG, collect));
         }
+        // 获取工序作业明细信息判断是否存在 冲突或者警告
+        List<ApsProcessOperationProcessEquDo> processOperationProcessEquDos = processOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
+                .in(ApsProcessOperationProcessEquDo::getBlankid, blankIds)
+                .eq(BaseDo::getDeleted, "0"));
+        if(processOperationProcessEquDos.isEmpty()){
+            log.error("当前坯料计划不存在工序作业明细");
+            return R.error("无法根据坯料计划找到工序作业明细");
+        }
+        // 判断是否存在强制冲突不为空的数据
+        boolean b = processOperationProcessEquDos.stream().anyMatch(info -> StringUtils.isNotBlank(info.getConflictdes()));
+        if(b){
+            log.error("存在强制冲突无法发布");
+            return R.error("请先解决冲突在发布");
+        }
         // 更新坯料计划的生产状态为已发布
         this.update(new LambdaUpdateWrapper<ApsBlankOrderDo>().in(ApsBlankOrderDo::getId, blankIds)
                 .set(ApsBlankOrderDo::getProductstatus, "30")
@@ -196,7 +211,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         apsProductDetailDao.updateProductStatusByBlankId(blankIds, "30");
         // 更新工序作业明细的生产状态为待开工
         processOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
-                .in(ApsProcessOperationProcessEquDo::getBlankid, blankIds)
+                .in(ApsProcessOperationProcessEquDo::getId, processOperationProcessEquDos.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList()))
                 .set(ApsProcessOperationProcessEquDo::getLockmark, LOCKMARK_Y)
                 .set(ApsProcessOperationProcessEquDo::getWorkstatus, JOBSTATUS_TO_BE_START)
         );