Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

fangpy 1 год назад
Родитель
Сommit
56d588bef0

+ 5 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsBlankOrderDao.java

@@ -6,6 +6,7 @@ import com.rongwei.bsentity.domain.AspCheckItemsDo;
 import com.rongwei.bsentity.vo.ApsBlankOrderVo;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
 
 import java.util.List;
 
@@ -27,4 +28,8 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
     @Select("select a.*,b.DELIVERYDATE from aps_blank_order a LEFT JOIN aps_production_order b on a.PRODUCTIONORDERID=b.ID where a.PRODUCTIONORDERID=#{orderId} and a.DELETED='0' and b.DELETED='0'")
     List<ApsBlankOrderVo> getByOrderId(@Param("orderId") String orderId);
 
+
+    @Update("update aps_blank_order set CRAFTROUTEID = #{craftrouteid} where ID=#{blankId} ")
+    void upCraftrouteId(@Param("blankId") String blankId, @Param("craftrouteid") String craftrouteid);
+
 }

+ 3 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProcessOperationDao.java

@@ -54,4 +54,7 @@ public interface ApsProcessOperationDao extends BaseMapper<ApsProcessOperationDo
     void updateBatchNumberByProcessId(@Param("batchnumber") String batchnumber, @Param("processoperationid") String processoperationid);
 
     void updateBatchNumberByProcessList(@Param("batchnumber") String batchnumber, @Param("processIdList") List<String> processIdList);
+
+    @Select("select ID,PLANPROCESSRALL from aps_process_operation where DELETED='0' and BLANKID=#{blankid}")
+    List<ApsProcessOperationDo> getProcessOperation(@Param("blankid") String blankid);
 }

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

@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bscommon.sys.dao.ApsBlankOrderDao;
 import com.rongwei.bscommon.sys.dao.ApsProcessOperationDao;
 import com.rongwei.bscommon.sys.service.*;
 import com.rongwei.bsentity.domain.*;
@@ -41,6 +42,9 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
     @Autowired
     private ApsProcessOperationDao apsProcessOperationDao;
 
+    @Autowired
+    private ApsBlankOrderDao apsBlankOrderDao;
+
     @Autowired
     ApsCraftRouteStepService apsCraftRouteStepService;
 
@@ -202,7 +206,12 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                             apsProcessOperationDo.setSinglerollweight(outMaterDo.getSinglerollweight());
                             Integer planInRall = outMaterDo.getPlanrollnum() - outMaterDo.getPlanstockrollnum() - outMaterDo.getPlanprodrollnum();
                             apsProcessOperationDo.setPlaninrall(planInRall);
-                            apsProcessOperationDo.setPlanprocessrall(planInRall);
+                            //输入物料ID对应前道工序作业输出物料只有一个后道工序作业),则不可编辑,自动计算=计划输入卷数
+                            if (apsCraftRouteStepDoList1.size() == 1) {
+                                apsProcessOperationDo.setPlanprocessrall(processVo.get(0).getPlanprocessrall());
+                            } else {
+                                apsProcessOperationDo.setPlanprocessrall(0);
+                            }
                             apsProcessOperationDo.setUnfinishroll(planInRall);
                             apsProcessOperationDo.setBlankid(blanckdata.getStr("ID"));
                             apsProcessOperationDo.setCraftstepid(apsCraftRouteStepDo1.getId());
@@ -214,6 +223,8 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                             previousProcessVo.setProcessId(processId);
                             previousProcessVo.setProcessName(apsProcessOperationDo.getProcessname());
                             previousProcessVo.setPreviousstepid(apsCraftRouteStepDo1.getId());
+                            previousProcessVo.setPlanprocessrall(apsProcessOperationDo.getPlanprocessrall());
+
                             //本道工序的输出
                             map.put("CRAFTSTEPID", apsCraftRouteStepDo1.getId());
                             List<ApsCraftRouteOutMaterRequestDo> apsCraftRouteOutMaterRequestDo = apsCraftRouteOutMaterRequestService.listByMap(map).stream().collect(Collectors.toList());
@@ -249,17 +260,18 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                             apsProcessOperationOutMaterDo.setRipcutnum(1);
                             apsProcessOperationOutMaterDo.setCrosscutnum(1);
                             apsProcessOperationOutMaterDo.setOutval(1);
-                            apsProcessOperationOutMaterDo.setPlanrollnum(blanckdata.getInt("ROLLNUM"));
+                            apsProcessOperationOutMaterDo.setPlanrollnum(apsProcessOperationDo.getPlanprocessrall());
                             //输入物料的输入单卷重*该输出物料的宽度/输入物料的宽度/该输出物料的横切分卷数
-                            String singlerollweight = df.format(outMaterDo.getSinglerollweight().multiply(wval == null ? BigDecimal.valueOf(1) : wval).divide(outMaterDo.getProwidth() == null ? BigDecimal.valueOf(1) : outMaterDo.getProwidth(), 2, BigDecimal.ROUND_HALF_UP));
-                            apsProcessOperationOutMaterDo.setSinglerollweight(new BigDecimal(singlerollweight));
+//                            String singlerollweight = df.format(outMaterDo.getSinglerollweight().multiply(wval == null ? BigDecimal.valueOf(1) : wval).divide(outMaterDo.getProwidth() == null ? BigDecimal.valueOf(1) : outMaterDo.getProwidth(), 2, BigDecimal.ROUND_HALF_UP));
+//                            apsProcessOperationOutMaterDo.setSinglerollweight(new BigDecimal(singlerollweight));
+                            apsProcessOperationOutMaterDo.setSinglerollweight(outMaterDo.getSinglerollweight());
                             apsProcessOperationOutMaterDo.setNumunit(blanckdata.getStr("NUMBERUNIT"));
                             apsProcessOperationOutMaterDo.setPlanstockrollnum(0);
                             apsProcessOperationOutMaterDo.setPlanprodrollnum(0);
                             apsProcessOperationOutMaterDo.setMainid(processId);
                             apsProcessOperationOutMaterDo.setBlankid(blanckdata.getStr("ID"));
                             //输出物料
-                            String outputMeter = getOutMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval, apsProcessOperationOutMaterDo.getThickoffset(), apsProcessOperationOutMaterDo.getWidthoffset(), apsProcessOperationOutMaterDo.getLengthoffset()) + singlerollweight + UNIT_MAP.getOrDefault(blanckdata.getStr("NUMBERUNIT"), "");
+                            String outputMeter = getOutMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval, apsProcessOperationOutMaterDo.getThickoffset(), apsProcessOperationOutMaterDo.getWidthoffset(), apsProcessOperationOutMaterDo.getLengthoffset()) + outMaterDo.getSinglerollweight() + UNIT_MAP.getOrDefault(blanckdata.getStr("NUMBERUNIT"), "");
                             apsProcessOperationOutMaterDo.setOutputmaterial(outputMeter + "*" + blanckdata.getInt("ROLLNUM") + "卷");
                             apsProcessOperationDo.setPlanoutput("[1]" + outputMeter + "*" + blanckdata.getInt("ROLLNUM") + "卷");
                             //输出成品
@@ -350,6 +362,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                         previousProcessVo.setProcessId(processId);
                         previousProcessVo.setProcessName(apsProcessOperationDo.getProcessname());
                         previousProcessVo.setPreviousstepid(apsCraftRouteStepDo.getId());
+                        previousProcessVo.setPlanprocessrall(blanckdata.getInt("ROLLNUM"));
 
                         //本道工序的输出
                         map.put("CRAFTSTEPID", apsCraftRouteStepDo.getId());
@@ -388,15 +401,16 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                         apsProcessOperationOutMaterDo.setOutval(1);
                         apsProcessOperationOutMaterDo.setPlanrollnum(blanckdata.getInt("ROLLNUM"));
                         //输入物料的输入单卷重*该输出物料的宽度/输入物料的宽度/该输出物料的横切分卷数
-                        String singlerollweight = df.format(blanckdata.getBigDecimal("SINGLEROLLWEIGHT").multiply(wval == null ? BigDecimal.valueOf(1) : wval).divide(blanckdata.getBigDecimal("PROWIDTH") == null ? BigDecimal.valueOf(1) : blanckdata.getBigDecimal("PROWIDTH"), 2, BigDecimal.ROUND_HALF_UP));
-                        apsProcessOperationOutMaterDo.setSinglerollweight(new BigDecimal(singlerollweight));
+//                        String singlerollweight = df.format(blanckdata.getBigDecimal("SINGLEROLLWEIGHT").multiply(wval == null ? BigDecimal.valueOf(1) : wval).divide(blanckdata.getBigDecimal("PROWIDTH") == null ? BigDecimal.valueOf(1) : blanckdata.getBigDecimal("PROWIDTH"), 2, BigDecimal.ROUND_HALF_UP));
+//                        apsProcessOperationOutMaterDo.setSinglerollweight(new BigDecimal(singlerollweight));
+                        apsProcessOperationOutMaterDo.setSinglerollweight(blanckdata.getBigDecimal("SINGLEROLLWEIGHT"));
                         apsProcessOperationOutMaterDo.setNumunit(blanckdata.getStr("NUMBERUNIT"));
                         apsProcessOperationOutMaterDo.setPlanstockrollnum(0);
                         apsProcessOperationOutMaterDo.setPlanprodrollnum(0);
                         apsProcessOperationOutMaterDo.setMainid(processId);
                         apsProcessOperationOutMaterDo.setBlankid(blanckdata.getStr("ID"));
                         //输出物料
-                        String outputMeter = getOutMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval, apsProcessOperationOutMaterDo.getThickoffset(), apsProcessOperationOutMaterDo.getWidthoffset(), apsProcessOperationOutMaterDo.getLengthoffset()) + singlerollweight + UNIT_MAP.getOrDefault(blanckdata.getStr("NUMBERUNIT"), "");
+                        String outputMeter = getOutMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval, apsProcessOperationOutMaterDo.getThickoffset(), apsProcessOperationOutMaterDo.getWidthoffset(), apsProcessOperationOutMaterDo.getLengthoffset()) + blanckdata.getBigDecimal("SINGLEROLLWEIGHT") + UNIT_MAP.getOrDefault(blanckdata.getStr("NUMBERUNIT"), "");
                         apsProcessOperationOutMaterDo.setOutputmaterial(outputMeter + "*" + blanckdata.getInt("ROLLNUM") + "卷");
                         apsProcessOperationDo.setPlanoutput("[1]" + outputMeter + "*" + blanckdata.getInt("ROLLNUM") + "卷");
                         //输出成品
@@ -473,6 +487,8 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
             boolean bool4 = sysMindMappingService.saveOrUpdateBatch(sysMindMappingDos);
 
             if (bool1 && bool2 && bool3 && bool4) {
+                //更新坯料计划的所选工艺路线
+                apsBlankOrderDao.upCraftrouteId(blanckdata.getStr("ID"), craftrouteid);
 //                r.setCode("200");
 //                r.putData(apsCraftRouteStepDoList);
                 return R.ok();
@@ -570,6 +586,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
     public List<ApsProcessOperationOutMaterDo> resetProcessOperation(List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDoList) {
         List<ApsProcessOperationOutMaterDo> operationOutMaterDos = new ArrayList<>();//递归的数据源
         try {
+//            List<ApsProcessOperationDo> processOperationDos = apsProcessOperationDao.getProcessOperation(apsProcessOperationOutMaterDoList.get(0).getBlankid());
             List<ApsProcessOperationDo> apsProcessOperationDoList = new ArrayList<>();
             List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDoNewList = new ArrayList<>();
             for (ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo : apsProcessOperationOutMaterDoList) {
@@ -589,7 +606,12 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                     apsProcessOperationDo.setSinglerollweight(apsProcessOperationOutMaterDo.getSinglerollweight());
                     Integer planinrall = apsProcessOperationOutMaterDo.getPlanrollnum() - apsProcessOperationOutMaterDo.getPlanstockrollnum() - apsProcessOperationOutMaterDo.getPlanprodrollnum();
                     apsProcessOperationDo.setPlaninrall(planinrall);
-                    apsProcessOperationDo.setPlanprocessrall(planinrall);
+                    //输入物料ID对应前道工序作业输出物料只有一个后道工序作业),则不可编辑,自动计算=计划输入卷数
+                    if (apsProcessOperationDos.size() == 1) {
+                        apsProcessOperationDo.setPlanprocessrall(planinrall);
+//                        ApsProcessOperationDo operationDo = processOperationDos.stream().filter(item -> item.getId().equals(apsProcessOperationDo.getPreviousprocessid())).findFirst().get();
+//                        apsProcessOperationDo.setPlanprocessrall(operationDo.getPlanprocessrall());
+                    }
                     apsProcessOperationDo.setUnfinishroll(planinrall - apsProcessOperationDo.getCheckoutroll());
                     String meterInput = getInMeterInfo(apsProcessOperationOutMaterDo.getProducttype(), apsProcessOperationOutMaterDo.getMetal(), apsProcessOperationOutMaterDo.getMetalstate(), apsProcessOperationOutMaterDo.getThickness(), apsProcessOperationOutMaterDo.getProwidth(), apsProcessOperationOutMaterDo.getProlength());
                     apsProcessOperationDo.setPlaninput(meterInput + apsProcessOperationOutMaterDo.getSinglerollweight() + UNIT_MAP.getOrDefault(apsProcessOperationOutMaterDo.getNumunit(), ""));
@@ -624,12 +646,14 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                         apsProcessOperationOutMaterDo1.setProwidth(wval);
                         BigDecimal lval = changeSize(apsProcessOperationOutMaterDo.getProlength(), apsProcessOperationOutMaterDo1.getLengthrule(), apsProcessOperationOutMaterDo1.getLengthchange());
                         apsProcessOperationOutMaterDo1.setProlength(lval);
-                        apsProcessOperationOutMaterDo1.setPlanrollnum(planinrall * apsProcessOperationOutMaterDo1.getOutval());
+//                        apsProcessOperationOutMaterDo1.setPlanrollnum(planinrall * apsProcessOperationOutMaterDo1.getOutval());
+                        apsProcessOperationOutMaterDo1.setPlanrollnum(apsProcessOperationDo.getPlanprocessrall());
                         //输入物料的输入单卷重*该输出物料的宽度/输入物料的宽度/该输出物料的横切分卷数
-                        String singlerollweight = df.format(apsProcessOperationOutMaterDo.getSinglerollweight().multiply(wval == null ? BigDecimal.valueOf(1) : wval).divide(apsProcessOperationOutMaterDo.getProwidth() == null ? BigDecimal.valueOf(1) : apsProcessOperationOutMaterDo.getProwidth(), 2, BigDecimal.ROUND_HALF_UP).divide(new BigDecimal(apsProcessOperationOutMaterDo1.getCrosscutnum().toString()), 2, BigDecimal.ROUND_HALF_UP));
-                        apsProcessOperationOutMaterDo1.setSinglerollweight(new BigDecimal(singlerollweight));
+//                        String singlerollweight = df.format(apsProcessOperationOutMaterDo.getSinglerollweight().multiply(wval == null ? BigDecimal.valueOf(1) : wval).divide(apsProcessOperationOutMaterDo.getProwidth() == null ? BigDecimal.valueOf(1) : apsProcessOperationOutMaterDo.getProwidth(), 2, BigDecimal.ROUND_HALF_UP).divide(new BigDecimal(apsProcessOperationOutMaterDo1.getCrosscutnum().toString()), 2, BigDecimal.ROUND_HALF_UP));
+//                        apsProcessOperationOutMaterDo1.setSinglerollweight(new BigDecimal(singlerollweight));
+                        apsProcessOperationOutMaterDo1.setSinglerollweight(apsProcessOperationOutMaterDo.getSinglerollweight());
                         //输出物料
-                        String outputMeter = getOutMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval, apsProcessOperationOutMaterDo1.getThickoffset(), apsProcessOperationOutMaterDo1.getWidthoffset(), apsProcessOperationOutMaterDo.getLengthoffset()) + singlerollweight + UNIT_MAP.getOrDefault(apsProcessOperationDo.getNumunit(), "");
+                        String outputMeter = getOutMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval, apsProcessOperationOutMaterDo1.getThickoffset(), apsProcessOperationOutMaterDo1.getWidthoffset(), apsProcessOperationOutMaterDo.getLengthoffset()) + apsProcessOperationOutMaterDo.getSinglerollweight() + UNIT_MAP.getOrDefault(apsProcessOperationDo.getNumunit(), "");
                         apsProcessOperationOutMaterDo1.setOutputmaterial(outputMeter + "*" + (planinrall * apsProcessOperationOutMaterDo1.getOutval()) + "卷");
                         planoutputList.add(outputMeter + "*" + (planinrall * apsProcessOperationOutMaterDo1.getOutval()) + "卷");
                         apsProcessOperationOutMaterDo1.setOutmaterrequest(outputMeter);

+ 7 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/PreviousProcessVo.java

@@ -3,11 +3,18 @@ package com.rongwei.bsentity.vo;
 import com.rongwei.bsentity.domain.ApsProcessOperationOutMaterDo;
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 @Data
 public class PreviousProcessVo {
+    //工序ID
     private String processId;
+    //工序显示名
     private String processName;
+    //工艺路线的步骤ID
     private String previousstepid;
+    //计划加工卷数
+    private Integer planprocessrall;
     //工序输出
     private ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo;
 }