From ea232bde92203d6043f780e75e9863d35c61880c Mon Sep 17 00:00:00 2001 From: sunhao <479527147@qq.com> Date: Mon, 24 Feb 2025 21:56:53 +0800 Subject: [PATCH] 2025-02-24 --- .../shopmanager/controller/SubController.java | 192 ++++++++++++++++-- .../xdclass/shopmanager/mapper/SubMapper.java | 2 + .../shopmanager/model/GGrpCalRslt.java | 17 +- .../xdclass/shopmanager/model/GPreOrder.java | 8 + .../shopmanager/service/SubService.java | 2 + .../service/impl/SubServiceImpl.java | 5 + .../src/main/resources/mapper/SubMapper.xml | 16 +- 7 files changed, 212 insertions(+), 30 deletions(-) diff --git a/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/controller/SubController.java b/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/controller/SubController.java index 315aa8d..b5a659d 100644 --- a/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/controller/SubController.java +++ b/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/controller/SubController.java @@ -134,6 +134,8 @@ public class SubController { private static List plistQeTqSlabMacroResultDO; //连铸板坯生产规格基准表 private static List plistPmSlabSpecBtDO; + //钢板厚度余量基准表 + private static List plistPmThickAddvBtDO; //板坯信息表 private static List plistPmPdSlabInfoDO; //TODO 需要添加此表信息的查询 //合约信息 @@ -440,7 +442,7 @@ public class SubController { //region ***多线程获取基础数据*** // 创建线程池 - ExecutorService executorService = Executors.newFixedThreadPool(31); + ExecutorService executorService = Executors.newFixedThreadPool(32); //初始化方案 Loader.loadNativeLibraries(); @@ -658,6 +660,12 @@ public class SubController { return null; }); + //32厚度余量追加值 + tasks.add(() -> { + plistPmThickAddvBtDO = subService.getPmThickAddvBt(); + return null; + }); + // 执行所有任务 try { executorService.invokeAll(tasks); @@ -748,7 +756,7 @@ public class SubController { */ public void SetGrpDataBySlab(SlabInfoDO SInfo) { - gltGrpOrderFir.forEach(e -> { + gltGrpOrderFir.parallelStream().forEach(e -> { // gltGCalGrp 产生可计算分组 @@ -762,13 +770,20 @@ public class SubController { GCG.setLtInfoGPreOrder(new CopyOnWriteArrayList<>()); e.getLtInfoGPreOrder().forEach(f -> { - //同钢种判断 - if (!SInfo.getStNo().equals(f.getInfoPmContMscTechDO().getStNo())) - { - return; - } try { + //同钢种判断 + if (!SInfo.getStNo().equals(f.getInfoPmContMscTechDO().getStNo())) + { + return; + } + + //产线相同 + if (!SInfo.getMscLineNo().equals(f.getInfoPmContMscTechDO().getMscLineNo())) + { + return; + } + // 化学成分 chemical composition if (!ChkChemical(SInfo, f)) { return; @@ -811,36 +826,93 @@ public class SubController { Optional maxTolThkMin = GCG.getLtInfoGPreOrder().stream() .map(GPreOrder::getThickTolMin) .reduce(BigDecimal::max); + //厚度追加值 + BigDecimal decThkAdd= BigDecimal.ZERO; - //轧制厚度 厚度+厚度公差下限最大值 - BigDecimal decThk = e.getThk().add(maxTolThkMin.orElse(BigDecimal.ZERO)); + String strThkTolType; + if (GCG.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType() != null) { + strThkTolType = GCG.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType(); + } else { + strThkTolType = "*"; + } + //存在数据,判断热处理模式 + if (plistPmThickAddvBtDO.stream().anyMatch(p -> p.getMscLineNo().equals(SInfo.getMscLineNo()) + && p.getTolTypeCode().equals(strThkTolType) + && p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0 + && p.getPlateThickTo().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) >= 0 + && 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).getInfoPmContMscTechDO().getWholeHeatTreatmentType().contains("Q")) { + decThkAdd = plistPmThickAddvBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo()) + && p.getTolTypeCode().equals(strThkTolType) + && p.getWholeHeatTreatmentType().equals("Q") + && p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0 + && p.getPlateThickTo().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) >= 0 + && p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0 + && 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()) + && p.getTolTypeCode().equals(strThkTolType) + && p.getWholeHeatTreatmentType().equals("*") + && p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0 + && p.getPlateThickTo().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) >= 0 + && p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0 + && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0 + ).collect(Collectors.toList()).get(0).getThickAddv(); + } + + } + + //轧制厚度 厚度+厚度公差下限最大值+厚度追加值 + BigDecimal decThk = e.getThk().add(maxTolThkMin.orElse(BigDecimal.ZERO)).add(decThkAdd); //轧制宽度 最大宽度+宽度余量 int intWid = maxWidth.orElse(0) + maxAddWidth.orElse(0); //切边 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 (plistPmPlateTrimBtDO.stream().anyMatch(p -> p.getMscLineNo().equals("1030") + String finalStrWithSideFlag = strWithSideFlag; + if (plistPmPlateTrimBtDO.stream().anyMatch(p -> p.getMscLineNo().equals(SInfo.getMscLineNo()) && p.getPlateThickFrom().compareTo(decThk) <= 0 && p.getPlateThickTo().compareTo(decThk) >= 0 + && p.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) <= 0 + && p.getSmallPlateLenTo().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) >= 0 && p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0 && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0 && p.getWidenFrom().compareTo(decWidRate) <= 0 && p.getWidenTo().compareTo(decWidRate) >= 0 + && p.getWithSideFlag().equals(finalStrWithSideFlag) )) { - intTrimWid = plistPmPlateTrimBtDO.stream().filter(p -> p.getMscLineNo().equals("1030") + String finalStrWithSideFlag1 = strWithSideFlag; + intTrimWid = plistPmPlateTrimBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo()) && p.getPlateThickFrom().compareTo(decThk) <= 0 && p.getPlateThickTo().compareTo(decThk) >= 0 + && p.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) <= 0 + && p.getSmallPlateLenTo().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) >= 0 && p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0 && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0 && p.getWidenFrom().compareTo(decWidRate) <= 0 && p.getWidenTo().compareTo(decWidRate) >= 0 + && p.getWithSideFlag().equals(finalStrWithSideFlag1) ).collect(Collectors.toList()).get(0).getTrimWidth().intValue(); } + //轧制宽度= 最大宽度 + 最大宽度余量 + 切边量 intWid = intWid + intTrimWid; + //宽度 GCG.setWid(intWid); @@ -1372,7 +1444,7 @@ public class SubController { * @param ppcpa 订单产品属性对象,包含订单产品的详细属性 * @param pcmt 订单次要技术信息对象,包含订单的次要技术要求 */ - public static synchronized void SetAllOrder(PmProContDO prPmProContDO, PmProContProdAttrDO ppcpa, PmContMscTechDO pcmt) { + public static synchronized void SetAllOrder(PmProContDO prPmProContDO, PmProContProdAttrDO ppcpa, PmContMscTechDO pcmt,QdToPoOrderDO qtpo) { // 获取缺乏的数量 BigDecimal lackNum =prPmProContDO.getPdTotQty().add(prPmProContDO.getPdLackQty()); @@ -1403,6 +1475,8 @@ public class SubController { GPO.setInfoPmProContProdAttrDO(ppcpa); // 关联订单次要技术信息对象 GPO.setInfoPmContMscTechDO(pcmt); + //合同 + GPO.setInfoQdToPoOrderDO(qtpo); // 将创建的订单对象添加到全局订单列表中 gltOrder.add(GPO); @@ -1425,6 +1499,7 @@ public class SubController { PmContMscTechDO pcmt = new PmContMscTechDO(); + QdToPoOrderDO qtpo = new QdToPoOrderDO(); try { //判断是否在不可组板订单范围内 plistpmIrsubableContDO 中存在就返回return @@ -1452,7 +1527,10 @@ public class SubController { if (plistPmContMscTechDO.stream().filter(p -> p.getOrderNo().equals(i.getOrderNo()) && p.getMscLineNo().equals("1030")).count() > 0) { // 可能抛出异常的代码 pcmt = plistPmContMscTechDO.stream().filter(p -> p.getOrderNo().equals(i.getOrderNo())).findFirst().orElseThrow(() -> new NoSuchElementException("No PmContMscTechDO found with name Charlie " + i.getOrderNo())); - SetAllOrder(i, ppcpa, pcmt); + + qtpo=plistQdToPoOrderDO.stream().filter(p -> p.getOrderNo().equals(i.getOrderNo())).findFirst().orElseThrow(() -> new NoSuchElementException("No PmContMscTechDO found with name Charlie " + i.getOrderNo())); + + SetAllOrder(i, ppcpa, pcmt,qtpo); } else { // logger.info("缺少产线信息:" + i.getOrderNo()); } @@ -1483,7 +1561,7 @@ public class SubController { //region 多线程 数据流处理订单分组 - gltOrder.parallelStream().forEach(p -> { + gltOrder.forEach(p -> { // 检查当前订单是否与已有的分组匹配 if (gltGrpOrderFir.stream().anyMatch(e -> e.getWid().equals(p.getInfoPmProContProdAttrDO().getOrderWidth()) && @@ -1654,7 +1732,7 @@ public class SubController { //TODO:轧制方向,轧制模式 没有其他值暂不考虑,之后数据完善后需要考虑 PmPlateCutLenBtDO PPCLB = plistPmPlateCutLenBtDO.stream(). - filter(f -> f.getMscLineNo().equals("1030") + filter(f -> f.getMscLineNo().equals(SInfo.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 @@ -1726,30 +1804,89 @@ public class SubController { .map(GPreOrder::getThickTolMin) .reduce(BigDecimal::max); + //厚度追加值 + BigDecimal decThkAdd= BigDecimal.ZERO; + + String strThkTolType; + if (p.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType() != null) { + strThkTolType = p.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType(); + } else { + strThkTolType = "*"; + } + + //存在数据,判断热处理模式 + if (plistPmThickAddvBtDO.stream().anyMatch(e -> e.getMscLineNo().equals(SInfo.getMscLineNo()) + && e.getTolTypeCode().equals(strThkTolType) +// && e.getTolTypeCode().equals(p.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType()) + && e.getPlateThickFrom().compareTo(p.getLtInfoGPreOrder().get(0).getThk()) <= 0 + && e.getPlateThickTo().compareTo(p.getLtInfoGPreOrder().get(0).getThk()) >= 0 + && e.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0 + && e.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0 + )) { + if (p.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType().contains("Q")) { + decThkAdd = plistPmThickAddvBtDO.stream().filter(e -> e.getMscLineNo().equals(SInfo.getMscLineNo()) + && e.getTolTypeCode().equals(strThkTolType) +// && e.getTolTypeCode().equals(p.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType()) + && e.getWholeHeatTreatmentType().equals("Q") + && e.getPlateThickFrom().compareTo(p.getLtInfoGPreOrder().get(0).getThk()) <= 0 + && e.getPlateThickTo().compareTo(p.getLtInfoGPreOrder().get(0).getThk()) >= 0 + && e.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0 + && 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()) + && e.getTolTypeCode().equals(strThkTolType) +// && e.getTolTypeCode().equals(p.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType()) + && e.getWholeHeatTreatmentType().equals("*") + && e.getPlateThickFrom().compareTo(p.getLtInfoGPreOrder().get(0).getThk()) <= 0 + && e.getPlateThickTo().compareTo(p.getLtInfoGPreOrder().get(0).getThk()) >= 0 + && e.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0 + && e.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0 + ).collect(Collectors.toList()).get(0).getThickAddv(); + } + + } + //轧制厚度 厚度+厚度公差下限最大值 - BigDecimal decThk = p.getThk().add(maxTolThkMin.orElse(BigDecimal.ZERO)); + BigDecimal decThk = p.getThk().add(maxTolThkMin.orElse(BigDecimal.ZERO)).add(decThkAdd); //轧制宽度 最大宽度+宽度余量 int intWid = maxWidth.orElse(0) + maxAddWidth.orElse(0); //切边 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(); + } + //切边量 + String finalStrWithSideFlag = strWithSideFlag; //切边量 - if (plistPmPlateTrimBtDO.stream().anyMatch(f -> f.getMscLineNo().equals("1030") + if (plistPmPlateTrimBtDO.stream().anyMatch(f -> f.getMscLineNo().equals(SInfo.getMscLineNo()) && f.getPlateThickFrom().compareTo(decThk) <= 0 && f.getPlateThickTo().compareTo(decThk) >= 0 + && f.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(p.getLtInfoGPreOrder().get(0).getLen())) <= 0 + && f.getSmallPlateLenTo().compareTo(BigDecimal.valueOf(p.getLtInfoGPreOrder().get(0).getLen())) >= 0 && f.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0 && f.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0 && f.getWidenFrom().compareTo(decWidRate) <= 0 && f.getWidenTo().compareTo(decWidRate) >= 0 + && f.getWithSideFlag().equals(finalStrWithSideFlag) )) { - intTrimWid = plistPmPlateTrimBtDO.stream().filter(f -> f.getMscLineNo().equals("1030") + intTrimWid = plistPmPlateTrimBtDO.stream().filter(f -> f.getMscLineNo().equals(SInfo.getMscLineNo()) && f.getPlateThickFrom().compareTo(decThk) <= 0 && f.getPlateThickTo().compareTo(decThk) >= 0 + && f.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(p.getLtInfoGPreOrder().get(0).getLen())) <= 0 + && f.getSmallPlateLenTo().compareTo(BigDecimal.valueOf(p.getLtInfoGPreOrder().get(0).getLen())) >= 0 && f.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0 && f.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0 && f.getWidenFrom().compareTo(decWidRate) <= 0 && f.getWidenTo().compareTo(decWidRate) >= 0 + && f.getWithSideFlag().equals(finalStrWithSideFlag) ).collect(Collectors.toList()).get(0).getTrimWidth().intValue(); } //轧制宽度= 最大宽度 + 最大宽度余量 + 切边量 @@ -1786,12 +1923,19 @@ public class SubController { return; } + //订单最大切头 + int intOrdHeadMax= p.getLtActInfoGPreOrder().stream().mapToInt(GPreOrder::getCutHeadLen).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(p.getEff_Len() + PPCLB_Act.getHeadCut().intValue() + PPCLB_Act.getTailCut().intValue()); + 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.setVirtualSlab_Thk(SInfo.getSlabActThk()); @@ -1806,6 +1950,11 @@ public class SubController { //板坯重量 p.setVirtualSlab_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)); + //需要板坯长度 + p.setNeedSlab_Len(virtualSlabLen.intValue()); + //需要板坯重量 + 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(); @@ -1843,7 +1992,7 @@ public class SubController { .multiply(SInfo.getRemWid()) .multiply(BigDecimal.valueOf(p.getVirtualSlab_Len())); - BigDecimal yieldRate = rolledVolume.divide(slabVolume, 2, RoundingMode.HALF_UP); // 保留4位小数 + BigDecimal yieldRate = rolledVolume.divide(slabVolume, 4, RoundingMode.HALF_UP); // 保留4位小数 // 设置成材率到 p 对象中 p.setRate(yieldRate); @@ -1960,7 +2109,8 @@ public class SubController { // 找到重量最大成材率最大的数据 Optional maxWeightMaxYieldRate = filteredList.stream() .max(Comparator.comparing((GGrpCalRslt g) -> g.getVirtualSlab_Wgt()) - .thenComparing(GGrpCalRslt::getRate)); + .thenComparing(GGrpCalRslt::getRate) + .thenComparing(GGrpCalRslt::getVirtualSlab_Len)); // 将筛选出的数据添加到 gltSelGGrpCalRslt 中 maxWeightMaxYieldRate.ifPresent(gltSelGGrpCalRslt::add); diff --git a/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/mapper/SubMapper.java b/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/mapper/SubMapper.java index 541d2df..bb2c2c4 100644 --- a/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/mapper/SubMapper.java +++ b/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/mapper/SubMapper.java @@ -143,4 +143,6 @@ public interface SubMapper extends BaseMapper { void insertPmCmdCont(PmCmdContDO pmCmdContDO); String GetMaxSeq(String pono); + + List getPmThickAddvBt(); } diff --git a/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/model/GGrpCalRslt.java b/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/model/GGrpCalRslt.java index 073d288..f7eb590 100644 --- a/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/model/GGrpCalRslt.java +++ b/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/model/GGrpCalRslt.java @@ -28,15 +28,23 @@ public class GGrpCalRslt { //虚拟板坯厚度 private BigDecimal VirtualSlab_Thk; - //虚拟板坯重量 - private BigDecimal VirtualSlab_Wgt; + //虚拟板坯重量 + private BigDecimal VirtualSlab_Wgt; - //轧制宽度 - private int Cal_Wid; + //需要板坯长度 + private int needSlab_Len; + + //需要板坯重量 + private BigDecimal needSlab_Wgt; + + //轧制宽度 + private int Cal_Wid; //厚度 private BigDecimal Cal_Thk; //长度 private int Cal_Len; + //长度 + private int NeedCal_Len; //宽度 private int Wid; //厚度 @@ -67,6 +75,7 @@ public class GGrpCalRslt { private int Smp_Len; //补长 private int Rep_Len; + //全部合同信息 private List LtInfoGPreOrder; //实际合同信息 diff --git a/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/model/GPreOrder.java b/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/model/GPreOrder.java index c4c3bf0..5e7a24e 100644 --- a/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/model/GPreOrder.java +++ b/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/model/GPreOrder.java @@ -38,6 +38,11 @@ public class GPreOrder { //厚度公差下限 private BigDecimal thickTolMin; + //切头 + private int CutHeadLen; + //切尾 + private int CutTailLen; + //合同信息 private PmProContDO infoPmProContDo; @@ -47,4 +52,7 @@ public class GPreOrder { //合同产线工艺参数表 private PmContMscTechDO infoPmContMscTechDO; + //合同 + private QdToPoOrderDO infoQdToPoOrderDO; + } diff --git a/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/service/SubService.java b/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/service/SubService.java index 33015f0..7fefc8b 100644 --- a/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/service/SubService.java +++ b/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/service/SubService.java @@ -121,4 +121,6 @@ public interface SubService { void batchInsertPmCmdCont(List pmCmdContDOList); String GetMaxSeq(String pono); + + List getPmThickAddvBt(); } diff --git a/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/service/impl/SubServiceImpl.java b/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/service/impl/SubServiceImpl.java index 3bf5e41..c753c00 100644 --- a/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/service/impl/SubServiceImpl.java +++ b/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/service/impl/SubServiceImpl.java @@ -360,5 +360,10 @@ public class SubServiceImpl implements SubService { return subMapper.GetMaxSeq(pono); } + @Override + public List getPmThickAddvBt() { + return subMapper.getPmThickAddvBt(); + } + } diff --git a/1024shop-manager/1024shop-manager/src/main/resources/mapper/SubMapper.xml b/1024shop-manager/1024shop-manager/src/main/resources/mapper/SubMapper.xml index 0fc791d..d1edec3 100644 --- a/1024shop-manager/1024shop-manager/src/main/resources/mapper/SubMapper.xml +++ b/1024shop-manager/1024shop-manager/src/main/resources/mapper/SubMapper.xml @@ -28,7 +28,7 @@ LEFT JOIN PM_PD_SLAB PPS ON PPS.SLAB_NO = MS.SLAB_NO --PM_PD_SLAB 组板板坯表 LEFT JOIN PM_PD_CONST_BT PPCB ON PPCB.ROLL_LINE_NO = SUBSTR(MS.MSC_LINE_NO, 3, 2) WHERE 1 = 1 - AND MS.MSC_LINE_NO = '1030' --5米轧线 +-- AND MS.MSC_LINE_NO = '1030' --5米轧线 -- AND MS.SLAB_NO = 'C50015130500' -- AND MS.SLAB_NO = 'C50015130100' AND MS.SLAB_NO = #{slabNo} @@ -54,7 +54,7 @@ LEFT JOIN PM_PD_SLAB_INFO PPSI ON PPSI.SLAB_NO = MS.SLAB_NO --PM_PD_SLAB 组板板坯表 LEFT JOIN PM_PD_CONST_BT PPCB ON PPCB.ROLL_LINE_NO = SUBSTR(MS.MSC_LINE_NO, 3, 2) WHERE 1 = 1 - AND MS.MSC_LINE_NO = '1030' --5米轧线 +-- AND MS.MSC_LINE_NO = '1030' --5米轧线 -- AND MS.SLAB_NO = 'C50015130500' -- AND MS.SLAB_NO = 'C50015130100' AND MS.SLAB_NO = #{slabNo} @@ -82,8 +82,8 @@ AND ppc.PRO_CONT_ID = pcmt.PRO_CONT_ID -- AND cm.MSC_LINE_NO = pcmt.MSC_LINE_NO --PM_PRO_CONT没有MSC_LINE_NO WHERE 1=1 - AND pcmt.MSC_LINE_NO = '1030' --5米轧线 --- AND ppc.ORDER_NO IN ('52500037002') +-- AND pcmt.MSC_LINE_NO = '1030' --5米轧线 + AND ppc.ORDER_NO IN ('J2502001208') AND PCMT.FUR_TYPE ='C' --加热炉类型 C 没有注解,C和S 都代表什么 AND ppcpa.ORDER_TYPE_CODE != 'QFH' AND PPC.ON_PD_FLAG != 1 --不用验证操作者 @@ -103,7 +103,7 @@ AND ppc.PRO_CONT_ID = pcmt.PRO_CONT_ID -- AND cm.MSC_LINE_NO = pcmt.MSC_LINE_NO --PM_PRO_CONT没有MSC_LINE_NO WHERE 1=1 - AND pcmt.MSC_LINE_NO = '1030' --5米轧线 +-- AND pcmt.MSC_LINE_NO = '1030' --5米轧线 -- AND ppc.ORDER_NO IN ('52500037002') AND PCMT.FUR_TYPE ='C' --加热炉类型 C 没有注解,C和S 都代表什么 AND ppcpa.ORDER_TYPE_CODE != 'QFH' @@ -280,6 +280,12 @@ + +