Sfoglia il codice sorgente

aps-订单评审表单校验-校验设备代号和车间代号逻辑修改

sucheng 1 anno fa
parent
commit
520e9ba200

+ 31 - 4
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationServiceImpl.java

@@ -669,6 +669,17 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                 workShopMap.put(sysOrganizationDo.getId(), sysOrganizationDo.getRoption());
             }
 
+
+            /**
+             * 检查所有是否坯料工序=是的工序作业
+             * 如果坯料计划的坯料类型=铸轧,并且(工序作业的加工设备代号为空,或者加工设备代号不是2位),
+             * 则错误提示:铸轧坯料加工设备{加工车间}/{加工设备}的代号需要是2位;
+             * 如果坯料计划的坯料类型=热轧,并且(工序作业的加工设备代号为空,或者加工设备代号不是1位),
+             * 则错误提示:热轧坯料加工设备{加工车间}/{加工设备}的代号需要是1位;
+             * 如果工序作业的加工车间代号为空,或者不是1位,则错误提示:加工车间{加工车间}代号不能为空
+             */
+            //查询坯料计划
+            ApsBlankOrderDo apsBlankOrderDo = apsBlankOrderService.getById(blankId);
             //遍历查询是否有工序没有对应的设备代号和车间代号
             for (ApsProcessOperationProcessEquDo equDo : list) {
                 //查询工序作业
@@ -677,16 +688,32 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                 //校验设备代号
                 if (ObjectUtil.isNotEmpty(equDo.getProcessdeviceid())) {
                     if (deviceMap.containsKey(equDo.getProcessdeviceid())) {
-                        if (ObjectUtil.isEmpty(deviceMap.get(equDo.getProcessdeviceid()))) {
-                            return R.error(apsProcessOperationDo.getProcess() + apsProcessOperationDo.getProcessname() + "的加工设备" + equDo.getProcessdevice() + "代号不能为空");
+                        String deviceCode = deviceMap.get(equDo.getProcessdeviceid()).toString();
+//                        if (ObjectUtil.isEmpty(deviceMap.get(equDo.getProcessdeviceid()))) {
+//                            return R.error(apsProcessOperationDo.getProcess() + apsProcessOperationDo.getProcessname() + "的加工设备" + equDo.getProcessdevice() + "代号不能为空");
+//                        }
+                        //校验设备代号位数
+                        //检查所有是否坯料工序=是的工序作业
+                        if (apsProcessOperationDo.getIfblankprocess().equals("是")) {
+                            //如果坯料计划的坯料类型=铸轧,并且(工序作业的加工设备代号为空,或者加工设备代号不是2位)
+                            if (apsBlankOrderDo.getBlanktype().equals("铸轧")
+                                    && (ObjectUtil.isEmpty(deviceCode) || deviceCode.length() != 2)) {
+                                return R.error("铸轧坯料加工设备" + equDo.getProcessworkshop() + "/" + equDo.getProcessdevice() + "的代号需要是2位");
+                            }
+                            //如果坯料计划的坯料类型=热轧,并且(工序作业的加工设备代号为空,或者加工设备代号不是1位)
+                            if (apsBlankOrderDo.getBlanktype().equals("铸轧")
+                                    && (ObjectUtil.isEmpty(deviceCode) || deviceCode.length() != 1)) {
+                                return R.error("热轧坯料加工设备" + equDo.getProcessworkshop() + "/" + equDo.getProcessdevice() + "的代号需要是1位");
+                            }
                         }
                     }
                 }
                 //校验车间代号
                 if (ObjectUtil.isNotEmpty(equDo.getProcessworkshopid())) {
                     if (workShopMap.containsKey(equDo.getProcessworkshopid())) {
-                        if (ObjectUtil.isEmpty(workShopMap.get(equDo.getProcessworkshopid()))) {
-                            return R.error(apsProcessOperationDo.getProcess() + apsProcessOperationDo.getProcessname() + "的加工车间" + equDo.getProcessworkshop() + "代号不能为空");
+                        String workShopCode = workShopMap.get(equDo.getProcessworkshopid()).toString();
+                        if (ObjectUtil.isEmpty(workShopCode) || workShopCode.length() != 1) {
+                            return R.error("加工车间" + equDo.getProcessworkshop() + "代号不能为空");
                         }
                     }
                 }

+ 25 - 2
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProductionOrderServiceImpl.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.rongwei.bscommon.sys.dao.*;
 import com.rongwei.bscommon.sys.service.ApsBlankOrderService;
 import com.rongwei.bscommon.sys.service.ApsProcessOutputProductService;
+import com.rongwei.bscommon.sys.service.ApsProductDetailService;
 import com.rongwei.bscommon.sys.service.ApsProductionOrderService;
 import com.rongwei.bscommon.sys.utils.ApsUtils;
 import com.rongwei.bsentity.domain.*;
@@ -20,6 +21,7 @@ import com.rongwei.bsentity.vo.ApsProductDetailVo;
 import com.rongwei.bsentity.vo.CheckAndSaveOrUpdateOrderReq;
 import com.rongwei.bsentity.vo.ProductDetailIdAndPlanOutPutRollCountAllVo;
 import com.rongwei.bsentity.vo.ProductTypeIdAndPidVo;
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
 import com.rongwei.rwcommon.base.R;
 import com.rongwei.rwcommon.vo.MailDo;
 import com.rongwei.safecommon.fegin.CXCommonFeginClient;
@@ -65,6 +67,8 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
     private ApsProcessOutputProductService apsProcessOutputProductService;
     @Autowired
     private CXCommonFeginClient autoCommonFeginClient;
+    @Autowired
+    private ApsProductDetailService apsProductDetailService;
 
     public static final String ERROR_MSG = "%s上诉订单的排程交货期大于承诺交货期";
 
@@ -237,21 +241,40 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
             }
         }
 
+        List<ApsProductDetailDo> productDetailDoList = BeanUtil.copyToList(apsProductDetailVoList, ApsProductDetailDo.class);
         //================循环校验坯料计划===============
         for (int i = 0; i < apsBlankOrderDoList.size(); i++) {
             CheckAndSaveOrUpdateBlankReq checkAndSaveOrUpdateBlankReq = new CheckAndSaveOrUpdateBlankReq();
             checkAndSaveOrUpdateBlankReq.setApsBlankOrderDo(apsBlankOrderDoList.get(i));
             checkAndSaveOrUpdateBlankReq.setApsProcessOutputProductDoList(apsProcessOutputProductService.list(new QueryWrapper<ApsProcessOutputProductDo>().lambda().eq(ApsProcessOutputProductDo::getBlankid, apsBlankOrderDoList.get(i).getId())));
-            checkAndSaveOrUpdateBlankReq.setApsProductDetailDoList(BeanUtil.copyToList(apsProductDetailVoList, ApsProductDetailDo.class));
+            checkAndSaveOrUpdateBlankReq.setApsProductDetailDoList(productDetailDoList);
             R r = apsBlankOrderService.checkBlankOrder(checkAndSaveOrUpdateBlankReq, i+1);
             if(!r.getCode().equals("200")){
                 return R.error(r.getMsg());
             }
         }
 
+        //================校验通过,保存或更新订单相关信息=====================
+        //获取当前用户的所属工厂
+        SysUserVo currentUser = CXCommonUtils.getCurrentUser();
+        String tenantId = currentUser.getOrganizationDoList().get(0).getFullpid().split(",")[1];
+
+        //保存主表信息
+        apsProductionOrderDo.setTenantid(tenantId);
+        this.saveOrUpdate(apsProductionOrderDo);
 
+        //保存产品明细子表
+        for (ApsProductDetailVo apsProductDetailVo : apsProductDetailVoList) {
+            apsProductDetailVo.setTenantid(tenantId);
+        }
+        apsProductDetailService.saveOrUpdateBatch(productDetailDoList);
 
-        return null;
+        //保存合并订单子表
+        for (ApsProductionMergeOrderDo apsProductionMergeOrderDo : apsProductionMergeOrderDoList) {
+            apsProductionMergeOrderDo.setTenantid(tenantId);
+        }
+
+        return R.ok();
     }
 
     /*