Browse Source

aps-输出成品和坯料计划增加工艺描述字段

sucheng 2 months ago
parent
commit
75a9ef2f7f

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

@@ -18,7 +18,6 @@ import com.rongwei.bsentity.domain.*;
 import com.rongwei.bsentity.vo.*;
 import com.rongwei.rwadmincommon.system.domain.SysOrganizationDo;
 import com.rongwei.rwadmincommon.system.service.SysOrganizationService;
-import com.rongwei.rwadmincommon.system.service.impl.SysOrganizationServiceImpl;
 import com.rongwei.rwadmincommon.system.vo.SysOrganizationVo;
 import com.rongwei.rwadmincommon.system.vo.SysUserVo;
 import com.rongwei.rwcommon.base.BaseDo;
@@ -45,7 +44,6 @@ import org.springframework.transaction.annotation.Transactional;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.Collator;
-import java.time.LocalTime;
 import java.time.ZoneId;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -2538,10 +2536,103 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                 borrowBlank(progressWork);
             }
         }
+        //工艺描述
+        setProcessDesc(apsProductionOrderDo,apsBlankOrderDo,apsProcessOutputProductDoList,collator);
+
 
         return R.ok();
     }
 
+    private void setProcessDesc(ApsProductionOrderDo apsProductionOrderDo, ApsBlankOrderDo apsBlankOrderDo, List<ApsProcessOutputProductDo> apsProcessOutputProductDoList, Collator collator) {
+        //输出成品拼接字段:输出工艺描述
+        List<ApsProcessOutputProductDo> needUpdateOutputList = new LinkedList<>();
+        for (ApsProcessOutputProductDo apsProcessOutputProductDo : apsProcessOutputProductDoList) {
+            //合金、合金状态、产品类型及其替代
+            String alloy = StringUtils.isNotBlank(apsProcessOutputProductDo.getAlloy()) ? apsProcessOutputProductDo.getAlloy() : "";
+            String alloystatus = StringUtils.isNotBlank(apsProcessOutputProductDo.getAlloystatus()) ? apsProcessOutputProductDo.getAlloystatus() : "";
+            String producttype = StringUtils.isNotBlank(apsProcessOutputProductDo.getProducttype()) ? apsProcessOutputProductDo.getProducttype() : "";
+            String changealloy = StringUtils.isNotBlank(apsProcessOutputProductDo.getChangealloy()) ? apsProcessOutputProductDo.getChangealloy() : "";
+            String changealloystatus = StringUtils.isNotBlank(apsProcessOutputProductDo.getChangealloystatus()) ? apsProcessOutputProductDo.getChangealloystatus() : "";
+            String changeproducttype = StringUtils.isNotBlank(apsProcessOutputProductDo.getChangeproducttype()) ? apsProcessOutputProductDo.getChangeproducttype() : "";
+            if (StringUtils.isNotBlank(changealloy)) {
+                alloy = changealloy;
+            }
+            if (StringUtils.isNotBlank(changealloystatus)) {
+                alloystatus = changealloystatus;
+            }
+            if (StringUtils.isNotBlank(changeproducttype)) {
+                producttype = changeproducttype;
+            }
+
+            //厚宽长
+            String thickness = apsProcessOutputProductDo.getThickness() != null ? CXCommonUtils.removeExtraZerosAndDecimal(apsProcessOutputProductDo.getThickness()) : "";
+            String prowidth = apsProcessOutputProductDo.getProwidth() != null ? CXCommonUtils.removeExtraZerosAndDecimal(apsProcessOutputProductDo.getProwidth()) : "";
+            String prolength = apsProcessOutputProductDo.getProlength() != null ? CXCommonUtils.removeExtraZerosAndDecimal(apsProcessOutputProductDo.getProlength()) : "";
+            //厚查、宽差、长差
+            String thicknesstolerance = StringUtils.isNotBlank(apsProcessOutputProductDo.getThicknesstolerance()) ? apsProcessOutputProductDo.getThicknesstolerance() : "";
+            String widthtolerance = StringUtils.isNotBlank(apsProcessOutputProductDo.getWidthtolerance()) ? apsProcessOutputProductDo.getWidthtolerance() : "";
+            String lengthtolerance = StringUtils.isNotBlank(apsProcessOutputProductDo.getLengthtolerance()) ? apsProcessOutputProductDo.getLengthtolerance() : "";
+
+            //管内芯直径、管芯材质、抗拉强度、延伸率、是否清洗线
+            String innercorediameter = apsProcessOutputProductDo.getInnercorediameter() != null ? CXCommonUtils.removeExtraZerosAndDecimal(apsProcessOutputProductDo.getInnercorediameter()) : "";
+            String corematerial = StringUtils.isNotBlank(apsProcessOutputProductDo.getCorematerial()) ? apsProcessOutputProductDo.getCorematerial() : "";
+            String tensilestrength = StringUtils.isNotBlank(apsProcessOutputProductDo.getTensilestrength()) ? apsProcessOutputProductDo.getTensilestrength() : "";
+            String elongationrate = StringUtils.isNotBlank(apsProcessOutputProductDo.getElongationrate()) ? apsProcessOutputProductDo.getElongationrate() : "";
+            String isclean = StringUtils.isNotBlank(apsProcessOutputProductDo.getIsclean()) ? apsProcessOutputProductDo.getIsclean() : "";
+
+            //拼接字段
+            String outputprocessdes = alloy + alloystatus + producttype
+                    + " " + thickness + "(" + thicknesstolerance + ")*" + prowidth + "(" + widthtolerance + ")";
+            if (StringUtils.isNotBlank(prolength)) {
+                outputprocessdes = outputprocessdes + "*" + prolength + "(" + lengthtolerance + ")";
+            }
+            outputprocessdes = outputprocessdes + "," + String.join(",", Arrays.asList(innercorediameter, corematerial, tensilestrength, elongationrate, isclean));
+
+            ApsProcessOutputProductDo needUpdate = new ApsProcessOutputProductDo();
+            needUpdate.setId(apsProcessOutputProductDo.getId());
+            needUpdate.setOutputprocessdes(outputprocessdes);
+            needUpdateOutputList.add(needUpdate);
+        }
+        //坯料计划拼接字段:工艺描述
+        List<String> outputProcessDescList = needUpdateOutputList.stream().map(ApsProcessOutputProductDo::getOutputprocessdes).collect(Collectors.toList());
+        outputProcessDescList.sort(collator);
+        String processDesc = "";
+        for (int i = 0; i < outputProcessDescList.size(); i++) {
+            processDesc += "[" + (i + 1) + "]" + outputProcessDescList.get(i);
+            if (i < outputProcessDescList.size() - 1) {
+                processDesc += ",";
+            }
+        }
+        //订单的客户ID
+        String customid = StringUtils.isNotBlank(apsProductionOrderDo.getCustomid()) ? apsProductionOrderDo.getCustomid() : "";
+        //是否新料
+        String isNewBlank = "否";
+        if ("新料".equals(apsBlankOrderDo.getBlankcomefrom())){
+            isNewBlank = "是";
+        }
+        //排产车间
+        String plannedproductionworkshop = StringUtils.isNotBlank(apsBlankOrderDo.getPlannedproductionworkshop()) ? apsBlankOrderDo.getPlannedproductionworkshop() : "";
+        //工艺路线标签
+        String routetag = StringUtils.isNotBlank(apsBlankOrderDo.getRoutetag()) ? apsBlankOrderDo.getRoutetag() : "";
+        //坯料类型、产品类型、合金、厚度、宽度
+        String blanktype = StringUtils.isNotBlank(apsBlankOrderDo.getBlanktype()) ? apsBlankOrderDo.getBlanktype() : "";
+        String producttype = StringUtils.isNotBlank(apsBlankOrderDo.getProducttype()) ? apsBlankOrderDo.getProducttype() : "";
+        String alloy = StringUtils.isNotBlank(apsBlankOrderDo.getAlloy()) ? apsBlankOrderDo.getAlloy() : "";
+        String alloystatus = StringUtils.isNotBlank(apsBlankOrderDo.getAlloystatus()) ? apsBlankOrderDo.getAlloystatus() : "";
+        String thickness = apsBlankOrderDo.getThickness() != null ? CXCommonUtils.removeExtraZerosAndDecimal(apsBlankOrderDo.getThickness()) : "";
+        String prowidth = apsBlankOrderDo.getProwidth() != null ? CXCommonUtils.removeExtraZerosAndDecimal(apsBlankOrderDo.getProwidth()) : "";
+
+        //坯料计划工艺描述
+        String endProcessDesc = String.join(",",Arrays.asList(customid,isNewBlank,plannedproductionworkshop,routetag,blanktype,producttype,alloy,alloystatus,thickness+"*"+prowidth,processDesc));
+        ApsBlankOrderDo needUpdate = new ApsBlankOrderDo();
+        needUpdate.setId(apsBlankOrderDo.getId());
+        needUpdate.setProcessdesc(endProcessDesc);
+
+        //更新输出成品和坯料计划
+        apsProcessOutputProductService.updateBatchById(needUpdateOutputList);
+        apsBlankOrderService.updateById(needUpdate);
+    }
+
     public R checkBlankOrder(CheckAndSaveOrUpdateBlankReq req, int j) {
         //获取坯料计划内容
         ApsBlankOrderDo apsBlankOrderDo = req.getApsBlankOrderDo();

+ 5 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/domain/ApsBlankOrderDo.java

@@ -342,5 +342,10 @@ public class ApsBlankOrderDo extends BaseDo {
      */
     @TableField("ROUTETAG")
     private String routetag;
+    /**
+     * 工艺描述
+     */
+    @TableField("PROCESSDESC")
+    private String processdesc;
 
 }

+ 5 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/domain/ApsBlankOrderHistoryDo.java

@@ -289,4 +289,9 @@ public class ApsBlankOrderHistoryDo extends BaseDo {
      */
     @TableField("ROUTETAG")
     private String routetag;
+    /**
+     * 工艺描述
+     */
+    @TableField("PROCESSDESC")
+    private String processdesc;
 }

+ 4 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/domain/ApsProcessOutputProductDo.java

@@ -435,6 +435,10 @@ public class ApsProcessOutputProductDo extends BaseDo {
      * 客户简称
      */
     private String customeasyname;
+    /**
+     * 输出工艺描述
+     */
+    private String outputprocessdes;
 
     private static final long serialVersionUID = 1L;
 }

+ 4 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/domain/ApsProcessOutputProductHistoryDo.java

@@ -417,6 +417,10 @@ public class ApsProcessOutputProductHistoryDo extends BaseDo {
      * 客户简称
      */
     private String customeasyname;
+    /**
+     * 输出工艺描述
+     */
+    private String outputprocessdes;
 
     private static final long serialVersionUID = 1L;
 }