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 185aa9a..cda93db 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 @@ -6,15 +6,18 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import net.xdclass.shopmanager.model.*; import net.xdclass.shopmanager.service.SubService; +import net.xdclass.shopmanager.tool.service.TransactionService; import net.xdclass.shopmanager.util.JsonData; import org.apache.commons.lang3.math.NumberUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.TransactionStatus; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + import java.math.BigDecimal; import java.math.RoundingMode; import java.text.SimpleDateFormat; @@ -35,6 +38,9 @@ public class SubController { @Autowired private SubService subService; + @Autowired + private TransactionService transactionService; + private final static Logger logger = LoggerFactory.getLogger(SubController.class); //region ***全局变量过程数据*** @@ -136,9 +142,9 @@ public class SubController { //TODO 需要添加 QD_TO_PO_ORDER 的查询记录 private static Date now; //组板履历表 - private static List plistpmSubHisDO=new ArrayList<>(); + private static List plistpmSubHisDO = new ArrayList<>(); //组板订单详细表 - private static List plistpmSubOrdDO=new ArrayList<>(); + private static List plistpmSubOrdDO = new ArrayList<>(); // //加热炉板坯最小长度 // private static int gintSlabMinLen; @@ -199,6 +205,17 @@ public class SubController { return xx; } + @ApiOperation("数据处理") + @PostMapping("SubData1") + public JsonData SubData1(String strSlab) { + System.out.println("调用成功"); + JsonData xx = new JsonData(); + xx.setCode(0); + xx.setData(null); + xx.setMsg("123"); + return xx; + } + @ApiOperation("数据处理") @PostMapping("SubData") public JsonData SubData(String strSlab) { @@ -254,41 +271,52 @@ public class SubController { //二次分组 SetGrpDataBySlab(p); - logger.info("***二次分组数量*** " + gltGCalGrp.size()); + logger.info("***二次分组数量*** " + gltGCalGrp.size()); - if (gltGCalGrp.size() > 0) { + if (gltGCalGrp.size() > 0) { - //板坯长度和宽度调换 - 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 (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()); + } - gltGGrpCalRslt = new ArrayList<>(); + gltGGrpCalRslt = new ArrayList<>(); - gltSelGGrpCalRslt = new ArrayList<>(); + gltSelGGrpCalRslt = new ArrayList<>(); SetGroupCalRslt(p); //存储数据,组板结果 SaveHisData(p); - logger.info("结果数据板坯号:{};数量:{}", p.getSlabNo(), gltGGrpCalRslt.size()); - } - // if (gltGGrpCalRslt.size() > 0) { - // now = new Date(); - // SetSaveDate(p); - // } + logger.info("结果数据板坯号:{};数量:{}", p.getSlabNo(), gltGGrpCalRslt.size()); + } + if (gltSelGGrpCalRslt.size() > 0) { + now = new Date(); + SetSaveDate(p); + //开启事务 + TransactionStatus transactionStatus = transactionService.begin(); + try { + SaveData(); +// bOffTaskLineService.saveOffTask(bPlanHeadAndLineVos); + 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); + } + logger.info("*************板坯结束{}************* ", p.getSlabNo()); + logger.info(""); } ); logger.info("*****处理结束*****"); @@ -636,6 +664,7 @@ public class SubController { gltGrpOrderFir=new ArrayList<>(); //订单数据处理 SetOrderLackData(); + //订单根据尺寸初次分组 SetGroupOrderFir(); @@ -1307,10 +1336,10 @@ public class SubController { //TODO:箭头函数订单多线程处理数据,升序,降序,重组。 //使用 Stream.parallel() 来并行执行 for 循环 OrderNo 升序 PdLackQty 降序 -// plistOrder.sorted(Comparator.comparing(PmProContDO::getOrderNo) -// .thenComparing(Comparator.comparing(PmProContDO::getPdLackQty).reversed())) - plistOrder.parallelStream().forEach(i -> { - + plistOrder.parallelStream() + .sorted(Comparator.comparing(PmProContDO::getOrderNo) + .thenComparing(Comparator.comparing(PmProContDO::getPdLackQty).reversed())) + .forEach(i -> { PmProContProdAttrDO ppcpa = new PmProContProdAttrDO(); PmContMscTechDO pcmt = new PmContMscTechDO(); @@ -1345,10 +1374,10 @@ public class SubController { 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); } else { - //logger.info("缺少产线信息:" + i.getOrderNo()); +// logger.info("缺少产线信息:" + i.getOrderNo()); } } else { - //logger.info("缺少属性信息:" + i.getOrderNo()); +// logger.info("缺少属性信息:" + i.getOrderNo()); } } catch (NullPointerException ex1) { @@ -1424,12 +1453,12 @@ public class SubController { public void SetGroupCalRslt(SlabInfoDO SInfo) { //剩余长度小于加热炉最小长度 - if (SInfo.getRemLen().compareTo(BigDecimal.valueOf(2200))<0){ + if (SInfo.getRemLen().compareTo(BigDecimal.valueOf(2200)) < 0) { return; } //剩余宽度小于加热炉最小宽度 - if (SInfo.getRemWid().compareTo(BigDecimal.valueOf(1200))<0){ + if (SInfo.getRemWid().compareTo(BigDecimal.valueOf(1200)) < 0) { return; } @@ -1439,42 +1468,45 @@ public class SubController { int intRollMinLen = plistPmPdConstBtDO.stream().filter(p -> p.getRollLineNo().equals("30")).findFirst().orElse(null).getHpmMinPLen().intValue(); //初始化分组数据 - gltGGrpCalRslt=new ArrayList<>(); + gltGGrpCalRslt = new CopyOnWriteArrayList<>(); //gltGCalGrp.parallelStream().forEach(e->{ gltGCalGrp.parallelStream().forEach(e -> { - //实例化计算结果数组 - GGrpCalRslt GGCR = new GGrpCalRslt(); - //可轧制最大长度 - int intMaxLen = 0; - //轧制最大宽度 - int intWid = e.getWid(); - //轧制最大厚度 - BigDecimal intThk = e.getThk(); - //板坯长度 - int intSlabLen = SInfo.getRemLen().intValue(); - - //判断可轧制最大长度 TODO:厚度计算Decimal取整计算,会有误差,后续判断误差值修正计算 - if ((SInfo.getRemLen().multiply(SInfo.getSlabActThk()).multiply(SInfo.getRemWid()).divide(intThk.multiply(BigDecimal.valueOf(intWid)), RoundingMode.HALF_UP)).compareTo(BigDecimal.valueOf(intRollMaxLen)) > 0) { - intMaxLen = intRollMaxLen; - } else { - intMaxLen = (SInfo.getRemLen().multiply(SInfo.getSlabActThk()).multiply(SInfo.getRemWid()).divide(intThk.multiply(BigDecimal.valueOf(intWid)), RoundingMode.HALF_UP)).intValue(); - } - //不能小于可轧制的最小长度 - if (intMaxLen < intRollMinLen) { - return; + try { + //实例化计算结果数组 + GGrpCalRslt GGCR = new GGrpCalRslt(); + //可轧制最大长度 + int intMaxLen = 0; + //轧制最大宽度 + int intWid = e.getWid(); + //轧制最大厚度 + BigDecimal intThk = e.getThk(); + //板坯长度 + int intSlabLen = SInfo.getRemLen().intValue(); + + //判断可轧制最大长度 TODO:厚度计算Decimal取整计算,会有误差,后续判断误差值修正计算 + if ((SInfo.getRemLen().multiply(SInfo.getSlabActThk()).multiply(SInfo.getRemWid()).divide(intThk.multiply(BigDecimal.valueOf(intWid)), RoundingMode.HALF_UP)).compareTo(BigDecimal.valueOf(intRollMaxLen)) > 0) { + intMaxLen = intRollMaxLen; + } else { + intMaxLen = (SInfo.getRemLen().multiply(SInfo.getSlabActThk()).multiply(SInfo.getRemWid()).divide(intThk.multiply(BigDecimal.valueOf(intWid)), RoundingMode.HALF_UP)).intValue(); + } + //不能小于可轧制的最小长度 + if (intMaxLen < intRollMinLen) { + return; + } + //轧制宽度 + GGCR.setCal_Wid(intWid); + //轧制厚度 + GGCR.setCal_Thk(intThk); + //订单厚度 + 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()); } - //轧制宽度 - GGCR.setCal_Wid(intWid); - //轧制厚度 - GGCR.setCal_Thk(intThk); - //订单厚度 - GGCR.setThk(e.getLtInfoGPreOrder().get(0).getThk()); - //最大长度 - GGCR.setCal_Len(intMaxLen); - GGCR.setLtInfoGPreOrder(e.getLtInfoGPreOrder()); - - gltGGrpCalRslt.add(GGCR); }); if (gltGGrpCalRslt.size() == 0) { @@ -1483,23 +1515,24 @@ public class SubController { //分组计算 //gltGGrpCalRslt.parallelStream().forEach(p -> { gltGGrpCalRslt.parallelStream().forEach(p -> { - // 测试数据 - //处理数据多处理 - List ltValues = new ArrayList<>(); - List ltweights = new ArrayList<>(); - List ltOrder = new ArrayList<>(); - - //logger.info( "订单总数量:" + p.getLtInfoGPreOrder().size()); - if (p == null) { - return; - } - if (p.getLtInfoGPreOrder() == null) { - return; - } - //计算可处理数据最大值 - p.getLtInfoGPreOrder().forEach(e -> { + try { + // 测试数据 + //处理数据多处理 + List ltValues = new ArrayList<>(); + List ltweights = new ArrayList<>(); + List ltOrder = new ArrayList<>(); + + //logger.info( "订单总数量:" + p.getLtInfoGPreOrder().size()); + if (p == null) { + return; + } + if (p.getLtInfoGPreOrder() == null) { + return; + } + //计算可处理数据最大值 + p.getLtInfoGPreOrder().forEach(e -> { - int intOrdCount = p.getCal_Len() / e.getLen(); + int intOrdCount = p.getCal_Len() / e.getLen(); if (ltOrder.stream().filter(f -> f.equals(e.getOrderNo())).count() == intOrdCount) { return; @@ -1515,191 +1548,193 @@ public class SubController { ltweights.add(e.getLen());//长度 }); - // 生成 values 和 weights 数组 - long[] values = new long[ltValues.size()]; - long[][] weights = new long[1][ltweights.size()]; + // 生成 values 和 weights 数组 + long[] values = new long[ltValues.size()]; + long[][] weights = new long[1][ltweights.size()]; - for (int i = 0; i < ltValues.size(); i++) { - values[i] = ltValues.get(i); // 从订单中获取 value - weights[0][i] = ltweights.get(i) + 5; // 从订单中获取 weights - } + for (int i = 0; i < ltValues.size(); i++) { + values[i] = ltValues.get(i); // 从订单中获取 value + weights[0][i] = ltweights.get(i) + 5; // 从订单中获取 weights + } - //是否展宽 - //String brnNeed=""; - //if (p.getCal_Wid()>SInfo.getSlabActWid().intValue()){ - // brnNeed="1";//展宽 - //}else { - // brnNeed="0";//不展宽 - //} - - //TODO:轧制方向,轧制模式 没有其他值暂不考虑,之后数据完善后需要考虑 - PmPlateCutLenBtDO PPCLB = plistPmPlateCutLenBtDO.stream(). - filter(f -> f.getMscLineNo().equals("1030") - && 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 - && f.getSlabThickFrom().compareTo(SInfo.getSlabActThk()) <= 0 - && f.getSlabThickTo().compareTo(SInfo.getSlabActThk()) >= 0 - && f.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(p.getCal_Wid())) <= 0 - && f.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(p.getCal_Wid())) >= 0 - ).findFirst().orElse(null); - - if (PPCLB == null) { - return; - } + //是否展宽 + //String brnNeed=""; + //if (p.getCal_Wid()>SInfo.getSlabActWid().intValue()){ + // brnNeed="1";//展宽 + //}else { + // brnNeed="0";//不展宽 + //} + + //TODO:轧制方向,轧制模式 没有其他值暂不考虑,之后数据完善后需要考虑 + PmPlateCutLenBtDO PPCLB = plistPmPlateCutLenBtDO.stream(). + filter(f -> f.getMscLineNo().equals("1030") + && 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 + && f.getSlabThickFrom().compareTo(SInfo.getSlabActThk()) <= 0 + && f.getSlabThickTo().compareTo(SInfo.getSlabActThk()) >= 0 + && f.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(p.getCal_Wid())) <= 0 + && f.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(p.getCal_Wid())) >= 0 + ).findFirst().orElse(null); + + if (PPCLB == null) { + return; + } - //切缝长度 - int intPlateCutWidth = PPCLB.getPlateCutWidth().intValue(); + //切缝长度 + int intPlateCutWidth = PPCLB.getPlateCutWidth().intValue(); - //切头 - int intHead = PPCLB.getHeadCut().intValue(); - //切尾 - int intTail = PPCLB.getTailCut().intValue(); + //切头 + int intHead = PPCLB.getHeadCut().intValue(); + //切尾 + int intTail = PPCLB.getTailCut().intValue(); - //去掉切头尾长度 - int intCap = p.getCal_Len() - intHead - intTail; + //去掉切头尾长度 + int intCap = p.getCal_Len() - intHead - intTail; - long[] capacities = {intCap}; + long[] capacities = {intCap}; - //初始化方案 - Loader.loadNativeLibraries(); + //初始化方案 + Loader.loadNativeLibraries(); - //logger.info("values Size:{}", p.getLtInfoGPreOrder().size()); - //for (int i = 0; i < ltweights.size(); i++) { - // - // logger.info("weights:{}", ltweights.get(i)); - // - //} + //logger.info("values Size:{}", p.getLtInfoGPreOrder().size()); + //for (int i = 0; i < ltweights.size(); i++) { + // + // logger.info("weights:{}", ltweights.get(i)); + // + //} - // 调用 solve 方法来解决问题 - ArrayList ltInt = solve(values, weights, capacities); + // 调用 solve 方法来解决问题 + ArrayList ltInt = solve(values, weights, capacities); - //实例化实际订单号 - p.setLtActInfoGPreOrder(new ArrayList<>()); - //循环返回的订单插入到实际数组中 - for (int i = 0; i < ltInt.size(); i++) { - int indexi = i; - p.getLtActInfoGPreOrder().add(p.getLtInfoGPreOrder().stream().filter(m -> m.getIDValue() == ltInt.get(indexi)).collect(Collectors.toList()).get(0)); - } + //实例化实际订单号 + p.setLtActInfoGPreOrder(new ArrayList<>()); + //循环返回的订单插入到实际数组中 + for (int i = 0; i < ltInt.size(); i++) { + int indexi = i; + p.getLtActInfoGPreOrder().add(p.getLtInfoGPreOrder().stream().filter(m -> m.getIDValue() == ltInt.get(indexi)).collect(Collectors.toList()).get(0)); + } - //根据实际订单再计算 - // + //根据实际订单再计算 + // - if (p.getLtActInfoGPreOrder().size() == 0) { - return; - } + if (p.getLtActInfoGPreOrder().size() == 0) { + return; + } + + //最大宽度 + OptionalInt maxWidth = p.getLtActInfoGPreOrder().stream() + .mapToInt(GPreOrder::getWid) + .max(); + //最大宽度余量 + OptionalInt maxAddWidth = p.getLtActInfoGPreOrder().stream() + .mapToInt(GPreOrder::getWidthAddv) + .max(); - //最大宽度 - OptionalInt maxWidth = p.getLtActInfoGPreOrder().stream() - .mapToInt(GPreOrder::getWid) - .max(); - //最大宽度余量 - OptionalInt maxAddWidth = p.getLtActInfoGPreOrder().stream() - .mapToInt(GPreOrder::getWidthAddv) - .max(); + //宽展比 保留2位小数 + BigDecimal decWidRate = BigDecimal.valueOf(maxWidth.orElse(0)).divide(SInfo.getRemWid(), 2, RoundingMode.HALF_UP); - //宽展比 保留2位小数 - BigDecimal decWidRate = BigDecimal.valueOf(maxWidth.orElse(0)).divide(SInfo.getRemWid(), 2, RoundingMode.HALF_UP); + //最大厚度公差最小值 + Optional maxTolThkMin = p.getLtActInfoGPreOrder().stream() + .map(GPreOrder::getThickTolMin) + .reduce(BigDecimal::max); - //最大厚度公差最小值 - Optional maxTolThkMin = p.getLtActInfoGPreOrder().stream() - .map(GPreOrder::getThickTolMin) - .reduce(BigDecimal::max); - - //轧制厚度 厚度+厚度公差下限最大值 - BigDecimal decThk = p.getThk().add(maxTolThkMin.orElse(BigDecimal.ZERO)); - - //轧制宽度 最大宽度+宽度余量 - int intWid = maxWidth.orElse(0) + maxAddWidth.orElse(0); - - //切边 - int intTrimWid = 0; - //切边量 - if (plistPmPlateTrimBtDO.stream().anyMatch(f -> f.getMscLineNo().equals("1030") - && f.getPlateThickFrom().compareTo(decThk) <= 0 - && f.getPlateThickTo().compareTo(decThk) >= 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 - )) { - intTrimWid = plistPmPlateTrimBtDO.stream().filter(f -> f.getMscLineNo().equals("1030") + //轧制厚度 厚度+厚度公差下限最大值 + BigDecimal decThk = p.getThk().add(maxTolThkMin.orElse(BigDecimal.ZERO)); + + //轧制宽度 最大宽度+宽度余量 + int intWid = maxWidth.orElse(0) + maxAddWidth.orElse(0); + + //切边 + int intTrimWid = 0; + //切边量 + if (plistPmPlateTrimBtDO.stream().anyMatch(f -> f.getMscLineNo().equals("1030") && f.getPlateThickFrom().compareTo(decThk) <= 0 && f.getPlateThickTo().compareTo(decThk) >= 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 - ).collect(Collectors.toList()).get(0).getTrimWidth().intValue(); - } - //轧制宽度= 最大宽度 + 最大宽度余量 + 切边量 - intWid = intWid + intTrimWid; - - //厚度 获取p.getLtActInfoGPreOrder()中厚度公差最小值+厚度 - p.setCal_Thk(decThk); - //宽度 获取p.getLtActInfoGPreOrder() 中宽度的最大值 - p.setCal_Wid(intWid); - //宽度余量 获取p.getLtActInfoGPreOrder() 中宽度的最大值 - p.setWid_Add(maxAddWidth.orElse(0)); - //切边余量 - p.setTrimming(intTrimWid); - //切缝 - p.setPlate_Cut_Wid(intPlateCutWidth); - - //订单合计长度+切缝 TODO:取样长度是否加入计算,后续再优化 - int intSumOrderLen = p.getLtActInfoGPreOrder().stream().mapToInt(GPreOrder::getLen).sum(); - int intSumPlateCutWid = p.getLtActInfoGPreOrder().size() * intPlateCutWidth; - p.setEff_Len(intSumOrderLen + intSumPlateCutWid); - - PmPlateCutLenBtDO PPCLB_Act = plistPmPlateCutLenBtDO.stream(). - filter(f -> f.getMscLineNo().equals("1030") - && 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 - && f.getSlabThickFrom().compareTo(SInfo.getSlabActThk()) <= 0 - && f.getSlabThickTo().compareTo(SInfo.getSlabActThk()) >= 0 - && f.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(p.getCal_Wid())) <= 0 - && f.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(p.getCal_Wid())) >= 0 - ).findFirst().orElse(null); - - if (PPCLB_Act == null) { - return; - } + )) { + intTrimWid = plistPmPlateTrimBtDO.stream().filter(f -> f.getMscLineNo().equals("1030") + && f.getPlateThickFrom().compareTo(decThk) <= 0 + && f.getPlateThickTo().compareTo(decThk) >= 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 + ).collect(Collectors.toList()).get(0).getTrimWidth().intValue(); + } + //轧制宽度= 最大宽度 + 最大宽度余量 + 切边量 + intWid = intWid + intTrimWid; - //切头 - 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.setVirtualSlab_Thk(SInfo.getSlabActThk()); - //板坯宽度 - p.setVirtualSlab_Wid(SInfo.getRemWid().intValue()); - //板坯长度 - BigDecimal virtualSlabLen = p.getCal_Thk() - .multiply(BigDecimal.valueOf(p.getCal_Wid())) - .multiply(BigDecimal.valueOf(p.getCal_Len())) - .divide(SInfo.getSlabActThk().multiply(SInfo.getRemWid()), 0, RoundingMode.CEILING); - p.setVirtualSlab_Len(virtualSlabLen.intValue()); - //板坯重量 - 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)); - - //成材率计算 - BigDecimal rolledVolume = p.getCal_Thk() - .multiply(BigDecimal.valueOf(p.getCal_Wid())) - .multiply(BigDecimal.valueOf(p.getEff_Len())); - - BigDecimal slabVolume = SInfo.getSlabActThk() - .multiply(SInfo.getRemWid()) - .multiply(BigDecimal.valueOf(p.getVirtualSlab_Len())); - - BigDecimal yieldRate = rolledVolume.divide(slabVolume, 2, RoundingMode.HALF_UP); // 保留4位小数 - - // 设置成材率到 p 对象中 - p.setRate(yieldRate); + //厚度 获取p.getLtActInfoGPreOrder()中厚度公差最小值+厚度 + p.setCal_Thk(decThk); + //宽度 获取p.getLtActInfoGPreOrder() 中宽度的最大值 + p.setCal_Wid(intWid); + //宽度余量 获取p.getLtActInfoGPreOrder() 中宽度的最大值 + p.setWid_Add(maxAddWidth.orElse(0)); + //切边余量 + p.setTrimming(intTrimWid); + //切缝 + p.setPlate_Cut_Wid(intPlateCutWidth); + + //订单合计长度+切缝 TODO:取样长度是否加入计算,后续再优化 + int intSumOrderLen = p.getLtActInfoGPreOrder().stream().mapToInt(GPreOrder::getLen).sum(); + int intSumPlateCutWid = p.getLtActInfoGPreOrder().size() * intPlateCutWidth; + p.setEff_Len(intSumOrderLen + intSumPlateCutWid); + + PmPlateCutLenBtDO PPCLB_Act = plistPmPlateCutLenBtDO.stream(). + filter(f -> f.getMscLineNo().equals("1030") + && 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 + && f.getSlabThickFrom().compareTo(SInfo.getSlabActThk()) <= 0 + && f.getSlabThickTo().compareTo(SInfo.getSlabActThk()) >= 0 + && f.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(p.getCal_Wid())) <= 0 + && f.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(p.getCal_Wid())) >= 0 + ).findFirst().orElse(null); + + if (PPCLB_Act == null) { + return; + } + //切头 + 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.setVirtualSlab_Thk(SInfo.getSlabActThk()); + //板坯宽度 + p.setVirtualSlab_Wid(SInfo.getRemWid().intValue()); + //板坯长度 + BigDecimal virtualSlabLen = p.getCal_Thk() + .multiply(BigDecimal.valueOf(p.getCal_Wid())) + .multiply(BigDecimal.valueOf(p.getCal_Len())) + .divide(SInfo.getSlabActThk().multiply(SInfo.getRemWid()), 0, RoundingMode.CEILING); + p.setVirtualSlab_Len(virtualSlabLen.intValue()); + //板坯重量 + 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)); + + //成材率计算 + BigDecimal rolledVolume = p.getCal_Thk() + .multiply(BigDecimal.valueOf(p.getCal_Wid())) + .multiply(BigDecimal.valueOf(p.getEff_Len())); + + BigDecimal slabVolume = SInfo.getSlabActThk() + .multiply(SInfo.getRemWid()) + .multiply(BigDecimal.valueOf(p.getVirtualSlab_Len())); + + BigDecimal yieldRate = rolledVolume.divide(slabVolume, 2, RoundingMode.HALF_UP); // 保留4位小数 + + // 设置成材率到 p 对象中 + p.setRate(yieldRate); + } catch (Exception e) { + log.error("new1", e); + } }); //判断结果数据是否存在 if (gltGGrpCalRslt.size() == 0) { @@ -1707,73 +1742,75 @@ public class SubController { } //判断结算结果长度和成材率是否可用 gltGGrpCalRslt.parallelStream().forEach(p -> { - - //没有成材率 - if (p.getRate() == null) { - p.setIntUseFlg(0); - return; - } - - //成材率大于90% - if (p.getRate().compareTo(BigDecimal.valueOf(0.9)) <= 0) { - p.setIntUseFlg(0); - return; - } - - int minWid = Math.min(p.getVirtualSlab_Wid(), p.getVirtualSlab_Len()); - int maxLen = Math.max(p.getVirtualSlab_Wid(), p.getVirtualSlab_Len()); - // 板坯厚度起止SLAB_THICK_FROM/TO包含余坯实际厚度; - // 板坯宽度起止SLAB_WIDTH_FROM/TO包含余坯实际宽度; - // 加热炉类型为‘C’,轧制产线号等于产线号后两位,连铸机类型等于1; - if (plistPmSlabSpecBtDO.stream().filter(e -> e.getSlabThickFrom().compareTo(p.getVirtualSlab_Thk()) <= 0 - && e.getSlabThickTo().compareTo(p.getVirtualSlab_Thk()) >= 0 - && 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.getCcType().equals("1") - ).count() > 0) { - - int intSlanLenMin = plistPmSlabSpecBtDO.stream().filter(e -> e.getSlabThickFrom().compareTo(p.getVirtualSlab_Thk()) <= 0 - && e.getSlabThickTo().compareTo(p.getVirtualSlab_Thk()) >= 0 - && 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.getCcType().equals("1") - ).findFirst().orElse(null).getSlabMinLen().intValue(); - - int intSlanLenMax = plistPmSlabSpecBtDO.stream().filter(e -> e.getSlabThickFrom().compareTo(p.getVirtualSlab_Thk()) <= 0 - && e.getSlabThickTo().compareTo(p.getVirtualSlab_Thk()) >= 0 - && 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.getCcType().equals("1") - ).findFirst().orElse(null).getSlabMaxLen().intValue(); - - //不能小于最小值 - if (maxLen <= intSlanLenMin) { - p.setIntUseFlg(0); - return; - } - - //不能大于最大值 - if (maxLen >= intSlanLenMax) { - p.setIntUseFlg(0); - return; - } - - } else { - //数据不可用 - p.setIntUseFlg(0); - return; - } - - //数据可用 - p.setIntUseFlg(1); - - + try { + //没有成材率 + if (p.getRate() == null) { + p.setIntUseFlg(0); + return; + } + + //成材率大于90% + if (p.getRate().compareTo(BigDecimal.valueOf(0.9)) <= 0) { + p.setIntUseFlg(0); + return; + } + + int minWid = Math.min(p.getVirtualSlab_Wid(), p.getVirtualSlab_Len()); + int maxLen = Math.max(p.getVirtualSlab_Wid(), p.getVirtualSlab_Len()); + // 板坯厚度起止SLAB_THICK_FROM/TO包含余坯实际厚度; + // 板坯宽度起止SLAB_WIDTH_FROM/TO包含余坯实际宽度; + // 加热炉类型为‘C’,轧制产线号等于产线号后两位,连铸机类型等于1; + if (plistPmSlabSpecBtDO.stream().filter(e -> e.getSlabThickFrom().compareTo(p.getVirtualSlab_Thk()) <= 0 + && e.getSlabThickTo().compareTo(p.getVirtualSlab_Thk()) >= 0 + && 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.getCcType().equals("1") + ).count() > 0) { + + int intSlanLenMin = plistPmSlabSpecBtDO.stream().filter(e -> e.getSlabThickFrom().compareTo(p.getVirtualSlab_Thk()) <= 0 + && e.getSlabThickTo().compareTo(p.getVirtualSlab_Thk()) >= 0 + && 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.getCcType().equals("1") + ).findFirst().orElse(null).getSlabMinLen().intValue(); + + int intSlanLenMax = plistPmSlabSpecBtDO.stream().filter(e -> e.getSlabThickFrom().compareTo(p.getVirtualSlab_Thk()) <= 0 + && e.getSlabThickTo().compareTo(p.getVirtualSlab_Thk()) >= 0 + && 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.getCcType().equals("1") + ).findFirst().orElse(null).getSlabMaxLen().intValue(); + + //不能小于最小值 + if (maxLen <= intSlanLenMin) { + p.setIntUseFlg(0); + return; + } + + //不能大于最大值 + if (maxLen >= intSlanLenMax) { + p.setIntUseFlg(0); + return; + } + + } else { + //数据不可用 + p.setIntUseFlg(0); + return; + } + + //数据可用 + p.setIntUseFlg(1); + } catch (Exception e){ + log.error("new2", e); + return; + } }); //选择最优结果 @@ -1794,9 +1831,11 @@ public class SubController { public void ChosBestRsl(SlabInfoDO SInfo) { - // 筛选 UseFlg == 1 的数据 + //gltGGrpCalRslt 的 getIntUseF + +// 筛选 UseFlg == 1 的数据 List filteredList = gltGGrpCalRslt.stream() - .filter(g -> g.getIntUseFlg()== 1) + .filter(g -> Objects.nonNull(g) && Objects.nonNull(g.getIntUseFlg()) && g.getIntUseFlg() == 1) .collect(Collectors.toList()); // 找到重量最大成材率最大的数据 @@ -1818,6 +1857,10 @@ public class SubController { pmSubHisDO.setVirtualSlabNo(virtualSlabNo); // 虚拟板坯号 pmSubHisDO.setRelKey(virtualSlabNo); // 关系号 + maxWeightMaxYieldRate.get().setSlabNo(SInfo.getSlabNo()); + maxWeightMaxYieldRate.get().setVirtualSlabNo(virtualSlabNo); + + // 手动为每个字段赋值 pmSubHisDO.setSlabThick(maxRate.getVirtualSlab_Thk()); // 厚度 pmSubHisDO.setSlabWid(BigDecimal.valueOf(maxRate.getVirtualSlab_Wid())); // 宽度 @@ -1852,7 +1895,7 @@ public class SubController { pmSubHisDO.setNeedSlabLen(BigDecimal.valueOf(maxRate.getVirtualSlab_Len())); // 必要板坯长度 pmSubHisDO.setNeedSlabWt(maxRate.getVirtualSlab_Wgt()); // 必要板坯重量 - plistpmSubHisDO.add(pmSubHisDO); + plistpmSubHisDO.add(pmSubHisDO); //子表信息 // 使用 AtomicInteger 获取索引 AtomicInteger index = new AtomicInteger(0); @@ -1876,9 +1919,9 @@ public class SubController { pmSubOrdDO.setOrderWidth(BigDecimal.valueOf(gPreOrder.getWid())); // 订货宽度 pmSubOrdDO.setLenAim(BigDecimal.valueOf(gPreOrder.getLen())); // 订货长度 - pmSubOrdDO.setPosX(BigDecimal.valueOf( intX.intValue())); // X坐标,假设默认为0 - intX.addAndGet(gPreOrder.getLen()+5);//X坐标 - pmSubOrdDO.setPosY(BigDecimal.valueOf(maxRate.getTrimming()+gPreOrder.getWidthAddv())); // Y坐标,假设默认为0 + pmSubOrdDO.setPosX(BigDecimal.valueOf(intX.intValue())); // X坐标,假设默认为0 + intX.addAndGet(gPreOrder.getLen() + 5);//X坐标 + pmSubOrdDO.setPosY(BigDecimal.valueOf(maxRate.getTrimming() + gPreOrder.getWidthAddv())); // Y坐标,假设默认为0 pmSubOrdDO.setDelivyDate(new Date()); // 交货日期,假设默认为当前时间 pmSubOrdDO.setAxisOrd("0"); // 轴合同 @@ -1906,14 +1949,14 @@ public class SubController { } ); - //判断长宽大小 - BigDecimal decLen =BigDecimal.valueOf(SInfo.getRemLen().intValue()-maxRate.getVirtualSlab_Len()); - BigDecimal DecWid =SInfo.getRemWid(); + //判断长宽大小 + BigDecimal decLen = BigDecimal.valueOf(SInfo.getRemLen().intValue() - maxRate.getVirtualSlab_Len()); + BigDecimal DecWid = SInfo.getRemWid(); if (decLen.compareTo(DecWid) <= 0) { // 当 p.getSlabActLen() 小于或等于 p.getSlabActWid() 时执行的代码 SInfo.setRemLen(DecWid); SInfo.setRemWid(decLen); - }else{ + } else { SInfo.setRemLen(decLen); SInfo.setRemWid(DecWid); } @@ -1978,7 +2021,7 @@ public class SubController { pmPdSlabDO.setMatDesignKind("S"); pmPdSlabDO.setPdStatusHp("12"); pmPdSlabDO.setPdResp("781"); // TODO 组板责任者 未赋值 操作人id - pmPdSlabDO.setFormPlateMode("FormPlateMode"); //TODO 组板方式 未赋值 + pmPdSlabDO.setFormPlateMode(""); //TODO 组板方式 未赋值 pmPdSlabDO.setPickModeLenDir(BigDecimal.ZERO); //TODO 取板方式_长度方向 未赋值 pmPdSlabDO.setPickModeWidDir(BigDecimal.ZERO); //TODO 取板方式_宽度方向 未赋值 pmPdSlabDO.setFurType("C");// TODO 加热炉类型 暂时赋值为C @@ -1998,7 +2041,44 @@ public class SubController { pmPdSlabDO.setCutModeCode(resultPmContMscTechDO.get().getCutModeCode()); //TODO 缺少质量模块MES合同主档QD_TO_PO_ORDER - pmPdSlabDO.setUltCode(resultPmContMscTechDO.get().getUltCode());//TODO 遍历组板合同,根据合同号从质量模块MES合同主档QD_TO_PO_ORDER读取ERP_UT_SPEC1探伤标准1、ERP_UT_SPEC2超声探伤标2、ERP_UT_SPEC3超声探伤标3,去重后所有数据拼接成一条记录 +// pmPdSlabDO.setUltCode(resultPmContMscTechDO.get().getUltCode()); + //TODO 遍历组板合同,根据合同号从质量模块MES合同主档QD_TO_PO_ORDER读取ERP_UT_SPEC1探伤标准1、ERP_UT_SPEC2超声探伤标2、ERP_UT_SPEC3超声探伤标3,去重后所有数据拼接成一条记录 + //遍历 orderNoList 拿每一条orderNo查询plistQdToPoOrderDO 获取ERP_UT_SPEC1,ERP_UT_SPEC2,ERP_UT_SPEC3 ,将获取的每一个探伤标准 去重后拼接成一条记录 + StringBuilder ultDetectMethodCodeBuilder = new StringBuilder(); + String ultCode = ""; + for (String orderNo : orderNoList) { + Optional resultQdToPoOrderDO = plistQdToPoOrderDO.stream() + .filter(item -> orderNo.equals(item.getOrderNo())) + .findFirst(); + String erpUtSpec1 = ""; + String erpUtSpec2 = ""; + String erpUtSpec3 = ""; + if (resultQdToPoOrderDO.isPresent()) { + erpUtSpec1 = nvl(resultQdToPoOrderDO.get().getErpUtSpec1(),""); + erpUtSpec2 = nvl(resultQdToPoOrderDO.get().getErpUtSpec2(),""); + erpUtSpec3 = nvl(resultQdToPoOrderDO.get().getErpUtSpec3(),""); + if(!erpUtSpec1.isEmpty()){ + if (!ultDetectMethodCodeBuilder.toString().contains(erpUtSpec1)) { + ultDetectMethodCodeBuilder.append(erpUtSpec1).append("-"); + } + } + if(!erpUtSpec2.isEmpty()){ + if (!ultDetectMethodCodeBuilder.toString().contains(erpUtSpec2)) { + ultDetectMethodCodeBuilder.append(erpUtSpec2).append("-"); + } + } + if(!erpUtSpec3.isEmpty()){ + if (!ultDetectMethodCodeBuilder.toString().contains(erpUtSpec3)) { + ultDetectMethodCodeBuilder.append(erpUtSpec3).append("-"); + } + } + } + ultCode = ultDetectMethodCodeBuilder.toString(); + if (!ultCode.isEmpty()) { + ultCode = ultCode.substring(0, ultCode.length() - 1); + } + pmPdSlabDO.setUltCode(ultCode); + } String ultDetectMethodCode = ""; String coolCode = ""; @@ -2053,7 +2133,7 @@ public class SubController { pmPdSlabDO.setSgSign(SInfo.getSgSign()); pmPdSlabDO.setStNo(SInfo.getStNo()); pmPdSlabDO.setOutSgNo(SInfo.getStNo()); - + pmPdSlabDO.setIngotType(SInfo.getSlabType()); pmPdSlabDO.setPreCleanSlabThick(SInfo.getSlabActThk()); pmPdSlabDO.setPreCleanSlabWidth(SInfo.getSlabActWid()); pmPdSlabDO.setPreCleanSlabLen(BigDecimal.valueOf(ggcr.getVirtualSlab_Len())); @@ -2082,11 +2162,15 @@ public class SubController { pmPdSlabDO.setHpFlameCleanDiv(resultPmContMscTechDO1.get().getFlameCleanDiv()); pmPdSlabDO.setSlabFinishCode(resultPmContMscTechDO1.get().getSlabFinishCode()); - - Optional resultPmPdSlabInfoDO = plistPmPdSlabInfoDO.stream() - .filter(item -> ggcr.getSlabNo().equals(item.getSlabNo())) - .findFirst(); - pmPdSlabDO.setSlabPlaceCode(resultPmPdSlabInfoDO.get().getSlabPlaceCode()); + Long slabPdQty = plistPmPdSlabInfoDO.stream() + .filter(item -> item != null && ggcr != null && ggcr.getSlabNo() != null && ggcr.getSlabNo().equals(item.getSlabNo())) + .count(); + if(slabPdQty > 0){ + Optional resultPmPdSlabInfoDO = plistPmPdSlabInfoDO.stream() + .filter(item -> ggcr.getSlabNo().equals(item.getSlabNo())) + .findFirst(); + pmPdSlabDO.setSlabPlaceCode(resultPmPdSlabInfoDO.get().getSlabPlaceCode()); + } pmPdSlabDO.setRollAimThick(ggcr.getCal_Thk()); pmPdSlabDO.setRollAimWidth(BigDecimal.valueOf(ggcr.getCal_Wid())); @@ -2139,6 +2223,8 @@ public class SubController { pmPdSlabDO.setLastUpdatedBy(781L); pmPdSlabDO.setCreationDate(now); pmPdSlabDO.setLastUpdateDate(now); + pmPdSlabDO.setLastSlabFlag(BigDecimal.valueOf(1)); + pmPdSlabDO.setTwoRollInterimFlag(1); SetPmCmdSlab(pmPdSlabDO);//命令板坯表 SetPmCmdLargePlt(pmPdSlabDO, ggcr);//命令大板表 @@ -2177,12 +2263,14 @@ public class SubController { pmPdBlockPosDO.setPdMatNo(ggcr.getVirtualSlabNo()); pmPdBlockPosDO.setOrderNo(orderNoList.get(j)); pmPdBlockPosDO.setOrderSeqNo(j + 1);//TODO 订单序号 暂时以实际订单信息列表顺序 - Integer blockPlateNum = ggcr.getLtActInfoGPreOrder().stream() // 当前合同号在实际合同列表中的条数 + List resultGPreOrder = ggcr.getLtActInfoGPreOrder().stream() .filter(item -> item.getOrderNo().equals(pmPdBlockPosDO.getOrderNo())) - .collect(Collectors.toList()) - .size(); + .collect(Collectors.toList()); + Integer blockPlateNum = resultGPreOrder.size(); + pmPdBlockPosDO.setBlockPlateNum(blockPlateNum); pmPdBlockPosDO.setSlabNo(ggcr.getSlabNo()); + pmPdBlockPosDO.setProContId(resultGPreOrder.get(0).getInfoPmProContDo().getProContId()); // pmPdBlockPosDO.setOrderBlockNo(); //TODO 厚板组板块号 暂时不知如何赋值 pmPdBlockPosDO.setCreatedBy(781L);//TODO 创建人修改人,暂时默认781 BKGY @@ -2214,9 +2302,10 @@ public class SubController { pmPdContSumDO.setSlabNo(ggcr.getSlabNo()); pmPdContSumDO.setPdMatType("S"); pmPdContSumDO.setPdStatus("12"); + pmPdContSumDO.setProContId(gPreOrders.get(0).getInfoPmProContDo().getProContId()); pmPdContSumDO.setOrderThick(gPreOrders.get(0).getThk()); pmPdContSumDO.setOrderWidth(BigDecimal.valueOf(gPreOrders.get(0).getWid())); - pmPdContSumDO.setOrderLen(BigDecimal.valueOf(gPreOrders.get(0).getIntActLen())); + pmPdContSumDO.setOrderLen(BigDecimal.valueOf(gPreOrders.get(0).getIntActLen())); //20250212 pmPdContSumDO.setOrderLenMax(BigDecimal.valueOf(gPreOrders.get(0).getInfoPmProContProdAttrDO().getOrderMaxLen())); pmPdContSumDO.setOrderLenMin(BigDecimal.valueOf(gPreOrders.get(0).getInfoPmProContProdAttrDO().getOrderMinLen())); @@ -2229,6 +2318,7 @@ public class SubController { pmPdContSumDO.setLastUpdatedBy(781L); pmPdContSumDO.setCreationDate(now); pmPdContSumDO.setLastUpdateDate(now); + pmPdContSumDO.setAxisFlag(0);//TODO 轴合同标记,暂时默认0 SetPmCmdCont(pmPdContSumDO, gPreOrders.get(0));//命令参数表 pmPdContSumDOList.add(pmPdContSumDO); } @@ -2244,6 +2334,7 @@ public class SubController { PmSmallPltPosDO pmSmallPltPosDO = new PmSmallPltPosDO(); pmSmallPltPosDO.setPdMatNo(ggcr.getVirtualSlabNo()); pmSmallPltPosDO.setOrderNo(gpo.getOrderNo()); + pmSmallPltPosDO.setProContId(gpo.getInfoPmProContDo().getProContId()); pmSmallPltPosDO.setOrderSeqNo(j + 1); pmSmallPltPosDO.setSlabNo(ggcr.getSlabNo()); Optional resultPmProContProdAttrDO = plistPmProContProdAttrDO.stream() @@ -2302,12 +2393,17 @@ public class SubController { pmCmdSlabDO.setPreCleanSlabWt(pmPdSlabDO.getPreCleanSlabWt()); pmCmdSlabDO.setPreCleanSlabMaxWt(pmPdSlabDO.getPreCleanSlabMaxWt()); pmCmdSlabDO.setPreCleanSlabMinWt(pmPdSlabDO.getPreCleanSlabMinWt()); + Long slabPdQty = plistPmPdSlabInfoDO.stream() + .filter(item -> item != null && pmPdSlabDO != null && pmPdSlabDO.getSlabNo() != null && pmPdSlabDO.getSlabNo().equals(item.getSlabNo())) + .count(); + if(slabPdQty>0){ + Optional resultPmPdSlabInfoDO = plistPmPdSlabInfoDO.stream() + .filter(item -> pmPdSlabDO.getSlabNo().equals(item.getSlabNo())) + .findFirst(); + pmCmdSlabDO.setMoldThick(resultPmPdSlabInfoDO.get().getMatActThick().intValue()); + pmCmdSlabDO.setMoldWid(resultPmPdSlabInfoDO.get().getMatActWidth().intValue()); + } - Optional resultPmPdSlabInfoDO = plistPmPdSlabInfoDO.stream() - .filter(item -> pmPdSlabDO.getSlabNo().equals(item.getSlabNo())) - .findFirst(); - pmCmdSlabDO.setMoldThick(resultPmPdSlabInfoDO.get().getMatActThick().intValue()); - pmCmdSlabDO.setMoldWid(resultPmPdSlabInfoDO.get().getMatActWidth().intValue()); pmCmdSlabDO.setInfurSlabThick(pmPdSlabDO.getInfurSlabThick()); pmCmdSlabDO.setInfurSlabWid(pmPdSlabDO.getInfurSlabWid()); @@ -2336,6 +2432,7 @@ public class SubController { pmCmdSlabDO.setMscLineNo(pmPdSlabDO.getMscLineNo()); pmCmdSlabDO.setIngotType(pmPdSlabDO.getIngotType()); pmCmdSlabDO.setIgMatDesignKind(pmPdSlabDO.getIgMatDesignKind()); + pmCmdSlabDO.setOrderNoAxis(pmPdSlabDO.getOrderNoAxis()); pmCmdSlabDO.setCreatedBy(781L);//TODO 创建人修改人,暂时默认781 BKGY pmCmdSlabDO.setLastUpdatedBy(781L); pmCmdSlabDO.setCreationDate(now); @@ -2514,14 +2611,24 @@ public class SubController { pmCmdContDO.setHeadCut(pmPdSlabDOItem.get().getHeadCut().intValue()); pmCmdContDO.setTailCut(pmPdSlabDOItem.get().getTailCut().intValue()); pmCmdContDO.setCutModeCode(pmContMscTechDOItem.get().getAdModeCode()); - pmCmdContDO.setGFlag(String.valueOf(pmContMscTechDOItem.get().getGFlag())); - pmCmdContDO.setCsFlag(String.valueOf(pmContMscTechDOItem.get().getCsFlag())); - pmCmdContDO.setDssFlag(String.valueOf(pmContMscTechDOItem.get().getDssFlag())); - pmCmdContDO.setDsFlag(String.valueOf(pmContMscTechDOItem.get().getDsFlag())); - pmCmdContDO.setSsFlag(String.valueOf(pmContMscTechDOItem.get().getSsFlag())); + if(pmContMscTechDOItem.get().getGFlag() != null){ + pmCmdContDO.setGFlag(String.valueOf(pmContMscTechDOItem.get().getGFlag())); + } + if(pmContMscTechDOItem.get().getCsFlag() != null){ + pmCmdContDO.setCsFlag(String.valueOf(pmContMscTechDOItem.get().getCsFlag())); + } + if(pmContMscTechDOItem.get().getDssFlag() != null){ + pmCmdContDO.setDssFlag(String.valueOf(pmContMscTechDOItem.get().getDssFlag())); + } + if(pmContMscTechDOItem.get().getDsFlag() != null){ + pmCmdContDO.setDsFlag(String.valueOf(pmContMscTechDOItem.get().getDsFlag())); + } + if(pmContMscTechDOItem.get().getSsFlag() != null){ + pmCmdContDO.setSsFlag(String.valueOf(pmContMscTechDOItem.get().getSsFlag())); + } pmCmdContDO.setHeatTreatMode(pmContMscTechDOItem.get().getHeatTreatMode()); pmCmdContDO.setUltDetectMethodCode(pmContMscTechDOItem.get().getUltDetectMethodCode()); - pmCmdContDO.setUltCode("");//TODO 遍根据合同号从质量模块MES合同主档QD_TO_PO_ORDER读取超声探伤标准1、超声探伤标2、超声探伤标3、超声探伤标4、超声探伤标5,去重后所有数据用‘-’拼接成一条记录 + pmCmdContDO.setUltCode(pmPdSlabDOItem.get().getUltCode());//TODO 遍根据合同号从质量模块MES合同主档QD_TO_PO_ORDER读取超声探伤标准1、超声探伤标2、超声探伤标3、超声探伤标4、超声探伤标5,去重后所有数据用‘-’拼接成一条记录 pmCmdContDO.setMscLineNo(mscLineNo); pmCmdContDO.setCreatedBy(781L);//TODO 创建人修改人,暂时默认781 BKGY pmCmdContDO.setLastUpdatedBy(781L); @@ -2556,4 +2663,28 @@ public class SubController { pmCmdSmallPltDOList.add(pmCmdSmallPltDO); } + public void SaveData() { + subService.batchInsertPmPdSlab(pmPdSlabDOList); + System.out.println("PmPdSlab表一保存成功"); + subService.batchInsertPmCmdSlab(pmCmdSlabDOList); + System.out.println("PmCmdSlab表二保存成功"); + subService.batchInsertPmCmdLargePlt(pmCmdLargePltDOList); + System.out.println("pmCmdLargePltDO 命令大板 保存成功"); + subService.batchInsertPmPdPlateCut(pmPdPlateCutDOList); + System.out.println("PmPdPlateCut 大板粗切位置表 保存成功"); + subService.batchInsertPmPdBlockPos(pmPdBlockPosDOList); + System.out.println("PmPdBlockPos 组合子板位置表 保存成功"); + subService.batchInsertPmPdContSum(pmPdContSumDOList); + System.out.println("PmPdContSum 合同总量表 保存成功"); + subService.batchInsertPmSmallPltPos(pmSmallPltPosDOList); + System.out.println("PmSmallPltPos 命令小板位置表 保存成功"); + subService.batchInsertPmCmdSmallPlt(pmCmdSmallPltDOList); + System.out.println("PmCmdSmallPlt 命令小板表 保存成功"); + subService.batchInsertPmCmdCont(pmCmdContDOList); + System.out.println("PmCmdCont 命令参数 保存成功"); + +// subService.SaveData(pmPdSlabDOList, pmPdPlateCutDOList, pmPdBlockPosDOList, pmPdContSumDOList, pmSmallPltPosDOList, pmCmdSlabDOList, pmCmdLargePltDOList, pmCmdContDOList, pmCmdSmallPltDOList); + } + + } 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 756c3f1..806fd72 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 @@ -5,6 +5,7 @@ import net.xdclass.shopmanager.model.*; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -100,4 +101,44 @@ public interface SubMapper extends BaseMapper { List getPmPdSlabInfo(); List getQdToPoOrder(); + + BigDecimal getMaxPmPdSlabId(); + + void batchInsertPmPdSlab(@Param("list") List pmPdSlabDOList); + + void batchInsertPmCmdSlab(@Param("list") List pmCmdSlabDOList); + + BigDecimal getMaxPmCmdSlabId(); + + void insertPmPdSlab(PmPdSlabDO p); + + void insertPmCmdSlab(PmCmdSlabDO pmCmdSlabDO); + + BigDecimal getMaxPmCmdLargePltId(); + + void insertPmCmdLargePlt(PmCmdLargePltDO pmCmdLargePltDO); + + BigDecimal getMaxPmPdPlateCutId(); + + void insertPmPdPlateCut(PmPdPlateCutDO pmPdPlateCutDO); + + BigDecimal getMaxPmPdBlockPosId(); + + void insertPmPdBlockPos(PmPdBlockPosDO pmPdBlockPosDO); + + BigDecimal getMaxPmPdContSumId(); + + void insertPmPdContSum(PmPdContSumDO pmPdContSumDO); + + BigDecimal getMaxPmSmallPltPosId(); + + void insertPmSmallPltPos(PmSmallPltPosDO pmSmallPltPosDO); + + BigDecimal getMaxPmCmdSmallPltId(); + + void insertPmCmdSmallPlt(PmCmdSmallPltDO pmCmdSmallPltDO); + + BigDecimal getMaxPmCmdContId(); + + void insertPmCmdCont(PmCmdContDO pmCmdContDO); } 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 a166b29..4bcf7ae 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 @@ -97,4 +97,26 @@ public interface SubService { List getPmPdSlabInfo(); List getQdToPoOrder(); + + void SaveData(List pmPdSlabDOList, List pmPdPlateCutDOList, List pmPdBlockPosDOList, List pmPdContSumDOList, List pmSmallPltPosDOList, List pmCmdSlabDOList, List pmCmdLargePltDOList, List pmCmdContDOList, List pmCmdSmallPltDOList); + + void batchInsertPmPdSlab(List pmPdSlabDOList); + + void batchInsertPmCmdSlab(List pmCmdSlabDOList); + + void insertPmPdSlab(PmPdSlabDO p); + + void batchInsertPmCmdLargePlt(List pmCmdLargePltDOList); + + void batchInsertPmPdPlateCut(List pmPdPlateCutDOList); + + void batchInsertPmPdBlockPos(List pmPdBlockPosDOList); + + void batchInsertPmPdContSum(List pmPdContSumDOList); + + void batchInsertPmSmallPltPos(List pmSmallPltPosDOList); + + void batchInsertPmCmdSmallPlt(List pmCmdSmallPltDOList); + + void batchInsertPmCmdCont(List pmCmdContDOList); } 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 344f11a..67679e3 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 @@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.List; @Service @@ -243,5 +244,116 @@ public class SubServiceImpl implements SubService { return subMapper.getQdToPoOrder(); } + @Override + public void SaveData(List pmPdSlabDOList, List pmPdPlateCutDOList, List pmPdBlockPosDOList, List pmPdContSumDOList, List pmSmallPltPosDOList, List pmCmdSlabDOList, List pmCmdLargePltDOList, List pmCmdContDOList, List pmCmdSmallPltDOList) { + + } + + @Override + public void batchInsertPmPdSlab(List pmPdSlabDOList) { + BigDecimal id = subMapper.getMaxPmPdSlabId(); + for (int i = 0 ; i < pmPdSlabDOList.size() ; i++){ + pmPdSlabDOList.get(i).setPmPdSlabId(id.add(BigDecimal.valueOf(i+1))); + pmPdSlabDOList.get(i).setTenantId(BigDecimal.valueOf(1)); + pmPdSlabDOList.get(i).setObjectVersionNumber(BigDecimal.valueOf(1)); + subMapper.insertPmPdSlab(pmPdSlabDOList.get(i)); + } +// subMapper.batchInsertPmPdSlab(pmPdSlabDOList); + } + + @Override + public void batchInsertPmCmdSlab(List pmCmdSlabDOList) { + BigDecimal id = subMapper.getMaxPmCmdSlabId(); + for (int i = 0 ; i < pmCmdSlabDOList.size() ; i++){ + pmCmdSlabDOList.get(i).setPmCmdSlabId(id.add(BigDecimal.valueOf(i+1))); + pmCmdSlabDOList.get(i).setTenantId(BigDecimal.valueOf(1)); + pmCmdSlabDOList.get(i).setObjectVersionNumber(BigDecimal.valueOf(1)); + subMapper.insertPmCmdSlab(pmCmdSlabDOList.get(i)); + } +// subMapper.batchInsertPmCmdSlab(pmCmdSlabDOList); + } + + @Override + public void insertPmPdSlab(PmPdSlabDO p) { + subMapper.insertPmPdSlab(p); + } + + @Override + public void batchInsertPmCmdLargePlt(List pmCmdLargePltDOList) { + BigDecimal id = subMapper.getMaxPmCmdLargePltId(); + for (int i = 0 ; i < pmCmdLargePltDOList.size() ; i++){ + pmCmdLargePltDOList.get(i).setPmCmdLargePltId(id.add(BigDecimal.valueOf(i+1))); + pmCmdLargePltDOList.get(i).setTenantId(BigDecimal.valueOf(1)); + pmCmdLargePltDOList.get(i).setObjectVersionNumber(BigDecimal.valueOf(1)); + subMapper.insertPmCmdLargePlt(pmCmdLargePltDOList.get(i)); + } + } + + @Override + public void batchInsertPmPdPlateCut(List pmPdPlateCutDOList) { + BigDecimal id = subMapper.getMaxPmPdPlateCutId(); + for (int i = 0 ; i < pmPdPlateCutDOList.size() ; i++){ + pmPdPlateCutDOList.get(i).setCutId(id.add(BigDecimal.valueOf(i+1))); + pmPdPlateCutDOList.get(i).setTenantId(BigDecimal.valueOf(1)); + pmPdPlateCutDOList.get(i).setObjectVersionNumber(BigDecimal.valueOf(1)); + subMapper.insertPmPdPlateCut(pmPdPlateCutDOList.get(i)); + } + } + + @Override + public void batchInsertPmPdBlockPos(List pmPdBlockPosDOList) { + BigDecimal id = subMapper.getMaxPmPdBlockPosId(); + for (int i = 0 ; i < pmPdBlockPosDOList.size() ; i++){ + pmPdBlockPosDOList.get(i).setPdBlockPosId(id.add(BigDecimal.valueOf(i+1))); + pmPdBlockPosDOList.get(i).setTenantId(BigDecimal.valueOf(1)); + pmPdBlockPosDOList.get(i).setObjectVersionNumber(BigDecimal.valueOf(1)); + subMapper.insertPmPdBlockPos(pmPdBlockPosDOList.get(i)); + } + } + + @Override + public void batchInsertPmPdContSum(List pmPdContSumDOList) { + BigDecimal id = subMapper.getMaxPmPdContSumId(); + for (int i = 0 ; i < pmPdContSumDOList.size() ; i++){ + pmPdContSumDOList.get(i).setPpcsId(id.add(BigDecimal.valueOf(i+1))); + pmPdContSumDOList.get(i).setTenantId(BigDecimal.valueOf(1)); + pmPdContSumDOList.get(i).setObjectVersionNumber(BigDecimal.valueOf(1)); + subMapper.insertPmPdContSum(pmPdContSumDOList.get(i)); + } + } + + @Override + public void batchInsertPmSmallPltPos(List pmSmallPltPosDOList) { + BigDecimal id = subMapper.getMaxPmSmallPltPosId(); + for (int i = 0 ; i < pmSmallPltPosDOList.size() ; i++){ + pmSmallPltPosDOList.get(i).setPsppId(id.add(BigDecimal.valueOf(i+1))); + pmSmallPltPosDOList.get(i).setTenantId(BigDecimal.valueOf(1)); + pmSmallPltPosDOList.get(i).setObjectVersionNumber(BigDecimal.valueOf(1)); + subMapper.insertPmSmallPltPos(pmSmallPltPosDOList.get(i)); + } + } + + @Override + public void batchInsertPmCmdSmallPlt(List pmCmdSmallPltDOList) { + BigDecimal id = subMapper.getMaxPmCmdSmallPltId(); + for (int i = 0 ; i < pmCmdSmallPltDOList.size() ; i++){ + pmCmdSmallPltDOList.get(i).setPmCmdSmallPltId(id.add(BigDecimal.valueOf(i+1))); + pmCmdSmallPltDOList.get(i).setTenantId(BigDecimal.valueOf(1)); + pmCmdSmallPltDOList.get(i).setObjectVersionNumber(BigDecimal.valueOf(1)); + subMapper.insertPmCmdSmallPlt(pmCmdSmallPltDOList.get(i)); + } + } + + @Override + public void batchInsertPmCmdCont(List pmCmdContDOList) { + BigDecimal id = subMapper.getMaxPmCmdContId(); + for (int i = 0 ; i < pmCmdContDOList.size() ; i++){ + pmCmdContDOList.get(i).setPmCmdContId(id.add(BigDecimal.valueOf(i+1))); + pmCmdContDOList.get(i).setTenantId(BigDecimal.valueOf(1)); + pmCmdContDOList.get(i).setObjectVersionNumber(BigDecimal.valueOf(1)); + subMapper.insertPmCmdCont(pmCmdContDOList.get(i)); + } + } + } diff --git a/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/tool/service/TransactionService.java b/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/tool/service/TransactionService.java new file mode 100644 index 0000000..13cf21c --- /dev/null +++ b/1024shop-manager/1024shop-manager/src/main/java/net/xdclass/shopmanager/tool/service/TransactionService.java @@ -0,0 +1,58 @@ +package net.xdclass.shopmanager.tool.service; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.datasource.DataSourceTransactionManager; +import org.springframework.stereotype.Component; +import org.springframework.transaction.TransactionDefinition; +import org.springframework.transaction.TransactionStatus; +import org.springframework.transaction.support.DefaultTransactionDefinition; + +/** + * @author holly + * @date 2023/4/13 + * @description 事务控制 + */ +@Component +public class TransactionService { + @Autowired + private DataSourceTransactionManager transactionManager; + + /** + * 开启新事务 + */ + public TransactionStatus begin() { + DefaultTransactionDefinition def = new DefaultTransactionDefinition(); + //事物隔离级别(读已提交) + def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED); + //默认事务 + return transactionManager.getTransaction(def); + } + + /** + * 开启事务 + */ + public TransactionStatus begin(int isolationLevel, int propagationBehavior) { + DefaultTransactionDefinition def = new DefaultTransactionDefinition(); + //事物隔离级别 + def.setIsolationLevel(isolationLevel); + //事务传播行为 + def.setPropagationBehavior(propagationBehavior); + //默认事务 + return transactionManager.getTransaction(def); + } + + /** + * 提交事务 + */ + public void commit(TransactionStatus transactionStatus) { + //提交事务 + transactionManager.commit(transactionStatus); + } + + /** + * 回滚事务 + */ + public void rollback(TransactionStatus transactionStatus) { + transactionManager.rollback(transactionStatus); + } +} \ No newline at end of file diff --git a/1024shop-manager/1024shop-manager/src/main/resources/logback.xml b/1024shop-manager/1024shop-manager/src/main/resources/logback.xml index df8a482..b0c7476 100644 --- a/1024shop-manager/1024shop-manager/src/main/resources/logback.xml +++ b/1024shop-manager/1024shop-manager/src/main/resources/logback.xml @@ -125,6 +125,11 @@ + + + + + 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 847c359..9d0286c 100644 --- a/1024shop-manager/1024shop-manager/src/main/resources/mapper/SubMapper.xml +++ b/1024shop-manager/1024shop-manager/src/main/resources/mapper/SubMapper.xml @@ -357,4 +357,1817 @@ ) + + + INSERT INTO PM_PD_SLAB ( + PM_PD_SLAB_ID, + VIRTUAL_SLAB_NO, + MAT_DESIGN_KIND, + SLAB_NO, + PONO, + SLAB_DIV_NO, + FORM_PLATE_MODE, + PICK_MODE_LEN_DIR, + PICK_MODE_WID_DIR, + FUR_TYPE, + AUTO_MANUAL_FLAG, + ORDER_REMAIN_DIV, + CAN_DEL_FLAG, + ORDER_NUM_IN_PLATE, + TOT_SMALL_PLATE_NUM, + AD_TYPE_CODE, + AD_MODE_CODE, + ULT_CODE, + COOL_CODE, + CTRL_ROLL_CODE, + WITH_SIDE_FLAG, + CUT_MODE_CODE, + HEAD_CUT, + TAIL_CUT, + URG_ORDER_FLAG, + SG_SIGN, + ST_NO, + ST_NO1, + ST_NO2, + ST_NO3, + ST_NO4, + ST_NO5, + ST_NO6, + ST_NO7, + ST_NO8, + ST_NO9, + OUT_SG_NO, + SG_DECIDE_TIME, + PRE_CLEAN_SLAB_THICK, + PRE_CLEAN_SLAB_WIDTH, + PRE_CLEAN_SLAB_LEN, + PRE_CLEAN_SLAB_MAX_LEN, + PRE_CLEAN_SLAB_MIN_LEN, + PRE_CLEAN_SLAB_WT, + PRE_CLEAN_SLAB_MAX_WT, + PRE_CLEAN_SLAB_MIN_WT, + INFUR_SLAB_THICK, + INFUR_SLAB_WID, + INFUR_SLAB_LEN, + INFUR_SLAB_MAX_LEN, + INFUR_SLAB_MIN_LEN, + INFUR_SLAB_WT, + INFUR_SLAB_MAX_WT, + INFUR_SLAB_MIN_WT, + NEED_SLAB_LEN, + NEED_SLAB_WT, + FIX_SLAB_LEN_FLAG, + FIX_SLAB_LEN, + SLAB_CLEAN_WT_LOSS_RATE_ST, + SLAB_CLEAN_WT_LOSS_RATE_FR, + HP_FLAME_CLEAN_DIV, + SLAB_FINISH_CODE, + SLAB_PLACE_CODE, + ROLL_AIM_THICK, + ROLL_AIM_WIDTH, + ROLL_AIM_LEN, + ORDER_THICK_AXIS, + COMBINE_PLATE_WIDTH, + COMBINE_PLATE_LEN, + ROLL_WT_HP, + ROLL_THICK_TOL_MAX, + ROLL_THICK_TOL_MIN, + NORM_YIELD, + COMMAND_YIELD, + ROLL_YIELD, + EDGER_USE_FLAG, + BROAD_MAS_USE_FLAG, + FORM_MAS_USE_FLAG, + ROLL_DIRECT_CODE, + SAMPLE_LEN_HEAD, + SAMPLE_LEN_TAIL, + SAMPLE_LEN_MID, + RS_CODE, + BROAD_FLAG, + TAPER_ROLL_THICK1, + TAPER_ROLL_THICK_MAX1, + TAPER_ROLL_THICK_MIN1, + TAPER_ROLL_THICK2, + TAPER_ROLL_THICK_MAX2, + TAPER_ROLL_THICK_MIN2, + TAPER_ROLL_THICK3, + TAPER_ROLL_THICK_MAX3, + TAPER_ROLL_THICK_MIN3, + TAPER_ROLL_WIDTH, + TAPER_ROLL_LEN1, + TAPER_ROLL_LEN2, + TAPER_ROLL_LEN3, + TAPER_ROLL_LEN4, + LAST_SLAB_FLAG, + ADD_SLAB_FLAG, + SHP_CODE, + ULT_DETECT_METHOD_CODE, + TAPER_ROLL_THICK4, + TAPER_ROLL_THICK_MAX4, + TAPER_ROLL_THICK_MIN4, + TAPER_ROLL_THICK5, + TAPER_ROLL_THICK_MAX5, + TAPER_ROLL_THICK_MIN5, + TAPER_ROLL_THICK6, + TAPER_ROLL_THICK_MAX6, + TAPER_ROLL_THICK_MIN6, + TAPER_ROLL_THICK7, + TAPER_ROLL_THICK_MAX7, + TAPER_ROLL_THICK_MIN7, + TAPER_ROLL_LEN6, + TAPER_ROLL_LEN7, + TENANT_ID, + OBJECT_VERSION_NUMBER, + CREATED_BY, + LAST_UPDATED_BY, + LAST_UPDATE_DATE, + ATTRIBUTE1, + ATTRIBUTE2, + ATTRIBUTE3, + ATTRIBUTE4, + ATTRIBUTE5, + PD_STATUS_HP, + PD_RESP, + IG_MAT_DESIGN_KIND, + INGOT_TYPE, + TWO_ROLL_INTERIM_FLAG, + ORDER_NO_AXIS, + MSC_LINE_NO, + TRANS_FLAG, + CREATION_DATE + ) VALUES ( + #{pmPdSlabId}, + #{virtualSlabNo}, + #{matDesignKind}, + #{slabNo}, + #{pono}, + #{slabDivNo}, + #{formPlateMode}, + #{pickModeLenDir}, + #{pickModeWidDir}, + #{furType}, + #{autoManualFlag}, + #{orderRemainDiv}, + #{canDelFlag}, + #{orderNumInPlate}, + #{totSmallPlateNum}, + #{adTypeCode}, + #{adModeCode}, + #{ultCode}, + #{coolCode}, + #{ctrlRollCode}, + #{withSideFlag}, + #{cutModeCode}, + #{headCut}, + #{tailCut}, + #{urgOrderFlag}, + #{sgSign}, + #{stNo}, + #{stNo1}, + #{stNo2}, + #{stNo3}, + #{stNo4}, + #{stNo5}, + #{stNo6}, + #{stNo7}, + #{stNo8}, + #{stNo9}, + #{outSgNo}, + #{sgDecideTime}, + #{preCleanSlabThick}, + #{preCleanSlabWidth}, + #{preCleanSlabLen}, + #{preCleanSlabMaxLen}, + #{preCleanSlabMinLen}, + #{preCleanSlabWt}, + #{preCleanSlabMaxWt}, + #{preCleanSlabMinWt}, + #{infurSlabThick}, + #{infurSlabWid}, + #{infurSlabLen}, + #{infurSlabMaxLen}, + #{infurSlabMinLen}, + #{infurSlabWt}, + #{infurSlabMaxWt}, + #{infurSlabMinWt}, + #{needSlabLen}, + #{needSlabWt}, + #{fixSlabLenFlag}, + #{fixSlabLen}, + #{slabCleanWtLossRateSt}, + #{slabCleanWtLossRateFr}, + #{hpFlameCleanDiv}, + #{slabFinishCode}, + #{slabPlaceCode}, + #{rollAimThick}, + #{rollAimWidth}, + #{rollAimLen}, + #{orderThickAxis}, + #{combinePlateWidth}, + #{combinePlateLen}, + #{rollWtHp}, + #{rollThickTolMax}, + #{rollThickTolMin}, + #{normYield}, + #{commandYield}, + #{rollYield}, + #{edgerUseFlag}, + #{broadMasUseFlag}, + #{formMasUseFlag}, + #{rollDirectCode}, + #{sampleLenHead}, + #{sampleLenTail}, + #{sampleLenMid}, + #{rsCode}, + #{broadFlag}, + #{taperRollThick1}, + #{taperRollThickMax1}, + #{taperRollThickMin1}, + #{taperRollThick2}, + #{taperRollThickMax2}, + #{taperRollThickMin2}, + #{taperRollThick3}, + #{taperRollThickMax3}, + #{taperRollThickMin3}, + #{taperRollWidth}, + #{taperRollLen1}, + #{taperRollLen2}, + #{taperRollLen3}, + #{taperRollLen4}, + #{lastSlabFlag}, + #{addSlabFlag}, + #{shpCode}, + #{ultDetectMethodCode}, + #{taperRollThick4}, + #{taperRollThickMax4}, + #{taperRollThickMin4}, + #{taperRollThick5}, + #{taperRollThickMax5}, + #{taperRollThickMin5}, + #{taperRollThick6}, + #{taperRollThickMax6}, + #{taperRollThickMin6}, + #{taperRollThick7}, + #{taperRollThickMax7}, + #{taperRollThickMin7}, + #{taperRollLen6}, + #{taperRollLen7}, + #{tenantId}, + #{objectVersionNumber}, + #{createdBy}, + #{lastUpdatedBy}, + #{lastUpdateDate}, + #{attribute1}, + #{attribute2}, + #{attribute3}, + #{attribute4}, + #{attribute5}, + #{pdStatusHp}, + #{pdResp}, + #{igMatDesignKind}, + #{ingotType}, + #{twoRollInterimFlag}, + #{orderNoAxis}, + #{mscLineNo}, + #{transFlag}, + #{creationDate}) + + + + + + INSERT INTO PM_PD_SLAB ( + PM_PD_SLAB_ID, + VIRTUAL_SLAB_NO, + MAT_DESIGN_KIND, + SLAB_NO, + PONO, + SLAB_DIV_NO, + FORM_PLATE_MODE, + PICK_MODE_LEN_DIR, + PICK_MODE_WID_DIR, + FUR_TYPE, + AUTO_MANUAL_FLAG, + ORDER_REMAIN_DIV, + CAN_DEL_FLAG, + ORDER_NUM_IN_PLATE, + TOT_SMALL_PLATE_NUM, + AD_TYPE_CODE, + AD_MODE_CODE, + ULT_CODE, + COOL_CODE, + CTRL_ROLL_CODE, + WITH_SIDE_FLAG, + CUT_MODE_CODE, + HEAD_CUT, + TAIL_CUT, + URG_ORDER_FLAG, + SG_SIGN, + ST_NO, + OUT_SG_NO, + PRE_CLEAN_SLAB_THICK, + PRE_CLEAN_SLAB_WIDTH, + PRE_CLEAN_SLAB_LEN, + PRE_CLEAN_SLAB_MAX_LEN, + PRE_CLEAN_SLAB_MIN_LEN, + PRE_CLEAN_SLAB_WT, + PRE_CLEAN_SLAB_MAX_WT, + PRE_CLEAN_SLAB_MIN_WT, + INFUR_SLAB_THICK, + INFUR_SLAB_WID, + INFUR_SLAB_LEN, + INFUR_SLAB_MAX_LEN, + INFUR_SLAB_MIN_LEN, + INFUR_SLAB_WT, + INFUR_SLAB_MAX_WT, + INFUR_SLAB_MIN_WT, + FIX_SLAB_LEN_FLAG, + FIX_SLAB_LEN, + HP_FLAME_CLEAN_DIV, + SLAB_FINISH_CODE, + SLAB_PLACE_CODE, + ROLL_AIM_THICK, + ROLL_AIM_WIDTH, + ROLL_AIM_LEN, + ORDER_THICK_AXIS, + COMBINE_PLATE_WIDTH, + COMBINE_PLATE_LEN, + ROLL_WT_HP, + ROLL_THICK_TOL_MAX, + ROLL_THICK_TOL_MIN, + NORM_YIELD, + COMMAND_YIELD, + ROLL_YIELD, + EDGER_USE_FLAG, + BROAD_MAS_USE_FLAG, + FORM_MAS_USE_FLAG, + ROLL_DIRECT_CODE, + SAMPLE_LEN_HEAD, + SAMPLE_LEN_TAIL, + SAMPLE_LEN_MID, + RS_CODE, + BROAD_FLAG, + ULT_DETECT_METHOD_CODE, + TENANT_ID, + OBJECT_VERSION_NUMBER, + CREATION_DATE, + CREATED_BY, + LAST_UPDATED_BY, + LAST_UPDATE_DATE, + ATTRIBUTE1, + ATTRIBUTE2, + ATTRIBUTE3, + ATTRIBUTE4, + ATTRIBUTE5, + PD_STATUS_HP, + PD_RESP, + ORDER_NO_AXIS, + MSC_LINE_NO, + TRANS_FLAG + ) VALUES + + ( + #{item.pmPdSlabId}, + #{item.virtualSlabNo}, + #{item.matDesignKind}, + #{item.slabNo}, + #{item.pono}, + #{item.slabDivNo}, + #{item.formPlateMode}, + #{item.pickModeLenDir}, + #{item.pickModeWidDir}, + #{item.furType}, + #{item.autoManualFlag}, + #{item.orderRemainDiv}, + #{item.canDelFlag}, + #{item.orderNumInPlate}, + #{item.totSmallPlateNum}, + #{item.adTypeCode}, + #{item.adModeCode}, + #{item.ultCode}, + #{item.coolCode}, + #{item.ctrlRollCode}, + #{item.withSideFlag}, + #{item.cutModeCode}, + #{item.headCut}, + #{item.tailCut}, + #{item.urgOrderFlag}, + #{item.sgSign}, + #{item.stNo}, + #{item.outSgNo}, + #{item.preCleanSlabThick}, + #{item.preCleanSlabWidth}, + #{item.preCleanSlabLen}, + #{item.preCleanSlabMaxLen}, + #{item.preCleanSlabMinLen}, + #{item.preCleanSlabWt}, + #{item.preCleanSlabMaxWt}, + #{item.preCleanSlabMinWt}, + #{item.infurSlabThick}, + #{item.infurSlabWid}, + #{item.infurSlabLen}, + #{item.infurSlabMaxLen}, + #{item.infurSlabMinLen}, + #{item.infurSlabWt}, + #{item.infurSlabMaxWt}, + #{item.infurSlabMinWt}, + #{item.fixSlabLenFlag}, + #{item.fixSlabLen}, + #{item.hpFlameCleanDiv}, + #{item.slabFinishCode}, + #{item.slabPlaceCode}, + #{item.rollAimThick}, + #{item.rollAimWidth}, + #{item.rollAimLen}, + #{item.orderThickAxis}, + #{item.combinePlateWidth}, + #{item.combinePlateLen}, + #{item.rollWtHp}, + #{item.rollThickTolMax}, + #{item.rollThickTolMin}, + #{item.normYield}, + #{item.commandYield}, + #{item.rollYield}, + #{item.edgerUseFlag}, + #{item.broadMasUseFlag}, + #{item.formMasUseFlag}, + #{item.rollDirectCode}, + #{item.sampleLenHead}, + #{item.sampleLenTail}, + #{item.sampleLenMid}, + #{item.rsCode}, + #{item.broadFlag}, + #{item.ultDetectMethodCode}, + #{item.tenantId}, + #{item.objectVersionNumber}, + #{item.creationDate}, + #{item.createdBy}, + #{item.lastUpdatedBy}, + #{item.lastUpdateDate}, + #{item.attribute1}, + #{item.attribute2}, + #{item.attribute3}, + #{item.attribute4}, + #{item.attribute5}, + #{item.pdStatusHp}, + #{item.pdResp}, + #{item.orderNoAxis}, + #{item.mscLineNo}, + #{item.transFlag} + ) + + + + + + INSERT INTO pm_cmd_slab ( + PM_CMD_SLAB_ID, PONO_SLAB_NO, TMP_SLAB_NO, PD_BACKLOG_SEQ, PD_BACKLOG_CODE, SLAB_NO, VIRTUAL_SLAB_NO, + PD_STATUS_HP, + SHORT_SLAB_NUM_IN_LONG, BIG_PLATE_NUM, SLAB_DIV_NO, ORDER_NUM_IN_PLATE, ORDER_REMAIN_DIV, MAT_DESIGN_KIND, + PROD_CODE_HP, + SG_SIGN, ST_NO, SLAB_HT_FLAG, PRE_CLEAN_SLAB_THICK, PRE_CLEAN_SLAB_WIDTH, PRE_CLEAN_SLAB_LEN, + PRE_CLEAN_SLAB_MAX_LEN, + PRE_CLEAN_SLAB_MIN_LEN, PRE_CLEAN_SLAB_WT, PRE_CLEAN_SLAB_MAX_WT, PRE_CLEAN_SLAB_MIN_WT, MOLD_THICK, MOLD_WID, + INFUR_SLAB_THICK, INFUR_SLAB_WID, INFUR_SLAB_LEN, INFUR_SLAB_MAX_LEN, INFUR_SLAB_MIN_LEN, INFUR_SLAB_WT, + INFUR_SLAB_MAX_WT, INFUR_SLAB_MIN_WT, NEED_SLAB_LEN, NEED_SLAB_WT, FIX_SLAB_LEN_FLAG, FIX_SLAB_LEN, + ROLL_MAX_PRE_CLEAN_SLAB_LEN, ROLL_MAX_PRE_CLEAN_SLAB_WT, SLAB_PLACE_CODE, HP_FLAME_CLEAN_DIV, SLAB_FINISH_CODE, + SLAB_CLEAN_WT_LOSS_RATE_ST, SLAB_CLEAN_WT_LOSS_RATE_FR, COOL_CODE, LAST_SLAB_FLAG, ADD_SLAB_FLAG, + SLAB_PRE_PROC1, + SLAB_PRE_PROC2, SLAB_PRE_PROC3, SLAB_PRE_PROC4, SLAB_PRE_PROC5, SLAB_PRE_PROC6, SLAB_PRE_PROC7, SLAB_PRE_PROC8, + SLAB_PRE_PROC9, SLAB_PRE_PROC10, SLAB_PRE_PROC11, SLAB_PRE_PROC12, SLAB_PRE_PROC13, SLAB_PRE_PROC14, + SLAB_PRE_PROC15, + SLAB_STACK_INDICATE, HOT_SEND_DIV, FUR_TYPE, HOT_CHARGE_FLAG, ROLL_PLAN_NO, NEW_TEST_NO, FORM_PLATE_TIME, + SHP_CODE, + PONO, MSC_LINE_NO, TENANT_ID, OBJECT_VERSION_NUMBER, CREATION_DATE, CREATED_BY, LAST_UPDATED_BY, + LAST_UPDATE_DATE, + ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3, ATTRIBUTE4, ATTRIBUTE5, ORDER_NO_AXIS, TRANS_FLAG, IG_MAT_DESIGN_KIND, + INGOT_TYPE, + IS_MERGE + ) + VALUES + + ( + #{item.pmCmdSlabId}, #{item.ponoSlabNo}, #{item.tmpSlabNo}, #{item.pdBacklogSeq}, #{item.pdBacklogCode}, + #{item.slabNo}, + #{item.virtualSlabNo}, #{item.pdStatusHp}, #{item.shortSlabNumInLong}, #{item.bigPlateNum}, + #{item.slabDivNo}, + #{item.orderNumInPlate}, #{item.orderRemainDiv}, #{item.matDesignKind}, #{item.prodCodeHp}, #{item.sgSign}, + #{item.stNo}, #{item.slabHtFlag}, #{item.preCleanSlabThick}, #{item.preCleanSlabWidth}, + #{item.preCleanSlabLen}, + #{item.preCleanSlabMaxLen}, #{item.preCleanSlabMinLen}, #{item.preCleanSlabWt}, #{item.preCleanSlabMaxWt}, + #{item.preCleanSlabMinWt}, #{item.moldThick}, #{item.moldWid}, #{item.infurSlabThick}, #{item.infurSlabWid}, + #{item.infurSlabLen}, #{item.infurSlabMaxLen}, #{item.infurSlabMinLen}, #{item.infurSlabWt}, + #{item.infurSlabMaxWt}, + #{item.infurSlabMinWt}, #{item.needSlabLen}, #{item.needSlabWt}, #{item.fixSlabLenFlag}, #{item.fixSlabLen}, + #{item.rollMaxPreCleanSlabLen}, #{item.rollMaxPreCleanSlabWt}, #{item.slabPlaceCode}, + #{item.hpFlameCleanDiv}, + #{item.slabFinishCode}, #{item.slabCleanWtLossRateSt}, #{item.slabCleanWtLossRateFr}, #{item.coolCode}, + #{item.lastSlabFlag}, #{item.addSlabFlag}, #{item.slabPreProc1}, #{item.slabPreProc2}, #{item.slabPreProc3}, + #{item.slabPreProc4}, #{item.slabPreProc5}, #{item.slabPreProc6}, #{item.slabPreProc7}, + #{item.slabPreProc8}, + #{item.slabPreProc9}, #{item.slabPreProc10}, #{item.slabPreProc11}, #{item.slabPreProc12}, + #{item.slabPreProc13}, + #{item.slabPreProc14}, #{item.slabPreProc15}, #{item.slabStackIndicate}, #{item.hotSendDiv}, + #{item.furType}, + #{item.hotChargeFlag}, #{item.rollPlanNo}, #{item.newTestNo}, #{item.formPlateTime}, #{item.shpCode}, + #{item.pono}, + #{item.mscLineNo}, #{item.tenantId}, #{item.objectVersionNumber}, #{item.creationDate}, #{item.createdBy}, + #{item.lastUpdatedBy}, #{item.lastUpdateDate}, #{item.attribute1}, #{item.attribute2}, #{item.attribute3}, + #{item.attribute4}, #{item.attribute5}, #{item.orderNoAxis}, #{item.transFlag}, #{item.igMatDesignKind}, + #{item.ingotType}, #{item.isMerge} + ) + + + + + INSERT INTO PM_CMD_SLAB ( + PM_CMD_SLAB_ID, + PONO_SLAB_NO, + TMP_SLAB_NO, + PD_BACKLOG_SEQ, + PD_BACKLOG_CODE, + SLAB_NO, + VIRTUAL_SLAB_NO, + PD_STATUS_HP, + SHORT_SLAB_NUM_IN_LONG, + BIG_PLATE_NUM, + SLAB_DIV_NO, + ORDER_NUM_IN_PLATE, + ORDER_REMAIN_DIV, + MAT_DESIGN_KIND, + PROD_CODE_HP, + SG_SIGN, + ST_NO, + SLAB_HT_FLAG, + PRE_CLEAN_SLAB_THICK, + PRE_CLEAN_SLAB_WIDTH, + PRE_CLEAN_SLAB_LEN, + PRE_CLEAN_SLAB_MAX_LEN, + PRE_CLEAN_SLAB_MIN_LEN, + PRE_CLEAN_SLAB_WT, + PRE_CLEAN_SLAB_MAX_WT, + PRE_CLEAN_SLAB_MIN_WT, + MOLD_THICK, + MOLD_WID, + INFUR_SLAB_THICK, + INFUR_SLAB_WID, + INFUR_SLAB_LEN, + INFUR_SLAB_MAX_LEN, + INFUR_SLAB_MIN_LEN, + INFUR_SLAB_WT, + INFUR_SLAB_MAX_WT, + INFUR_SLAB_MIN_WT, + NEED_SLAB_LEN, + NEED_SLAB_WT, + FIX_SLAB_LEN_FLAG, + FIX_SLAB_LEN, + ROLL_MAX_PRE_CLEAN_SLAB_LEN, + ROLL_MAX_PRE_CLEAN_SLAB_WT, + SLAB_PLACE_CODE, + HP_FLAME_CLEAN_DIV, + SLAB_FINISH_CODE, + SLAB_CLEAN_WT_LOSS_RATE_ST, + SLAB_CLEAN_WT_LOSS_RATE_FR, + COOL_CODE, + LAST_SLAB_FLAG, + ADD_SLAB_FLAG, + SLAB_PRE_PROC1, + SLAB_PRE_PROC2, + SLAB_PRE_PROC3, + SLAB_PRE_PROC4, + SLAB_PRE_PROC5, + SLAB_PRE_PROC6, + SLAB_PRE_PROC7, + SLAB_PRE_PROC8, + SLAB_PRE_PROC9, + SLAB_PRE_PROC10, + SLAB_PRE_PROC11, + SLAB_PRE_PROC12, + SLAB_PRE_PROC13, + SLAB_PRE_PROC14, + SLAB_PRE_PROC15, + SLAB_STACK_INDICATE, + HOT_SEND_DIV, + FUR_TYPE, + HOT_CHARGE_FLAG, + ROLL_PLAN_NO, + NEW_TEST_NO, + FORM_PLATE_TIME, + SHP_CODE, + PONO, + MSC_LINE_NO, + TENANT_ID, + OBJECT_VERSION_NUMBER, + CREATED_BY, + LAST_UPDATED_BY, + LAST_UPDATE_DATE, + ATTRIBUTE1, + ATTRIBUTE2, + ATTRIBUTE3, + ATTRIBUTE4, + ATTRIBUTE5, + ORDER_NO_AXIS, + TRANS_FLAG, + IG_MAT_DESIGN_KIND, + INGOT_TYPE, + IS_MERGE, + CREATION_DATE + )VALUES( + #{pmCmdSlabId}, + #{ponoSlabNo}, + #{tmpSlabNo}, + #{pdBacklogSeq}, + #{pdBacklogCode}, + #{slabNo}, + #{virtualSlabNo}, + #{pdStatusHp}, + #{shortSlabNumInLong}, + #{bigPlateNum}, + #{slabDivNo}, + #{orderNumInPlate}, + #{orderRemainDiv}, + #{matDesignKind}, + #{prodCodeHp}, + #{sgSign}, + #{stNo}, + #{slabHtFlag}, + #{preCleanSlabThick}, + #{preCleanSlabWidth}, + #{preCleanSlabLen}, + #{preCleanSlabMaxLen}, + #{preCleanSlabMinLen}, + #{preCleanSlabWt}, + #{preCleanSlabMaxWt}, + #{preCleanSlabMinWt}, + #{moldThick}, + #{moldWid}, + #{infurSlabThick}, + #{infurSlabWid}, + #{infurSlabLen}, + #{infurSlabMaxLen}, + #{infurSlabMinLen}, + #{infurSlabWt}, + #{infurSlabMaxWt}, + #{infurSlabMinWt}, + #{needSlabLen}, + #{needSlabWt}, + #{fixSlabLenFlag}, + #{fixSlabLen}, + #{rollMaxPreCleanSlabLen}, + #{rollMaxPreCleanSlabWt}, + #{slabPlaceCode}, + #{hpFlameCleanDiv}, + #{slabFinishCode}, + #{slabCleanWtLossRateSt}, + #{slabCleanWtLossRateFr}, + #{coolCode}, + #{lastSlabFlag}, + #{addSlabFlag}, + #{slabPreProc1}, + #{slabPreProc2}, + #{slabPreProc3}, + #{slabPreProc4}, + #{slabPreProc5}, + #{slabPreProc6}, + #{slabPreProc7}, + #{slabPreProc8}, + #{slabPreProc9}, + #{slabPreProc10}, + #{slabPreProc11}, + #{slabPreProc12}, + #{slabPreProc13}, + #{slabPreProc14}, + #{slabPreProc15}, + #{slabStackIndicate}, + #{hotSendDiv}, + #{furType}, + #{hotChargeFlag}, + #{rollPlanNo}, + #{newTestNo}, + #{formPlateTime}, + #{shpCode}, + #{pono}, + #{mscLineNo}, + #{tenantId}, + #{objectVersionNumber}, + #{createdBy}, + #{lastUpdatedBy}, + #{lastUpdateDate}, + #{attribute1}, + #{attribute2}, + #{attribute3}, + #{attribute4}, + #{attribute5}, + #{orderNoAxis}, + #{transFlag}, + #{igMatDesignKind}, + #{ingotType}, + #{isMerge}, + #{creationDate} + ) + + + + + INSERT INTO PM_CMD_LARGE_PLT ( + PM_CMD_LARGE_PLT_ID, + PONO_SLAB_NO, + TMP_SLAB_NO, + AD_TYPE_CODE, + AD_MODE_CODE, + ULT_CODE, + UOE_FLAG, + COOL_CODE, + CTRL_ROLL_CODE, + WITH_SIDE_FLAG, + CUT_MODE_CODE, + HEAD_CUT, + TAIL_CUT, + SG_SIGN, + ST_NO, + TWO_ROLL_INTERIM_FLAG, + ROLL_AIM_THICK, + ROLL_AIM_WIDTH, + ROLL_AIM_LEN, + ROLL_THICK_TOL_MAX, + ROLL_THICK_TOL_MIN, + MAX_ROLL_THICK, + MIN_ROLL_THICK, + ORDER1_THICK, + COMBINE_PLATE_WIDTH, + COMBINE_PLATE_LEN, + ROLL_WT_HP, + NORM_YIELD, + COMMAND_YIELD, + ROLL_YIELD, + EDGER_USE_FLAG, + BROAD_MAS_USE_FLAG, + FORM_MAS_USE_FLAG, + ROLL_DIRECT_CODE, + SAMPLE_LEN_HEAD, + SAMPLE_LEN_TAIL, + SAMPLE_LEN_MID, + SAMPLE_LEN_GIVE, + RS_CODE, + BROAD_FLAG, + TAPER_ROLL_THICK1, + TAPER_ROLL_THICK_MAX1, + TAPER_ROLL_THICK_MIN1, + TAPER_ROLL_THICK2, + TAPER_ROLL_THICK_MAX2, + TAPER_ROLL_THICK_MIN2, + TAPER_ROLL_THICK3, + TAPER_ROLL_THICK_MAX3, + TAPER_ROLL_THICK_MIN3, + TAPER_ROLL_WIDTH, + TAPER_ROLL_LEN1, + TAPER_ROLL_LEN2, + TAPER_ROLL_LEN3, + TAPER_ROLL_LEN4, + TAPER_ROLL_LEN5, + G_FLAG, + CS_FLAG, + DSS_FLAG, + SS_FLAG, + DS_FLAG, + FORM_PLATE_TIME, + OTHER_PLATE_NO1, + OTHER_PLATE_NO2, + OTHER_PLATE_NO3, + OTHER_PLATE_NO4, + PLATE_PRE_PROC1, + PLATE_PRE_PROC2, + PLATE_PRE_PROC3, + PLATE_PRE_PROC4, + PLATE_PRE_PROC5, + PLATE_PRE_PROC6, + PLATE_PRE_PROC7, + PLATE_PRE_PROC8, + PLATE_PRE_PROC9, + PLATE_PRE_PROC10, + PLATE_PRE_PROC11, + PLATE_PRE_PROC12, + PLATE_PRE_PROC13, + PLATE_PRE_PROC14, + PLATE_PRE_PROC15, + PLATE_PRE_PROC16, + PLATE_PRE_PROC17, + PLATE_PRE_PROC18, + PLATE_PRE_PROC19, + PLATE_PRE_PROC20, + PLATE_PRE_PROC21, + PLATE_PRE_PROC22, + PLATE_PRE_PROC23, + PLATE_PRE_PROC24, + PLATE_PRE_PROC25, + PLATE_PRE_PROC26, + PLATE_PRE_PROC27, + PLATE_PRE_PROC28, + PLATE_PRE_PROC29, + PLATE_PRE_PROC30, + PROD_DENSITY, + ROLL_PLATE_DEST, + PLATE_DT_CODE, + TRACE_CODE, + MIN_CR1_THICK, + CR1_TEMP_AIM + MAX_CR1_TEMP, + MIN_CR1_TEMP, + MIN_PRESS_BEF_CR1, + MIN_CR2_THICK, + CR2_TEMP_AIM, + MIN_CR2_TEMP, + MAX_CR2_TEMP, + MIN_PRESS_BEF_CR2, + AFFT_TEMP_AIM, + MAX_AFFT_TEMP, + MIN_AFFT_TEMP, + MIN_PRESS_LAST, + MIDDLE_COOL_MODE, + MAX_MIDDLE_COOL_SPEED, + MAX_ACC_WAIT_TIME, + MIN_ACC_WAIT_TIME, + FAST_BG_TEMP_AIM, + MAX_FAST_BG_TEMP, + MIN_FAST_BG_TEMP, + FAST_SP_AIM, + MAX_FAST_SP, + MIN_FAST_SP, + FAST_END_TEMP_AIM, + MAX_FAST_END_TEMP, + MIN_FAST_END_TEMP, + SLOW1_TB_BG_TEMP_AIM, + MAX_SLOW1_BG_TEMP, + MIN_SLOW1_BG_TEMP, + SLOW1_SP_AIM, + MAX_SLOW1_SP, + MIN_SLOW1_SP, + SLOW1_END_TEMP_AIM, + MAX_SLOW1_END_TEMP, + MIN_SLOW1_END_TEMP, + SLOW2_TB_BG_TEMP_AIM, + MAX_SLOW2_BG_TEMP, + MIN_SLOW2_BG_TEMP, + SLOW2_SP_AIM, + MAX_SLOW2_SP, + MIN_SLOW2_SP, + SLOW2_END_TEMP_AIM, + MAX_SLOW2_END_TEMP, + MIN_SLOW2_END_TEMP, + STAND_FLAG, + EXPAND_QUOT, + PLATE_CONVEX_AIM, + HOT_RECTIFY_FLAG, + HOT_RECTIFY_METHOD_CODE, + TS_MAX, + TS_MIN, + PRESS_APPOINT, + FINISH_PLAN_DATE, + SHP_CODE, + ROLL_PLAN_TYPE, + ULT_DETECT_METHOD_CODE, + SAMPLE_HEAD_LEN_FREE, + SAMPLE_TAIL_LEN_FREE, + SAMPLE_HEAD_LEN_PLATE, + SAMPLE_TAIL_LEN_PLATE, + SAMPLE_HEAD_LEN_MB, + SAMPLE_TAIL_LEN_MB, + ACC_TEMP_START, + ACC_TEMP_END, + ACC_COLD_V, + LOAD_FUR_TEMP, + HEAT_TEMP, + FIRST_THICK, + FIRST_BG_TEMP, + FIRST_END_TEMP, + SCD_THICK, + SCD_BG_TEMP, + SCD_END_TEMP, + MSC_LINE_NO, + TAPER_ROLL_THICK4, + TAPER_ROLL_THICK_MAX4, + TAPER_ROLL_THICK_MIN4, + TAPER_ROLL_THICK5, + TAPER_ROLL_THICK_MAX5, + TAPER_ROLL_THICK_MIN5, + TAPER_ROLL_THICK6, + TAPER_ROLL_THICK_MAX6, + TAPER_ROLL_THICK_MIN6, + TAPER_ROLL_THICK7, + TAPER_ROLL_THICK_MAX7, + TAPER_ROLL_THICK_MIN7, + TAPER_ROLL_LEN6, + TAPER_ROLL_LEN7, + TENANT_ID, + OBJECT_VERSION_NUMBER, + CREATED_BY, + LAST_UPDATED_BY, + LAST_UPDATE_DATE, + ATTRIBUTE1, + ATTRIBUTE2, + ATTRIBUTE3, + ATTRIBUTE4, + ATTRIBUTE5, + SAMPLE_LEN, + IS_MERGE, + REPLACE_FLAG, + ROLL_MODE, + CREATION_DATE + ) + VALUES ( + #{pmCmdLargePltId}, + #{ponoSlabNo}, + #{tmpSlabNo}, + #{adTypeCode}, + #{adModeCode}, + #{ultCode}, + #{uoeFlag}, + #{coolCode}, + #{ctrlRollCode}, + #{withSideFlag}, + #{cutModeCode}, + #{headCut}, + #{tailCut}, + #{sgSign}, + #{stNo}, + #{twoRollInterimFlag}, + #{rollAimThick}, + #{rollAimWidth}, + #{rollAimLen}, + #{rollThickTolMax}, + #{rollThickTolMin}, + #{maxRollThick}, + #{minRollThick}, + #{order1Thick}, + #{combinePlateWidth}, + #{combinePlateLen}, + #{rollWtHp}, + #{normYield}, + #{commandYield}, + #{rollYield}, + #{edgerUseFlag}, + #{broadMasUseFlag}, + #{formMasUseFlag}, + #{rollDirectCode}, + #{sampleLenHead}, + #{sampleLenTail}, + #{sampleLenMid}, + #{sampleLenGive}, + #{rsCode}, + #{broadFlag}, + #{taperRollThick1}, + #{taperRollThickMax1}, + #{taperRollThickMin1}, + #{taperRollThick2}, + #{taperRollThickMax2}, + #{taperRollThickMin2}, + #{taperRollThick3}, + #{taperRollThickMax3}, + #{taperRollThickMin3}, + #{taperRollWidth}, + #{taperRollLen1}, + #{taperRollLen2}, + #{taperRollLen3}, + #{taperRollLen4}, + #{taperRollLen5}, + #{gFlag}, + #{csFlag}, + #{dssFlag}, + #{ssFlag}, + #{dsFlag}, + #{formPlateTime}, + #{otherPlateNo1}, + #{otherPlateNo2}, + #{otherPlateNo3}, + #{otherPlateNo4}, + #{platePreProc1}, + #{platePreProc2}, + #{platePreProc3}, + #{platePreProc4}, + #{platePreProc5}, + #{platePreProc6}, + #{platePreProc7}, + #{platePreProc8}, + #{platePreProc9}, + #{platePreProc10}, + #{platePreProc11}, + #{platePreProc12}, + #{platePreProc13}, + #{platePreProc14}, + #{platePreProc15}, + #{platePreProc16}, + #{platePreProc17}, + #{platePreProc18}, + #{platePreProc19}, + #{platePreProc20}, + #{platePreProc21}, + #{platePreProc22}, + #{platePreProc23}, + #{platePreProc24}, + #{platePreProc25}, + #{platePreProc26}, + #{platePreProc27}, + #{platePreProc28}, + #{platePreProc29}, + #{platePreProc30}, + #{prodDensity}, + #{rollPlateDest}, + #{plateDtCode}, + #{traceCode}, + #{minCr1Thick}, + #{cr1TempAim} + #{maxCr1Temp}, + #{minCr1Temp}, + #{minPressBefcr1}, + #{minCr2Thick}, + #{cr2TempAim}, + #{minCr2Temp}, + #{maxCr2Temp}, + #{minPressBefcr2}, + #{afftTempAim}, + #{maxAfftTemp}, + #{minAfftTemp}, + #{minPressLast}, + #{middleCoolMode}, + #{maxMiddleCoolSpeed}, + #{maxAccWaitTime}, + #{minAccWaitTime}, + #{fastBgTempAim}, + #{maxFastBgTemp}, + #{minFastBgTemp}, + #{fastSpAim}, + #{maxFastSp}, + #{minFastSp}, + #{fastEndTempAim}, + #{maxFastEndTemp}, + #{minFastEndTemp}, + #{slow1TBgTempAim}, + #{maxSlow1BgTemp}, + #{minSlow1BgTemp}, + #{slow1SpAim}, + #{maxSlow1Sp}, + #{minSlow1Sp}, + #{slow1EndTempAim}, + #{maxSlow1EndTemp}, + #{minSlow1EndTemp}, + #{slow2TBgTempAim}, + #{maxSlow2BgTemp}, + #{minSlow2BgTemp}, + #{slow2SpAim}, + #{maxSlow2Sp}, + #{minSlow2Sp}, + #{slow2EndTempAim}, + #{maxSlow2EndTemp}, + #{minSlow2EndTemp}, + #{standFlag}, + #{expandQuot} + #{plateConvexAim}, + #{hotRectifyFlag}, + #{hotRectifyMethodCode}, + #{tsMax}, + #{tsMin}, + #{pressAppoint}, + #{finishPlanDate}, + #{shpCode}, + #{rollPlanType}, + #{ultDetectMethodCode}, + #{sampleHeadLenFree}, + #{sampleTailLenFree}, + #{sampleHeadLenPlate}, + #{sampleTailLenPlate}, + #{sampleHeadLenMb}, + #{sampleTailLenMb}, + #{accTempStart}, + #{accTempEnd}, + #{accColdV}, + #{loadFurTemp}, + #{heatTemp}, + #{firstThick}, + #{firstBgTemp}, + #{firstEndTemp}, + #{scdThick}, + #{scdBgTemp}, + #{scdEndTemp}, + #{mscLineNo}, + #{taperRollThick4}, + #{taperRollThickMax4}, + #{taperRollThickMin4}, + #{taperRollThick5}, + #{taperRollThickMax5}, + #{taperRollThickMin5}, + #{taperRollThick6}, + #{taperRollThickMax6}, + #{taperRollThickMin6}, + #{taperRollThick7}, + #{taperRollThickMax7}, + #{taperRollThickMin7}, + #{taperRollLen6}, + #{taperRollLen7}, + #{tenantId}, + #{objectVersionNumber}, + #{createdBy}, + #{lastUpdatedBy}, + #{lastUpdateDate}, + #{attribute1}, + #{attribute2}, + #{attribute3}, + #{attribute4}, + #{attribute5}, + #{sampleLen}, + #{isMerge}, + #{replaceFlag}, + #{rollMode}, + #{creationDate} + ) + + + + + + INSERT INTO PM_PD_PLATE_CUT ( + CUT_ID, + PD_MAT_NO, + CUT_TYPE, + POSITION_TYPE, + POSITION_SEQ, + TENANT_ID, + OBJECT_VERSION_NUMBER, + CREATED_BY, + LAST_UPDATED_BY, + LAST_UPDATE_DATE, + ATTRIBUTE1, + ATTRIBUTE2, + ATTRIBUTE3, + ATTRIBUTE4, + ATTRIBUTE5, + CUT_LENGTH, + CREATION_DATE + ) + VALUES ( + #{cutId}, + #{pdMatNo}, + #{cutType}, + #{positionType}, + #{positionSeq}, + #{tenantId}, + #{objectVersionNumber}, + #{createdBy}, + #{lastUpdatedBy}, + #{lastUpdateDate}, + #{attribute1}, + #{attribute2}, + #{attribute3}, + #{attribute4}, + #{attribute5}, + #{cutLength}, + #{creationDate} + ) + + + + + INSERT INTO PM_PD_BLOCK_POS ( + PD_BLOCK_POS_ID, + PD_MAT_NO, + ORDER_BLOCK_NO, + ORDER_NO, + PRO_CONT_ID, + ORDER_SEQ_NO, + BLOCK_PLATE_NUM, + SLAB_NO, + PLATE_NO, + TENANT_ID, + OBJECT_VERSION_NUMBER, + CREATED_BY, + LAST_UPDATED_BY, + LAST_UPDATE_DATE, + ATTRIBUTE1, + ATTRIBUTE2, + ATTRIBUTE3, + ATTRIBUTE4, + ATTRIBUTE5, + CREATION_DATE + ) + VALUES ( + #{pdBlockPosId}, + #{pdMatNo}, + #{orderBlockNo}, + #{orderNo}, + #{proContId}, + #{orderSeqNo}, + #{blockPlateNum}, + #{slabNo}, + #{plateNo}, + #{tenantId}, + #{objectVersionNumber}, + #{createdBy}, + #{lastUpdatedBy}, + #{lastUpdateDate}, + #{attribute1}, + #{attribute2}, + #{attribute3}, + #{attribute4}, + #{attribute5}, + #{creationDate} + ) + + + + + + INSERT INTO PM_PD_CONT_SUM ( + PPCS_ID, + PRO_CONT_ID, + PD_MAT_NO, + ORDER_NO, + ORDER_SEQ_NO, + ORDER_PLATE_NUM, + PD_MAT_TYPE, + SLAB_NO, + PLATE_NO, + PD_STATUS, + AXIS_FLAG, + ORDER_THICK, + ORDER_WIDTH, + ORDER_LEN, + ORDER_LEN_MIN, + ORDER_LEN_MAX, + SMALL_PLATE_THICK, + SMALL_PLATE_WIDTH, + SMALL_PLATE_LEN, + TENANT_ID, + OBJECT_VERSION_NUMBER, + CREATED_BY, + LAST_UPDATED_BY, + LAST_UPDATE_DATE, + ATTRIBUTE1, + ATTRIBUTE2, + ATTRIBUTE3, + ATTRIBUTE4, + ATTRIBUTE5, + CREATION_DATE + ) + VALUES ( + #{ppcsId}, + #{proContId}, + #{pdMatNo}, + #{orderNo}, + #{orderSeqNo}, + #{orderPlateNum}, + #{pdMatType}, + #{slabNo}, + #{plateNo}, + #{pdStatus}, + #{axisFlag}, + #{orderThick}, + #{orderWidth}, + #{orderLen}, + #{orderLenMin}, + #{orderLenMax}, + #{smallPlateThick}, + #{smallPlateWidth}, + #{smallPlateLen}, + #{tenantId}, + #{objectVersionNumber}, + #{createdBy}, + #{lastUpdatedBy}, + #{lastUpdateDate}, + #{attribute1}, + #{attribute2}, + #{attribute3}, + #{attribute4}, + #{attribute5}, + #{creationDate} + ) + + + + + INSERT INTO PM_SMALL_PLT_POS ( + PSPP_ID, + PD_MAT_NO, + SMALL_PLATE_DIV_NO, + ORDER_NO, + PRO_CONT_ID, + ORDER_SEQ_NO, + SLAB_NO, + PLATE_NO, + PICK_MODE_WID_DIR, + PICK_MODE_LEN_DIR, + ORDER_THICK, + ORDER_WIDTH, + ORDER_LEN, + ORDER_LEN_MIN, + ORDER_LEN_MAX, + SMALL_PLATE_THICK, + SMALL_PLATE_WIDTH, + SMALL_PLATE_LEN, + TENANT_ID, + OBJECT_VERSION_NUMBER, + CREATED_BY, + LAST_UPDATED_BY, + LAST_UPDATE_DATE, + ATTRIBUTE1, + ATTRIBUTE2, + ATTRIBUTE3, + ATTRIBUTE4, + ATTRIBUTE5, + CREATION_DATE + ) + VALUES ( + #{psppId}, + #{pdMatNo}, + #{smallPlateDivNo}, + #{orderNo}, + #{proContId}, + #{orderSeqNo}, + #{slabNo}, + #{plateNo}, + #{pickModeWidDir}, + #{pickModeLenDir}, + #{orderThick}, + #{orderWidth}, + #{orderLen}, + #{orderLenMin}, + #{orderLenMax}, + #{smallPlateThick}, + #{smallPlateWidth}, + #{smallPlateLen}, + #{tenantId}, + #{objectVersionNumber}, + #{createdBy}, + #{lastUpdatedBy}, + #{lastUpdateDate}, + #{attribute1}, + #{attribute2}, + #{attribute3}, + #{attribute4}, + #{attribute5}, + #{creationDate} + ) + + + + + INSERT INTO PM_CMD_SMALL_PLT ( + PM_CMD_SMALL_PLT_ID, + PONO_SLAB_NO, + TMP_SLAB_NO, + SMALL_PLATE_DIV_NO, + ORDER_NO, + ORDER_SEQ_NO, + SLAB_NO, + PLATE_NO, + PICK_MODE_WID_DIR, + PICK_MODE_LEN_DIR, + ORDER_THICK, + ORDER_WIDTH, + ORDER_LEN, + ORDER_LEN_MIN, + ORDER_LEN_MAX, + SMALL_PLATE_THICK, + SMALL_PLATE_WIDTH, + SMALL_PLATE_LEN, + SAMPLE_LEN_GIVE, + SAMPLE_HEAD_LEN_FREE, + SAMPLE_TAIL_LEN_FREE, + SAMPLE_HEAD_LEN_PLATE, + SAMPLE_TAIL_LEN_PLATE, + SAMPLE_HEAD_LEN_MB, + SAMPLE_TAIL_LEN_MB, + MSC_LINE_NO, + TENANT_ID, + OBJECT_VERSION_NUMBER, + CREATED_BY, + LAST_UPDATED_BY, + LAST_UPDATE_DATE, + ATTRIBUTE1, + ATTRIBUTE2, + ATTRIBUTE3, + ATTRIBUTE4, + ATTRIBUTE5, + SAMPLE_WIDTH_GIVE, + SAMPLE_GIVE_SHP, + CREATION_DATE + ) + VALUES ( + #{pmCmdSmallPltId}, + #{ponoSlabNo}, + #{tmpSlabNo}, + #{smallPlateDivNo}, + #{orderNo}, + #{orderSeqNo}, + #{slabNo}, + #{plateNo}, + #{pickModeWidDir}, + #{pickModeLenDir}, + #{orderThick}, + #{orderWidth}, + #{orderLen}, + #{orderLenMin}, + #{orderLenMax}, + #{smallPlateThick}, + #{smallPlateWidth}, + #{smallPlateLen}, + #{sampleLenGive}, + #{sampleHeadLenFree}, + #{sampleTailLenFree}, + #{sampleHeadLenPlate}, + #{sampleTailLenPlate}, + #{sampleHeadLenMb}, + #{sampleTailLenMb}, + #{mscLineNo}, + #{tenantId}, + #{objectVersionNumber}, + #{createdBy}, + #{lastUpdatedBy}, + #{lastUpdateDate}, + #{attribute1}, + #{attribute2}, + #{attribute3}, + #{attribute4}, + #{attribute5}, + #{sampleWidthGive}, + #{sampleGiveShp}, + #{creationDate} + ) + + + + + INSERT INTO PM_CMD_CONT ( + PM_CMD_CONT_ID, + PONO_SLAB_NO, + TMP_SLAB_NO, + ORDER_NO, + ORDER_SEQ_NO, + WHOLE_BACKLOG_NO, + WHOLE_BACKLOG, + PLATE_NO, + SLAB_NO, + MAT_DESIGN_KIND, + ORDER_TYPE_CODE, + EXPORT_FLAG, + FIN_CUST_CODE, + psc, + APN, + MSC, + PROD_CODE_HP, + SG_STD, + SG_SIGN, + ST_NO, + UOE_FLAG, + SHP_CODE, + SMALL_PLATE_NUM, + PROD_SR_MARK, + PROD_SIDE_MARK, + PROD_SHOT_MARK, + PROD_N_MARK, + PROD_Q_MARK, + PROD_T_MARK, + PROD_A_MARK, + BACKLOG_UT_MARK, + BACKLOG_N_MARK, + BACKLOG_Q_MARK, + BACKLOG_T_MARK, + BACKLOG_A_MARK, + BACKLOG_DEMAG_MARK, + BACKLOG_PT_MARK, + BACKLOG_MT_MARK, + BACKLOG_TMCP_MARK, + UNIT_WT_MAX, + UNIT_WT_MIN, + UNIT_WT_AIM, + ORDER_THICK, + ORDER_WIDTH, + ORDER_LEN, + WIDTH_DIV, + WIDTH_MAX, + WIDTH_MIN, + LEN_DIV, + ORDER_LEN_MIN, + ORDER_LEN_MAX, + SMALL_PLATE_THICK, + SMALL_PLATE_WIDTH, + SMALL_PLATE_LEN, + THICK1, + THICK2, + THICK3, + LEN1, + LEN2, + LEN3, + LEN4, + LEN5, + THICK_TOL1_MAX, + THICK_TOL1_MIN, + THICK_TOL2_MAX, + THICK_TOL2_MIN, + THICK_TOL3_MAX, + THICK_TOL3_MIN, + PLATE_PRE_PROC1, + PLATE_PRE_PROC2, + PLATE_PRE_PROC3, + PLATE_PRE_PROC4, + PLATE_PRE_PROC5, + PLATE_PRE_PROC6, + PLATE_PRE_PROC7, + PLATE_PRE_PROC8, + PLATE_PRE_PROC9, + PLATE_PRE_PROC10, + PLATE_PRE_PROC11, + PLATE_PRE_PROC12, + PLATE_PRE_PROC13, + PLATE_PRE_PROC14, + PLATE_PRE_PROC15, + PLATE_PRE_PROC16, + PLATE_PRE_PROC17, + PLATE_PRE_PROC18, + PLATE_PRE_PROC19, + PLATE_PRE_PROC20, + PLATE_PRE_PROC21, + PLATE_PRE_PROC22, + PLATE_PRE_PROC23, + PLATE_PRE_PROC24, + PLATE_PRE_PROC25, + PLATE_PRE_PROC26, + PLATE_PRE_PROC27, + PLATE_PRE_PROC28, + PLATE_PRE_PROC29, + PLATE_PRE_PROC30, + TRIM_CODE, + WIDEN_MIN, + COMPRESS_MIN, + ROLL_DIRECT_CODE, + CTRL_ROLL_CODE, + AD_TYPE_CODE, + AD_MODE_CODE, + HOT_RECTIFY_FLAG, + COLD_RECTIFY_FLAG, + WARM_RECTIFY_FLAG, + WARM_PRESS_FLAG, + CAN_PRESS_FLAG, + WP_TEMP_MIN, + HEAD_CUT, + TAIL_CUT, + HARD_AIM, + CUT_MODE_CODE, + G_FLAG, + CS_FLAG, + DSS_FLAG, + SS_FLAG, + DS_FLAG, + HEAT_TREAT_MODE, + KEEP_TEMP_MAX1, + KEEP_TEMP_MIN1, + KEEP_TEMP_MAX2, + KEEP_TEMP_MIN2, + KEEP_TEMP_MAX3, + KEEP_TEMP_MIN3, + KEEP_TEMP_MAX4, + KEEP_TEMP_MIN4, + KEEP_TEMP_MAX5, + KEEP_TEMP_MIN5, + KEEP_TEMP_MAX6, + KEEP_TEMP_MIN6, + BACKFIRE_MAX1, + BACKFIRE_MIN1, + BACKFIRE_MAX2, + BACKFIRE_MIN2, + BACKFIRE_MAX3, + BACKFIRE_MIN3, + BACKFIRE_MAX4, + BACKFIRE_MIN4, + BACKFIRE_MAX5, + BACKFIRE_MIN5, + BACKFIRE_MAX6, + BACKFIRE_MIN6, + WIDTH_BEFORE_QN, + LEN_BEFORE_QN, + CROP_TYPE_HP, + BETTER_SURF_WARD_CODE, + ULT_DETECT_METHOD_CODE, + ULT_CODE, + URG_ORDER_FLAG, + MSC_LINE_NO, + TENANT_ID, + OBJECT_VERSION_NUMBER, + CREATED_BY, + LAST_UPDATED_BY, + LAST_UPDATE_DATE, + ATTRIBUTE1, + ATTRIBUTE2, + ATTRIBUTE3, + ATTRIBUTE4, + ATTRIBUTE5, + AXIS_FLAG, + PD_BACKLOG_SEQ, + PD_BACKLOG_CODE, + TWO_ROLL_INTERIM_FLAG, + ROLL_MODE, + UT_CHECK_CODE, + UT_PD_CODE, + CREATION_DATE + ) + VALUES ( + #{pmCmdContId}, + #{ponoSlabNo}, + #{tmpSlabNo}, + #{orderNo}, + #{orderSeqNo}, + #{wholeBacklogNo}, + #{wholeBacklog}, + #{plateNo}, + #{slabNo}, + #{matDesignKind}, + #{orderTypeCode}, + #{exportFlag}, + #{finCustCode}, + #{psc}, + #{apn}, + #{msc}, + #{prodCodeHp}, + #{sgStd}, + #{sgSign}, + #{stNo}, + #{uoeFlag}, + #{shpCode}, + #{smallPlateNum}, + #{prodSrMark}, + #{prodSideMark}, + #{prodShotMark}, + #{prodNMark}, + #{prodQMark}, + #{prodTMark}, + #{prodAMark}, + #{backlogUtMark}, + #{backlogNMark}, + #{backlogQMark}, + #{backlogTMark}, + #{backlogAMark}, + #{backlogDemagMark}, + #{backlogPtMark}, + #{backlogMtMark}, + #{backlogTmcpMark}, + #{unitWtMax}, + #{unitWtMin}, + #{unitWtAim}, + #{orderThick}, + #{orderWidth}, + #{orderLen}, + #{widthDiv}, + #{widthMax}, + #{widthMin}, + #{lenDiv}, + #{orderLenMin}, + #{orderLenMax}, + #{smallPlateThick}, + #{smallPlateWidth}, + #{smallPlateLen}, + #{thick1}, + #{thick2}, + #{thick3}, + #{len1}, + #{len2}, + #{len3}, + #{len4}, + #{len5}, + #{thickTol1Max}, + #{thickTol1Min}, + #{thickTol2Max}, + #{thickTol2Min}, + #{thickTol3Max}, + #{thickTol3Min}, + #{platePreProc1}, + #{platePreProc2}, + #{platePreProc3}, + #{platePreProc4}, + #{platePreProc5}, + #{platePreProc6}, + #{platePreProc7}, + #{platePreProc8}, + #{platePreProc9}, + #{platePreProc10}, + #{platePreProc11}, + #{platePreProc12}, + #{platePreProc13}, + #{platePreProc14}, + #{platePreProc15}, + #{platePreProc16}, + #{platePreProc17}, + #{platePreProc18}, + #{platePreProc19}, + #{platePreProc20}, + #{platePreProc21}, + #{platePreProc22}, + #{platePreProc23}, + #{platePreProc24}, + #{platePreProc25}, + #{platePreProc26}, + #{platePreProc27}, + #{platePreProc28}, + #{platePreProc29}, + #{platePreProc30}, + #{trimCode}, + #{widenMin}, + #{compressMin}, + #{rollDirectCode}, + #{ctrlRollCode}, + #{adTypeCode}, + #{adModeCode}, + #{hotRectifyFlag}, + #{coldRectifyFlag}, + #{warmRectifyFlag}, + #{warmPressFlag}, + #{canPressFlag}, + #{wpTempMin}, + #{headCut}, + #{tailCut}, + #{hardAim}, + #{cutModeCode}, + #{gFlag}, + #{csFlag}, + #{dssFlag}, + #{ssFlag}, + #{dsFlag}, + #{heatTreatMode}, + #{keepTempMax1}, + #{keepTempMin1}, + #{keepTempMax2}, + #{keepTempMin2}, + #{keepTempMax3}, + #{keepTempMin3}, + #{keepTempMax4}, + #{keepTempMin4}, + #{keepTempMax5}, + #{keepTempMin5}, + #{keepTempMax6}, + #{keepTempMin6}, + #{backfireMax1}, + #{backfireMin1}, + #{backfireMax2}, + #{backfireMin2}, + #{backfireMax3}, + #{backfireMin3}, + #{backfireMax4}, + #{backfireMin4}, + #{backfireMax5}, + #{backfireMin5}, + #{backfireMax6}, + #{backfireMin6}, + #{widthBeforeQn}, + #{lenBeforeQn}, + #{cropTypeHp}, + #{betterSurfWardCode}, + #{ultDetectMethodCode}, + #{ultCode}, + #{urgOrderFlag}, + #{mscLineNo}, + #{tenantId}, + #{objectVersionNumber}, + #{createdBy}, + #{lastUpdatedBy}, + #{lastUpdateDate}, + #{attribute1}, + #{attribute2}, + #{attribute3}, + #{attribute4}, + #{attribute5}, + #{axisFlag}, + #{pdBacklogSeq}, + #{pdBacklogCode}, + #{twoRollInterimFlag}, + #{rollMode}, + #{utCheckCode}, + #{utPdCode, + #{creationDate} + ) + +