Explorar el Código

aps-修改产品明细指定字段时,更新对应技术要求

sucheng hace 1 año
padre
commit
0f98991843

+ 32 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProductDetailServiceImpl.java

@@ -2,6 +2,7 @@ package com.rongwei.bscommon.sys.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.rongwei.bscommon.sys.dao.ApsProductDetailDao;
 import com.rongwei.bscommon.sys.service.*;
@@ -54,6 +55,9 @@ public class ApsProductDetailServiceImpl extends ServiceImpl<ApsProductDetailDao
     @Autowired
     private ApsBlankOrderService apsBlankOrderService;
 
+    @Autowired
+    private ApsProductionTechnicalRequirementService apsProductionTechnicalRequirementService;
+
     /*
     获取客户订单
      */
@@ -491,6 +495,7 @@ public class ApsProductDetailServiceImpl extends ServiceImpl<ApsProductDetailDao
             apsProductDetailDo.setId(SecurityUtil.getUUID());
             updateOrInsertDetailList.add(apsProductDetailDo);
 
+            //====================更新坯料计划及其输出成品===========================
             //检查订单产品明细对应的所有相关的坯料计划的输出成品,
             //如果订单产品明细的订单产品字段值不等于坯料计划输出成品的订单产品字段值,
             //则订单产品明细ID=(新ID),更新订单产品明细的坯料计划输出总重量=0
@@ -547,6 +552,33 @@ public class ApsProductDetailServiceImpl extends ServiceImpl<ApsProductDetailDao
                     apsBlankOrderService.updateBlankSplicingColumn(needUpdateBlankId);
                 }
             }
+
+            //=================更新技术要求==========================
+            //查询相关的技术要求
+            List<ApsProductionTechnicalRequirementDo> apsProductionTechnicalRequirementDoList = apsProductionTechnicalRequirementService.list(new QueryWrapper<ApsProductionTechnicalRequirementDo>().lambda().like(ApsProductionTechnicalRequirementDo::getOrderdetailids, nowId).orderByDesc(ApsProductionTechnicalRequirementDo::getModifydate));
+            if (apsProductionTechnicalRequirementDoList.size() > 0) {
+                //只会存在一个
+                ApsProductionTechnicalRequirementDo apsProductionTechnicalRequirementDo = apsProductionTechnicalRequirementDoList.get(0);
+                //更新原来的产品明细为新的产品明细
+                ApsProductionTechnicalRequirementDo updateTechnicalRequirement = new ApsProductionTechnicalRequirementDo();
+                updateTechnicalRequirement.setId(apsProductionTechnicalRequirementDo.getId());
+
+                //获取原来的产品明细IDs和产品明细的名称
+                String orderdetailids = apsProductionTechnicalRequirementDo.getOrderdetailids();
+                String orderdetailnames = apsProductionTechnicalRequirementDo.getOrderdetailnames();
+                List<String> orderDetailIdList = Arrays.asList(orderdetailids.split(","));
+                List<String> orderDetailNameList = Arrays.asList(orderdetailnames.split(",\r\n"));
+                //获取 原产品明细的ID的下标
+                int index = orderDetailIdList.indexOf(nowId);
+                //替换成新的产品明细
+                orderDetailIdList.set(index, apsProductDetailDo.getId());
+                orderDetailNameList.set(index, apsProductDetailDo.getInputmaterialdescription());
+
+                updateTechnicalRequirement.setOrderdetailids(String.join(",", orderDetailIdList));
+                updateTechnicalRequirement.setOrderdetailnames(String.join(",\r\n", orderDetailNameList));
+                //更新技术要求
+                apsProductionTechnicalRequirementService.updateById(updateTechnicalRequirement);
+            }
         }
 
         //删除指定ID的产品明细