存储数据

main
sunhao 2 weeks ago
parent 24b976e2d1
commit 4907538eea

@ -129,6 +129,7 @@ public class SubController {
private static List<PmSlabSpecBtDO> plistPmSlabSpecBtDO; private static List<PmSlabSpecBtDO> plistPmSlabSpecBtDO;
//板坯信息表 //板坯信息表
private static List<PmPdSlabInfoDO> plistPmPdSlabInfoDO; //TODO 需要添加此表信息的查询 private static List<PmPdSlabInfoDO> plistPmPdSlabInfoDO; //TODO 需要添加此表信息的查询
//TODO 需要添加 QD_TO_PO_ORDER 的查询记录 //TODO 需要添加 QD_TO_PO_ORDER 的查询记录
private static Date now; private static Date now;
//组板履历表 //组板履历表
@ -143,6 +144,28 @@ public class SubController {
//endregion //endregion
//region ***配置项参数***
//不可自动组板订单信息
private static List<PmIrsubableContDO> plistpmIrsubableContDO=new ArrayList<>();
//不可自动组板板坯信息
private static List<PmIrsubableSlabDO> plistpmIrsubableSlabDO=new ArrayList<>();
//自动替代配置参数
private static List<PmAutoSubSettingDO> plistpmAutoSubSettingDO=new ArrayList<>();
//钢种信息配置
private static List<PmRetainStDO> plistpmRetainStDO=new ArrayList<>();
//仓库信息配置
private static List<PmRetainStackDO> plistpmRetainStackDO=new ArrayList<>();
//自动替代日志
private static List<PmSubLogDO> plistpmSubLogDO=new ArrayList<>();
//endregion
@ApiOperation("求解处理") @ApiOperation("求解处理")
@PostMapping("Solver") @PostMapping("Solver")
public JsonData Solver() { public JsonData Solver() {
@ -185,6 +208,7 @@ public class SubController {
//循环板坯 //循环板坯
plistSlab.forEach(p -> { plistSlab.forEach(p -> {
logger.info("*************板坯开始{}************* ", p.getSlabNo()); logger.info("*************板坯开始{}************* ", p.getSlabNo());
logger.info("***板坯信息:{} 厚宽长:{}*{}*{} ",p.getSlabNo(), p.getSlabActThk(),p.getSlabActWid(),p.getSlabActLen());
try { try {
gltGCalGrp = new ArrayList<>(); gltGCalGrp = new ArrayList<>();
//二次分组 //二次分组
@ -193,11 +217,30 @@ public class SubController {
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());
}
gltGGrpCalRslt = new ArrayList<>(); gltGGrpCalRslt = new ArrayList<>();
gltSelGGrpCalRslt= new ArrayList<>(); gltSelGGrpCalRslt = new ArrayList<>();
SetGroupCalRslt(p); SetGroupCalRslt(p);
//存储数据,组板结果
plistpmSubHisDO.forEach(e->{
subService.InsertPmSubHisDO(e);
});
plistpmSubOrdDO.forEach(e->{
subService.InsertPmSubOrdDO(e);
});
logger.info("结果数据板坯号:{};数量:{}", p.getSlabNo(), gltGGrpCalRslt.size()); logger.info("结果数据板坯号:{};数量:{}", p.getSlabNo(), gltGGrpCalRslt.size());
} }
@ -205,6 +248,7 @@ public class SubController {
// now = new Date(); // now = new Date();
// SetSaveDate(p); // SetSaveDate(p);
// } // }
} catch (Exception e) { } catch (Exception e) {
logger.error("板坯报错:" + p.getSlabNo(), e); logger.error("板坯报错:" + p.getSlabNo(), e);
} }
@ -231,7 +275,7 @@ public class SubController {
//region ***多线程获取基础数据*** //region ***多线程获取基础数据***
// 创建线程池 // 创建线程池
ExecutorService executorService = Executors.newFixedThreadPool(24); ExecutorService executorService = Executors.newFixedThreadPool(29);
//初始化方案 //初始化方案
Loader.loadNativeLibraries(); Loader.loadNativeLibraries();
@ -270,7 +314,7 @@ public class SubController {
//5生产合同产品属性表 //5生产合同产品属性表
tasks.add(() -> { tasks.add(() -> {
// plistPmProContProdAttrDO = subService.getPmProCountProdAttr(); // plistPmProContProdAttrDO = subService.getPmProCountProdAttr();
Thread.sleep(10000); // 休眠10秒钟 Thread.sleep(1000); // 休眠1秒钟
// logger.info("******5生产合同产品属性表数据获取完毕*******"); // logger.info("******5生产合同产品属性表数据获取完毕*******");
return null; return null;
}); });
@ -404,7 +448,36 @@ public class SubController {
//24连铸板坯生产规格基准表 //24连铸板坯生产规格基准表
tasks.add(() -> { tasks.add(() -> {
plistPmSlabSpecBtDO = subService.getPmSlabSpecBt(); plistPmSlabSpecBtDO = subService.getPmSlabSpecBt();
// logger.info("******23连铸板坯生产规格基准表数据获取完毕*******"); return null;
});
//25不可自动组板订单信息
tasks.add(() -> {
plistpmIrsubableContDO = subService.getPmIrsubableCont();
return null;
});
//26不可自动组板板坯信息
tasks.add(() -> {
plistpmIrsubableSlabDO = subService.getPmIrsubableSlab();
return null;
});
//27自动组板配置信息
tasks.add(() -> {
plistpmAutoSubSettingDO = subService.getPmAutoSubSetting();
return null;
});
//28钢种配置信息
tasks.add(() -> {
plistpmRetainStDO = subService.getPmRetainSt();
return null;
});
//29仓库配置信息
tasks.add(() -> {
plistpmRetainStackDO = subService.getPmRetainStack();
return null; return null;
}); });
@ -438,6 +511,35 @@ public class SubController {
logger.info("21:炉次待委托表:" + plistQeTqPonoWaitTestDO.size()); logger.info("21:炉次待委托表:" + plistQeTqPonoWaitTestDO.size());
logger.info("22:坯料低倍委托实绩表:" + plistQeTqSlabMacroResultDO.size()); logger.info("22:坯料低倍委托实绩表:" + plistQeTqSlabMacroResultDO.size());
logger.info("23:连铸板坯生产规格基准表:" + plistPmSlabSpecBtDO.size()); logger.info("23:连铸板坯生产规格基准表:" + plistPmSlabSpecBtDO.size());
logger.info("24:不可自动组板订单信息:" + plistpmIrsubableContDO.size());
logger.info("25:不可自动组板板坯信息:" + plistpmIrsubableSlabDO.size());
logger.info("26:钢种配置信息:" + plistpmRetainStDO.size());
logger.info("27:仓库配置信息:" + plistpmRetainStackDO.size());
logger.info("28:自动组板配置信息:" + plistpmAutoSubSettingDO.size());
logger.info("获取基础数据完成");
if (plistpmAutoSubSettingDO.size()>0)
{
logger.info("配置信息-》 是否启动 {}", plistpmAutoSubSettingDO.get(0).getIsStartFlag());
logger.info("配置信息-》 启动时间范围 {}~{}", plistpmAutoSubSettingDO.get(0).getStartTime(), plistpmAutoSubSettingDO.get(0).getEndTime());
logger.info("配置信息-》 优先模式 {}", plistpmAutoSubSettingDO.get(0).getPriMode());
logger.info("配置信息-》 最低成材率 {}", plistpmAutoSubSettingDO.get(0).getStockRate());
logger.info("配置信息-》 最大剩余长度 {}", plistpmAutoSubSettingDO.get(0).getResidueLen());
logger.info("配置信息-》 板坯长度范围 {}~{}", plistpmAutoSubSettingDO.get(0).getMatLenMin(), plistpmAutoSubSettingDO.get(0).getMatLenMax());
logger.info("配置信息-》 板坯宽度范围 {}~{}", plistpmAutoSubSettingDO.get(0).getMatWidthMin(), plistpmAutoSubSettingDO.get(0).getMatWidthMax());
logger.info("配置信息-》 板坯厚度范围 {}~{}", plistpmAutoSubSettingDO.get(0).getMatThickMin(), plistpmAutoSubSettingDO.get(0).getMatThickMax());
logger.info("配置信息-》 订单宽度范围 {}~{}", plistpmAutoSubSettingDO.get(0).getOrderWidthMin(), plistpmAutoSubSettingDO.get(0).getOrderWidthMax());
logger.info("配置信息-》 订单厚度范围 {}~{}", plistpmAutoSubSettingDO.get(0).getOrderThickMin(), plistpmAutoSubSettingDO.get(0).getOrderThickMax());
logger.info("配置信息-》 订单交货期范围 {}~{}", plistpmAutoSubSettingDO.get(0).getDelivyDateFrom(), plistpmAutoSubSettingDO.get(0).getDelivyDateTo());
logger.info("配置信息-》 可用仓库 {}", plistpmAutoSubSettingDO.get(0).getUseableDstock());
logger.info("配置信息-》 优先模式 {}", plistpmAutoSubSettingDO.get(0).getPriMode());
logger.info("配置信息-》 超投条件 {}", plistpmAutoSubSettingDO.get(0).getOvershootCondition());
logger.info("配置信息-》 库存最低成材率 {}", plistpmAutoSubSettingDO.get(0).getStockRate());
logger.info("配置信息-》 库存时间 {}", plistpmAutoSubSettingDO.get(0).getStockDay());
logger.info("配置信息-》 交货期最低成材率:{}", plistpmAutoSubSettingDO.get(0).getDeliveryRate());
logger.info("配置信息-》 交货期偏移量 {}", plistpmAutoSubSettingDO.get(0).getDeliveryOffsetDay());
}
// 关闭线程池 // 关闭线程池
executorService.shutdown(); executorService.shutdown();
@ -1218,11 +1320,24 @@ public class SubController {
*/ */
public void SetGroupCalRslt(SlabInfoDO SInfo) { public void SetGroupCalRslt(SlabInfoDO SInfo) {
//剩余长度小于加热炉最小长度
if (SInfo.getRemLen().compareTo(BigDecimal.valueOf(2200))<0){
return;
}
//剩余宽度小于加热炉最小宽度
if (SInfo.getRemWid().compareTo(BigDecimal.valueOf(1200))<0){
return;
}
//轧机最大长度 //轧机最大长度
int intRollMaxLen = plistPmPdConstBtDO.stream().filter(p -> p.getRollLineNo().equals("30")).findFirst().orElse(null).getHpmMaxPLen().intValue(); int intRollMaxLen = plistPmPdConstBtDO.stream().filter(p -> p.getRollLineNo().equals("30")).findFirst().orElse(null).getHpmMaxPLen().intValue();
//轧机最小长度 //轧机最小长度
int intRollMinLen = plistPmPdConstBtDO.stream().filter(p -> p.getRollLineNo().equals("30")).findFirst().orElse(null).getHpmMinPLen().intValue(); int intRollMinLen = plistPmPdConstBtDO.stream().filter(p -> p.getRollLineNo().equals("30")).findFirst().orElse(null).getHpmMinPLen().intValue();
//初始化分组数据
gltGGrpCalRslt=new ArrayList<>();
//gltGCalGrp.parallelStream().forEach(e->{ //gltGCalGrp.parallelStream().forEach(e->{
gltGCalGrp.parallelStream().forEach(e -> { gltGCalGrp.parallelStream().forEach(e -> {
//实例化计算结果数组 //实例化计算结果数组
@ -1234,13 +1349,13 @@ public class SubController {
//轧制最大厚度 //轧制最大厚度
BigDecimal intThk = e.getThk(); BigDecimal intThk = e.getThk();
//板坯长度 //板坯长度
int intSlabLen = SInfo.getSlabActLen().intValue(); int intSlabLen = SInfo.getRemLen().intValue();
//判断可轧制最大长度 TODO厚度计算Decimal取整计算会有误差后续判断误差值修正计算 //判断可轧制最大长度 TODO厚度计算Decimal取整计算会有误差后续判断误差值修正计算
if ((SInfo.getSlabActLen().multiply(SInfo.getSlabActThk()).multiply(SInfo.getSlabActWid()).divide(intThk.multiply(BigDecimal.valueOf(intWid)), RoundingMode.HALF_UP)).compareTo(BigDecimal.valueOf(intRollMaxLen)) > 0) { 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; intMaxLen = intRollMaxLen;
} else { } else {
intMaxLen = (SInfo.getSlabActLen().multiply(SInfo.getSlabActThk()).multiply(SInfo.getSlabActWid()).divide(intThk.multiply(BigDecimal.valueOf(intWid)), RoundingMode.HALF_UP)).intValue(); intMaxLen = (SInfo.getRemLen().multiply(SInfo.getSlabActThk()).multiply(SInfo.getRemWid()).divide(intThk.multiply(BigDecimal.valueOf(intWid)), RoundingMode.HALF_UP)).intValue();
} }
//不能小于可轧制的最小长度 //不能小于可轧制的最小长度
if (intMaxLen < intRollMinLen) { if (intMaxLen < intRollMinLen) {
@ -1311,7 +1426,7 @@ public class SubController {
//TODO轧制方向轧制模式 没有其他值暂不考虑,之后数据完善后需要考虑 //TODO轧制方向轧制模式 没有其他值暂不考虑,之后数据完善后需要考虑
PmPlateCutLenBtDO PPCLB = plistPmPlateCutLenBtDO.stream(). PmPlateCutLenBtDO PPCLB = plistPmPlateCutLenBtDO.stream().
filter(f -> f.getMscLineNo().equals("1030") filter(f -> f.getMscLineNo().equals("1030")
&& f.getBrrNeed().equals((p.getCal_Wid() > SInfo.getSlabActWid().intValue()) ? "1" : "0") && f.getBrrNeed().equals((p.getCal_Wid() > SInfo.getRemWid().intValue()) ? "1" : "0")
&& f.getPlateThickFrom().compareTo(p.getCal_Thk()) <= 0 && f.getPlateThickFrom().compareTo(p.getCal_Thk()) <= 0
&& f.getPlateThickTo().compareTo(p.getCal_Thk()) >= 0 && f.getPlateThickTo().compareTo(p.getCal_Thk()) >= 0
&& f.getSlabThickFrom().compareTo(SInfo.getSlabActThk()) <= 0 && f.getSlabThickFrom().compareTo(SInfo.getSlabActThk()) <= 0
@ -1375,7 +1490,7 @@ public class SubController {
.max(); .max();
//宽展比 保留2位小数 //宽展比 保留2位小数
BigDecimal decWidRate = BigDecimal.valueOf(maxWidth.orElse(0)).divide(SInfo.getSlabActWid(), 2, RoundingMode.HALF_UP); BigDecimal decWidRate = BigDecimal.valueOf(maxWidth.orElse(0)).divide(SInfo.getRemWid(), 2, RoundingMode.HALF_UP);
//最大厚度公差最小值 //最大厚度公差最小值
Optional<BigDecimal> maxTolThkMin = p.getLtActInfoGPreOrder().stream() Optional<BigDecimal> maxTolThkMin = p.getLtActInfoGPreOrder().stream()
@ -1429,7 +1544,7 @@ public class SubController {
PmPlateCutLenBtDO PPCLB_Act = plistPmPlateCutLenBtDO.stream(). PmPlateCutLenBtDO PPCLB_Act = plistPmPlateCutLenBtDO.stream().
filter(f -> f.getMscLineNo().equals("1030") filter(f -> f.getMscLineNo().equals("1030")
&& f.getBrrNeed().equals((p.getCal_Wid() > SInfo.getSlabActWid().intValue()) ? "1" : "0") && f.getBrrNeed().equals((p.getCal_Wid() > SInfo.getRemWid().intValue()) ? "1" : "0")
&& f.getPlateThickFrom().compareTo(p.getCal_Thk()) <= 0 && f.getPlateThickFrom().compareTo(p.getCal_Thk()) <= 0
&& f.getPlateThickTo().compareTo(p.getCal_Thk()) >= 0 && f.getPlateThickTo().compareTo(p.getCal_Thk()) >= 0
&& f.getSlabThickFrom().compareTo(SInfo.getSlabActThk()) <= 0 && f.getSlabThickFrom().compareTo(SInfo.getSlabActThk()) <= 0
@ -1452,12 +1567,12 @@ public class SubController {
//板坯厚度 //板坯厚度
p.setVirtualSlab_Thk(SInfo.getSlabActThk()); p.setVirtualSlab_Thk(SInfo.getSlabActThk());
//板坯宽度 //板坯宽度
p.setVirtualSlab_Wid(SInfo.getSlabActWid().intValue()); p.setVirtualSlab_Wid(SInfo.getRemWid().intValue());
//板坯长度 //板坯长度
BigDecimal virtualSlabLen = p.getCal_Thk() BigDecimal virtualSlabLen = p.getCal_Thk()
.multiply(BigDecimal.valueOf(p.getCal_Wid())) .multiply(BigDecimal.valueOf(p.getCal_Wid()))
.multiply(BigDecimal.valueOf(p.getCal_Len())) .multiply(BigDecimal.valueOf(p.getCal_Len()))
.divide(SInfo.getSlabActThk().multiply(SInfo.getSlabActWid()), 0, RoundingMode.CEILING); .divide(SInfo.getSlabActThk().multiply(SInfo.getRemWid()), 0, RoundingMode.CEILING);
p.setVirtualSlab_Len(virtualSlabLen.intValue()); 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)); 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));
@ -1468,7 +1583,7 @@ public class SubController {
.multiply(BigDecimal.valueOf(p.getEff_Len())); .multiply(BigDecimal.valueOf(p.getEff_Len()));
BigDecimal slabVolume = SInfo.getSlabActThk() BigDecimal slabVolume = SInfo.getSlabActThk()
.multiply(SInfo.getSlabActWid()) .multiply(SInfo.getRemWid())
.multiply(BigDecimal.valueOf(p.getVirtualSlab_Len())); .multiply(BigDecimal.valueOf(p.getVirtualSlab_Len()));
BigDecimal yieldRate = rolledVolume.divide(slabVolume, 2, RoundingMode.HALF_UP); // 保留4位小数 BigDecimal yieldRate = rolledVolume.divide(slabVolume, 2, RoundingMode.HALF_UP); // 保留4位小数
@ -1477,7 +1592,10 @@ public class SubController {
p.setRate(yieldRate); p.setRate(yieldRate);
}); });
//判断结果数据是否存在
if (gltGGrpCalRslt.size() == 0) {
return;
}
//判断结算结果长度和成材率是否可用 //判断结算结果长度和成材率是否可用
gltGGrpCalRslt.parallelStream().forEach(p -> { gltGGrpCalRslt.parallelStream().forEach(p -> {
@ -1487,12 +1605,12 @@ public class SubController {
return; return;
} }
//成材率大于90% //成材率大于90%
if (p.getRate().compareTo(BigDecimal.valueOf(0.9)) <= 0) { if (p.getRate().compareTo(BigDecimal.valueOf(0.9)) <= 0) {
p.setIntUseFlg(0); p.setIntUseFlg(0);
return; return;
} }
int minWid = Math.min(p.getVirtualSlab_Wid(), p.getVirtualSlab_Len()); int minWid = Math.min(p.getVirtualSlab_Wid(), p.getVirtualSlab_Len());
int maxLen = Math.max(p.getVirtualSlab_Wid(), p.getVirtualSlab_Len()); int maxLen = Math.max(p.getVirtualSlab_Wid(), p.getVirtualSlab_Len());
// 板坯厚度起止SLAB_THICK_FROM/TO包含余坯实际厚度; // 板坯厚度起止SLAB_THICK_FROM/TO包含余坯实际厚度;
@ -1506,6 +1624,7 @@ public class SubController {
&& e.getRollLineNo().equals(SInfo.getMscLineNo().substring(SInfo.getMscLineNo().length() - 2)) && e.getRollLineNo().equals(SInfo.getMscLineNo().substring(SInfo.getMscLineNo().length() - 2))
&& e.getCcType().equals("1") && e.getCcType().equals("1")
).count() > 0) { ).count() > 0) {
int intSlanLenMin = plistPmSlabSpecBtDO.stream().filter(e -> e.getSlabThickFrom().compareTo(p.getVirtualSlab_Thk()) <= 0 int intSlanLenMin = plistPmSlabSpecBtDO.stream().filter(e -> e.getSlabThickFrom().compareTo(p.getVirtualSlab_Thk()) <= 0
&& e.getSlabThickTo().compareTo(p.getVirtualSlab_Thk()) >= 0 && e.getSlabThickTo().compareTo(p.getVirtualSlab_Thk()) >= 0
&& e.getSlabWidthFrom().compareTo(BigDecimal.valueOf(minWid)) <= 0 && e.getSlabWidthFrom().compareTo(BigDecimal.valueOf(minWid)) <= 0
@ -1514,6 +1633,7 @@ public class SubController {
&& e.getRollLineNo().equals(SInfo.getMscLineNo().substring(SInfo.getMscLineNo().length() - 2)) && e.getRollLineNo().equals(SInfo.getMscLineNo().substring(SInfo.getMscLineNo().length() - 2))
&& e.getCcType().equals("1") && e.getCcType().equals("1")
).findFirst().orElse(null).getSlabMinLen().intValue(); ).findFirst().orElse(null).getSlabMinLen().intValue();
int intSlanLenMax = plistPmSlabSpecBtDO.stream().filter(e -> e.getSlabThickFrom().compareTo(p.getVirtualSlab_Thk()) <= 0 int intSlanLenMax = plistPmSlabSpecBtDO.stream().filter(e -> e.getSlabThickFrom().compareTo(p.getVirtualSlab_Thk()) <= 0
&& e.getSlabThickTo().compareTo(p.getVirtualSlab_Thk()) >= 0 && e.getSlabThickTo().compareTo(p.getVirtualSlab_Thk()) >= 0
&& e.getSlabWidthFrom().compareTo(BigDecimal.valueOf(minWid)) <= 0 && e.getSlabWidthFrom().compareTo(BigDecimal.valueOf(minWid)) <= 0
@ -1550,6 +1670,9 @@ public class SubController {
//选择最优结果 //选择最优结果
ChosBestRsl(SInfo); ChosBestRsl(SInfo);
//递归
SetGroupCalRslt(SInfo);
//递归 //递归
////小于最小入炉尺寸 ////小于最小入炉尺寸
//if (SInfo.getRemLen().intValue() <2200) //if (SInfo.getRemLen().intValue() <2200)
@ -1668,19 +1791,33 @@ public class SubController {
} }
); );
}
plistpmSubHisDO.forEach(p->{
subService.InsertPmSubHisDO(p);
});
plistpmSubOrdDO.forEach(p->{ //判断长宽大小
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{
SInfo.setRemLen(decLen);
SInfo.setRemWid(DecWid);
}
subService.InsertPmSubOrdDO(p); }
}); //存储数据,组板结果
// plistpmSubHisDO.forEach(p->{
//
// subService.InsertPmSubHisDO(p);
//
// });
//
// plistpmSubOrdDO.forEach(p->{
//
// subService.InsertPmSubOrdDO(p);
//
// });
} }

@ -86,4 +86,14 @@ public interface SubMapper extends BaseMapper<Map> {
void InsertPmSubHisDO(PmSubHisDO p); void InsertPmSubHisDO(PmSubHisDO p);
void InsertPmSubOrdDO(PmSubOrdDO p); void InsertPmSubOrdDO(PmSubOrdDO p);
List<PmIrsubableContDO> getPmIrsubableCont();
List<PmIrsubableSlabDO> getPmIrsubableSlab();
List<PmAutoSubSettingDO> getPmAutoSubSetting();
List<PmRetainStDO> getPmRetainSt();
List<PmRetainStackDO> getPmRetainStack();
} }

@ -2,7 +2,9 @@ package net.xdclass.shopmanager.model;
import java.math.BigDecimal; import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date; import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable; import java.io.Serializable;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@ -13,7 +15,7 @@ import lombok.EqualsAndHashCode;
* </p> * </p>
* *
* @author SunH * @author SunH
* @since 2024-12-18 * @since 2025-02-10
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@ -25,6 +27,7 @@ public class PmAutoSubSettingDO implements Serializable {
/** /**
* ID * ID
*/ */
@TableId(value = "ID", type = IdType.AUTO)
private BigDecimal id; private BigDecimal id;
/** /**
@ -103,7 +106,7 @@ public class PmAutoSubSettingDO implements Serializable {
private String isUseSt; private String isUseSt;
/** /**
* *
*/ */
private String useableDstock; private String useableDstock;
@ -197,5 +200,15 @@ public class PmAutoSubSettingDO implements Serializable {
private String attribute5; private String attribute5;
/**
*
*/
private BigDecimal triggerCycle;
/**
*
*/
private String overshootCondition;
} }

@ -83,4 +83,14 @@ public interface SubService {
void InsertPmSubHisDO(PmSubHisDO p); void InsertPmSubHisDO(PmSubHisDO p);
void InsertPmSubOrdDO(PmSubOrdDO p); void InsertPmSubOrdDO(PmSubOrdDO p);
List<PmIrsubableContDO> getPmIrsubableCont();
List<PmIrsubableSlabDO> getPmIrsubableSlab();
List<PmAutoSubSettingDO> getPmAutoSubSetting();
List<PmRetainStDO> getPmRetainSt();
List<PmRetainStackDO> getPmRetainStack();
} }

@ -208,5 +208,30 @@ public class SubServiceImpl implements SubService {
subMapper.InsertPmSubOrdDO(p); subMapper.InsertPmSubOrdDO(p);
} }
@Override
public List<PmIrsubableContDO> getPmIrsubableCont() {
return subMapper.getPmIrsubableCont();
}
@Override
public List<PmIrsubableSlabDO> getPmIrsubableSlab() {
return subMapper.getPmIrsubableSlab();
}
@Override
public List<PmAutoSubSettingDO> getPmAutoSubSetting() {
return subMapper.getPmAutoSubSetting();
}
@Override
public List<PmRetainStDO> getPmRetainSt() {
return subMapper.getPmRetainSt();
}
@Override
public List<PmRetainStackDO> getPmRetainStack() {
return subMapper.getPmRetainStack();
}
} }

@ -2,35 +2,36 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.xdclass.shopmanager.mapper.SubMapper"> <mapper namespace="net.xdclass.shopmanager.mapper.SubMapper">
<!--测试查询板坯SQL--> <!--测试查询板坯SQL-->
<!-- <select id="getSlabInfo" resultType="net.xdclass.shopmanager.model.SlabInfoDO">--> <!-- <select id="getSlabInfo" resultType="net.xdclass.shopmanager.model.SlabInfoDO">-->
<!-- SELECT DISTINCT--> <!-- SELECT DISTINCT-->
<!-- PPCB.SLAB_CUT_GAP &#45;&#45;切缝--> <!-- PPCB.SLAB_CUT_GAP &#45;&#45;切缝-->
<!-- ,ms.*--> <!-- ,ms.*-->
<!-- FROM XISC_MM.MM_SLAB MS &#45;&#45;MM_SLAB 板坯表--> <!-- FROM XISC_MM.MM_SLAB MS &#45;&#45;MM_SLAB 板坯表-->
<!-- LEFT JOIN PM_PD_SLAB PPS ON PPS.SLAB_NO = MS.SLAB_NO &#45;&#45;PM_PD_SLAB 组板板坯表--> <!-- LEFT JOIN PM_PD_SLAB PPS ON PPS.SLAB_NO = MS.SLAB_NO &#45;&#45;PM_PD_SLAB 组板板坯表-->
<!-- LEFT JOIN PM_PD_CONST_BT PPCB ON PPCB.ROLL_LINE_NO = SUBSTR(MS.MSC_LINE_NO,3,2)--> <!-- LEFT JOIN PM_PD_CONST_BT PPCB ON PPCB.ROLL_LINE_NO = SUBSTR(MS.MSC_LINE_NO,3,2)-->
<!-- WHERE 1=1--> <!-- WHERE 1=1-->
<!-- AND MS.MSC_LINE_NO='1030' &#45;&#45;5米轧线--> <!-- AND MS.MSC_LINE_NO='1030' &#45;&#45;5米轧线-->
<!-- </select>--> <!-- </select>-->
<!--实际的查询板坯SQL--> <!--实际的查询板坯SQL-->
<select id="getSlabInfo" resultType="net.xdclass.shopmanager.model.SlabInfoDO"> <select id="getSlabInfo" resultType="net.xdclass.shopmanager.model.SlabInfoDO">
SELECT DISTINCT SELECT DISTINCT MS.MSC_LINE_NO --产线
MS.MSC_LINE_NO --产线 , PPCB.SLAB_CUT_GAP --切缝
,PPCB.SLAB_CUT_GAP --切缝 , MS.NEXT_WHOLE_BACKLOG_CODE -- 全程工序代码
,MS.NEXT_WHOLE_BACKLOG_CODE -- 全程工序代码 , MS.SLAB_STATUS
,MS.SLAB_STATUS , (MS.SLAB_ACT_LEN - (SELECT SUM(NVL(P1.NEED_SLAB_LEN, 0) + PPCB.SLAB_CUT_GAP)
,(MS.SLAB_ACT_LEN -(SELECT SUM(NVL(P1.NEED_SLAB_LEN ,0)+PPCB.SLAB_CUT_GAP) FROM PM_PD_SLAB P1 WHERE P1.SLAB_NO = MS.SLAB_NO)-PPCB.SLAB_CUT_GAP) remain_slab_len --剩余长度 FROM PM_PD_SLAB P1
,MS.* WHERE P1.SLAB_NO = MS.SLAB_NO) - PPCB.SLAB_CUT_GAP) remain_slab_len --剩余长度
FROM XISC_MM.MM_SLAB MS --MM_SLAB 板坯表 , MS.*
LEFT JOIN PM_PD_SLAB PPS ON PPS.SLAB_NO = MS.SLAB_NO --PM_PD_SLAB 组板板坯表 FROM XISC_MM.MM_SLAB MS --MM_SLAB 板坯表
LEFT JOIN PM_PD_CONST_BT PPCB ON PPCB.ROLL_LINE_NO = SUBSTR(MS.MSC_LINE_NO,3,2) LEFT JOIN PM_PD_SLAB PPS ON PPS.SLAB_NO = MS.SLAB_NO --PM_PD_SLAB 组板板坯表
WHERE 1=1 LEFT JOIN PM_PD_CONST_BT PPCB ON PPCB.ROLL_LINE_NO = SUBSTR(MS.MSC_LINE_NO, 3, 2)
AND MS.MSC_LINE_NO='1030' --5米轧线 WHERE 1 = 1
AND MS.SLAB_NO = 'C40022070400' AND MS.MSC_LINE_NO = '1030' --5米轧线
-- AND MS.SLAB_NO = 'C40022070500' -- AND MS.SLAB_NO = 'C50015130500'
-- AND ((SELECT SUM(NVL(P1.NEED_SLAB_WT,0)) FROM PM_PD_SLAB P1 WHERE P1.SLAB_NO = MS.SLAB_NO)= MS.SLAB_ACT_WGT AND MS.SLAB_NO = 'C50015130100'
-- AND ((SELECT SUM(NVL(P1.NEED_SLAB_WT,0)) FROM PM_PD_SLAB P1 WHERE P1.SLAB_NO = MS.SLAB_NO)= MS.SLAB_ACT_WGT
-- OR (SELECT SUM(NVl(P1.NEED_SLAB_WT,0)) FROM PM_PD_SLAB P1 WHERE P1.SLAB_NO = MS.SLAB_NO) = 0)--重量相同 -- OR (SELECT SUM(NVl(P1.NEED_SLAB_WT,0)) FROM PM_PD_SLAB P1 WHERE P1.SLAB_NO = MS.SLAB_NO) = 0)--重量相同
-- AND SUBSTR(MS.NEXT_WHOLE_BACKLOG_CODE,2,1) !='B' --全程工序代码第二位不能是B不嫩是火切工序 -- AND SUBSTR(MS.NEXT_WHOLE_BACKLOG_CODE,2,1) !='B' --全程工序代码第二位不能是B不嫩是火切工序
-- AND MS.SLAB_STATUS ='29' --在制余材 -- AND MS.SLAB_STATUS ='29' --在制余材
@ -48,30 +49,28 @@
<select id="getOrderInfo" resultType="net.xdclass.shopmanager.model.PmProContDO"> <select id="getOrderInfo" resultType="net.xdclass.shopmanager.model.PmProContDO">
SELECT ppc.* FROM PM_PRO_CONT ppc SELECT ppc.* FROM PM_PRO_CONT ppc
LEFT JOIN XISC_CT.CT_MAIN CM ON PPC.ORDER_NO = CM.ORDER_NO LEFT JOIN XISC_CT.CT_MAIN CM ON PPC.ORDER_NO = CM.ORDER_NO
LEFT JOIN PM_PRO_CONT_PROD_ATTR ppcpa ON ppcpa.ORDER_NO = ppc.ORDER_NO LEFT JOIN PM_PRO_CONT_PROD_ATTR ppcpa ON ppcpa.ORDER_NO = ppc.ORDER_NO
LEFT JOIN PM_CONT_MSC_TECH PCMT ON PCMT.ORDER_NO = ppc.ORDER_NO LEFT JOIN PM_CONT_MSC_TECH PCMT ON PCMT.ORDER_NO = ppc.ORDER_NO
AND ppc.PRO_CONT_ID = pcmt.PRO_CONT_ID AND ppc.PRO_CONT_ID = pcmt.PRO_CONT_ID
AND cm.MSC_LINE_NO = pcmt.MSC_LINE_NO --PM_PRO_CONT没有MSC_LINE_NO AND cm.MSC_LINE_NO = pcmt.MSC_LINE_NO --PM_PRO_CONT没有MSC_LINE_NO
WHERE 1=1 WHERE 1=1
-- AND ppc.ORDER_NO='522484Q020' -- AND ppc.ORDER_NO='522484Q020'
<!-- AND PCMT.FUR_TYPE ='C' &#45;&#45;加热炉类型 C 没有注解C和S 都代表什么--> <!-- AND PCMT.FUR_TYPE ='C' &#45;&#45;加热炉类型 C 没有注解C和S 都代表什么-->
<!-- AND cm.ORDER_STATUS >=40 AND cm.ORDER_STATUS <67--> <!-- AND cm.ORDER_STATUS >=40 AND cm.ORDER_STATUS <67-->
<!-- AND ppcpa.ORDER_TYPE_CODE <> 'QFH'--> <!-- AND ppcpa.ORDER_TYPE_CODE <> 'QFH'-->
<!-- AND PPC.ON_PD_FLAG <>1 &#45;&#45;不用验证操作者--> <!-- AND PPC.ON_PD_FLAG <>1 &#45;&#45;不用验证操作者-->
<!-- AND PPC.PD_LACK_QTY >0 &#45;&#45;欠量大于0--> <!-- AND PPC.PD_LACK_QTY >0 &#45;&#45;欠量大于0-->
<!-- AND PPC.PD_HOLD_FLAG <>1 &#45;&#45; 不能封锁状态--> <!-- AND PPC.PD_HOLD_FLAG <>1 &#45;&#45; 不能封锁状态-->
<!-- AND pcmt.ROLL_DIRECT_CODE ='L'&#45;&#45;轧制方向代码--> <!-- AND pcmt.ROLL_DIRECT_CODE ='L'&#45;&#45;轧制方向代码-->
</select> </select>
<!--生产合同产品属性表--> <!--生产合同产品属性表-->
<select id="getPmProCountProdAttr" resultType="net.xdclass.shopmanager.model.PmProContProdAttrDO"> <select id="getPmProCountProdAttr" resultType="net.xdclass.shopmanager.model.PmProContProdAttrDO">
SELECT SELECT *
* FROM PM_PRO_CONT_PROD_ATTR
FROM
PM_PRO_CONT_PROD_ATTR
-- WHERE ORDER_NO ='522484Q020' -- WHERE ORDER_NO ='522484Q020'
</select> </select>
@ -79,226 +78,211 @@
<!--合同产线工艺参数表--> <!--合同产线工艺参数表-->
<select id="getPmContMscTech" resultType="net.xdclass.shopmanager.model.PmContMscTechDO"> <select id="getPmContMscTech" resultType="net.xdclass.shopmanager.model.PmContMscTechDO">
SELECT SELECT *
* FROM PM_CONT_MSC_TECH
FROM
PM_CONT_MSC_TECH
-- WHERE ORDER_NO ='522484Q020' -- WHERE ORDER_NO ='522484Q020'
</select> </select>
<!--组板设计规则集--> <!--组板设计规则集-->
<select id="getPmPdRuleSet" resultType="net.xdclass.shopmanager.model.PmPdRuleSetDO"> <select id="getPmPdRuleSet" resultType="net.xdclass.shopmanager.model.PmPdRuleSetDO">
SELECT SELECT *
* FROM PM_PD_RULE_SET
FROM
PM_PD_RULE_SET
</select> </select>
<!--组板设计规则集--> <!--组板设计规则集-->
<select id="getPmPdRuleItem" resultType="net.xdclass.shopmanager.model.PmPdRuleItemDO"> <select id="getPmPdRuleItem" resultType="net.xdclass.shopmanager.model.PmPdRuleItemDO">
SELECT SELECT *
* FROM PM_PD_RULE_ITEM
FROM
PM_PD_RULE_ITEM
</select> </select>
<!--最小轧制厚度公差范围基准表--> <!--最小轧制厚度公差范围基准表-->
<select id="getPmMinThickTolBt" resultType="net.xdclass.shopmanager.model.PmMinThickTolBtDO"> <select id="getPmMinThickTolBt" resultType="net.xdclass.shopmanager.model.PmMinThickTolBtDO">
SELECT SELECT *
* FROM PM_MIN_THICK_TOL_BT
FROM
PM_MIN_THICK_TOL_BT
</select> </select>
<!--钢板轧制规格对应收得率基准表--> <!--钢板轧制规格对应收得率基准表-->
<select id="getPmPlateSpecYieldBt" resultType="net.xdclass.shopmanager.model.PmPlateSpecYieldBtDO"> <select id="getPmPlateSpecYieldBt" resultType="net.xdclass.shopmanager.model.PmPlateSpecYieldBtDO">
SELECT SELECT *
* FROM PM_PLATE_SPEC_YIELD_BT
FROM
PM_PLATE_SPEC_YIELD_BT
</select> </select>
<!--强度级别对照基准表--> <!--强度级别对照基准表-->
<select id="getPmStCodeBt" resultType="net.xdclass.shopmanager.model.PmStCodeBtDO"> <select id="getPmStCodeBt" resultType="net.xdclass.shopmanager.model.PmStCodeBtDO">
SELECT SELECT *
* FROM PM_ST_CODE_BT
FROM
PM_ST_CODE_BT
</select> </select>
<!--粗切位置决定基准表--> <!--粗切位置决定基准表-->
<select id="getPmCutPlaceBt" resultType="net.xdclass.shopmanager.model.PmCutPlaceBtDO"> <select id="getPmCutPlaceBt" resultType="net.xdclass.shopmanager.model.PmCutPlaceBtDO">
SELECT SELECT *
* FROM PM_CUT_PLACE_BT
FROM
PM_CUT_PLACE_BT
</select> </select>
<!-- 组板常数基准表--> <!-- 组板常数基准表-->
<select id="getPmPdConstBt" resultType="net.xdclass.shopmanager.model.PmPdConstBtDO"> <select id="getPmPdConstBt" resultType="net.xdclass.shopmanager.model.PmPdConstBtDO">
SELECT SELECT *
* FROM PM_PD_CONST_BT
FROM
PM_PD_CONST_BT
</select> </select>
<!--钢板切缝切头尾范围基准表--> <!--钢板切缝切头尾范围基准表-->
<select id="getPmPlateCutLenBt" resultType="net.xdclass.shopmanager.model.PmPlateCutLenBtDO"> <select id="getPmPlateCutLenBt" resultType="net.xdclass.shopmanager.model.PmPlateCutLenBtDO">
SELECT SELECT *
* FROM PM_PLATE_CUT_LEN_BT
FROM
PM_PLATE_CUT_LEN_BT
</select> </select>
<!--组板临时收得率基准表--> <!--组板临时收得率基准表-->
<select id="getPmPdTmpYieldBt" resultType="net.xdclass.shopmanager.model.PmPdTmpYieldBtDO"> <select id="getPmPdTmpYieldBt" resultType="net.xdclass.shopmanager.model.PmPdTmpYieldBtDO">
SELECT SELECT *
* FROM PM_PD_TMP_YIELD_BT
FROM
PM_PD_TMP_YIELD_BT
</select> </select>
<!--钢板切边量基准表--> <!--钢板切边量基准表-->
<select id="getPmPlateTrimBt" resultType="net.xdclass.shopmanager.model.PmPlateTrimBtDO"> <select id="getPmPlateTrimBt" resultType="net.xdclass.shopmanager.model.PmPlateTrimBtDO">
SELECT SELECT *
* FROM PM_PLATE_TRIM_BT
FROM
PM_PLATE_TRIM_BT
</select> </select>
<!--余材组板内部钢种以优充次对照表--> <!--余材组板内部钢种以优充次对照表-->
<select id="getPmSlabReplBt" resultType="net.xdclass.shopmanager.model.PmSlabReplBtDO"> <select id="getPmSlabReplBt" resultType="net.xdclass.shopmanager.model.PmSlabReplBtDO">
SELECT SELECT *
* FROM PM_SLAB_REPL_BT
FROM
PM_SLAB_REPL_BT
</select> </select>
<!--热处理炉基准规格表--> <!--热处理炉基准规格表-->
<select id="getPmHeatTreatFurnaceBt" resultType="net.xdclass.shopmanager.model.PmHeatTreatFurnaceBtDO"> <select id="getPmHeatTreatFurnaceBt" resultType="net.xdclass.shopmanager.model.PmHeatTreatFurnaceBtDO">
SELECT SELECT *
* FROM PM_HEAT_TREAT_FURNACE_BT
FROM
PM_HEAT_TREAT_FURNACE_BT
</select> </select>
<!--特殊钢种余量增加表--> <!--特殊钢种余量增加表-->
<select id="getPmSpeStAddvBt" resultType="net.xdclass.shopmanager.model.PmSpeStAddvBtDO"> <select id="getPmSpeStAddvBt" resultType="net.xdclass.shopmanager.model.PmSpeStAddvBtDO">
SELECT SELECT *
* FROM PM_SPE_ST_ADDV_BT
FROM
PM_SPE_ST_ADDV_BT
</select> </select>
<!--合同处理成分结果数据--> <!--合同处理成分结果数据-->
<select id="getQdToLineupResultChe" resultType="net.xdclass.shopmanager.model.QdToLineupResultCheDO"> <select id="getQdToLineupResultChe" resultType="net.xdclass.shopmanager.model.QdToLineupResultCheDO">
SELECT SELECT *
* FROM XISC_QD.QD_TO_LINEUP_RESULT_CHE
FROM
XISC_QD.QD_TO_LINEUP_RESULT_CHE
</select> </select>
<!--合同处理坯料性能要求--> <!--合同处理坯料性能要求-->
<select id="getQdToLineupResultSlabphy" resultType="net.xdclass.shopmanager.model.QdToLineupResultSlabphyDO"> <select id="getQdToLineupResultSlabphy" resultType="net.xdclass.shopmanager.model.QdToLineupResultSlabphyDO">
SELECT SELECT *
* FROM XISC_QD.QD_TO_LINEUP_RESULT_SLABPHY
FROM
XISC_QD.QD_TO_LINEUP_RESULT_SLABPHY
</select> </select>
<!--炉次工序成分代表实绩表--> <!--炉次工序成分代表实绩表-->
<select id="getQeTqHeatcheStandResult" resultType="net.xdclass.shopmanager.model.QeTqHeatcheStandResultDO"> <select id="getQeTqHeatcheStandResult" resultType="net.xdclass.shopmanager.model.QeTqHeatcheStandResultDO">
SELECT SELECT *
* FROM XISC_QE.QE_TQ_HEATCHE_STAND_RESULT
FROM
XISC_QE.QE_TQ_HEATCHE_STAND_RESULT
</select> </select>
<!--炉次待委托表--> <!--炉次待委托表-->
<select id="getQeTqPonoWaitTest" resultType="net.xdclass.shopmanager.model.QeTqPonoWaitTestDO"> <select id="getQeTqPonoWaitTest" resultType="net.xdclass.shopmanager.model.QeTqPonoWaitTestDO">
SELECT SELECT *
* FROM XISC_QE.QE_TQ_PONO_WAIT_TEST
FROM
XISC_QE.QE_TQ_PONO_WAIT_TEST
</select> </select>
<!--坯料低倍委托实绩表--> <!--坯料低倍委托实绩表-->
<select id="getQeTqSlabMacroResult" resultType="net.xdclass.shopmanager.model.QeTqSlabMacroResultDO"> <select id="getQeTqSlabMacroResult" resultType="net.xdclass.shopmanager.model.QeTqSlabMacroResultDO">
SELECT SELECT *
* FROM XISC_QE.QE_TQ_SLAB_MACRO_RESULT
FROM
XISC_QE.QE_TQ_SLAB_MACRO_RESULT
</select> </select>
<!--连铸板坯生产规格基准表--> <!--连铸板坯生产规格基准表-->
<select id="getPmSlabSpecBt" resultType="net.xdclass.shopmanager.model.PmSlabSpecBtDO"> <select id="getPmSlabSpecBt" resultType="net.xdclass.shopmanager.model.PmSlabSpecBtDO">
SELECT SELECT *
* FROM PM_SLAB_SPEC_BT
FROM
PM_SLAB_SPEC_BT
</select> </select>
<!--不可自动组板订单信息-->
<select id="getPmIrsubableCont" resultType="net.xdclass.shopmanager.model.PmIrsubableContDO">
SELECT *
FROM PM_IRSUBABLE_CONT
</select>
<insert id="InsertPmSubOrdDO" parameterType="net.xdclass.shopmanager.model.PmSubOrdDO" keyProperty="id"> <!--不可自动组板板坯信息-->
INSERT INTO PM_SUB_ORD ( <select id="getPmIrsubableSlab" resultType="net.xdclass.shopmanager.model.PmIrsubableSlabDO">
ORDER_NO, VIRTUAL_SLAB_NO, SG_SIGN, ST_NO, ORDER_THICK, ORDER_WIDTH, SELECT *
LEN_AIM, POS_X, POS_Y, DELIVY_DATE, AXIS_ORD, LACK_NUM, OVER_NUM, FROM Pm_Irsubable_Slab
CREATION_DATE, CREATED_BY, LAST_UPDATED_BY, LAST_UPDATE_DATE, TENANT_ID, </select>
OBJECT_VERSION_NUMBER, ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3, ATTRIBUTE4,
ATTRIBUTE5, ORDER_SEQ_NO
)
VALUES (
#{orderNo}, #{virtualSlabNo}, #{sgSign}, #{stNo}, #{orderThick}, #{orderWidth},
#{lenAim}, #{posX}, #{posY}, #{delivyDate}, #{axisOrd}, #{lackNum}, #{overNum},
#{creationDate}, #{createdBy}, #{lastUpdatedBy}, #{lastUpdateDate}, #{tenantId},
#{objectVersionNumber}, #{attribute1}, #{attribute2}, #{attribute3}, #{attribute4},
#{attribute5}, #{orderSeqNo}
)
</insert>
<insert id="InsertPmSubHisDO" parameterType="net.xdclass.shopmanager.model.PmSubHisDO" keyProperty="id"> <select id="getPmAutoSubSetting" resultType="net.xdclass.shopmanager.model.PmAutoSubSettingDO">
SELECT *
FROM PM_AUTO_SUB_SETTING
INSERT INTO PM_SUB_HIS ( </select>
SLAB_NO, SUB_YIELD, REL_YIELD, SUB_RESULT, SUB_INFO, PROCESS_CODE,
FORM_PLATE_MODE, ST_NO, SLAB_THICK, SLAB_WID, SLAB_LEN, SLAB_WT, SUB_TIME, <select id="getPmRetainSt" resultType="net.xdclass.shopmanager.model.PmRetainStDO">
CREATION_DATE, CREATED_BY, LAST_UPDATED_BY, LAST_UPDATE_DATE, ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3, ATTRIBUTE4, SELECT *
ATTRIBUTE5, VIRTUAL_SLAB_NO, ROLL_THK, ROLL_WID, ROLL_LEN, HEAD_CUT, FROM PM_RETAIN_ST
TAIL_CUT, WID_CUT, SLIT_LEN, NEED_SLAB_LEN, NEED_SLAB_WT
) </select>
VALUES (
#{slabNo}, #{subYield}, #{relYield}, #{subResult}, #{subInfo}, #{processCode}, <select id="getPmRetainStack" resultType="net.xdclass.shopmanager.model.PmRetainStackDO">
#{formPlateMode}, #{stNo}, #{slabThick}, #{slabWid}, #{slabLen}, #{slabWt}, #{subTime}, SELECT *
#{creationDate}, #{createdBy}, #{lastUpdatedBy}, #{lastUpdateDate}, #{attribute1}, #{attribute2}, #{attribute3}, #{attribute4}, FROM PM_RETAIN_STACK
#{attribute5}, #{virtualSlabNo}, #{rollThk}, #{rollWid}, #{rollLen}, #{headCut},
#{tailCut}, #{widCut}, #{slitLen}, #{needSlabLen}, #{needSlabWt} </select>
)
<insert id="InsertPmSubOrdDO" parameterType="net.xdclass.shopmanager.model.PmSubOrdDO" keyProperty="id">
INSERT INTO PM_SUB_ORD (ORDER_NO, VIRTUAL_SLAB_NO, SG_SIGN, ST_NO, ORDER_THICK, ORDER_WIDTH,
LEN_AIM, POS_X, POS_Y, DELIVY_DATE, AXIS_ORD, LACK_NUM, OVER_NUM,
CREATION_DATE, CREATED_BY, LAST_UPDATED_BY, LAST_UPDATE_DATE, TENANT_ID,
OBJECT_VERSION_NUMBER, ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3, ATTRIBUTE4,
ATTRIBUTE5, ORDER_SEQ_NO)
VALUES (#{orderNo}, #{virtualSlabNo}, #{sgSign}, #{stNo}, #{orderThick}, #{orderWidth},
#{lenAim}, #{posX}, #{posY}, #{delivyDate}, #{axisOrd}, #{lackNum}, #{overNum},
#{creationDate}, #{createdBy}, #{lastUpdatedBy}, #{lastUpdateDate}, #{tenantId},
#{objectVersionNumber}, #{attribute1}, #{attribute2}, #{attribute3}, #{attribute4},
#{attribute5}, #{orderSeqNo})
</insert> </insert>
<insert id="InsertPmSubHisDO" parameterType="net.xdclass.shopmanager.model.PmSubHisDO" keyProperty="id">
INSERT INTO PM_SUB_HIS (SLAB_NO, SUB_YIELD, REL_YIELD, SUB_RESULT, SUB_INFO, PROCESS_CODE,
FORM_PLATE_MODE, ST_NO, SLAB_THICK, SLAB_WID, SLAB_LEN, SLAB_WT, SUB_TIME,
CREATION_DATE, CREATED_BY, LAST_UPDATED_BY, LAST_UPDATE_DATE, ATTRIBUTE1, ATTRIBUTE2,
ATTRIBUTE3, ATTRIBUTE4,
ATTRIBUTE5, VIRTUAL_SLAB_NO, ROLL_THK, ROLL_WID, ROLL_LEN, HEAD_CUT,
TAIL_CUT, WID_CUT, SLIT_LEN, NEED_SLAB_LEN, NEED_SLAB_WT)
VALUES (#{slabNo}, #{subYield}, #{relYield}, #{subResult}, #{subInfo}, #{processCode},
#{formPlateMode}, #{stNo}, #{slabThick}, #{slabWid}, #{slabLen}, #{slabWt}, #{subTime},
#{creationDate}, #{createdBy}, #{lastUpdatedBy}, #{lastUpdateDate}, #{attribute1}, #{attribute2},
#{attribute3}, #{attribute4},
#{attribute5}, #{virtualSlabNo}, #{rollThk}, #{rollWid}, #{rollLen}, #{headCut},
#{tailCut}, #{widCut}, #{slitLen}, #{needSlabLen}, #{needSlabWt})
</insert>
<!-- TENANT_ID,--> <!-- TENANT_ID,-->
<!-- OBJECT_VERSION_NUMBER,--> <!-- OBJECT_VERSION_NUMBER,-->
<!-- , #{item.tenantId},--> <!-- , #{item.tenantId},-->
<!-- #{item.objectVersionNumber}--> <!-- #{item.objectVersionNumber}-->
<!-- 批量插入记录 --> <!-- 批量插入记录 -->
<insert id="batchInsertPmSubHisDO" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id"> <insert id="batchInsertPmSubHisDO" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
INSERT INTO PM_SUB_HIS ( INSERT INTO PM_SUB_HIS (
SLAB_NO, SUB_YIELD, REL_YIELD, SUB_RESULT, SUB_INFO, PROCESS_CODE, SLAB_NO, SUB_YIELD, REL_YIELD, SUB_RESULT, SUB_INFO, PROCESS_CODE,
FORM_PLATE_MODE, ST_NO, SLAB_THICK, SLAB_WID, SLAB_LEN, SLAB_WT, SUB_TIME, FORM_PLATE_MODE, ST_NO, SLAB_THICK, SLAB_WID, SLAB_LEN, SLAB_WT, SUB_TIME,
CREATION_DATE, CREATED_BY, LAST_UPDATED_BY, LAST_UPDATE_DATE, ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3, ATTRIBUTE4, CREATION_DATE, CREATED_BY, LAST_UPDATED_BY, LAST_UPDATE_DATE, ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3, ATTRIBUTE4,
ATTRIBUTE5, VIRTUAL_SLAB_NO, ROLL_THK, ROLL_WID, ROLL_LEN, HEAD_CUT, ATTRIBUTE5, VIRTUAL_SLAB_NO, ROLL_THK, ROLL_WID, ROLL_LEN, HEAD_CUT,
TAIL_CUT, WID_CUT, SLIT_LEN, NEED_SLAB_LEN, NEED_SLAB_WT TAIL_CUT, WID_CUT, SLIT_LEN, NEED_SLAB_LEN, NEED_SLAB_WT
) )
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
( (
#{item.slabNo}, #{item.subYield}, #{item.relYield}, #{item.subResult}, #{item.subInfo}, #{item.processCode}, #{item.slabNo}, #{item.subYield}, #{item.relYield}, #{item.subResult}, #{item.subInfo}, #{item.processCode},
#{item.formPlateMode}, #{item.stNo}, #{item.slabThick}, #{item.slabWid}, #{item.slabLen}, #{item.slabWt}, #{item.subTime}, #{item.formPlateMode}, #{item.stNo}, #{item.slabThick}, #{item.slabWid}, #{item.slabLen}, #{item.slabWt},
#{item.creationDate}, #{item.createdBy}, #{item.lastUpdatedBy}, #{item.lastUpdateDate}, #{item.attribute1}, #{item.attribute2}, #{item.attribute3}, #{item.attribute4}, #{item.subTime},
#{item.attribute5}, #{item.virtualSlabNo}, #{item.rollThk}, #{item.rollWid}, #{item.rollLen}, #{item.headCut}, #{item.creationDate}, #{item.createdBy}, #{item.lastUpdatedBy}, #{item.lastUpdateDate}, #{item.attribute1},
#{item.attribute2}, #{item.attribute3}, #{item.attribute4},
#{item.attribute5}, #{item.virtualSlabNo}, #{item.rollThk}, #{item.rollWid}, #{item.rollLen},
#{item.headCut},
#{item.tailCut}, #{item.widCut}, #{item.slitLen}, #{item.needSlabLen}, #{item.needSlabWt} #{item.tailCut}, #{item.widCut}, #{item.slitLen}, #{item.needSlabLen}, #{item.needSlabWt}
) )
</foreach> </foreach>
@ -317,8 +301,10 @@
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
( (
#{item.orderNo}, #{item.virtualSlabNo}, #{item.sgSign}, #{item.stNo}, #{item.orderThick}, #{item.orderWidth}, #{item.orderNo}, #{item.virtualSlabNo}, #{item.sgSign}, #{item.stNo}, #{item.orderThick},
#{item.lenAim}, #{item.posX}, #{item.posY}, #{item.delivyDate}, #{item.axisOrd}, #{item.lackNum}, #{item.overNum}, #{item.orderWidth},
#{item.lenAim}, #{item.posX}, #{item.posY}, #{item.delivyDate}, #{item.axisOrd}, #{item.lackNum},
#{item.overNum},
#{item.creationDate}, #{item.createdBy}, #{item.lastUpdatedBy}, #{item.lastUpdateDate}, #{item.tenantId}, #{item.creationDate}, #{item.createdBy}, #{item.lastUpdatedBy}, #{item.lastUpdateDate}, #{item.tenantId},
#{item.objectVersionNumber}, #{item.attribute1}, #{item.attribute2}, #{item.attribute3}, #{item.attribute4}, #{item.objectVersionNumber}, #{item.attribute1}, #{item.attribute2}, #{item.attribute3}, #{item.attribute4},
#{item.attribute5}, #{item.orderSeqNo} #{item.attribute5}, #{item.orderSeqNo}

@ -96,7 +96,7 @@ public class MyBatisPlusGenerator {
//.setInclude("QE_TQ_HEATCHE_STAND_RESULT","QE_TQ_PONO_WAIT_TEST","QE_TQ_SLAB_MACRO_RESULT") //.setInclude("QE_TQ_HEATCHE_STAND_RESULT","QE_TQ_PONO_WAIT_TEST","QE_TQ_SLAB_MACRO_RESULT")
.setInclude("PM_SUB_HIS","PM_SUB_ORD") .setInclude("PM_AUTO_SUB_SETTING")
// 生成的表, 支持多表一起生成,以数组形式填写 // 生成的表, 支持多表一起生成,以数组形式填写
//TODO TODO TODO TODO 两个方式,直接写,或者使用命令行输入 //TODO TODO TODO TODO 两个方式,直接写,或者使用命令行输入

Loading…
Cancel
Save