diff --git a/XG_Project1/src/main/java/com/xisc/pm/api/dto/model/GCalGrp.java b/XG_Project1/src/main/java/com/xisc/pm/api/dto/model/GCalGrp.java index 27716c6..6711d43 100644 --- a/XG_Project1/src/main/java/com/xisc/pm/api/dto/model/GCalGrp.java +++ b/XG_Project1/src/main/java/com/xisc/pm/api/dto/model/GCalGrp.java @@ -16,6 +16,9 @@ public class GCalGrp { //虚拟号 private String VirtualSlabNo; + //产线 + private String MscLineNo; + //合同号 private int IDValue; //宽度 @@ -25,6 +28,51 @@ public class GCalGrp { //长度 private int Len; + + //全程热处理类型 + private String WHOLE_HEAT_TREATMENT_TYPE; + + //切断方式 + private String CUT_MODE_CODE; + + //缓冷代码 + private String COOL_CODE; + + //二次开坯母材合同标记 + private BigDecimal TWO_ROLL_FLAG; + + //见证要求 QE_TJ_WITNESS_PRO_ORDER + private String WITNESS_PRO_NO; + + // AD控制模式第134位相等 + private String AD_MODE_CODE; + + // 控轧代码第134位相等 + private String CTRL_ROLL_CODE; + + //边部形态 + private String PROD_SIDE_MARK; + + //会检方式代码 + private String CHECK_METHOD_CODE; + //验收机关代码 + private String ACCP_AUTH_CODE; + //最终用户代码 + private String FIN_CUST_CODE; + + //超声探伤代码 + private String ULT_CODE; + + //四毛交货的合同单独组板 + private String TRIM_CODE; + + + + + + + + //厚度 private BigDecimal Order_Thk; // 厚度公差上限 diff --git a/XG_Project1/src/main/java/com/xisc/pm/api/dto/model/GGrpCalRslt.java b/XG_Project1/src/main/java/com/xisc/pm/api/dto/model/GGrpCalRslt.java index c466770..bd5f104 100644 --- a/XG_Project1/src/main/java/com/xisc/pm/api/dto/model/GGrpCalRslt.java +++ b/XG_Project1/src/main/java/com/xisc/pm/api/dto/model/GGrpCalRslt.java @@ -21,6 +21,9 @@ public class GGrpCalRslt { //虚拟板坯长度 private int VirtualSlab_Len; + //产线 + private String MscLineNo; + //虚拟板坯宽度 private int VirtualSlab_Wid; diff --git a/XG_Project1/src/main/java/com/xisc/pm/api/dto/model/GGrpOrderFir.java b/XG_Project1/src/main/java/com/xisc/pm/api/dto/model/GGrpOrderFir.java index d202093..177bc3b 100644 --- a/XG_Project1/src/main/java/com/xisc/pm/api/dto/model/GGrpOrderFir.java +++ b/XG_Project1/src/main/java/com/xisc/pm/api/dto/model/GGrpOrderFir.java @@ -23,6 +23,48 @@ public class GGrpOrderFir { //内部钢种 private String ST_NO; + + + //全程热处理类型 + private String WHOLE_HEAT_TREATMENT_TYPE; + + //切断方式 + private String CUT_MODE_CODE; + + //缓冷代码 + private String COOL_CODE; + + //二次开坯母材合同标记 + private BigDecimal TWO_ROLL_FLAG; + + //见证要求 QE_TJ_WITNESS_PRO_ORDER + private String WITNESS_PRO_NO; + + // AD控制模式第134位相等 + private String AD_MODE_CODE; + + // 控轧代码第134位相等 + private String CTRL_ROLL_CODE; + + //边部形态 + private String PROD_SIDE_MARK; + + //会检方式代码 + private String CHECK_METHOD_CODE; + //验收机关代码 + private String ACCP_AUTH_CODE; + //最终用户代码 + private String FIN_CUST_CODE; + + //超声探伤代码 + private String ULT_CODE; + + //四毛交货的合同单独组板 + private String TRIM_CODE; + + + + //合同产线 private String Line ; //合同信息 diff --git a/XG_Project1/src/main/java/com/xisc/pm/api/dto/model/GPreOrder.java b/XG_Project1/src/main/java/com/xisc/pm/api/dto/model/GPreOrder.java index 1312677..585f113 100644 --- a/XG_Project1/src/main/java/com/xisc/pm/api/dto/model/GPreOrder.java +++ b/XG_Project1/src/main/java/com/xisc/pm/api/dto/model/GPreOrder.java @@ -32,7 +32,7 @@ public class GPreOrder { private String COOL_CODE; //二次开坯母材合同标记 - private String TWO_ROLL_FLAG; + private BigDecimal TWO_ROLL_FLAG; //见证要求 QE_TJ_WITNESS_PRO_ORDER private String WITNESS_PRO_NO; @@ -61,6 +61,7 @@ public class GPreOrder { + //合同产线 private String Line ; diff --git a/XG_Project1/src/main/java/com/xisc/pm/app/service/impl/SubServiceImpl.java b/XG_Project1/src/main/java/com/xisc/pm/app/service/impl/SubServiceImpl.java index 5ecdb36..c0bda71 100644 --- a/XG_Project1/src/main/java/com/xisc/pm/app/service/impl/SubServiceImpl.java +++ b/XG_Project1/src/main/java/com/xisc/pm/app/service/impl/SubServiceImpl.java @@ -916,10 +916,10 @@ public class SubServiceImpl implements SubService { return; } - //产线相同 TODO:同产线,不同产线需更改后续产线规则 - if (!SInfo.getMscLineNo().equals(f.getInfoPmContMscTechDO().getMscLineNo())) { - return; - } +// //产线相同 TODO:同产线,不同产线需更改后续产线规则 +// if (!SInfo.getMscLineNo().equals(f.getInfoPmContMscTechDO().getMscLineNo())) { +// return; +// } //不存在或者合格都是成功,不合格返回false if(plistChmChkRsult.stream().anyMatch(m -> m.getPono().equals(SInfo.getPono()) && m.getOrderNo().equals(f.getOrderNo()))) @@ -967,6 +967,39 @@ public class SubServiceImpl implements SubService { //存在订单,添加可计算分组 if (GCG.getLtInfoGPreOrder().size() > 0) { + //产线 + GCG.setMscLineNo(GCG.getLtInfoGPreOrder().get(0).getLine()); + + //全程热处理类型 + GCG.setWHOLE_HEAT_TREATMENT_TYPE(GCG.getLtInfoGPreOrder().get(0).getWHOLE_HEAT_TREATMENT_TYPE()); + //切断方式 + GCG.setCUT_MODE_CODE(GCG.getLtInfoGPreOrder().get(0).getCUT_MODE_CODE()); + //缓冷代码 + GCG.setCOOL_CODE(GCG.getLtInfoGPreOrder().get(0).getCOOL_CODE()); + //二次开坯母材合同标记 + GCG.setTWO_ROLL_FLAG(GCG.getLtInfoGPreOrder().get(0).getTWO_ROLL_FLAG() ); + //见证要求 QE_TJ_WITNESS_PRO_ORDER TODO:QE_TJ_WITNESS_PRO_ORDER.WITNESS_PRO_NO 见证要求 + //GGOF.setWITNESS_PRO_NO(p.getWITNESS_PRO_NO()); + // AD控制模式第134位相等 + GCG.setAD_MODE_CODE(GCG.getLtInfoGPreOrder().get(0).getAD_MODE_CODE()); + // 控轧代码第134位相等 + GCG.setCTRL_ROLL_CODE(GCG.getLtInfoGPreOrder().get(0).getCTRL_ROLL_CODE()); + //边部形态 + GCG.setPROD_SIDE_MARK(GCG.getLtInfoGPreOrder().get(0).getPROD_SIDE_MARK()); + //会检方式代码 + GCG.setCHECK_METHOD_CODE(GCG.getLtInfoGPreOrder().get(0).getCHECK_METHOD_CODE()); + //验收机关代码 + GCG.setACCP_AUTH_CODE(GCG.getLtInfoGPreOrder().get(0).getACCP_AUTH_CODE()); + //最终用户代码 + GCG.setFIN_CUST_CODE(GCG.getLtInfoGPreOrder().get(0).getFIN_CUST_CODE()); + //超声探伤代码 + GCG.setULT_CODE(GCG.getLtInfoGPreOrder().get(0).getULT_CODE()); + //四毛交货的合同单独组板 + GCG.setTRIM_CODE(GCG.getLtInfoGPreOrder().get(0).getTRIM_CODE()); + + + + //GCG.getLtInfoGPreOrder().stream().filter(e->e.) //最大宽度 OptionalInt maxWidth = GCG.getLtInfoGPreOrder().stream() @@ -1024,7 +1057,7 @@ public class SubServiceImpl implements SubService { strThkTolType = "*"; } //存在数据,判断热处理模式 - if (plistPmThickAddvBtDO.stream().anyMatch(p -> p.getMscLineNo().equals(SInfo.getMscLineNo()) + if (plistPmThickAddvBtDO.stream().anyMatch(p -> p.getMscLineNo().equals(GCG.getMscLineNo()) && p.getTolTypeCode().equals(strThkTolType) && p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0 && p.getPlateThickTo().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) >= 0 @@ -1048,7 +1081,7 @@ public class SubServiceImpl implements SubService { if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType() != null && GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType().contains("Q")) { - decThkAdd = plistPmThickAddvBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo()) + decThkAdd = plistPmThickAddvBtDO.stream().filter(p -> p.getMscLineNo().equals(GCG.getMscLineNo()) && p.getTolTypeCode().equals(strThkTolType) && p.getWholeHeatTreatmentType().equals("Q") && p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0 @@ -1057,7 +1090,7 @@ public class SubServiceImpl implements SubService { && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0 ).collect(Collectors.toList()).get(0).getThickAddv(); } else { - decThkAdd = plistPmThickAddvBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo()) + decThkAdd = plistPmThickAddvBtDO.stream().filter(p -> p.getMscLineNo().equals(GCG.getMscLineNo()) && p.getTolTypeCode().equals(strThkTolType) && p.getWholeHeatTreatmentType().equals("*") && p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0 @@ -1091,7 +1124,7 @@ public class SubServiceImpl implements SubService { } //切边量 String finalStrWithSideFlag = strWithSideFlag; - if (plistPmPlateTrimBtDO.stream().anyMatch(p -> p.getMscLineNo().equals(SInfo.getMscLineNo()) + if (plistPmPlateTrimBtDO.stream().anyMatch(p -> p.getMscLineNo().equals(GCG.getMscLineNo()) && p.getPlateThickFrom().compareTo(decThk) <= 0 && p.getPlateThickTo().compareTo(decThk) >= 0 && p.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) <= 0 @@ -1104,7 +1137,7 @@ public class SubServiceImpl implements SubService { )) { String finalStrWithSideFlag1 = strWithSideFlag; - intTrimWid = plistPmPlateTrimBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo()) + intTrimWid = plistPmPlateTrimBtDO.stream().filter(p -> p.getMscLineNo().equals(GCG.getMscLineNo()) && p.getPlateThickFrom().compareTo(decThk) <= 0 && p.getPlateThickTo().compareTo(decThk) >= 0 && p.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) <= 0 @@ -1157,6 +1190,8 @@ public class SubServiceImpl implements SubService { if (f.getWid()+e.getWid()<4980 && e.getThk().compareTo(f.getThk())==0 && e.getST_NO().equals(f.getST_NO()) + && e.getMscLineNo().equals(f.getMscLineNo()) + && ChkCombinationGrpFlag(e,f) && e.getThickTolMin().compareTo(f.getThickTolMin())==0 && e.getThickTolMax().compareTo(f.getThickTolMax())==0 ){ @@ -1348,7 +1383,7 @@ public class SubServiceImpl implements SubService { strThkTolType = "*"; } //存在数据,判断热处理模式 - if (plistPmThickAddvBtDO.stream().anyMatch(p -> p.getMscLineNo().equals(SInfo.getMscLineNo()) + if (plistPmThickAddvBtDO.stream().anyMatch(p -> p.getMscLineNo().equals(GCG.getMscLineNo()) && p.getTolTypeCode().equals(strThkTolType) && p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0 && p.getPlateThickTo().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) >= 0 @@ -1373,7 +1408,7 @@ public class SubServiceImpl implements SubService { if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType()!=null && GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType().contains("Q")) { - decThkAdd = plistPmThickAddvBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo()) + decThkAdd = plistPmThickAddvBtDO.stream().filter(p -> p.getMscLineNo().equals(GCG.getMscLineNo()) && p.getTolTypeCode().equals(strThkTolType) && p.getWholeHeatTreatmentType().equals("Q") && p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0 @@ -1382,7 +1417,7 @@ public class SubServiceImpl implements SubService { && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth + maxAddWidth.orElse(0))) >= 0 ).collect(Collectors.toList()).get(0).getThickAddv(); } else { - decThkAdd = plistPmThickAddvBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo()) + decThkAdd = plistPmThickAddvBtDO.stream().filter(p -> p.getMscLineNo().equals(GCG.getMscLineNo()) && p.getTolTypeCode().equals(strThkTolType) && p.getWholeHeatTreatmentType().equals("*") && p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0 @@ -1415,7 +1450,7 @@ public class SubServiceImpl implements SubService { } //切边量 String finalStrWithSideFlag = strWithSideFlag; - if (plistPmPlateTrimBtDO.stream().anyMatch(p -> p.getMscLineNo().equals(SInfo.getMscLineNo()) + if (plistPmPlateTrimBtDO.stream().anyMatch(p -> p.getMscLineNo().equals(GCG.getMscLineNo()) && p.getPlateThickFrom().compareTo(decThk) <= 0 && p.getPlateThickTo().compareTo(decThk) >= 0 && p.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) <= 0 @@ -1428,7 +1463,7 @@ public class SubServiceImpl implements SubService { )) { String finalStrWithSideFlag1 = strWithSideFlag; - intTrimWid = plistPmPlateTrimBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo()) + intTrimWid = plistPmPlateTrimBtDO.stream().filter(p -> p.getMscLineNo().equals(GCG.getMscLineNo()) && p.getPlateThickFrom().compareTo(decThk) <= 0 && p.getPlateThickTo().compareTo(decThk) >= 0 && p.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) <= 0 @@ -2182,6 +2217,45 @@ public class SubServiceImpl implements SubService { //产线 GPO.setLine(pcmt.getMscLineNo()); + //全程热处理类型 + GPO.setWHOLE_HEAT_TREATMENT_TYPE(pcmt.getWholeHeatTreatmentType()); + + //切断方式 + GPO.setCUT_MODE_CODE(pcmt.getCutModeCode()); + + //缓冷代码 + GPO.setCOOL_CODE(pcmt.getCoolCode()); + + //二次开坯母材合同标记 + GPO.setTWO_ROLL_FLAG(BigDecimal.valueOf(ppcpa.getTwoRollFlag()) ); + + //见证要求 QE_TJ_WITNESS_PRO_ORDER TODO:QE_TJ_WITNESS_PRO_ORDER.WITNESS_PRO_NO 见证要求 + //GPO.setWITNESS_PRO_NO(pcmt.getW); + + // AD控制模式第134位相等 + GPO.setAD_MODE_CODE(pcmt.getAdModeCode()); + + // 控轧代码第134位相等 + GPO.setCTRL_ROLL_CODE(pcmt.getCtrlRollCode()); + + //边部形态 + GPO.setPROD_SIDE_MARK(ppcpa.getProdSideMark()); + + //会检方式代码 + GPO.setCHECK_METHOD_CODE(ppcpa.getCheckMethodCode()); + //验收机关代码 + GPO.setACCP_AUTH_CODE(ppcpa.getAccpAuthCode()); + //最终用户代码 + GPO.setFIN_CUST_CODE(ppcpa.getFinCustCode()); + + //超声探伤代码 + GPO.setULT_CODE(pcmt.getUltCode()); + + //四毛交货的合同单独组板 + GPO.setTRIM_CODE(ppcpa.getTrimCode()); + + + // 将创建的订单对象添加到全局订单列表中 gltOrder.add(GPO); } @@ -2275,16 +2349,18 @@ public class SubServiceImpl implements SubService { gltOrder.forEach(p -> { // 检查当前订单是否与已有的分组匹配 - if (gltGrpOrderFir.stream().anyMatch(e -> e.getWid().equals(p.getInfoPmProContProdAttrDO().getOrderWidth()) && - e.getThk().equals(p.getInfoPmProContProdAttrDO().getOrderThick()) && - e.getST_NO().equals(p.getInfoPmContMscTechDO().getStNo()) && - e.getLine().equals(p.getInfoPmContMscTechDO().getMscLineNo()))) { + if (gltGrpOrderFir.stream().anyMatch(e -> e.getWid().equals(p.getInfoPmProContProdAttrDO().getOrderWidth()) + && e.getThk().equals(p.getInfoPmProContProdAttrDO().getOrderThick()) + && e.getST_NO().equals(p.getInfoPmContMscTechDO().getStNo()) + && ChkCombinationOrderFlag(e,p) + && e.getLine().equals(p.getInfoPmContMscTechDO().getMscLineNo()))) { // 如果匹配成功,将订单添加到相应的分组中 GGrpOrderFir GGOF = gltGrpOrderFir.stream().filter(e -> e.getWid().equals(p.getInfoPmProContProdAttrDO().getOrderWidth()) && e.getThk().equals(p.getInfoPmProContProdAttrDO().getOrderThick()) - && e.getST_NO().equals(p.getInfoPmContMscTechDO().getStNo())&& - e.getLine().equals(p.getInfoPmContMscTechDO().getMscLineNo()) + && e.getST_NO().equals(p.getInfoPmContMscTechDO().getStNo()) + && ChkCombinationOrderFlag(e,p) + && e.getLine().equals(p.getInfoPmContMscTechDO().getMscLineNo()) ).findFirst().orElse(null); if (GGOF.getLtInfoGPreOrder() == null) { GGOF.setLtInfoGPreOrder(new ArrayList<>()); // 确保列表已初始化 @@ -2302,6 +2378,37 @@ public class SubServiceImpl implements SubService { GGOF.setSG_STD(p.getInfoPmProContProdAttrDO().getSgStd()); GGOF.setST_NO(p.getInfoPmContMscTechDO().getStNo()); GGOF.setLine(p.getInfoPmContMscTechDO().getMscLineNo()); + + + //全程热处理类型 + GGOF.setWHOLE_HEAT_TREATMENT_TYPE(p.getWHOLE_HEAT_TREATMENT_TYPE()); + //切断方式 + GGOF.setCUT_MODE_CODE(p.getCUT_MODE_CODE()); + //缓冷代码 + GGOF.setCOOL_CODE(p.getCOOL_CODE()); + //二次开坯母材合同标记 + GGOF.setTWO_ROLL_FLAG(p.getTWO_ROLL_FLAG() ); + //见证要求 QE_TJ_WITNESS_PRO_ORDER TODO:QE_TJ_WITNESS_PRO_ORDER.WITNESS_PRO_NO 见证要求 + //GGOF.setWITNESS_PRO_NO(p.getWITNESS_PRO_NO()); + // AD控制模式第134位相等 + GGOF.setAD_MODE_CODE(p.getAD_MODE_CODE()); + // 控轧代码第134位相等 + GGOF.setCTRL_ROLL_CODE(p.getCTRL_ROLL_CODE()); + //边部形态 + GGOF.setPROD_SIDE_MARK(p.getPROD_SIDE_MARK()); + //会检方式代码 + GGOF.setCHECK_METHOD_CODE(p.getCHECK_METHOD_CODE()); + //验收机关代码 + GGOF.setACCP_AUTH_CODE(p.getACCP_AUTH_CODE()); + //最终用户代码 + GGOF.setFIN_CUST_CODE(p.getFIN_CUST_CODE()); + //超声探伤代码 + GGOF.setULT_CODE(p.getULT_CODE()); + //四毛交货的合同单独组板 + GGOF.setTRIM_CODE(p.getTRIM_CODE()); + + + GGOF.setLtInfoGPreOrder(new ArrayList<>()); // 初始化列表 GGOF.getLtInfoGPreOrder().add(p); gltGrpOrderFir.add(GGOF); @@ -2316,6 +2423,199 @@ public class SubServiceImpl implements SubService { } + public boolean ChkCombinationOrderFlag(GGrpOrderFir GOF, GPreOrder GPO) { + try { + + + //全程热处理类型 + if (!nvl(GOF.getWHOLE_HEAT_TREATMENT_TYPE(),"").equals(nvl(GPO.getWHOLE_HEAT_TREATMENT_TYPE(),""))) { + return false; + } + + //切断方式 + if (!nvl(GOF.getCUT_MODE_CODE(),"").equals(nvl(GPO.getCUT_MODE_CODE(),""))) { + return false; + } + //缓冷代码 + // GGOF.setCOOL_CODE(p.getCOOL_CODE()); + if (!nvl(GOF.getCOOL_CODE(),"").equals(nvl(GPO.getCOOL_CODE(),""))) { + return false; + } + //二次开坯母材合同标记 + // GGOF.setTWO_ROLL_FLAG(p.getTWO_ROLL_FLAG() ); + if (!nvl(GOF.getTWO_ROLL_FLAG(),"").equals(nvl(GPO.getTWO_ROLL_FLAG(),""))) { + return false; + } + //见证要求 QE_TJ_WITNESS_PRO_ORDER TODO:QE_TJ_WITNESS_PRO_ORDER.WITNESS_PRO_NO 见证要求 + //GGOF.setWITNESS_PRO_NO(p.getWITNESS_PRO_NO()); + // AD控制模式第134位相等 + // GGOF.setAD_MODE_CODE(p.getAD_MODE_CODE()); + if (!nvl(GOF.getAD_MODE_CODE(),"").equals(nvl(GPO.getAD_MODE_CODE(),""))) { + return false; + } + + // AD控制模式第1位、第3位和第4位相等 + if ((nvl(GOF.getAD_MODE_CODE(),"").length() != 0 && nvl(GPO.getAD_MODE_CODE(),"").length() == 0) + || (nvl(GOF.getAD_MODE_CODE(),"").length() == 0 && nvl(GPO.getAD_MODE_CODE(),"").length() != 0)) { + return false; + } else { + if (nvl(GOF.getAD_MODE_CODE(),"").length() < 4 || nvl(GPO.getAD_MODE_CODE(),"").length() < 4 || + nvl(GOF.getAD_MODE_CODE(),"").charAt(0) != nvl(GPO.getAD_MODE_CODE(),"").charAt(0) || + nvl(GOF.getAD_MODE_CODE(),"").charAt(2) != nvl(GPO.getAD_MODE_CODE(),"").charAt(2) || + nvl(GOF.getAD_MODE_CODE(),"").charAt(3) != nvl(GPO.getAD_MODE_CODE(),"").charAt(3)) { + return false; + } + } + + // 控轧代码第134位相等 + // GGOF.setCTRL_ROLL_CODE(p.getCTRL_ROLL_CODE()); + if ((nvl(GOF.getCTRL_ROLL_CODE(),"").length() != 0 && nvl(GPO.getCTRL_ROLL_CODE(),"").length() == 0) + || (nvl(GOF.getCTRL_ROLL_CODE(),"").length() == 0 && nvl(GPO.getCTRL_ROLL_CODE(),"").length() != 0)) { + return false; + } else { + if (nvl(GOF.getCTRL_ROLL_CODE(),"").length() < 4 || nvl(GPO.getCTRL_ROLL_CODE(),"").length() < 4 || + nvl(GOF.getCTRL_ROLL_CODE(),"").charAt(0) != nvl(GPO.getCTRL_ROLL_CODE(),"").charAt(0) || + nvl(GOF.getCTRL_ROLL_CODE(),"").charAt(2) != nvl(GPO.getCTRL_ROLL_CODE(),"").charAt(2) || + nvl(GOF.getCTRL_ROLL_CODE(),"").charAt(3) != nvl(GPO.getCTRL_ROLL_CODE(),"").charAt(3)) { + return false; + } + } + + //边部形态 + // GGOF.setPROD_SIDE_MARK(p.getPROD_SIDE_MARK()); + if (!nvl(GOF.getPROD_SIDE_MARK(),"").equals(nvl(GPO.getPROD_SIDE_MARK(),""))) { + return false; + } + + //会检方式代码 + // GGOF.setCHECK_METHOD_CODE(p.getCHECK_METHOD_CODE()); + if (!nvl(GOF.getCHECK_METHOD_CODE(),"").equals(nvl(GPO.getCHECK_METHOD_CODE(),""))) { + return false; + } + //验收机关代码 + // GGOF.setACCP_AUTH_CODE(p.getACCP_AUTH_CODE()); + if (!nvl(GOF.getACCP_AUTH_CODE(),"").equals(nvl(GPO.getACCP_AUTH_CODE(),""))) { + return false; + } + //最终用户代码 + // GGOF.setFIN_CUST_CODE(p.getFIN_CUST_CODE()); + if (!nvl(GOF.getFIN_CUST_CODE(),"").equals(nvl(GPO.getFIN_CUST_CODE(),""))) { + return false; + } + + //超声探伤代码 + // GGOF.setULT_CODE(p.getULT_CODE()); + if (!nvl(GOF.getULT_CODE(),"").equals(nvl(GPO.getULT_CODE(),""))) { + return false; + } + + //四毛交货的合同单独组板 + // GGOF.setTRIM_CODE(p.getTRIM_CODE()); + if (!nvl(GOF.getTRIM_CODE(),"").equals(nvl(GPO.getTRIM_CODE(),""))) { + return false; + } + } catch (Exception ex1) { + logger.info("错误信息:合同-->" + ex1); + } + return true; + } + + public boolean ChkCombinationGrpFlag(GCalGrp GOF, GCalGrp GPO) { + try { + + //全程热处理类型 + if (!nvl(GOF.getWHOLE_HEAT_TREATMENT_TYPE(),"").equals(nvl(GPO.getWHOLE_HEAT_TREATMENT_TYPE(),""))) { + return false; + } + + //切断方式 + if (!nvl(GOF.getCUT_MODE_CODE(),"").equals(nvl(GPO.getCUT_MODE_CODE(),""))) { + return false; + } + //缓冷代码 + // GGOF.setCOOL_CODE(p.getCOOL_CODE()); + if (!nvl(GOF.getCOOL_CODE(),"").equals(nvl(GPO.getCOOL_CODE(),""))) { + return false; + } + //二次开坯母材合同标记 + // GGOF.setTWO_ROLL_FLAG(p.getTWO_ROLL_FLAG() ); + if (!nvl(GOF.getTWO_ROLL_FLAG(),"").equals(nvl(GPO.getTWO_ROLL_FLAG(),""))) { + return false; + } + //见证要求 QE_TJ_WITNESS_PRO_ORDER TODO:QE_TJ_WITNESS_PRO_ORDER.WITNESS_PRO_NO 见证要求 + //GGOF.setWITNESS_PRO_NO(p.getWITNESS_PRO_NO()); + // AD控制模式第134位相等 + // GGOF.setAD_MODE_CODE(p.getAD_MODE_CODE()); + if (!nvl(GOF.getAD_MODE_CODE(),"").equals(nvl(GPO.getAD_MODE_CODE(),""))) { + return false; + } + + // AD控制模式第1位、第3位和第4位相等 + if ((nvl(GOF.getAD_MODE_CODE(),"").length() != 0 && nvl(GPO.getAD_MODE_CODE(),"").length() == 0) + || (nvl(GOF.getAD_MODE_CODE(),"").length() == 0 && nvl(GPO.getAD_MODE_CODE(),"").length() != 0)) { + return false; + } else { + if (nvl(GOF.getAD_MODE_CODE(),"").length() < 4 || nvl(GPO.getAD_MODE_CODE(),"").length() < 4 || + nvl(GOF.getAD_MODE_CODE(),"").charAt(0) != nvl(GPO.getAD_MODE_CODE(),"").charAt(0) || + nvl(GOF.getAD_MODE_CODE(),"").charAt(2) != nvl(GPO.getAD_MODE_CODE(),"").charAt(2) || + nvl(GOF.getAD_MODE_CODE(),"").charAt(3) != nvl(GPO.getAD_MODE_CODE(),"").charAt(3)) { + return false; + } + } + + // 控轧代码第134位相等 + // GGOF.setCTRL_ROLL_CODE(p.getCTRL_ROLL_CODE()); + if ((nvl(GOF.getCTRL_ROLL_CODE(),"").length() != 0 && nvl(GPO.getCTRL_ROLL_CODE(),"").length() == 0) + || (nvl(GOF.getCTRL_ROLL_CODE(),"").length() == 0 && nvl(GPO.getCTRL_ROLL_CODE(),"").length() != 0)) { + return false; + } else { + if (nvl(GOF.getCTRL_ROLL_CODE(),"").length() < 4 || nvl(GPO.getCTRL_ROLL_CODE(),"").length() < 4 || + nvl(GOF.getCTRL_ROLL_CODE(),"").charAt(0) != nvl(GPO.getCTRL_ROLL_CODE(),"").charAt(0) || + nvl(GOF.getCTRL_ROLL_CODE(),"").charAt(2) != nvl(GPO.getCTRL_ROLL_CODE(),"").charAt(2) || + nvl(GOF.getCTRL_ROLL_CODE(),"").charAt(3) != nvl(GPO.getCTRL_ROLL_CODE(),"").charAt(3)) { + return false; + } + } + + //边部形态 + // GGOF.setPROD_SIDE_MARK(p.getPROD_SIDE_MARK()); + if (!nvl(GOF.getPROD_SIDE_MARK(),"").equals(nvl(GPO.getPROD_SIDE_MARK(),""))) { + return false; + } + + //会检方式代码 + // GGOF.setCHECK_METHOD_CODE(p.getCHECK_METHOD_CODE()); + if (!nvl(GOF.getCHECK_METHOD_CODE(),"").equals(nvl(GPO.getCHECK_METHOD_CODE(),""))) { + return false; + } + //验收机关代码 + // GGOF.setACCP_AUTH_CODE(p.getACCP_AUTH_CODE()); + if (!nvl(GOF.getACCP_AUTH_CODE(),"").equals(nvl(GPO.getACCP_AUTH_CODE(),""))) { + return false; + } + //最终用户代码 + // GGOF.setFIN_CUST_CODE(p.getFIN_CUST_CODE()); + if (!nvl(GOF.getFIN_CUST_CODE(),"").equals(nvl(GPO.getFIN_CUST_CODE(),""))) { + return false; + } + + //超声探伤代码 + // GGOF.setULT_CODE(p.getULT_CODE()); + if (!nvl(GOF.getULT_CODE(),"").equals(nvl(GPO.getULT_CODE(),""))) { + return false; + } + + //四毛交货的合同单独组板 + // GGOF.setTRIM_CODE(p.getTRIM_CODE()); + if (!nvl(GOF.getTRIM_CODE(),"").equals(nvl(GPO.getTRIM_CODE(),""))) { + return false; + } + } catch (Exception ex1) { + logger.info("错误信息:分组-->" + ex1); + } + return true; + } + /** * 设置组计算结果 * 根据提供的板坯信息和生产配置,计算出每个组的最大可轧制长度,并筛选出可行的订单组合 @@ -2368,6 +2668,10 @@ public class SubServiceImpl implements SubService { if (intMaxLen < intRollMinLen) { return; } + + //产线 + GGCR.setMscLineNo(e.getMscLineNo()); + //轧制宽度 GGCR.setCal_Wid(intWid); //轧制厚度 @@ -2376,7 +2680,9 @@ public class SubServiceImpl implements SubService { GGCR.setThk(e.getLtInfoGPreOrder().get(0).getThk()); //最大长度 GGCR.setCal_Len(intMaxLen); + GGCR.setLtInfoGPreOrder(e.getLtInfoGPreOrder()); + gltGGrpCalRslt.add(GGCR); } catch (Exception ex) { logger.info("***计算结果异常:" + ex.getMessage()); @@ -2408,6 +2714,8 @@ public class SubServiceImpl implements SubService { && Math.max(e.getWid(),f.getWid()) < 4900 && e.getThk().compareTo(f.getThk()) == 0 && e.getST_NO().equals(f.getST_NO()) + && e.getMscLineNo().equals(f.getMscLineNo()) + && ChkCombinationGrpFlag(e,f) ) { //实例化计算结果数组 @@ -2439,6 +2747,10 @@ public class SubServiceImpl implements SubService { if (intMaxLen < intRollMinLen) { return; } + + //产线 + GGCR.setMscLineNo(e.getMscLineNo()); + //轧制宽度 GGCR.setCal_Wid(intWid); //轧制厚度 @@ -2538,7 +2850,7 @@ public class SubServiceImpl implements SubService { //TODO:轧制方向,轧制模式 没有其他值暂不考虑,之后数据完善后需要考虑 PmPlateCutLenBt PPCLB = plistPmPlateCutLenBtDO.stream(). - filter(f -> f.getMscLineNo().equals(SInfo.getMscLineNo()) + filter(f -> f.getMscLineNo().equals(p.getMscLineNo()) && f.getBrrNeed().equals((p.getCal_Wid() > SInfo.getRemWid().intValue()) ? "1" : "0") && f.getPlateThickFrom().compareTo(p.getCal_Thk()) <= 0 && f.getPlateThickTo().compareTo(p.getCal_Thk()) >= 0 @@ -2621,7 +2933,7 @@ public class SubServiceImpl implements SubService { } //存在数据,判断热处理模式 - if (plistPmThickAddvBtDO.stream().anyMatch(e -> e.getMscLineNo().equals(SInfo.getMscLineNo()) + if (plistPmThickAddvBtDO.stream().anyMatch(e -> e.getMscLineNo().equals(p.getMscLineNo()) && e.getTolTypeCode().equals(strThkTolType) // && e.getTolTypeCode().equals(p.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType()) && e.getPlateThickFrom().compareTo(p.getLtInfoGPreOrder().get(0).getThk()) <= 0 @@ -2631,7 +2943,7 @@ public class SubServiceImpl implements SubService { )) { if (p.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType()!=null && p.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType().contains("Q")) { - decThkAdd = plistPmThickAddvBtDO.stream().filter(e -> e.getMscLineNo().equals(SInfo.getMscLineNo()) + decThkAdd = plistPmThickAddvBtDO.stream().filter(e -> e.getMscLineNo().equals(p.getMscLineNo()) && e.getTolTypeCode().equals(strThkTolType) // && e.getTolTypeCode().equals(p.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType()) && e.getWholeHeatTreatmentType().equals("Q") @@ -2641,7 +2953,7 @@ public class SubServiceImpl implements SubService { && e.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0 ).collect(Collectors.toList()).get(0).getThickAddv(); } else { - decThkAdd = plistPmThickAddvBtDO.stream().filter(e -> e.getMscLineNo().equals(SInfo.getMscLineNo()) + decThkAdd = plistPmThickAddvBtDO.stream().filter(e -> e.getMscLineNo().equals(p.getMscLineNo()) && e.getTolTypeCode().equals(strThkTolType) // && e.getTolTypeCode().equals(p.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType()) && e.getWholeHeatTreatmentType().equals("*") @@ -2673,7 +2985,7 @@ public class SubServiceImpl implements SubService { //切边量 String finalStrWithSideFlag = strWithSideFlag; //切边量 - if (plistPmPlateTrimBtDO.stream().anyMatch(f -> f.getMscLineNo().equals(SInfo.getMscLineNo()) + if (plistPmPlateTrimBtDO.stream().anyMatch(f -> f.getMscLineNo().equals(p.getMscLineNo()) && f.getPlateThickFrom().compareTo(decThk) <= 0 && f.getPlateThickTo().compareTo(decThk) >= 0 && f.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(p.getLtInfoGPreOrder().get(0).getLen())) <= 0 @@ -2684,7 +2996,7 @@ public class SubServiceImpl implements SubService { && f.getWidenTo().compareTo(decWidRate) >= 0 && f.getWithSideFlag().equals(finalStrWithSideFlag) )) { - intTrimWid = plistPmPlateTrimBtDO.stream().filter(f -> f.getMscLineNo().equals(SInfo.getMscLineNo()) + intTrimWid = plistPmPlateTrimBtDO.stream().filter(f -> f.getMscLineNo().equals(p.getMscLineNo()) && f.getPlateThickFrom().compareTo(decThk) <= 0 && f.getPlateThickTo().compareTo(decThk) >= 0 && f.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(p.getLtInfoGPreOrder().get(0).getLen())) <= 0 @@ -2716,7 +3028,7 @@ public class SubServiceImpl implements SubService { p.setEff_Len(intSumOrderLen + intSumPlateCutWid); PmPlateCutLenBt PPCLB_Act = plistPmPlateCutLenBtDO.stream(). - filter(f -> f.getMscLineNo().equals(SInfo.getMscLineNo()) + filter(f -> f.getMscLineNo().equals(p.getMscLineNo()) && f.getBrrNeed().equals((p.getCal_Wid() > SInfo.getRemWid().intValue()) ? "1" : "0") && f.getPlateThickFrom().compareTo(p.getCal_Thk()) <= 0 && f.getPlateThickTo().compareTo(p.getCal_Thk()) >= 0 @@ -2842,7 +3154,7 @@ public class SubServiceImpl implements SubService { && e.getSlabWidthFrom().compareTo(BigDecimal.valueOf(minWid)) <= 0 && e.getSlabWidthTo().compareTo(BigDecimal.valueOf(minWid)) >= 0 && e.getFurType().equals("C") - && e.getRollLineNo().equals(SInfo.getMscLineNo().substring(SInfo.getMscLineNo().length() - 2)) + && e.getRollLineNo().equals(p.getMscLineNo().substring(p.getMscLineNo().length() - 2)) && e.getCcType().equals("1") ).count() > 0) { @@ -2851,7 +3163,7 @@ public class SubServiceImpl implements SubService { && e.getSlabWidthFrom().compareTo(BigDecimal.valueOf(minWid)) <= 0 && e.getSlabWidthTo().compareTo(BigDecimal.valueOf(minWid)) >= 0 && e.getFurType().equals("C") - && e.getRollLineNo().equals(SInfo.getMscLineNo().substring(SInfo.getMscLineNo().length() - 2)) + && e.getRollLineNo().equals(p.getMscLineNo().substring(p.getMscLineNo().length() - 2)) && e.getCcType().equals("1") ).findFirst().orElse(null).getSlabMinLen().intValue(); @@ -2860,7 +3172,7 @@ public class SubServiceImpl implements SubService { && e.getSlabWidthFrom().compareTo(BigDecimal.valueOf(minWid)) <= 0 && e.getSlabWidthTo().compareTo(BigDecimal.valueOf(minWid)) >= 0 && e.getFurType().equals("C") - && e.getRollLineNo().equals(SInfo.getMscLineNo().substring(SInfo.getMscLineNo().length() - 2)) + && e.getRollLineNo().equals(p.getMscLineNo().substring(p.getMscLineNo().length() - 2)) && e.getCcType().equals("1") ).findFirst().orElse(null).getSlabMaxLen().intValue(); @@ -3155,7 +3467,7 @@ public class SubServiceImpl implements SubService { SetPmPdSlab(SInfo,organizationId);//组板板坯表 命令板坯表 命令大板表 大板粗切位置表 SetPmPdBlockPos(organizationId);//组合子板位置表 SetPmPdContSum(organizationId);//组板合同总量表 命令参数表 - SetPmSmallPltPos(SInfo.getMscLineNo(),organizationId);//组板小板位置表 命令小板表 + SetPmSmallPltPos(organizationId);//组板小板位置表 命令小板表 // SetPmCmdSlab();//命令板坯表 // SetPmCmdLargePlt();//命令大板表 // SetPmCmdCont();//命令参数表 @@ -3508,7 +3820,7 @@ public class SubServiceImpl implements SubService { } pmPdSlabDO.setOrderNoAxis(axleGPreOrder.getOrderNo());//TODO 轴合同号 暂时取第一个订单号 - pmPdSlabDO.setMscLineNo(SInfo.getMscLineNo()); //TODO 产线号,暂时默认板坯产线号 + pmPdSlabDO.setMscLineNo(ggcr.getMscLineNo()); //TODO 产线号,暂时默认板坯产线号 pmPdSlabDO.setTransFlag(BigDecimal.valueOf(0)); @@ -3527,9 +3839,9 @@ public class SubServiceImpl implements SubService { SetPmCmdSlab(pmPdSlabDO,resultPmProContProdAttrDO.get(),organizationId);//命令板坯表 SetPmCmdLargePlt(pmPdSlabDO, ggcr,resultPmContMscTechDO1.get(),resultPmProContProdAttrDO.get(),organizationId);//命令大板表 - SetPmPdPlateCut(organizationId,formplateMode,SInfo.getMscLineNo().substring(SInfo.getMscLineNo().length()-2));//大板粗切位置表 + SetPmPdPlateCut(organizationId,formplateMode,ggcr.getMscLineNo().substring(ggcr.getMscLineNo().length()-2));//大板粗切位置表 - SetPmPdRecDTO(orderNoList,organizationId,SInfo.getMscLineNo(),ggcr.getVirtualSlabNo());//组板履历表 + SetPmPdRecDTO(orderNoList,organizationId,ggcr.getMscLineNo(),ggcr.getVirtualSlabNo());//组板履历表 pmPdSlabDOList.add(pmPdSlabDO); } @@ -3746,7 +4058,7 @@ public class SubServiceImpl implements SubService { } //组板小板位置表 - public void SetPmSmallPltPos(String mscLineNo, Long organizationId) { + public void SetPmSmallPltPos( Long organizationId) { for (int i = 0; i < gltSelGGrpCalRslt.size(); i++) { GGrpCalRslt ggcr = gltSelGGrpCalRslt.get(i); Integer smallPlateNum = 0; @@ -3789,7 +4101,7 @@ public class SubServiceImpl implements SubService { pmSmallPltPosDO.setTenantId(organizationId); // pmSmallPltPosDO.setObjectVersionNumber(1L); - SetPmCmdSmallPlt(pmSmallPltPosDO,resultPmProContProdAttrDO.get(),mscLineNo,organizationId); + SetPmCmdSmallPlt(pmSmallPltPosDO,resultPmProContProdAttrDO.get(),ggcr.getMscLineNo(),organizationId); pmSmallPltPosDOList.add(pmSmallPltPosDO); smallPlateNum += 1; } @@ -3831,7 +4143,7 @@ public class SubServiceImpl implements SubService { pmSmallPltPosDO.setTenantId(organizationId); // pmSmallPltPosDO.setObjectVersionNumber(1L); - SetPmCmdSmallPlt(pmSmallPltPosDO,resultPmProContProdAttrDO.get(),mscLineNo,organizationId); + SetPmCmdSmallPlt(pmSmallPltPosDO,resultPmProContProdAttrDO.get(),ggcr.getMscLineNo(),organizationId); pmSmallPltPosDOList.add(pmSmallPltPosDO); smallPlateNum += 1; } @@ -4561,46 +4873,46 @@ public class SubServiceImpl implements SubService { public String SaveData(SlabInfoDO p, List pmPdSlabDOList, List pmPdPlateCutDOList, List pmPdBlockPosDOList, List pmPdContSumDOList, List pmSmallPltPosDOList, List pmCmdSlabDOList, List pmCmdLargePltDOList, List pmCmdContDOList, List pmCmdSmallPltDOList, List plistpmSubHisDO, List plistpmSubOrdDO, List pmPdRecDTOList, Long organizationId) { String strSubLog = ""; - //抛合同事件 - String bizId = pmPdRecDTOList.get(0).getKeyvalue1(); - String key = String.format(PmPlateConstants.YIELD_EXEC_LOCK_KEY, organizationId.toString(), bizId); - if (redisHelper.hasKey(key)) { - throw new CommonException("pm.pm_pro_cont_043", bizId); - } - - PdMatTypeStrategy pdMatTypeStrategy = PdMatTypeStrategyFactory.matchStrategy("S"); - try { - // 抛合同组板事件 - pmPdRecService.createEvent(organizationId, pmPdRecDTOList - , PdEventType.HP04, Constants.SYSTEM_PD_CODE, pdMatTypeStrategy.pdProgram()); - redisHelper.strSet(key, "1", 30L, TimeUnit.SECONDS); - // 抛组板履历事件 - List pmPdRecs = new ArrayList<>(); - CustomUserDetails userDetails = DetailsHelper.getUserDetails(); - for (PmPdContSum contSum : pmPdContSumDOList) { - PmPdRecDTO pmPdRecDTO = new PmPdRecDTO(); - pmPdRecDTO.setOrderNo(contSum.getOrderNo()); - pmPdRecDTO.setEventMaker(userDetails == null ? "" : userDetails.getUserId().toString()); - pmPdRecDTO.setMscLineNo(pmPdRecDTOList.get(0).getMscLineNo()); - pmPdRecDTO.setKeyvalue1(bizId); - pmPdRecDTO.setKeyvalue1Desc(PmPdRecDTO.DESC_VIRTUAL_SLAB_NO); - pmPdRecDTO.setMatNo(bizId); - pmPdRecDTO.setQty(contSum.getOrderPlateNum()); - pmPdRecs.add(pmPdRecDTO); - } - pmPdRecService.createEvent(organizationId, pmPdRecs, PdEventType.HP10, - Constants.SYSTEM_PD_CODE, "余材板坯组板"); - System.out.println("抛合同组板事件 执行成功"); - strSubLog = "-----抛合同组板事件 执行成功"; - // 抛合同 - - - } finally { - // 抛合同组板释放事件 - pmPdRecService.createEvent(organizationId, pmPdRecDTOList - , PdEventType.HP05, Constants.SYSTEM_PD_CODE, pdMatTypeStrategy.pdProgram()); - redisHelper.delKey(key); - } +// //抛合同事件 +// String bizId = pmPdRecDTOList.get(0).getKeyvalue1(); +// String key = String.format(PmPlateConstants.YIELD_EXEC_LOCK_KEY, organizationId.toString(), bizId); +// if (redisHelper.hasKey(key)) { +// throw new CommonException("pm.pm_pro_cont_043", bizId); +// } +// +// PdMatTypeStrategy pdMatTypeStrategy = PdMatTypeStrategyFactory.matchStrategy("S"); +// try { +// // 抛合同组板事件 +// pmPdRecService.createEvent(organizationId, pmPdRecDTOList +// , PdEventType.HP04, Constants.SYSTEM_PD_CODE, pdMatTypeStrategy.pdProgram()); +// redisHelper.strSet(key, "1", 30L, TimeUnit.SECONDS); +// // 抛组板履历事件 +// List pmPdRecs = new ArrayList<>(); +// CustomUserDetails userDetails = DetailsHelper.getUserDetails(); +// for (PmPdContSum contSum : pmPdContSumDOList) { +// PmPdRecDTO pmPdRecDTO = new PmPdRecDTO(); +// pmPdRecDTO.setOrderNo(contSum.getOrderNo()); +// pmPdRecDTO.setEventMaker(userDetails == null ? "" : userDetails.getUserId().toString()); +// pmPdRecDTO.setMscLineNo(pmPdRecDTOList.get(0).getMscLineNo()); +// pmPdRecDTO.setKeyvalue1(bizId); +// pmPdRecDTO.setKeyvalue1Desc(PmPdRecDTO.DESC_VIRTUAL_SLAB_NO); +// pmPdRecDTO.setMatNo(bizId); +// pmPdRecDTO.setQty(contSum.getOrderPlateNum()); +// pmPdRecs.add(pmPdRecDTO); +// } +// pmPdRecService.createEvent(organizationId, pmPdRecs, PdEventType.HP10, +// Constants.SYSTEM_PD_CODE, "余材板坯组板"); +// System.out.println("抛合同组板事件 执行成功"); +// strSubLog = "-----抛合同组板事件 执行成功"; +// // 抛合同 +// +// +// } finally { +// // 抛合同组板释放事件 +// pmPdRecService.createEvent(organizationId, pmPdRecDTOList +// , PdEventType.HP05, Constants.SYSTEM_PD_CODE, pdMatTypeStrategy.pdProgram()); +// redisHelper.delKey(key); +// } if (plistpmSubHisDO.size() > 0) { @@ -4613,75 +4925,75 @@ public class SubServiceImpl implements SubService { System.out.println("pmSubOrd表 保存成功"); strSubLog += "-----pmSubOrd表 保存成功"; } -//// - if (pmPdSlabDOList.size() > 0) { - pmPdSlabRepository.batchInsertSelective(pmPdSlabDOList); - System.out.println("PmPdSlab表 保存成功"); - strSubLog += "-----PmPdSlab表 保存成功"; - } - if (pmPdPlateCutDOList.size() > 0) { - pmPdPlateCutRepository.batchInsertSelective(pmPdPlateCutDOList); - System.out.println("PmPdPlateCut 大板粗切位置 保存成功"); - strSubLog += "-----PmPdPlateCut 大板粗切位置 保存成功"; - } - if (pmPdBlockPosDOList.size() > 0) { - pmPdBlockPosRepository.batchInsertSelective(pmPdBlockPosDOList); - System.out.println("PmPdBlockPos 组合子板位置表 保存成功"); - strSubLog += "-----PmPdBlockPos 组合子板位置表 保存成功"; - } - if (pmPdContSumDOList.size() > 0) { - pmPdContSumRepository.batchInsertSelective(pmPdContSumDOList); - System.out.println("PmPdContSum 合同总量表 保存成功"); - strSubLog += "-----PmPdContSum 合同总量表 保存成功"; - } - if (pmSmallPltPosDOList.size() > 0) { - pmSmallPltPosRepository.batchInsertSelective(pmSmallPltPosDOList); - System.out.println("PmSmallPltPos 命令小板位置表 保存成功"); - strSubLog += "-----PmSmallPltPos 命令小板位置表 保存成功"; - } - if (pmCmdSlabDOList.size() > 0) { - pmCmdSlabRepository.batchInsertSelective(pmCmdSlabDOList); - System.out.println("PmCmdSlab 保存成功"); - strSubLog += "-----PmCmdSlab 保存成功"; - } - if (pmCmdLargePltDOList.size() > 0) { - pmCmdLargePltRepository.batchInsertSelective(pmCmdLargePltDOList); - System.out.println("pmCmdLargePltDO 命令大板 保存成功"); - strSubLog += "-----pmCmdLargePltDO 命令大板 保存成功"; - } - if (pmCmdContDOList.size() > 0) { - pmCmdContRepository.batchInsertSelective(pmCmdContDOList); - System.out.println("PmCmdCont 命令参数 保存成功"); - strSubLog += "-----PmCmdCont 命令参数 保存成功"; - } - if (pmCmdSmallPltDOList.size() > 0) { - pmCmdSmallPltRepository.batchInsertSelective(pmCmdSmallPltDOList); - System.out.println("PmCmdSmallPlt 命令小板表 保存成功"); - strSubLog += "-----PmCmdSmallPlt 命令小板表 保存成功"; - } - - // 调用mm接口 - // 查询MM_SLAB 信息获取板坯信息 - PmPdSlabSplitDTO pmPdSlabSplitDTO = pmPdSlabRepository.selectMmSlabBySlabId(p.getSlabId(), p.getTenantId()); - // 查询板坯信息表。第一次查询可能无值 - PmPdSlabInfo pmPdSlabInfo = pmPdSlabInfoRepository.selectBySlabNo(p.getSlabNo(), p.getTenantId()); - - pmPdSlabInfo = buildPmPdSlabInfo(pmPdSlabSplitDTO, p.getSlabNo(), p.getMscLineNo(), p.getTenantId()); - pmPdSlabInfoRepository.insertSelective(pmPdSlabInfo); - System.out.println("pmPdSlabInfo表 保存成功"); - strSubLog += "-----pmPdSlabInfo表 保存成功"; - - // 轧钢模块“在制品材料管理封锁事件接口" - callMatStatusModify(pmPdSlabInfo); - System.out.println("mm模块接口 调用成功"); - strSubLog += "-----mm模块接口 调用成功"; - - //抛合同 - zbCtEventRec(organizationId, pmPdSlabDOList, pmCmdLargePltDOList, pmCmdSlabDOList, pmSmallPltPosDOList); - System.out.println("抛合同事件完成"); - System.out.println("程序执行完成!"); - strSubLog += "-----抛合同事件完成 -----程序执行完成!"; +// if (pmPdSlabDOList.size() > 0) { +// pmPdSlabRepository.batchInsertSelective(pmPdSlabDOList); +// System.out.println("PmPdSlab表 保存成功"); +// strSubLog += "-----PmPdSlab表 保存成功"; +// } +// if (pmPdPlateCutDOList.size() > 0) { +// pmPdPlateCutRepository.batchInsertSelective(pmPdPlateCutDOList); +// System.out.println("PmPdPlateCut 大板粗切位置 保存成功"); +// strSubLog += "-----PmPdPlateCut 大板粗切位置 保存成功"; +// } +// if (pmPdBlockPosDOList.size() > 0) { +// pmPdBlockPosRepository.batchInsertSelective(pmPdBlockPosDOList); +// System.out.println("PmPdBlockPos 组合子板位置表 保存成功"); +// strSubLog += "-----PmPdBlockPos 组合子板位置表 保存成功"; +// } +// if (pmPdContSumDOList.size() > 0) { +// pmPdContSumRepository.batchInsertSelective(pmPdContSumDOList); +// System.out.println("PmPdContSum 合同总量表 保存成功"); +// strSubLog += "-----PmPdContSum 合同总量表 保存成功"; +// } +// if (pmSmallPltPosDOList.size() > 0) { +// pmSmallPltPosRepository.batchInsertSelective(pmSmallPltPosDOList); +// System.out.println("PmSmallPltPos 命令小板位置表 保存成功"); +// strSubLog += "-----PmSmallPltPos 命令小板位置表 保存成功"; +// } +// if (pmCmdSlabDOList.size() > 0) { +// pmCmdSlabRepository.batchInsertSelective(pmCmdSlabDOList); +// System.out.println("PmCmdSlab 保存成功"); +// strSubLog += "-----PmCmdSlab 保存成功"; +// } +// if (pmCmdLargePltDOList.size() > 0) { +// pmCmdLargePltRepository.batchInsertSelective(pmCmdLargePltDOList); +// System.out.println("pmCmdLargePltDO 命令大板 保存成功"); +// strSubLog += "-----pmCmdLargePltDO 命令大板 保存成功"; +// } +// if (pmCmdContDOList.size() > 0) { +// pmCmdContRepository.batchInsertSelective(pmCmdContDOList); +// System.out.println("PmCmdCont 命令参数 保存成功"); +// strSubLog += "-----PmCmdCont 命令参数 保存成功"; +// } +// if (pmCmdSmallPltDOList.size() > 0) { +// pmCmdSmallPltRepository.batchInsertSelective(pmCmdSmallPltDOList); +// System.out.println("PmCmdSmallPlt 命令小板表 保存成功"); +// strSubLog += "-----PmCmdSmallPlt 命令小板表 保存成功"; +// } +// +// // 调用mm接口 +// // 查询MM_SLAB 信息获取板坯信息 +// PmPdSlabSplitDTO pmPdSlabSplitDTO = pmPdSlabRepository.selectMmSlabBySlabId(p.getSlabId(), p.getTenantId()); +// // 查询板坯信息表。第一次查询可能无值 +// PmPdSlabInfo pmPdSlabInfo = pmPdSlabInfoRepository.selectBySlabNo(p.getSlabNo(), p.getTenantId()); +// +// pmPdSlabInfo = buildPmPdSlabInfo(pmPdSlabSplitDTO, p.getSlabNo(), p.getMscLineNo(), p.getTenantId()); +// pmPdSlabInfoRepository.insertSelective(pmPdSlabInfo); +// System.out.println("pmPdSlabInfo表 保存成功"); +// strSubLog += "-----pmPdSlabInfo表 保存成功"; +// +// // 轧钢模块“在制品材料管理封锁事件接口" +// callMatStatusModify(pmPdSlabInfo); +// System.out.println("mm模块接口 调用成功"); +// strSubLog += "-----mm模块接口 调用成功"; +// +// +// //抛合同 +// zbCtEventRec(organizationId, pmPdSlabDOList, pmCmdLargePltDOList, pmCmdSlabDOList, pmSmallPltPosDOList); +// System.out.println("抛合同事件完成"); +// System.out.println("程序执行完成!"); +// strSubLog += "-----抛合同事件完成 -----程序执行完成!"; return strSubLog; //