From 696716f672f923aa1e1cafc67a4c49a6f0cfd806 Mon Sep 17 00:00:00 2001 From: BKGY_MYT <1536233200@qq.com> Date: Fri, 21 Mar 2025 15:52:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=9B=E5=90=88=E5=90=8C=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BC=A0=E5=8F=82=E4=BF=AE=E6=94=B9=20=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pm/api/controller/v1/SubController.java | 596 +++++++++--------- .../com/xisc/pm/app/service/SubService.java | 2 + .../pm/app/service/impl/SubServiceImpl.java | 32 +- 3 files changed, 341 insertions(+), 289 deletions(-) diff --git a/XG_Project1/src/main/java/com/xisc/pm/api/controller/v1/SubController.java b/XG_Project1/src/main/java/com/xisc/pm/api/controller/v1/SubController.java index e3e0e3d..072272d 100644 --- a/XG_Project1/src/main/java/com/xisc/pm/api/controller/v1/SubController.java +++ b/XG_Project1/src/main/java/com/xisc/pm/api/controller/v1/SubController.java @@ -63,7 +63,7 @@ public class SubController { private static List gltGCalGrp = new CopyOnWriteArrayList<>(); //二次计算分组 - private static List gltGCal2Grp =new CopyOnWriteArrayList<>(); + private static List gltGCal2Grp = new CopyOnWriteArrayList<>(); //计算结果数据 private static List gltGGrpCalRslt = Collections.synchronizedList(new ArrayList<>()); @@ -89,7 +89,7 @@ public class SubController { private static List pmCmdContDOList = new ArrayList<>(); //命令小板表 private static List pmCmdSmallPltDOList = new ArrayList<>(); -//组板履历表 + //组板履历表 private static List pmPdRecs = new ArrayList<>(); // 全局变量,使用 ConcurrentHashMap 和 AtomicInteger 确保线程安全 @@ -331,6 +331,13 @@ public class SubController { public JsonData SubData( PmSubHis pmSubHis, @PathVariable Long organizationId) { SecurityTokenHelper.validTokenIgnoreInsert(pmSubHis); String strSlab = pmSubHis.getSlabNo(); + + long subMode = 1; + if (strSlab == null || strSlab == "") { + subMode = 2; + } + long finalSubMode = subMode; + SubParams subParams = new SubParams(); subParams.setSlabNo(strSlab); //测试阶段需要指定板坯号 @@ -346,43 +353,66 @@ public class SubController { logger.info("***初次分组数量*** " + gltGrpOrderFir.size()); + //执行日志保存 + subService.saveSubLog("初次分组数量", finalSubMode, "成功", String.valueOf(gltGrpOrderFir.size()), organizationId); + + //被使用的订单数据实例化 plistOrdHis = new ArrayList<>(); //循环板坯 plistSlab.forEach(p -> { - logger.info("*************板坯开始{}************* ", p.getSlabNo()); - logger.info("***板坯信息:{} 厚宽长:{}*{}*{} ", p.getSlabNo(), p.getSlabActThk(), p.getSlabActWid(), p.getSlabActLen()); + logger.info("*************板坯开始{}************* ", p.getSlabNo()); + logger.info("***板坯信息:{} 厚宽长:{}*{}*{} ", p.getSlabNo(), p.getSlabActThk(), p.getSlabActWid(), p.getSlabActLen()); + //执行日志保存 + subService.saveSubLog(p.getSlabNo(), finalSubMode, "成功", "板坯信息 厚宽长:" + p.getSlabActThk() + "*" + p.getSlabActWid() + "*" + p.getSlabActLen(), organizationId); - // 判断板坯的长度是否在plistpmAutoSubSettingDO配置的范围内 - if (p.getSlabActLen().compareTo(plistpmAutoSubSettingDO.get(0).getMatLenMin()) < 0 && p.getSlabActLen().compareTo(plistpmAutoSubSettingDO.get(0).getMatLenMax()) > 0) { - logger.info("***板坯信息被排除:{} 长度不在范围内 ", p.getSlabNo()); - return; - } + // 判断板坯的长度是否在plistpmAutoSubSettingDO配置的范围内 + if (p.getSlabActLen().compareTo(plistpmAutoSubSettingDO.get(0).getMatLenMin()) < 0 && p.getSlabActLen().compareTo(plistpmAutoSubSettingDO.get(0).getMatLenMax()) > 0) { + logger.info("***板坯信息被排除:{} 长度不在范围内 ", p.getSlabNo()); - // 判断板坯的宽度是否在plistpmAutoSubSettingDO配置的范围内 - if (p.getSlabActWid().compareTo(plistpmAutoSubSettingDO.get(0).getMatWidthMin()) < 0 && p.getSlabActWid().compareTo(plistpmAutoSubSettingDO.get(0).getMatWidthMax()) > 0) { - logger.info("***板坯信息被排除:{} 宽度不在范围内 ", p.getSlabNo()); - return; - } + //执行日志保存 + subService.saveSubLog(p.getSlabNo(), finalSubMode, "失败", "板坯信息被排除 原因 长度不在范围内", organizationId); - // 判断板坯的厚度是否在plistpmAutoSubSettingDO配置的范围内 - if (p.getSlabActThk().compareTo(plistpmAutoSubSettingDO.get(0).getMatThickMin()) < 0 && p.getSlabActThk().compareTo(plistpmAutoSubSettingDO.get(0).getMatThickMax()) > 0) { - logger.info("***板坯信息被排除:{} 厚度不在范围内 ", p.getSlabNo()); - return; - } + return; + } - //判断plistpmIrsubableSlabDO是否包含P.SlabNO范围内 - if (plistpmIrsubableSlabDO.stream().anyMatch(x -> x.getSlabNo().equals(p.getSlabNo()))) { - logger.info("***板坯信息被排除:{} 不可组板 ", p.getSlabNo()); - return; - } + // 判断板坯的宽度是否在plistpmAutoSubSettingDO配置的范围内 + if (p.getSlabActWid().compareTo(plistpmAutoSubSettingDO.get(0).getMatWidthMin()) < 0 && p.getSlabActWid().compareTo(plistpmAutoSubSettingDO.get(0).getMatWidthMax()) > 0) { + logger.info("***板坯信息被排除:{} 宽度不在范围内 ", p.getSlabNo()); - //判断plistpmRetainStDO是否包含P的钢种,判断这个板坯的钢种是否可组板 - if (plistpmRetainStDO.stream().anyMatch(x -> x.getStNo().equals(p.getStNo()))) { - logger.info("***板坯信息被排除:{} 不可组板 ", p.getSlabNo()); - return; - } + //执行日志保存 + subService.saveSubLog(p.getSlabNo(), finalSubMode, "失败", "板坯信息被排除 原因 宽度不在范围内", organizationId); + return; + } + + // 判断板坯的厚度是否在plistpmAutoSubSettingDO配置的范围内 + if (p.getSlabActThk().compareTo(plistpmAutoSubSettingDO.get(0).getMatThickMin()) < 0 && p.getSlabActThk().compareTo(plistpmAutoSubSettingDO.get(0).getMatThickMax()) > 0) { + logger.info("***板坯信息被排除:{} 厚度不在范围内 ", p.getSlabNo()); + + //执行日志保存 + subService.saveSubLog(p.getSlabNo(), finalSubMode, "失败", "板坯信息被排除 原因 厚度不在范围内", organizationId); + return; + } + + //判断plistpmIrsubableSlabDO是否包含P.SlabNO范围内 + if (plistpmIrsubableSlabDO.stream().anyMatch(x -> x.getSlabNo().equals(p.getSlabNo()))) { + logger.info("***板坯信息被排除:{} 不可组板 ", p.getSlabNo()); + + //执行日志保存 + subService.saveSubLog(p.getSlabNo(), finalSubMode, "失败", "板坯信息被排除 原因 判断plistpmIrsubableSlabDO是否包含P.SlabNO范围内 不可组板", organizationId); + return; + } + + //判断plistpmRetainStDO是否包含P的钢种,判断这个板坯的钢种是否可组板 + if (plistpmRetainStDO.stream().anyMatch(x -> x.getStNo().equals(p.getStNo()))) { + logger.info("***板坯信息被排除:{} 不可组板 ", p.getSlabNo()); + + //执行日志保存 + subService.saveSubLog(p.getSlabNo(), finalSubMode, "失败", "板坯信息被排除 原因 判断plistpmRetainStDO是否包含P的钢种,判断这个板坯的钢种是否可组板 不可组板", organizationId); + + return; + } try { @@ -390,89 +420,108 @@ public class SubController { //二次分组 SetGrpDataBySlab(p); - SetGrpConBinDataBySlab(p); + SetGrpConBinDataBySlab(p); - logger.info("***二次分组1数量*** " + gltGCalGrp.size()); + logger.info("***二次分组1数量*** " + gltGCalGrp.size()); + //执行日志保存 + subService.saveSubLog(p.getSlabNo(), finalSubMode, "成功", "二次分组1数量:" + gltGCalGrp.size(), organizationId); - logger.info("***二次分组21数量*** " + gltGCal2Grp.size()); + logger.info("***二次分组2数量*** " + gltGCal2Grp.size()); - gltGCalGrp.addAll(gltGCal2Grp); + //执行日志保存 + subService.saveSubLog(p.getSlabNo(), finalSubMode, "成功", "二次分组2数量:" + gltGCal2Grp.size(), organizationId); - //分组设置ID - for (int i = 0; i < gltGCalGrp.size(); i++) { + gltGCalGrp.addAll(gltGCal2Grp); - gltGCalGrp.get(i).setIDValue(i + 1); + //分组设置ID + for (int i = 0; i < gltGCalGrp.size(); i++) { - } + gltGCalGrp.get(i).setIDValue(i + 1); - gltGGrpCalRslt = new ArrayList<>(); + } - gltSelGGrpCalRslt = new ArrayList<>(); + gltGGrpCalRslt = new ArrayList<>(); - plistpmSubHisDO= new ArrayList<>(); + gltSelGGrpCalRslt = new ArrayList<>(); - plistpmSubOrdDO = new ArrayList<>(); + plistpmSubHisDO = new ArrayList<>(); - pmPdSlabDOList = new ArrayList<>(); + plistpmSubOrdDO = new ArrayList<>(); - pmPdPlateCutDOList = new ArrayList<>(); + pmPdSlabDOList = new ArrayList<>(); - pmPdBlockPosDOList = new ArrayList<>(); + pmPdPlateCutDOList = new ArrayList<>(); - pmPdContSumDOList = new ArrayList<>(); + pmPdBlockPosDOList = new ArrayList<>(); - pmSmallPltPosDOList = new ArrayList<>(); + pmPdContSumDOList = new ArrayList<>(); - pmCmdSlabDOList = new ArrayList<>(); + pmSmallPltPosDOList = new ArrayList<>(); - pmCmdLargePltDOList = new ArrayList<>(); + pmCmdSlabDOList = new ArrayList<>(); - pmCmdContDOList = new ArrayList<>(); + pmCmdLargePltDOList = new ArrayList<>(); - pmCmdSmallPltDOList = new ArrayList<>(); + pmCmdContDOList = new ArrayList<>(); - if (gltGCalGrp.size() > 0) { + pmCmdSmallPltDOList = new ArrayList<>(); - //板坯长度和宽度调换 - if (p.getSlabActLen().compareTo(p.getSlabActWid()) <= 0) { - // 当 p.getSlabActLen() 小于或等于 p.getSlabActWid() 时执行的代码 - p.setRemLen(p.getSlabActWid()); - p.setRemWid(p.getSlabActLen()); - } else { - p.setRemLen(p.getSlabActLen()); - p.setRemWid(p.getSlabActWid()); - } + if (gltGCalGrp.size() > 0) { - SetGroupCalRslt(p); + //板坯长度和宽度调换 + if (p.getSlabActLen().compareTo(p.getSlabActWid()) <= 0) { + // 当 p.getSlabActLen() 小于或等于 p.getSlabActWid() 时执行的代码 + p.setRemLen(p.getSlabActWid()); + p.setRemWid(p.getSlabActLen()); + } else { + p.setRemLen(p.getSlabActLen()); + p.setRemWid(p.getSlabActWid()); + } - logger.info("所有结果数据板坯号:{};数量:{}", p.getSlabNo(), gltGGrpCalRslt.size()); - logger.info("选择结果数据板坯号:{};数量:{}", p.getSlabNo(), gltSelGGrpCalRslt.size()); + SetGroupCalRslt(p); + + logger.info("结果数据板坯号:{};数量:{}", p.getSlabNo(), gltGGrpCalRslt.size()); + logger.info("结果数据板坯号:{};数量:{}", p.getSlabNo(), gltSelGGrpCalRslt.size()); + + //执行日志保存 + subService.saveSubLog(p.getSlabNo(), finalSubMode, "成功", "结果数据数量1" + gltGGrpCalRslt.size(), organizationId); + subService.saveSubLog(p.getSlabNo(), finalSubMode, "成功", "结果数据数量2" + gltSelGGrpCalRslt.size(), organizationId); + + } + if (gltSelGGrpCalRslt.size() > 0) { + now = new Date(); + //存储数据,组板结果 + SaveHisData(p); + //数据整理 + SetSaveDate(p, organizationId); + //执行日志保存 + subService.saveSubLog(p.getSlabNo(), finalSubMode, "成功", "数据整理完成", organizationId); + //开启事务 + //TransactionStatus transactionStatus = transactionService.begin(); + try { + //保存数据 + SaveData(p, organizationId); + //transactionService.commit(transactionStatus); + } catch (Exception e) { + logger.error("保存事务回滚:" + p.getSlabNo(), e); + //执行日志保存 + subService.saveSubLog(p.getSlabNo(), finalSubMode, "失败", "数据保存失败" + e, organizationId); + + //回滚事务 + //transactionService.rollback(transactionStatus); } -// if (gltSelGGrpCalRslt.size() > 0) { -// now = new Date(); -// //存储数据,组板结果 -// SaveHisData(p); -// //数据整理 -// SetSaveDate(p,organizationId); -// //开启事务 -// //TransactionStatus transactionStatus = transactionService.begin(); -// try { -// //保存数据 -// SaveData(p,organizationId); -// //transactionService.commit(transactionStatus); -// } catch (Exception e) { -// logger.error("保存事务回滚:" + p.getSlabNo(), e); -// //回滚事务 -// //transactionService.rollback(transactionStatus); -// } -// } - - } catch (Exception e) { - logger.error("板坯报错:" + p.getSlabNo(), e); - } - logger.info("*************板坯结束{}************* ", p.getSlabNo()); - logger.info(""); + } + + } catch (Exception e) { + logger.error("板坯报错:" + p.getSlabNo(), e); + //执行日志保存 + subService.saveSubLog(p.getSlabNo(), finalSubMode, "失败", "板坯报错" + e, organizationId); } + logger.info("*************板坯结束{}************* ", p.getSlabNo()); + //执行日志保存 + subService.saveSubLog(p.getSlabNo(), finalSubMode, "成功", "板坯结束", organizationId); + logger.info(""); + } ); logger.info("*****处理结束*****"); @@ -493,7 +542,7 @@ public class SubController { for (int i = 0; i < plistpmSubHisDO.size(); i++) { - intSeq+=1; + intSeq += 1; String virtualSlabNo = generateVirtualSlabNoSave(SInfo.getPono(), intSeq); @@ -558,7 +607,6 @@ public class SubController { public void GetDataInfo(SubParams subParams) { - logger.info("*****开始获取数据******"); //region ***多线程获取基础数据*** @@ -773,7 +821,7 @@ public class SubController { //30板坯信息 tasks.add(() -> { - plistPmPdSlabInfoDO = subService.getPmPdSlabInfo( subParams); + plistPmPdSlabInfoDO = subService.getPmPdSlabInfo(subParams); return null; }); @@ -886,7 +934,6 @@ public class SubController { //压缩比 Compression ratio - //宽展比 Wide ratio //GCG.getLtInfoGPreOrder().stream().filter(e->e.) //最大宽度 @@ -900,14 +947,12 @@ public class SubController { try { //同钢种判断 - if (!SInfo.getStNo().equals(f.getInfoPmContMscTechDO().getStNo())) - { + if (!SInfo.getStNo().equals(f.getInfoPmContMscTechDO().getStNo())) { return; } //产线相同 - if (!SInfo.getMscLineNo().equals(f.getInfoPmContMscTechDO().getMscLineNo())) - { + if (!SInfo.getMscLineNo().equals(f.getInfoPmContMscTechDO().getMscLineNo())) { return; } @@ -959,7 +1004,7 @@ public class SubController { GCG.setOrder_Thk(decThkOrd); //压缩比 - BigDecimal decThkRate =decThkOrd.divide(SInfo.getSlabActThk(), 2, RoundingMode.HALF_UP); + BigDecimal decThkRate = decThkOrd.divide(SInfo.getSlabActThk(), 2, RoundingMode.HALF_UP); //压缩比 GCG.setThk_Rate(decThkRate); @@ -979,7 +1024,7 @@ public class SubController { GCG.setThickTolMin(maxTolThkMin.orElse(BigDecimal.ZERO)); //厚度追加值 - BigDecimal decThkAdd= BigDecimal.ZERO; + BigDecimal decThkAdd = BigDecimal.ZERO; String strThkTolType; if (GCG.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType() != null) { @@ -995,18 +1040,15 @@ public class SubController { && p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0 && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0 )) { - if (GCG.getLtInfoGPreOrder().get(0)==null) - { + if (GCG.getLtInfoGPreOrder().get(0) == null) { } - if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO()==null) - { + if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO() == null) { } - if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType()==null) - { + if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType() == null) { } @@ -1046,12 +1088,11 @@ public class SubController { int intTrimWid = 0; String strWithSideFlag = "C"; - if (GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark()==null - || GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark().equals("")) - { - strWithSideFlag="C"; - }else{ - strWithSideFlag=GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark(); + if (GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark() == null + || GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark().equals("")) { + strWithSideFlag = "C"; + } else { + strWithSideFlag = GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark(); } //切边量 String finalStrWithSideFlag = strWithSideFlag; @@ -1106,10 +1147,10 @@ public class SubController { /** * 二次分组根据板坯性能删选分组-组合 */ - public void SetGrpConBinDataBySlab(SlabInfoDO SInfo) { + public void SetGrpConBinDataBySlab(SlabInfoDO SInfo) { //组合的分组ID+1000000 - intGrp2Num=intGrp2Num+1000000; + intGrp2Num = intGrp2Num + 1000000; synchronized (gltGCal2Grp) { gltGCalGrp.parallelStream().forEach(e -> { @@ -1118,39 +1159,37 @@ public class SubController { List ltInfoOrder = new ArrayList<>(); //宽度满足要求和厚度相同 - if (f.getWid()+e.getWid()<4980 && e.getThk().equals(f.getThk())){ + if (f.getWid() + e.getWid() < 4980 && e.getThk().equals(f.getThk())) { e.getLtInfoGPreOrder().forEach(i -> { f.getLtInfoGPreOrder().forEach(j -> { //排己 - if (i.getIDValue()==j.getIDValue()) - { + if (i.getIDValue() == j.getIDValue()) { return; } - GPreOrder GPO1=i; + GPreOrder GPO1 = i; - GPreOrder GPO2=j; + GPreOrder GPO2 = j; //组合数据的数量,提升效率,大于二十 - if(ltInfoOrder.stream().filter(m->m.equals(GPO1.getOrderNo()+"_"+GPO2.getOrderNo())).count()>20) - { - return; + if (ltInfoOrder.stream().filter(m -> m.equals(GPO1.getOrderNo() + "_" + GPO2.getOrderNo())).count() > 20) { + return; } //产生新的订单数据组合板 - GPreOrder GPO=new GPreOrder(); + GPreOrder GPO = new GPreOrder(); //主键等于两个订单主键之和 - GPO.setIDValue(GPO1.getIDValue()+GPO2.getIDValue()); + GPO.setIDValue(GPO1.getIDValue() + GPO2.getIDValue()); GPO.setOrderNo(GPO1.getOrderNo() + "_" + GPO2.getOrderNo()); //实例化订单集合 GPO.setLtInfoCombGPreOrder(new CopyOnWriteArrayList<>()); - GComBOrder GCB1=new GComBOrder(); + GComBOrder GCB1 = new GComBOrder(); GCB1.setWid(i.getWid()); GCB1.setLen(i.getLen()); @@ -1173,11 +1212,11 @@ public class SubController { // 设置厚度 GPO.setThk(GPO1.getInfoPmProContProdAttrDO().getOrderThick()); // 设置宽度 - GPO.setWid(GPO1.getInfoPmProContProdAttrDO().getOrderWidth().intValue()+GPO2.getInfoPmProContProdAttrDO().getOrderWidth().intValue()); + GPO.setWid(GPO1.getInfoPmProContProdAttrDO().getOrderWidth().intValue() + GPO2.getInfoPmProContProdAttrDO().getOrderWidth().intValue()); // 设置宽度余量 - GPO.setWidthAddv(Math.max( GPO1.getInfoPmProContProdAttrDO().getWidthAddv().intValue(),GPO2.getInfoPmProContProdAttrDO().getWidthAddv().intValue())); + GPO.setWidthAddv(Math.max(GPO1.getInfoPmProContProdAttrDO().getWidthAddv().intValue(), GPO2.getInfoPmProContProdAttrDO().getWidthAddv().intValue())); // 设置长度 - GPO.setLen(Math.max(GPO1.getInfoPmProContProdAttrDO().getOrderLen().intValue(),GPO2.getInfoPmProContProdAttrDO().getOrderLen().intValue())); + GPO.setLen(Math.max(GPO1.getInfoPmProContProdAttrDO().getOrderLen().intValue(), GPO2.getInfoPmProContProdAttrDO().getOrderLen().intValue())); // 设置厚度公差下限 GPO.setThickTolMin(GPO1.getInfoPmProContProdAttrDO().getThickTolMin()); // 设置厚度公差上限 @@ -1202,25 +1241,25 @@ public class SubController { if (gltGCal2Grp.stream().filter(p -> p.getLtInfoGPreOrder().stream().anyMatch(q -> q.getLtInfoCombGPreOrder().stream().anyMatch(r -> - r.getInfoGPreOrder()!=null && r.getInfoGPreOrder().getOrderNo().equals(GPO1.getOrderNo()) ) + r.getInfoGPreOrder() != null && r.getInfoGPreOrder().getOrderNo().equals(GPO1.getOrderNo())) && q.getLtInfoCombGPreOrder().stream().anyMatch(r -> - r.getInfoGPreOrder()!=null && r.getInfoGPreOrder().getOrderNo().equals(GPO2.getOrderNo())))).count() > 0) { + r.getInfoGPreOrder() != null && r.getInfoGPreOrder().getOrderNo().equals(GPO2.getOrderNo())))).count() > 0) { try { if (gltGCal2Grp.stream().filter(p -> p.getLtInfoGPreOrder().stream().anyMatch(q -> q.getLtInfoCombGPreOrder().stream().anyMatch(r -> - r.getInfoGPreOrder()!=null && r.getInfoGPreOrder().getIDValue()==GPO1.getIDValue()) + r.getInfoGPreOrder() != null && r.getInfoGPreOrder().getIDValue() == GPO1.getIDValue()) || q.getLtInfoCombGPreOrder().stream().anyMatch(r -> - r.getInfoGPreOrder()!=null && r.getInfoGPreOrder().getIDValue()==GPO2.getIDValue()))).count()== 0) { + r.getInfoGPreOrder() != null && r.getInfoGPreOrder().getIDValue() == GPO2.getIDValue()))).count() == 0) { Optional GCG = gltGCal2Grp.stream().filter(p -> p.getLtInfoGPreOrder().stream().anyMatch(q -> q.getLtInfoCombGPreOrder().stream().anyMatch(r -> - r.getInfoGPreOrder()!=null && r.getInfoGPreOrder().getOrderNo().equals(GPO1.getOrderNo())) + r.getInfoGPreOrder() != null && r.getInfoGPreOrder().getOrderNo().equals(GPO1.getOrderNo())) && q.getLtInfoCombGPreOrder().stream().anyMatch(r -> - r.getInfoGPreOrder()!=null && r.getInfoGPreOrder().getOrderNo().equals(GPO2.getOrderNo())))).collect(Collectors.toList()).stream().findFirst(); + r.getInfoGPreOrder() != null && r.getInfoGPreOrder().getOrderNo().equals(GPO2.getOrderNo())))).collect(Collectors.toList()).stream().findFirst(); GCG.ifPresent(gcg -> { gcg.getLtInfoGPreOrder().add(GPO); @@ -1267,7 +1306,7 @@ public class SubController { GCG.setOrder_Thk(decThkOrd); //压缩比 - BigDecimal decThkRate =decThkOrd.divide(SInfo.getSlabActThk(), 2, RoundingMode.HALF_UP); + BigDecimal decThkRate = decThkOrd.divide(SInfo.getSlabActThk(), 2, RoundingMode.HALF_UP); //压缩比 GCG.setThk_Rate(decThkRate); @@ -1299,22 +1338,19 @@ public class SubController { && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth + maxAddWidth.orElse(0))) >= 0 )) { - if (GCG.getLtInfoGPreOrder().get(0)==null) - { + if (GCG.getLtInfoGPreOrder().get(0) == null) { } - if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO()==null) - { + if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO() == null) { } - if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType()==null) - { + if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType() == null) { } - if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType()!=null && + 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()) && p.getTolTypeCode().equals(strThkTolType) @@ -1407,7 +1443,7 @@ public class SubController { } } catch (Exception ex) { - logger.info("分组处理报错:{}",ex); + logger.info("分组处理报错:{}", ex); } }); @@ -1938,10 +1974,10 @@ public class SubController { * @param ppcpa 订单产品属性对象,包含订单产品的详细属性 * @param pcmt 订单次要技术信息对象,包含订单的次要技术要求 */ - public static synchronized void SetAllOrder(PmProCont prPmProContDO, PmProContProdTtr ppcpa, PmContMscTech pcmt,QdToPoOrder qtpo) { + public static synchronized void SetAllOrder(PmProCont prPmProContDO, PmProContProdTtr ppcpa, PmContMscTech pcmt, QdToPoOrder qtpo) { // 获取缺乏的数量 - BigDecimal lackNum =prPmProContDO.getPdTotQty().add(prPmProContDO.getPdLackQty()); + BigDecimal lackNum = prPmProContDO.getPdTotQty().add(prPmProContDO.getPdLackQty()); // 如果缺乏数量大于0,则根据缺乏数量创建相应数量的订单对象 if (lackNum.intValue() > 0) { for (int i = 0; i < lackNum.intValue(); i++) { @@ -1993,7 +2029,7 @@ public class SubController { PmContMscTech pcmt = new PmContMscTech(); - QdToPoOrder qtpo = new QdToPoOrder(); + QdToPoOrder qtpo = new QdToPoOrder(); try { //判断是否在不可组板订单范围内 plistpmIrsubableContDO 中存在就返回return @@ -2021,11 +2057,10 @@ public class SubController { if (plistPmContMscTechDO.stream().filter(p -> p.getOrderNo().equals(i.getOrderNo())).count() > 0) { // 可能抛出异常的代码 pcmt = plistPmContMscTechDO.stream().filter(p -> p.getOrderNo().equals(i.getOrderNo())).findFirst().orElseThrow(() -> new NoSuchElementException("No PmContMscTechDO found with name Charlie " + i.getOrderNo())); - if (plistQdToPoOrderDO.stream().anyMatch(e ->e.getOrderNo().equals(i.getOrderNo()))) - { - qtpo=plistQdToPoOrderDO.stream().filter(e -> e.getOrderNo().equals(i.getOrderNo())).findFirst().orElseThrow(() -> new NoSuchElementException("No PmContMscTechDO found with name Charlie " + i.getOrderNo())); + if (plistQdToPoOrderDO.stream().anyMatch(e -> e.getOrderNo().equals(i.getOrderNo()))) { + qtpo = plistQdToPoOrderDO.stream().filter(e -> e.getOrderNo().equals(i.getOrderNo())).findFirst().orElseThrow(() -> new NoSuchElementException("No PmContMscTechDO found with name Charlie " + i.getOrderNo())); - SetAllOrder(i, ppcpa, pcmt,qtpo); + SetAllOrder(i, ppcpa, pcmt, qtpo); } } else { @@ -2170,7 +2205,7 @@ public class SubController { // List ltTempGrp = new CopyOnWriteArrayList<>(); //临时分组数据 - List ltTempGrp = new CopyOnWriteArrayList<>(); + List ltTempGrp = new CopyOnWriteArrayList<>(); //交叉分组 .parallelStream() .parallelStream() gltGCalGrp.forEach(e -> { @@ -2179,25 +2214,24 @@ public class SubController { try { //排己 - if(e.getIDValue()==f.getIDValue()) - { + if (e.getIDValue() == f.getIDValue()) { return; } //e和f的宽度差绝对值小于500,宽度合小于4980,厚度相同 - if (Math.abs(e.getWid() - f.getWid()) <500 && e.getWid() + f.getWid() < 4980 && e.getThk().compareTo(f.getThk()) == 0) { + if (Math.abs(e.getWid() - f.getWid()) < 500 && e.getWid() + f.getWid() < 4980 && e.getThk().compareTo(f.getThk()) == 0) { //实例化计算结果数组 - GCalGrp GCP1=e; + GCalGrp GCP1 = e; //实例化计算结果数组 - GCalGrp GCP2=f; + GCalGrp GCP2 = f; //实例化计算结果数组 GGrpCalRslt GGCR = new GGrpCalRslt(); //可轧制最大长度 int intMaxLen = 0; //轧制最大宽度 - int intWid = e.getWid()+f.getWid(); + int intWid = e.getWid() + f.getWid(); //轧制最大厚度 BigDecimal intThk = e.getThk(); //板坯长度 @@ -2278,8 +2312,7 @@ public class SubController { } //测试代码 - if (e.getOrderNo()=="52500096071" ) - { + if (e.getOrderNo() == "52500096071") { } ltOrder.add(e.getOrderNo());//添加订单号 @@ -2329,7 +2362,7 @@ public class SubController { int intTail = PPCLB.getTailCut().intValue(); //去掉切头尾长度 300为预留式样长度 - int intCap = p.getCal_Len() - intHead - intTail-300; + int intCap = p.getCal_Len() - intHead - intTail - 300; long[] capacities = {intCap}; @@ -2379,7 +2412,7 @@ public class SubController { .reduce(BigDecimal::max); //厚度追加值 - BigDecimal decThkAdd= BigDecimal.ZERO; + BigDecimal decThkAdd = BigDecimal.ZERO; String strThkTolType; if (p.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType() != null) { @@ -2430,12 +2463,11 @@ public class SubController { //切边 int intTrimWid = 0; String strWithSideFlag = "C"; - if (p.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark()==null - || p.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark().equals("")) - { - strWithSideFlag="C"; - }else{ - strWithSideFlag=p.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark(); + if (p.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark() == null + || p.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark().equals("")) { + strWithSideFlag = "C"; + } else { + strWithSideFlag = p.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark(); } //切边量 String finalStrWithSideFlag = strWithSideFlag; @@ -2498,18 +2530,18 @@ public class SubController { } //订单最大切头 - int intOrdHeadMax= p.getLtActInfoGPreOrder().stream().mapToInt(GPreOrder::getCutHeadLen).max().orElse(0); + int intOrdHeadMax = p.getLtActInfoGPreOrder().stream().mapToInt(GPreOrder::getCutHeadLen).max().orElse(0); //订单最大切尾 - int intOrdTailMax= p.getLtActInfoGPreOrder().stream().mapToInt(GPreOrder::getCutTailLen).max().orElse(0); + int intOrdTailMax = p.getLtActInfoGPreOrder().stream().mapToInt(GPreOrder::getCutTailLen).max().orElse(0); //切头 p.setHead_Len(PPCLB_Act.getHeadCut().intValue()); //切尾 p.setTail_Len(PPCLB_Act.getTailCut().intValue()); //轧制长度 - p.setCal_Len((int) ((p.getEff_Len() + PPCLB_Act.getHeadCut().intValue() + PPCLB_Act.getTailCut().intValue()+intOrdHeadMax+intOrdTailMax)/0.99)); + p.setCal_Len((int) ((p.getEff_Len() + PPCLB_Act.getHeadCut().intValue() + PPCLB_Act.getTailCut().intValue() + intOrdHeadMax + intOrdTailMax) / 0.99)); //轧制长度 - p.setNeedCal_Len((int) ((p.getEff_Len() + PPCLB_Act.getHeadCut().intValue() + PPCLB_Act.getTailCut().intValue()+intOrdHeadMax+intOrdTailMax)/0.99)); + p.setNeedCal_Len((int) ((p.getEff_Len() + PPCLB_Act.getHeadCut().intValue() + PPCLB_Act.getTailCut().intValue() + intOrdHeadMax + intOrdTailMax) / 0.99)); //板坯厚度 p.setVirtualSlab_Thk(SInfo.getSlabActThk()); @@ -2530,7 +2562,7 @@ public class SubController { p.setNeedSlab_Wgt(p.getVirtualSlab_Thk().multiply(BigDecimal.valueOf(p.getVirtualSlab_Len())).multiply(BigDecimal.valueOf(p.getVirtualSlab_Wid())).multiply(BigDecimal.valueOf(7.85)).divide(BigDecimal.valueOf(1000000000), 2, RoundingMode.HALF_UP)); //板坯可轧最大长度 - int intSlabMaxLen=(SInfo.getRemLen().multiply(SInfo.getSlabActThk()).multiply(SInfo.getRemWid()).divide(decThk.multiply(BigDecimal.valueOf(intWid)), RoundingMode.HALF_UP)).intValue(); + int intSlabMaxLen = (SInfo.getRemLen().multiply(SInfo.getSlabActThk()).multiply(SInfo.getRemWid()).divide(decThk.multiply(BigDecimal.valueOf(intWid)), RoundingMode.HALF_UP)).intValue(); //TODO:补长判断 //短坯料计算总长度小于轧线最大长度不切割 @@ -2540,7 +2572,7 @@ public class SubController { p.setVirtualSlab_Len(SInfo.getRemLen().intValue()); //轧制长度 - p.setCal_Len( SInfo.getSlabActThk() + p.setCal_Len(SInfo.getSlabActThk() .multiply(SInfo.getRemWid()) .multiply(SInfo.getRemLen()) .divide(decThk.multiply(BigDecimal.valueOf(intWid)), 0, RoundingMode.CEILING).intValue()); @@ -2551,18 +2583,17 @@ public class SubController { } //成材率计算 - BigDecimal rolledVolume =new BigDecimal(0) ; + BigDecimal rolledVolume = new BigDecimal(0); // p.getCal_Thk() // .multiply(BigDecimal.valueOf(p.getCal_Wid())) // .multiply(BigDecimal.valueOf(p.getEff_Len())); for (int i = 0; i < p.getLtActInfoGPreOrder().size(); i++) { - rolledVolume=rolledVolume.add( BigDecimal.valueOf(p.getLtActInfoGPreOrder().get(i).getLen()) + rolledVolume = rolledVolume.add(BigDecimal.valueOf(p.getLtActInfoGPreOrder().get(i).getLen()) .multiply(p.getCal_Thk()) .multiply(BigDecimal.valueOf(p.getLtActInfoGPreOrder().get(i).getWid()))); } - BigDecimal slabVolume = SInfo.getSlabActThk() .multiply(SInfo.getRemWid()) .multiply(BigDecimal.valueOf(p.getVirtualSlab_Len())); @@ -2658,7 +2689,7 @@ public class SubController { //选择最优结果 ChosBestRsl(SInfo); - if(gltSelGGrpCalRslt.size()==0){ + if (gltSelGGrpCalRslt.size() == 0) { return; } @@ -2748,11 +2779,9 @@ public class SubController { AtomicInteger index = new AtomicInteger(0); AtomicInteger intX = new AtomicInteger(maxRate.getHead_Len()); boolean Firstflag = true; - for(int m = 0; m < maxRate.getLtActInfoGPreOrder().size(); m++) - { - GPreOrder gPreOrder=maxRate.getLtActInfoGPreOrder().get(m); - if (gPreOrder.getCombinationFlag()==1) - { + for (int m = 0; m < maxRate.getLtActInfoGPreOrder().size(); m++) { + GPreOrder gPreOrder = maxRate.getLtActInfoGPreOrder().get(m); + if (gPreOrder.getCombinationFlag() == 1) { BigDecimal intY = BigDecimal.valueOf(0); for (int i = 0; i < gPreOrder.getLtInfoCombGPreOrder().size(); i++) { @@ -2905,17 +2934,17 @@ public class SubController { // 生成虚拟板坯号的方法保存 private String generateVirtualSlabNoSave(String pono, int i) { - return pono + "S9" + String.format("%03d", i ); + return pono + "S9" + String.format("%03d", i); } //设置保存数据 public void SetSaveDate(SlabInfoDO SInfo, Long organizationId) { - SetPmPdSlab(SInfo,organizationId);//组板板坯表 命令板坯表 命令大板表 大板粗切位置表 + SetPmPdSlab(SInfo, organizationId);//组板板坯表 命令板坯表 命令大板表 大板粗切位置表 SetPmPdBlockPos(organizationId);//组合子板位置表 SetPmPdContSum(organizationId);//组板合同总量表 命令参数表 - SetPmSmallPltPos(SInfo.getMscLineNo(),organizationId);//组板小板位置表 命令小板表 + SetPmSmallPltPos(SInfo.getMscLineNo(), organizationId);//组板小板位置表 命令小板表 // SetPmCmdSlab();//命令板坯表 // SetPmCmdLargePlt();//命令大板表 // SetPmCmdCont();//命令参数表 @@ -2928,59 +2957,59 @@ public class SubController { GGrpCalRslt ggcr = gltSelGGrpCalRslt.get(i); PmPdSlab pmPdSlabDO = new PmPdSlab(); pmPdSlabDO.setPono(SInfo.getPono()); - pmPdSlabDO.setSlabDivNo(BigDecimal.valueOf(i+1)); //TODO 板坯分割号 未赋值 查询板坯号等于slab_no的组板板坯表的记录数+1 + pmPdSlabDO.setSlabDivNo(BigDecimal.valueOf(i + 1)); //TODO 板坯分割号 未赋值 查询板坯号等于slab_no的组板板坯表的记录数+1 pmPdSlabDO.setVirtualSlabNo(ggcr.getVirtualSlabNo()); pmPdSlabDO.setSlabNo(ggcr.getSlabNo()); pmPdSlabDO.setMatDesignKind("S"); pmPdSlabDO.setPdStatusHp("18"); pmPdSlabDO.setPdResp("781"); // TODO 组板责任者 未赋值 操作人id String formplateMode = ""; - if(ggcr.getLtActInfoGPreOrder().stream().filter(item -> item.getCombinationFlag() == 1).count() == 0){ //无组合情况 为A - if(ggcr.getLtActInfoGPreOrder().stream().map(element -> element.getWid()).distinct().count() == 1){ //宽度相同为A1 - formplateMode = "A1"; - }else{//宽度不同为A2 - formplateMode = "A2"; - } - }else if(ggcr.getLtActInfoGPreOrder().stream().filter(item -> item.getSpecialFlag() == 1).count() == ggcr.getLtActInfoGPreOrder().size()){//全为22组合 为S或G + if (ggcr.getLtActInfoGPreOrder().stream().filter(item -> item.getCombinationFlag() == 1).count() == 0) { //无组合情况 为A + if (ggcr.getLtActInfoGPreOrder().stream().map(element -> element.getWid()).distinct().count() == 1) { //宽度相同为A1 + formplateMode = "A1"; + } else {//宽度不同为A2 + formplateMode = "A2"; + } + } else if (ggcr.getLtActInfoGPreOrder().stream().filter(item -> item.getSpecialFlag() == 1).count() == ggcr.getLtActInfoGPreOrder().size()) {//全为22组合 为S或G boolean checkS1 = true;//S1判断标识 boolean checkS3 = true;//S3判断标识 boolean checkS = true;//S判断标识 Integer checkWid1 = ggcr.getLtActInfoGPreOrder().get(0).getLtInfoCombGPreOrder().get(0).getInfoGPreOrder().getWid();//第一组合第一块的宽度 Integer checkWid2 = ggcr.getLtActInfoGPreOrder().get(0).getLtInfoCombGPreOrder().get(1).getInfoGPreOrder().getWid();//第一组合第二块的宽度 Integer checkLen = ggcr.getLtActInfoGPreOrder().get(0).getLtInfoCombGPreOrder().get(0).getInfoGPreOrder().getLen();//第一组合第一块的长度 - for(GPreOrder gPreOrder : ggcr.getLtActInfoGPreOrder()){ - if(gPreOrder.getLtInfoCombGPreOrder().get(0).getLen() != gPreOrder.getLtInfoCombGPreOrder().get(1).getLen()){ //上下不同长 非S + for (GPreOrder gPreOrder : ggcr.getLtActInfoGPreOrder()) { + if (gPreOrder.getLtInfoCombGPreOrder().get(0).getLen() != gPreOrder.getLtInfoCombGPreOrder().get(1).getLen()) { //上下不同长 非S checkS = false; break; } - if(gPreOrder.getLtInfoCombGPreOrder().get(0).getWid() != checkWid1 || gPreOrder.getLtInfoCombGPreOrder().get(1).getWid() != checkWid2){//左右不同宽 非S + if (gPreOrder.getLtInfoCombGPreOrder().get(0).getWid() != checkWid1 || gPreOrder.getLtInfoCombGPreOrder().get(1).getWid() != checkWid2) {//左右不同宽 非S checkS = false; break; } - for(GComBOrder gComBOrder : gPreOrder.getLtInfoCombGPreOrder()){ - if(gComBOrder.getWid() != checkWid1){//宽不全相同 非S1 S3 + for (GComBOrder gComBOrder : gPreOrder.getLtInfoCombGPreOrder()) { + if (gComBOrder.getWid() != checkWid1) {//宽不全相同 非S1 S3 checkS1 = false; checkS3 = false; } - if(gComBOrder.getLen() != checkLen){// 长不全相同 非S1 + if (gComBOrder.getLen() != checkLen) {// 长不全相同 非S1 checkS1 = false; } } } - if(checkS){ - if(checkS1){ + if (checkS) { + if (checkS1) { formplateMode = "S1"; - }else if(checkS3){ + } else if (checkS3) { formplateMode = "S3"; - }else{ - if(checkWid1 > checkWid2){ + } else { + if (checkWid1 > checkWid2) { formplateMode = "S7"; - }else{ + } else { formplateMode = "S2"; } } - }else{ + } else { formplateMode = "G"; } // if(checkS1){ @@ -2996,16 +3025,16 @@ public class SubController { // }else { // formplateMode = "G"; // } - }else{ - if(ggcr.getLtActInfoGPreOrder().stream().filter(item -> item.getCombinationFlag() == 2).count() > 0){//存在特殊标记为2的情况 一拖多为G1 + } else { + if (ggcr.getLtActInfoGPreOrder().stream().filter(item -> item.getCombinationFlag() == 2).count() > 0) {//存在特殊标记为2的情况 一拖多为G1 formplateMode = "G1"; - }else{//其余情况均为G + } else {//其余情况均为G formplateMode = "G"; } } pmPdSlabDO.setFormPlateMode(formplateMode); pmPdSlabDO.setPickModeLenDir(BigDecimal.valueOf(ggcr.getLtActInfoGPreOrder().size())); - BigDecimal widDir = ggcr.getLtActInfoGPreOrder().stream().filter(item -> item.getCombinationFlag() == 0).count() > 0? BigDecimal.ONE: BigDecimal.valueOf(2); + BigDecimal widDir = ggcr.getLtActInfoGPreOrder().stream().filter(item -> item.getCombinationFlag() == 0).count() > 0 ? BigDecimal.ONE : BigDecimal.valueOf(2); pmPdSlabDO.setPickModeWidDir(widDir); pmPdSlabDO.setFurType("C");// TODO 加热炉类型 暂时赋值为C pmPdSlabDO.setAutoManualFlag("M"); @@ -3014,24 +3043,24 @@ public class SubController { //TODO:合同个数,取所有合同的数量 List unOrderNoList = new ArrayList<>(); Integer zubanNum = 0; - for(int j = 0; j < ggcr.getLtActInfoGPreOrder().size(); j++){ - if (ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 0){ + for (int j = 0; j < ggcr.getLtActInfoGPreOrder().size(); j++) { + if (ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 0) { unOrderNoList.add(ggcr.getLtActInfoGPreOrder().get(j).getOrderNo()); zubanNum += 1; - }else { - for (int k = 0; k < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); k++){ + } else { + for (int k = 0; k < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); k++) { unOrderNoList.add(ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(k).getInfoGPreOrder().getOrderNo()); - zubanNum += ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size() ; + zubanNum += ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); } } } - List orderNoList = unOrderNoList.stream().distinct().collect(Collectors.toList()); + List orderNoList = unOrderNoList.stream().distinct().collect(Collectors.toList()); pmPdSlabDO.setOrderNumInPlate(BigDecimal.valueOf(orderNoList.size())); //TODO:合同数量,取所有小板的数据量 pmPdSlabDO.setTotSmallPlateNum(BigDecimal.valueOf(zubanNum)); //TODO:轴合同获取 GPreOrder axleGPreOrder = ggcr.getLtActInfoGPreOrder().get(0); - if(ggcr.getLtActInfoGPreOrder().get(0).getCombinationFlag() == 1){ + if (ggcr.getLtActInfoGPreOrder().get(0).getCombinationFlag() == 1) { axleGPreOrder = ggcr.getLtActInfoGPreOrder().get(0).getLtInfoCombGPreOrder().get(0).getInfoGPreOrder(); } String axleOrderNo = axleGPreOrder.getOrderNo(); //轴合同 @@ -3087,7 +3116,7 @@ public class SubController { String coolCode = ""; // 遍历 组板合同列表 for (GPreOrder gPreOrder : ggcr.getLtActInfoGPreOrder()) { - if(gPreOrder.getCombinationFlag() == 1){ + if (gPreOrder.getCombinationFlag() == 1) { for (GComBOrder gComBOrder : gPreOrder.getLtInfoCombGPreOrder()) { String orderNo = gComBOrder.getInfoGPreOrder().getOrderNo(); String mscLineNo = gComBOrder.getInfoGPreOrder().getInfoPmContMscTechDO().getMscLineNo(); @@ -3107,7 +3136,7 @@ public class SubController { } } } - }else{ + } else { String orderNo = gPreOrder.getOrderNo(); String mscLineNo = gPreOrder.getInfoPmContMscTechDO().getMscLineNo(); @@ -3142,7 +3171,7 @@ public class SubController { String urgOrderFlag = ""; for (GPreOrder gPreOrder : ggcr.getLtActInfoGPreOrder()) { - if(gPreOrder.getCombinationFlag() == 1){ + if (gPreOrder.getCombinationFlag() == 1) { for (GComBOrder gComBOrder : gPreOrder.getLtInfoCombGPreOrder()) { String orderNo = gComBOrder.getInfoGPreOrder().getOrderNo(); String mscLineNo = gComBOrder.getInfoGPreOrder().getInfoPmContMscTechDO().getMscLineNo(); @@ -3155,7 +3184,7 @@ public class SubController { } } - }else{ + } else { String orderNo = gPreOrder.getOrderNo(); // 根据 orderNo 和 mscLineNo 在 plistPmContMscTechDO 中查找匹配项 @@ -3179,7 +3208,7 @@ public class SubController { pmPdSlabDO.setPreCleanSlabLen(BigDecimal.valueOf(ggcr.getVirtualSlab_Len())); pmPdSlabDO.setPreCleanSlabMaxLen(BigDecimal.valueOf(ggcr.getVirtualSlab_Len())); pmPdSlabDO.setPreCleanSlabMinLen(BigDecimal.valueOf(ggcr.getVirtualSlab_Len())); - BigDecimal weight = SInfo.getSlabActThk().multiply(SInfo.getSlabActWid()).multiply(BigDecimal.valueOf(ggcr.getVirtualSlab_Len())).multiply(BigDecimal.valueOf(7.85)).divide(BigDecimal.valueOf(1000000000),3,RoundingMode.HALF_UP); + BigDecimal weight = SInfo.getSlabActThk().multiply(SInfo.getSlabActWid()).multiply(BigDecimal.valueOf(ggcr.getVirtualSlab_Len())).multiply(BigDecimal.valueOf(7.85)).divide(BigDecimal.valueOf(1000000000), 3, RoundingMode.HALF_UP); pmPdSlabDO.setPreCleanSlabWt(weight); pmPdSlabDO.setPreCleanSlabMaxWt(weight); pmPdSlabDO.setPreCleanSlabMinWt(weight); @@ -3236,19 +3265,19 @@ public class SubController { pmPdSlabDO.setRollThickTolMin(maxThickTolMin); BigDecimal yield = BigDecimal.ZERO; - for(int l = 0; l < ggcr.getLtActInfoGPreOrder().size(); l++){ - if(ggcr.getLtActInfoGPreOrder().get(l).getCombinationFlag() == 1){ + for (int l = 0; l < ggcr.getLtActInfoGPreOrder().size(); l++) { + if (ggcr.getLtActInfoGPreOrder().get(l).getCombinationFlag() == 1) { List gComBOrders = ggcr.getLtActInfoGPreOrder().get(l).getLtInfoCombGPreOrder(); - for(int m = 0; m < ggcr.getLtActInfoGPreOrder().get(l).getLtInfoCombGPreOrder().size(); m++){ + for (int m = 0; m < ggcr.getLtActInfoGPreOrder().get(l).getLtInfoCombGPreOrder().size(); m++) { yield = yield.add(BigDecimal.valueOf(gComBOrders.get(m).getWid()).multiply(gComBOrders.get(m).getThk()).multiply(BigDecimal.valueOf(gComBOrders.get(m).getLen()))); } - }else{ + } else { yield = yield.add(BigDecimal.valueOf(ggcr.getLtActInfoGPreOrder().get(l).getWid()).multiply(ggcr.getLtActInfoGPreOrder().get(l).getThk()).multiply(BigDecimal.valueOf(ggcr.getLtActInfoGPreOrder().get(l).getLen()))); } } - yield = yield.multiply(BigDecimal.valueOf(7.85)).divide(weight.multiply( BigDecimal.valueOf(1000000000)), 4, RoundingMode.HALF_UP); + yield = yield.multiply(BigDecimal.valueOf(7.85)).divide(weight.multiply(BigDecimal.valueOf(1000000000)), 4, RoundingMode.HALF_UP); pmPdSlabDO.setCommandYield(yield); pmPdSlabDO.setNormYield(yield); pmPdSlabDO.setRollYield(yield); @@ -3285,11 +3314,11 @@ public class SubController { pmPdSlabDO.setTenantId(organizationId); // pmPdSlabDO.setObjectVersionNumber(1L); - SetPmCmdSlab(pmPdSlabDO,resultPmProContProdAttrDO.get(),organizationId);//命令板坯表 - SetPmCmdLargePlt(pmPdSlabDO, ggcr,resultPmContMscTechDO1.get(),resultPmProContProdAttrDO.get(),organizationId);//命令大板表 - SetPmPdPlateCut(organizationId,formplateMode,SInfo.getMscLineNo().substring(SInfo.getMscLineNo().length()-2));//大板粗切位置表 + SetPmCmdSlab(pmPdSlabDO, resultPmProContProdAttrDO.get(), organizationId);//命令板坯表 + SetPmCmdLargePlt(pmPdSlabDO, ggcr, resultPmContMscTechDO1.get(), resultPmProContProdAttrDO.get(), organizationId);//命令大板表 + SetPmPdPlateCut(organizationId, formplateMode, SInfo.getMscLineNo().substring(SInfo.getMscLineNo().length() - 2));//大板粗切位置表 - SetPmPdRecDTO(orderNoList,organizationId,SInfo.getMscLineNo(),ggcr.getVirtualSlabNo());//组板履历表 + SetPmPdRecDTO(orderNoList, organizationId, SInfo.getMscLineNo(), ggcr.getVirtualSlabNo());//组板履历表 pmPdSlabDOList.add(pmPdSlabDO); } @@ -3298,11 +3327,11 @@ public class SubController { //大板粗切位置表 public void SetPmPdPlateCut(Long organizationId, String formplateMode, String mscLineNo) { - if(formplateMode.equals("A1") || formplateMode.equals("A2")){ + if (formplateMode.equals("A1") || formplateMode.equals("A2")) { formplateMode = "A"; - }else if(formplateMode.equals("S1") || formplateMode.equals("S2")|| formplateMode.equals("S3")|| formplateMode.equals("S7")){ + } else if (formplateMode.equals("S1") || formplateMode.equals("S2") || formplateMode.equals("S3") || formplateMode.equals("S7")) { formplateMode = "S"; - }else{ + } else { formplateMode = "G"; } String formplateModeFirst = formplateMode; @@ -3314,7 +3343,7 @@ public class SubController { && p.getRollLineNo().equals(mscLineNo)) .collect(Collectors.toList()); BigDecimal cutMax = BigDecimal.valueOf(40000); - if(!filteredList.isEmpty()) { + if (!filteredList.isEmpty()) { cutMax = filteredList.get(0).getNormalCutLenTo(); } @@ -3322,19 +3351,19 @@ public class SubController { GGrpCalRslt ggcr = gltSelGGrpCalRslt.get(i); Integer lastWid = 0; Integer lastLen = 0; - for(int j = 0; j < ggcr.getLtActInfoGPreOrder().size(); j++){ - if(j == 0){ - lastWid = ggcr.getLtActInfoGPreOrder().get(j).getWid(); - lastLen = ggcr.getLtActInfoGPreOrder().get(j).getLen(); - }else{ - if(BigDecimal.valueOf(lastLen).compareTo(cutMax) > 0){ - SetPmPdPlateCutFM(ggcr.getVirtualSlabNo(), "P", Long.valueOf(j),organizationId); + for (int j = 0; j < ggcr.getLtActInfoGPreOrder().size(); j++) { + if (j == 0) { + lastWid = ggcr.getLtActInfoGPreOrder().get(j).getWid(); + lastLen = ggcr.getLtActInfoGPreOrder().get(j).getLen(); + } else { + if (BigDecimal.valueOf(lastLen).compareTo(cutMax) > 0) { + SetPmPdPlateCutFM(ggcr.getVirtualSlabNo(), "P", Long.valueOf(j), organizationId); lastLen = 0; - }else{ - if(lastWid != ggcr.getLtActInfoGPreOrder().get(j).getWid()){ - SetPmPdPlateCutFM(ggcr.getVirtualSlabNo(), "D", Long.valueOf(j+1),organizationId); + } else { + if (lastWid != ggcr.getLtActInfoGPreOrder().get(j).getWid()) { + SetPmPdPlateCutFM(ggcr.getVirtualSlabNo(), "D", Long.valueOf(j + 1), organizationId); lastLen = 0; - }else{ + } else { lastLen += ggcr.getLtActInfoGPreOrder().get(j).getLen(); } } @@ -3344,7 +3373,7 @@ public class SubController { } } - public void SetPmPdPlateCutFM(String virtualSlabNo, String cutType,Long positionSeq, Long organizationId) { + public void SetPmPdPlateCutFM(String virtualSlabNo, String cutType, Long positionSeq, Long organizationId) { PmPdPlateCut pmPdPlateCutDOF = new PmPdPlateCut(); pmPdPlateCutDOF.setPdMatNo(virtualSlabNo); pmPdPlateCutDOF.setCutType(cutType); //粗切类型(M:搬送用;D:异宽用;P:命令用;H:热分切用) @@ -3377,32 +3406,32 @@ public class SubController { GGrpCalRslt ggcr = gltSelGGrpCalRslt.get(i); List unOrderNoList = new ArrayList<>(); Integer zubanNum = 0; - for(int j = 0; j < ggcr.getLtActInfoGPreOrder().size(); j++){ - if (ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 0){ + for (int j = 0; j < ggcr.getLtActInfoGPreOrder().size(); j++) { + if (ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 0) { unOrderNoList.add(ggcr.getLtActInfoGPreOrder().get(j).getOrderNo()); zubanNum += 1; - }else { - for (int k = 0; k < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); k++){ + } else { + for (int k = 0; k < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); k++) { unOrderNoList.add(ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(k).getInfoGPreOrder().getOrderNo()); - zubanNum += ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size() ; + zubanNum += ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); } } } - List orderNoList = unOrderNoList.stream().distinct().collect(Collectors.toList()); + List orderNoList = unOrderNoList.stream().distinct().collect(Collectors.toList()); for (int j = 0; j < orderNoList.size(); j++) { PmPdBlockPos pmPdBlockPosDO = new PmPdBlockPos(); pmPdBlockPosDO.setPdMatNo(ggcr.getVirtualSlabNo()); pmPdBlockPosDO.setOrderNo(orderNoList.get(j)); pmPdBlockPosDO.setOrderSeqNo(Long.valueOf(j + 1));//TODO 订单序号 暂时以实际订单信息列表顺序 List resultGPreOrder = new ArrayList<>(); - for(int k = 0; k < ggcr.getLtActInfoGPreOrder().size(); k++){ - if(ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 1){ - for (int l = 0; l < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); l++){ - if(ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(l).getInfoGPreOrder().getOrderNo().equals(pmPdBlockPosDO.getOrderNo())){ + for (int k = 0; k < ggcr.getLtActInfoGPreOrder().size(); k++) { + if (ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 1) { + for (int l = 0; l < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); l++) { + if (ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(l).getInfoGPreOrder().getOrderNo().equals(pmPdBlockPosDO.getOrderNo())) { resultGPreOrder.add(ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(l).getInfoGPreOrder()); } } - }else{ + } else { resultGPreOrder.add(ggcr.getLtActInfoGPreOrder().get(j)); } } @@ -3414,7 +3443,7 @@ public class SubController { pmPdBlockPosDO.setBlockPlateNum(BigDecimal.valueOf(blockPlateNum)); pmPdBlockPosDO.setSlabNo(ggcr.getSlabNo()); pmPdBlockPosDO.setProContId(resultGPreOrder.get(0).getInfoPmProContDo().getProContId()); - pmPdBlockPosDO.setOrderBlockNo(Long.valueOf(i+1)); //TODO 厚板组板块号 暂时不知如何赋值 + pmPdBlockPosDO.setOrderBlockNo(Long.valueOf(i + 1)); //TODO 厚板组板块号 暂时不知如何赋值 pmPdBlockPosDO.setCreatedBy(781L);//TODO 创建人修改人,暂时默认781 BKGY pmPdBlockPosDO.setLastUpdatedBy(781L); @@ -3435,18 +3464,18 @@ public class SubController { GGrpCalRslt ggcr = gltSelGGrpCalRslt.get(i); List unOrderNoList = new ArrayList<>(); Integer zubanNum = 0; - for(int j = 0; j < ggcr.getLtActInfoGPreOrder().size(); j++){ - if (ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 0){ + for (int j = 0; j < ggcr.getLtActInfoGPreOrder().size(); j++) { + if (ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 0) { unOrderNoList.add(ggcr.getLtActInfoGPreOrder().get(j).getOrderNo()); zubanNum += 1; - }else { - for (int k = 0; k < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); k++){ + } else { + for (int k = 0; k < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); k++) { unOrderNoList.add(ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(k).getInfoGPreOrder().getOrderNo()); - zubanNum += ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size() ; + zubanNum += ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); } } } - List orderNoList = unOrderNoList.stream().distinct().collect(Collectors.toList()); + List orderNoList = unOrderNoList.stream().distinct().collect(Collectors.toList()); for (int j = 0; j < orderNoList.size(); j++) { PmPdContSum pmPdContSumDO = new PmPdContSum(); @@ -3455,14 +3484,14 @@ public class SubController { pmPdContSumDO.setOrderSeqNo(BigDecimal.valueOf(j + 1)); List gPreOrders = new ArrayList<>(); - for(int k = 0; k < ggcr.getLtActInfoGPreOrder().size(); k++){ - if(ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 1){ - for (int l = 0; l < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); l++){ - if(ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(l).getInfoGPreOrder().getOrderNo().equals(pmPdContSumDO.getOrderNo())){ + for (int k = 0; k < ggcr.getLtActInfoGPreOrder().size(); k++) { + if (ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 1) { + for (int l = 0; l < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); l++) { + if (ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(l).getInfoGPreOrder().getOrderNo().equals(pmPdContSumDO.getOrderNo())) { gPreOrders.add(ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(l).getInfoGPreOrder()); } } - }else{ + } else { gPreOrders.add(ggcr.getLtActInfoGPreOrder().get(j)); } } @@ -3493,13 +3522,13 @@ public class SubController { pmPdContSumDO.setLastUpdateDate(now); pmPdContSumDO.setAxisFlag(0L); - if(j == 0){ + if (j == 0) { pmPdContSumDO.setAxisFlag(1L);//TODO 轴合同标记,暂时取第一条为轴合同 } pmPdContSumDO.setTenantId(organizationId); // pmPdContSumDO.setObjectVersionNumber(1L); - SetPmCmdCont(pmPdContSumDO, gPreOrders.get(0),zubanNum,organizationId);//命令参数表 + SetPmCmdCont(pmPdContSumDO, gPreOrders.get(0), zubanNum, organizationId);//命令参数表 pmPdContSumDOList.add(pmPdContSumDO); } } @@ -3509,8 +3538,9 @@ public class SubController { public void SetPmSmallPltPos(String mscLineNo, Long organizationId) { for (int i = 0; i < gltSelGGrpCalRslt.size(); i++) { GGrpCalRslt ggcr = gltSelGGrpCalRslt.get(i); + Integer smallPlateNum = 0; for (int j = 0; j < ggcr.getLtActInfoGPreOrder().size(); j++) { - if(ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 1){ + if (ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 1) { for (int k = 0; k < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); k++) { GPreOrder gpo = ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(k).getInfoGPreOrder(); PmSmallPltPos pmSmallPltPosDO = new PmSmallPltPos(); @@ -3525,10 +3555,10 @@ public class SubController { if (resultPmProContProdAttrDO.get().getTrimCode().equals("0")) { pmSmallPltPosDO.setSmallPlateDivNo("000"); } else { - pmSmallPltPosDO.setSmallPlateDivNo(SMALL_PLATE_DIV_NO[j]); + pmSmallPltPosDO.setSmallPlateDivNo(SMALL_PLATE_DIV_NO[smallPlateNum]); } - pmSmallPltPosDO.setPickModeLenDir(Long.valueOf(j+1)); - pmSmallPltPosDO.setPickModeWidDir(Long.valueOf(k+1)); + pmSmallPltPosDO.setPickModeLenDir(Long.valueOf(j + 1)); + pmSmallPltPosDO.setPickModeWidDir(Long.valueOf(k + 1)); pmSmallPltPosDO.setOrderThick(gpo.getThk()); pmSmallPltPosDO.setOrderWidth(BigDecimal.valueOf(gpo.getWid())); pmSmallPltPosDO.setOrderLen(BigDecimal.valueOf(gpo.getLen())); //TODO 长度不确定用实际长度还是长度 @@ -3548,10 +3578,11 @@ public class SubController { pmSmallPltPosDO.setTenantId(organizationId); // pmSmallPltPosDO.setObjectVersionNumber(1L); - SetPmCmdSmallPlt(pmSmallPltPosDO,resultPmProContProdAttrDO.get(),mscLineNo,organizationId); + SetPmCmdSmallPlt(pmSmallPltPosDO, resultPmProContProdAttrDO.get(), mscLineNo, organizationId); pmSmallPltPosDOList.add(pmSmallPltPosDO); + smallPlateNum += 1; } - }else{ + } else { GPreOrder gpo = ggcr.getLtActInfoGPreOrder().get(j); PmSmallPltPos pmSmallPltPosDO = new PmSmallPltPos(); @@ -3566,9 +3597,9 @@ public class SubController { if (resultPmProContProdAttrDO.get().getTrimCode().equals("0")) { pmSmallPltPosDO.setSmallPlateDivNo("000"); } else { - pmSmallPltPosDO.setSmallPlateDivNo(SMALL_PLATE_DIV_NO[j]); + pmSmallPltPosDO.setSmallPlateDivNo(SMALL_PLATE_DIV_NO[smallPlateNum]); } - pmSmallPltPosDO.setPickModeLenDir(Long.valueOf(j+1));//TODO 取板方式 长度方向 列数累加 + pmSmallPltPosDO.setPickModeLenDir(Long.valueOf(j + 1));//TODO 取板方式 长度方向 列数累加 pmSmallPltPosDO.setPickModeWidDir(1L);//TODO 取板方式 宽度方向 第一行 pmSmallPltPosDO.setOrderThick(gpo.getThk()); pmSmallPltPosDO.setOrderWidth(BigDecimal.valueOf(gpo.getWid())); @@ -3589,8 +3620,9 @@ public class SubController { pmSmallPltPosDO.setTenantId(organizationId); // pmSmallPltPosDO.setObjectVersionNumber(1L); - SetPmCmdSmallPlt(pmSmallPltPosDO,resultPmProContProdAttrDO.get(),mscLineNo,organizationId); + SetPmCmdSmallPlt(pmSmallPltPosDO, resultPmProContProdAttrDO.get(), mscLineNo, organizationId); pmSmallPltPosDOList.add(pmSmallPltPosDO); + smallPlateNum += 1; } } } @@ -3919,12 +3951,12 @@ public class SubController { pmCmdSmallPltDOList.add(pmCmdSmallPltDO); } - public void SetPmPdRecDTO(List orderNoList, Long organizationId,String mscLineNo,String virtualSlabNo) { + public void SetPmPdRecDTO(List orderNoList, Long organizationId, String mscLineNo, String virtualSlabNo) { CustomUserDetails userDetails = DetailsHelper.getUserDetails(); for (String orderNo : orderNoList) { PmPdRecDTO pmPdRecDTO = new PmPdRecDTO(); pmPdRecDTO.setOrderNo(orderNo); - pmPdRecDTO.setEventMaker(userDetails == null ? "": userDetails.getUserId().toString()); + pmPdRecDTO.setEventMaker(userDetails == null ? "" : userDetails.getUserId().toString()); pmPdRecDTO.setMscLineNo(mscLineNo); pmPdRecDTO.setKeyvalue1Desc(PmPdRecDTO.DESC_VIRTUAL_SLAB_NO); pmPdRecDTO.setKeyvalue1(virtualSlabNo); @@ -3937,7 +3969,7 @@ public class SubController { } - public void SaveData(SlabInfoDO p,Long organizationId) { + public void SaveData(SlabInfoDO p, Long organizationId) { // subService.batchInsertPmPdSlab(pmPdSlabDOList); // System.out.println("PmPdSlab表一保存成功"); // subService.batchInsertPmCmdSlab(pmCmdSlabDOList); @@ -3957,7 +3989,7 @@ public class SubController { // subService.batchInsertPmCmdCont(pmCmdContDOList); // System.out.println("PmCmdCont 命令参数 保存成功"); - subService.SaveData(p,pmPdSlabDOList, pmPdPlateCutDOList, pmPdBlockPosDOList, pmPdContSumDOList, pmSmallPltPosDOList, pmCmdSlabDOList, pmCmdLargePltDOList, pmCmdContDOList, pmCmdSmallPltDOList,plistpmSubHisDO,plistpmSubOrdDO,pmPdRecs,organizationId); + subService.SaveData(p, pmPdSlabDOList, pmPdPlateCutDOList, pmPdBlockPosDOList, pmPdContSumDOList, pmSmallPltPosDOList, pmCmdSlabDOList, pmCmdLargePltDOList, pmCmdContDOList, pmCmdSmallPltDOList, plistpmSubHisDO, plistpmSubOrdDO, pmPdRecs, organizationId); } diff --git a/XG_Project1/src/main/java/com/xisc/pm/app/service/SubService.java b/XG_Project1/src/main/java/com/xisc/pm/app/service/SubService.java index dba9eee..8df8a06 100644 --- a/XG_Project1/src/main/java/com/xisc/pm/app/service/SubService.java +++ b/XG_Project1/src/main/java/com/xisc/pm/app/service/SubService.java @@ -126,6 +126,8 @@ public interface SubService { void 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); + void saveSubLog(String slabNo, long subMode, String subRslt, String subLog, Long organizationId); + // void SaveData(List pmPdSlabDOList, List pmPdPlateCutDOList, List pmPdBlockPosDOList, List pmPdContSumDOList, List pmSmallPltPosDOList, List pmCmdSlabDOList, List pmCmdLargePltDOList, List pmCmdContDOList, List pmCmdSmallPltDOList); } 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 9779fb6..7b93a4c 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 @@ -91,6 +91,9 @@ public class SubServiceImpl implements SubService { @Autowired private PmProContRepository pmProContRepository; + @Autowired + private PmSubLogRepository pmSubLogRepository; + @Autowired protected EventClient eventClient; @@ -552,6 +555,18 @@ public class SubServiceImpl implements SubService { } + @Override + public void saveSubLog(String slabNo, long subMode, String subRslt, String subLog, Long organizationId) { + PmSubLog pmSubLog = new PmSubLog(); + pmSubLog.setSubDate(new java.util.Date()); + pmSubLog.setSlabNo(slabNo); + pmSubLog.setSubMode(subMode); + pmSubLog.setSubRslt(subRslt); + pmSubLog.setSubLog(subLog); + pmSubLog.setTenantId(organizationId); + pmSubLogRepository.insertSelective(pmSubLog); + } + public void zbCtEventRec(Long organizationId, List pmPdSlabDOList, List pmCmdLargePltDOList, List pmCmdSlabDOList, List pmSmallPltPosDOList) { for (PmPdSlab pmPdSlab : pmPdSlabDOList) { List smallPltPosList = pmSmallPltPosDOList.stream() @@ -570,11 +585,11 @@ public class SubServiceImpl implements SubService { // 虚拟板坯维度 boardEndEventList.add(new ProContBoardEndDTO(axisPmProCont.getOrderNo()).setMatNo(pmPdSlab.getVirtualSlabNo()) - .setLen(pmPdSlab.getPreCleanSlabLen()).setMoMatNo(null) + .setLen(pmPdSlab.getPreCleanSlabLen()).setMoMatNo(pmPdSlab.getSlabNo()) .setMscLineNo(pmPdSlab.getMscLineNo()) .setPdMatStatus(Constants.PdStatusHp.PD_STATUS_HP_12).setPpFlag(PdProdFlag.VIRTUAL_SLAB.getCode()) - .setThk(slabList.get(0).getMoldThick()) - .setWid(slabList.get(0).getMoldWid()) + .setThk(pmPdSlab.getPreCleanSlabThick()) + .setWid(pmPdSlab.getPreCleanSlabWidth()) .setWgt(pmPdSlab.getPreCleanSlabWt()) .setWholeBacklogCode(axisPmProCont.getWholeBacklogCode()) .setStNo(axisPmProCont.getStNo()) @@ -584,7 +599,7 @@ public class SubServiceImpl implements SubService { BigDecimal weight = largePltList.get(0).getRollAimLen().multiply(largePltList.get(0).getRollAimThick()).multiply(largePltList.get(0).getRollAimWidth()).multiply(new BigDecimal(7.85)).divide(new BigDecimal(1000000000), PmPlateConstants.WT_SCALE, RoundingMode.HALF_UP); // 大板维度 boardEndEventList.add(new ProContBoardEndDTO(axisPmProCont.getOrderNo()).setMatNo(pmPdSlab.getVirtualSlabNo()) - .setLen(largePltList.get(0).getRollAimLen()).setMoMatNo(null) + .setLen(largePltList.get(0).getRollAimLen()).setMoMatNo(pmPdSlab.getSlabNo()) .setMscLineNo(pmPdSlab.getMscLineNo()) .setPdMatStatus(Constants.PdStatusHp.PD_STATUS_HP_12).setPpFlag(PdProdFlag.VIRTUAL_COMPOSITE_SLAB.getCode()) .setThk(largePltList.get(0).getRollAimThick()) @@ -599,10 +614,13 @@ public class SubServiceImpl implements SubService { // 小板维度 boardEndEventList .add(new ProContBoardEndDTO(pmSmallPltPos.getOrderNo()).setMatNo(pmPdSlab.getVirtualSlabNo() + pmSmallPltPos.getSmallPlateDivNo()) - .setLen(pmSmallPltPos.getOrderLen()).setMoMatNo(pmSmallPltPos.getPdMatNo()) + .setLen(pmSmallPltPos.getOrderLen()) + .setMoMatNo(pmSmallPltPos.getPdMatNo()) .setMscLineNo(pmPdSlab.getMscLineNo()) - .setPdMatStatus(Constants.PdStatusHp.PD_STATUS_HP_12).setPpFlag(PdProdFlag.SMALL_POS_VIRTUAL_SLAB.getCode()) - .setThk(pmSmallPltPos.getOrderThick()).setWid(pmSmallPltPos.getOrderWidth()) + .setPdMatStatus(Constants.PdStatusHp.PD_STATUS_HP_12) + .setPpFlag(PdProdFlag.SMALL_POS_VIRTUAL_SLAB.getCode()) + .setThk(pmSmallPltPos.getOrderThick()) + .setWid(pmSmallPltPos.getOrderWidth()) .setWgt(pmProContFilterResposeDTO.getOrderUnitAimWt()) .setWholeBacklogCode(axisPmProCont.getWholeBacklogCode()) .setStNo(pmProContFilterResposeDTO.getStNo())