Explorar el Código

aps-提交订单时增加坯料计划的必填项校验

sucheng hace 11 meses
padre
commit
f621e30511

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

@@ -1900,7 +1900,9 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             apsProcessOutputProductDo.setBlankid(apsBlankOrderDo.getId());
             apsProcessOutputProductDo.setTenantid(tenantId);
         }
-        apsProcessOutputProductService.saveOrUpdateBatch(apsProcessOutputProductDoList);
+        if(ObjectUtil.isNotEmpty(apsProcessOutputProductDoList)) {
+            apsProcessOutputProductService.saveOrUpdateBatch(apsProcessOutputProductDoList);
+        }
 
         //如果在制品不为空,并且为新增备料
         if (ObjectUtil.isNotEmpty(req.getProgressId()) && apsBlankOrderDo.getPreparematerial().equals("是")) {
@@ -1981,6 +1983,13 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
     }
 
     public R checkBlankOrder(CheckAndSaveOrUpdateBlankReq req, int j) {
+
+        //校验坯料计划的必填项
+        R checkRes = checkBlankMustWrite(req);
+        if (!checkRes.getCode().equals("200")) {
+            return R.error("第" + j + "个坯料计划 " + checkRes.getMsg());
+        }
+
         //获取校验等级
         Integer checkLevel = req.getCheckLevel();
         //获取坯料计划内容
@@ -2265,6 +2274,58 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         return R.ok();
     }
 
+    private R checkBlankMustWrite(CheckAndSaveOrUpdateBlankReq req) {
+        ApsBlankOrderDo apsBlankOrderDo = req.getApsBlankOrderDo();
+        List<ApsProcessOutputProductDo> apsProcessOutputProductDoList = req.getApsProcessOutputProductDoList();
+
+        if (ObjectUtil.isEmpty(apsBlankOrderDo.getBlanknumber())) {
+            return R.error("坯料计划编号不能为空");
+        }
+        if (ObjectUtil.isEmpty(apsBlankOrderDo.getMaterialname())) {
+            return R.error("物料名称不能为空");
+        }
+        if (ObjectUtil.isEmpty(apsBlankOrderDo.getBlanktype())) {
+            return R.error("坯料类型不能为空");
+        }
+        if (ObjectUtil.isEmpty(apsBlankOrderDo.getProducttype())) {
+            return R.error("产品类型不能为空");
+        }
+        if (ObjectUtil.isEmpty(apsBlankOrderDo.getAlloy())) {
+            return R.error("合金不能为空");
+        }
+        if (ObjectUtil.isEmpty(apsBlankOrderDo.getThickness())) {
+            return R.error("厚度不能为空");
+        }
+        if (ObjectUtil.isEmpty(apsBlankOrderDo.getProwidth())) {
+            return R.error("宽度不能为空");
+        }
+        if (ObjectUtil.isEmpty(apsBlankOrderDo.getSinglerollweight())) {
+            return R.error("单卷重不能为空");
+        }
+        if (ObjectUtil.isEmpty(apsBlankOrderDo.getNumberunit())) {
+            return R.error("数量单位不能为空");
+        }
+        if (ObjectUtil.isEmpty(apsBlankOrderDo.getRollnum())) {
+            return R.error("卷数不能为空");
+        }
+        if (ObjectUtil.isEmpty(apsBlankOrderDo.getBlankappearance())) {
+            return R.error("坯料外观类型不能为空");
+        }
+        if (ObjectUtil.isNotEmpty(apsProcessOutputProductDoList)) {
+            for (ApsProcessOutputProductDo apsProcessOutputProductDo : apsProcessOutputProductDoList) {
+                if (ObjectUtil.isEmpty(apsProcessOutputProductDo.getProducttype())
+                        || ObjectUtil.isEmpty(apsProcessOutputProductDo.getOutputonerollweigth())
+                        || ObjectUtil.isEmpty(apsProcessOutputProductDo.getPlanoutputorderroll())
+                        || ObjectUtil.isEmpty(apsProcessOutputProductDo.getHadrollcount())) {
+                    return R.error("输出成品的必填项未填");
+                }
+            }
+        } else {
+            return R.error("输出成品必填");
+        }
+        return R.ok();
+    }
+
     @Override
     @Transactional
     public R removeBlankOrder(ApsBlankOrderDo req) {
@@ -2576,8 +2637,8 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         // 更新数据
         this.update(new LambdaUpdateWrapper<ApsBlankOrderDo>().eq(ApsBlankOrderDo::getId, apsBlankOrderDo.getId())
                 .set(BaseDo::getDeleted, 0)
-                .set(ApsBlankOrderDo::getScheduledatestart,startDate)
-                .set(ApsBlankOrderDo::getScheduledateend,startDate)
+                .set(ApsBlankOrderDo::getScheduledatestart, startDate)
+                .set(ApsBlankOrderDo::getScheduledateend, startDate)
                 .set(apsBlankOrderDo.getPromisedatestart() == null, ApsBlankOrderDo::getPromisedatestart, timeAddHour(startDate, 48))
                 .set(apsBlankOrderDo.getPromisedateend() == null, ApsBlankOrderDo::getPromisedateend, timeAddHour(endDate, 48)));
         apsBlankOrderDo.setPromisedatestart(timeAddHour(startDate, 48));