2025-02-24

main
sunhao 3 months ago
parent 83aebaf50d
commit ea232bde92

@ -134,6 +134,8 @@ public class SubController {
private static List<QeTqSlabMacroResultDO> plistQeTqSlabMacroResultDO;
//连铸板坯生产规格基准表
private static List<PmSlabSpecBtDO> plistPmSlabSpecBtDO;
//钢板厚度余量基准表
private static List<PmThickAddvBtDO> plistPmThickAddvBtDO;
//板坯信息表
private static List<PmPdSlabInfoDO> plistPmPdSlabInfoDO; //TODO 需要添加此表信息的查询
//合约信息
@ -440,7 +442,7 @@ public class SubController {
//region ***多线程获取基础数据***
// 创建线程池
ExecutorService executorService = Executors.newFixedThreadPool(31);
ExecutorService executorService = Executors.newFixedThreadPool(32);
//初始化方案
Loader.loadNativeLibraries();
@ -658,6 +660,12 @@ public class SubController {
return null;
});
//32厚度余量追加值
tasks.add(() -> {
plistPmThickAddvBtDO = subService.getPmThickAddvBt();
return null;
});
// 执行所有任务
try {
executorService.invokeAll(tasks);
@ -748,7 +756,7 @@ public class SubController {
*/
public void SetGrpDataBySlab(SlabInfoDO SInfo) {
gltGrpOrderFir.forEach(e -> {
gltGrpOrderFir.parallelStream().forEach(e -> {
// gltGCalGrp 产生可计算分组
@ -762,13 +770,20 @@ public class SubController {
GCG.setLtInfoGPreOrder(new CopyOnWriteArrayList<>());
e.getLtInfoGPreOrder().forEach(f -> {
//同钢种判断
if (!SInfo.getStNo().equals(f.getInfoPmContMscTechDO().getStNo()))
{
return;
}
try {
//同钢种判断
if (!SInfo.getStNo().equals(f.getInfoPmContMscTechDO().getStNo()))
{
return;
}
//产线相同
if (!SInfo.getMscLineNo().equals(f.getInfoPmContMscTechDO().getMscLineNo()))
{
return;
}
// 化学成分 chemical composition
if (!ChkChemical(SInfo, f)) {
return;
@ -811,36 +826,93 @@ public class SubController {
Optional<BigDecimal> maxTolThkMin = GCG.getLtInfoGPreOrder().stream()
.map(GPreOrder::getThickTolMin)
.reduce(BigDecimal::max);
//厚度追加值
BigDecimal decThkAdd= BigDecimal.ZERO;
//轧制厚度 厚度+厚度公差下限最大值
BigDecimal decThk = e.getThk().add(maxTolThkMin.orElse(BigDecimal.ZERO));
String strThkTolType;
if (GCG.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType() != null) {
strThkTolType = GCG.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType();
} else {
strThkTolType = "*";
}
//存在数据,判断热处理模式
if (plistPmThickAddvBtDO.stream().anyMatch(p -> p.getMscLineNo().equals(SInfo.getMscLineNo())
&& p.getTolTypeCode().equals(strThkTolType)
&& p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0
&& p.getPlateThickTo().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) >= 0
&& p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
&& p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
)) {
if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType().contains("Q")) {
decThkAdd = plistPmThickAddvBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo())
&& p.getTolTypeCode().equals(strThkTolType)
&& p.getWholeHeatTreatmentType().equals("Q")
&& p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0
&& p.getPlateThickTo().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) >= 0
&& p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
&& p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
).collect(Collectors.toList()).get(0).getThickAddv();
} else {
decThkAdd = plistPmThickAddvBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo())
&& p.getTolTypeCode().equals(strThkTolType)
&& p.getWholeHeatTreatmentType().equals("*")
&& p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0
&& p.getPlateThickTo().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) >= 0
&& p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
&& p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
).collect(Collectors.toList()).get(0).getThickAddv();
}
}
//轧制厚度 厚度+厚度公差下限最大值+厚度追加值
BigDecimal decThk = e.getThk().add(maxTolThkMin.orElse(BigDecimal.ZERO)).add(decThkAdd);
//轧制宽度 最大宽度+宽度余量
int intWid = maxWidth.orElse(0) + maxAddWidth.orElse(0);
//切边
int intTrimWid = 0;
String strWithSideFlag = "C";
if (GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark()==null
|| GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark().equals(""))
{
strWithSideFlag="C";
}else{
strWithSideFlag=GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark();
}
//切边量
if (plistPmPlateTrimBtDO.stream().anyMatch(p -> p.getMscLineNo().equals("1030")
String finalStrWithSideFlag = strWithSideFlag;
if (plistPmPlateTrimBtDO.stream().anyMatch(p -> p.getMscLineNo().equals(SInfo.getMscLineNo())
&& p.getPlateThickFrom().compareTo(decThk) <= 0
&& p.getPlateThickTo().compareTo(decThk) >= 0
&& p.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) <= 0
&& p.getSmallPlateLenTo().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) >= 0
&& p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
&& p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
&& p.getWidenFrom().compareTo(decWidRate) <= 0
&& p.getWidenTo().compareTo(decWidRate) >= 0
&& p.getWithSideFlag().equals(finalStrWithSideFlag)
)) {
intTrimWid = plistPmPlateTrimBtDO.stream().filter(p -> p.getMscLineNo().equals("1030")
String finalStrWithSideFlag1 = strWithSideFlag;
intTrimWid = plistPmPlateTrimBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo())
&& p.getPlateThickFrom().compareTo(decThk) <= 0
&& p.getPlateThickTo().compareTo(decThk) >= 0
&& p.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) <= 0
&& p.getSmallPlateLenTo().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) >= 0
&& p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
&& p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
&& p.getWidenFrom().compareTo(decWidRate) <= 0
&& p.getWidenTo().compareTo(decWidRate) >= 0
&& p.getWithSideFlag().equals(finalStrWithSideFlag1)
).collect(Collectors.toList()).get(0).getTrimWidth().intValue();
}
//轧制宽度= 最大宽度 + 最大宽度余量 + 切边量
intWid = intWid + intTrimWid;
//宽度
GCG.setWid(intWid);
@ -1372,7 +1444,7 @@ public class SubController {
* @param ppcpa
* @param pcmt
*/
public static synchronized void SetAllOrder(PmProContDO prPmProContDO, PmProContProdAttrDO ppcpa, PmContMscTechDO pcmt) {
public static synchronized void SetAllOrder(PmProContDO prPmProContDO, PmProContProdAttrDO ppcpa, PmContMscTechDO pcmt,QdToPoOrderDO qtpo) {
// 获取缺乏的数量
BigDecimal lackNum =prPmProContDO.getPdTotQty().add(prPmProContDO.getPdLackQty());
@ -1403,6 +1475,8 @@ public class SubController {
GPO.setInfoPmProContProdAttrDO(ppcpa);
// 关联订单次要技术信息对象
GPO.setInfoPmContMscTechDO(pcmt);
//合同
GPO.setInfoQdToPoOrderDO(qtpo);
// 将创建的订单对象添加到全局订单列表中
gltOrder.add(GPO);
@ -1425,6 +1499,7 @@ public class SubController {
PmContMscTechDO pcmt = new PmContMscTechDO();
QdToPoOrderDO qtpo = new QdToPoOrderDO();
try {
//判断是否在不可组板订单范围内 plistpmIrsubableContDO 中存在就返回return
@ -1452,7 +1527,10 @@ public class SubController {
if (plistPmContMscTechDO.stream().filter(p -> p.getOrderNo().equals(i.getOrderNo()) && p.getMscLineNo().equals("1030")).count() > 0) {
// 可能抛出异常的代码
pcmt = plistPmContMscTechDO.stream().filter(p -> p.getOrderNo().equals(i.getOrderNo())).findFirst().orElseThrow(() -> new NoSuchElementException("No PmContMscTechDO found with name Charlie " + i.getOrderNo()));
SetAllOrder(i, ppcpa, pcmt);
qtpo=plistQdToPoOrderDO.stream().filter(p -> p.getOrderNo().equals(i.getOrderNo())).findFirst().orElseThrow(() -> new NoSuchElementException("No PmContMscTechDO found with name Charlie " + i.getOrderNo()));
SetAllOrder(i, ppcpa, pcmt,qtpo);
} else {
// logger.info("缺少产线信息:" + i.getOrderNo());
}
@ -1483,7 +1561,7 @@ public class SubController {
//region 多线程 数据流处理订单分组
gltOrder.parallelStream().forEach(p -> {
gltOrder.forEach(p -> {
// 检查当前订单是否与已有的分组匹配
if (gltGrpOrderFir.stream().anyMatch(e -> e.getWid().equals(p.getInfoPmProContProdAttrDO().getOrderWidth()) &&
@ -1654,7 +1732,7 @@ public class SubController {
//TODO轧制方向轧制模式 没有其他值暂不考虑,之后数据完善后需要考虑
PmPlateCutLenBtDO PPCLB = plistPmPlateCutLenBtDO.stream().
filter(f -> f.getMscLineNo().equals("1030")
filter(f -> f.getMscLineNo().equals(SInfo.getMscLineNo())
&& f.getBrrNeed().equals((p.getCal_Wid() > SInfo.getRemWid().intValue()) ? "1" : "0")
&& f.getPlateThickFrom().compareTo(p.getCal_Thk()) <= 0
&& f.getPlateThickTo().compareTo(p.getCal_Thk()) >= 0
@ -1726,30 +1804,89 @@ public class SubController {
.map(GPreOrder::getThickTolMin)
.reduce(BigDecimal::max);
//厚度追加值
BigDecimal decThkAdd= BigDecimal.ZERO;
String strThkTolType;
if (p.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType() != null) {
strThkTolType = p.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType();
} else {
strThkTolType = "*";
}
//存在数据,判断热处理模式
if (plistPmThickAddvBtDO.stream().anyMatch(e -> e.getMscLineNo().equals(SInfo.getMscLineNo())
&& e.getTolTypeCode().equals(strThkTolType)
// && e.getTolTypeCode().equals(p.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType())
&& e.getPlateThickFrom().compareTo(p.getLtInfoGPreOrder().get(0).getThk()) <= 0
&& e.getPlateThickTo().compareTo(p.getLtInfoGPreOrder().get(0).getThk()) >= 0
&& e.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
&& e.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
)) {
if (p.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType().contains("Q")) {
decThkAdd = plistPmThickAddvBtDO.stream().filter(e -> e.getMscLineNo().equals(SInfo.getMscLineNo())
&& e.getTolTypeCode().equals(strThkTolType)
// && e.getTolTypeCode().equals(p.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType())
&& e.getWholeHeatTreatmentType().equals("Q")
&& e.getPlateThickFrom().compareTo(p.getLtInfoGPreOrder().get(0).getThk()) <= 0
&& e.getPlateThickTo().compareTo(p.getLtInfoGPreOrder().get(0).getThk()) >= 0
&& e.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
&& e.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
).collect(Collectors.toList()).get(0).getThickAddv();
} else {
decThkAdd = plistPmThickAddvBtDO.stream().filter(e -> e.getMscLineNo().equals(SInfo.getMscLineNo())
&& e.getTolTypeCode().equals(strThkTolType)
// && e.getTolTypeCode().equals(p.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType())
&& e.getWholeHeatTreatmentType().equals("*")
&& e.getPlateThickFrom().compareTo(p.getLtInfoGPreOrder().get(0).getThk()) <= 0
&& e.getPlateThickTo().compareTo(p.getLtInfoGPreOrder().get(0).getThk()) >= 0
&& e.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
&& e.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
).collect(Collectors.toList()).get(0).getThickAddv();
}
}
//轧制厚度 厚度+厚度公差下限最大值
BigDecimal decThk = p.getThk().add(maxTolThkMin.orElse(BigDecimal.ZERO));
BigDecimal decThk = p.getThk().add(maxTolThkMin.orElse(BigDecimal.ZERO)).add(decThkAdd);
//轧制宽度 最大宽度+宽度余量
int intWid = maxWidth.orElse(0) + maxAddWidth.orElse(0);
//切边
int intTrimWid = 0;
String strWithSideFlag = "C";
if (p.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark()==null
|| p.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark().equals(""))
{
strWithSideFlag="C";
}else{
strWithSideFlag=p.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark();
}
//切边量
String finalStrWithSideFlag = strWithSideFlag;
//切边量
if (plistPmPlateTrimBtDO.stream().anyMatch(f -> f.getMscLineNo().equals("1030")
if (plistPmPlateTrimBtDO.stream().anyMatch(f -> f.getMscLineNo().equals(SInfo.getMscLineNo())
&& f.getPlateThickFrom().compareTo(decThk) <= 0
&& f.getPlateThickTo().compareTo(decThk) >= 0
&& f.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(p.getLtInfoGPreOrder().get(0).getLen())) <= 0
&& f.getSmallPlateLenTo().compareTo(BigDecimal.valueOf(p.getLtInfoGPreOrder().get(0).getLen())) >= 0
&& f.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
&& f.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
&& f.getWidenFrom().compareTo(decWidRate) <= 0
&& f.getWidenTo().compareTo(decWidRate) >= 0
&& f.getWithSideFlag().equals(finalStrWithSideFlag)
)) {
intTrimWid = plistPmPlateTrimBtDO.stream().filter(f -> f.getMscLineNo().equals("1030")
intTrimWid = plistPmPlateTrimBtDO.stream().filter(f -> f.getMscLineNo().equals(SInfo.getMscLineNo())
&& f.getPlateThickFrom().compareTo(decThk) <= 0
&& f.getPlateThickTo().compareTo(decThk) >= 0
&& f.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(p.getLtInfoGPreOrder().get(0).getLen())) <= 0
&& f.getSmallPlateLenTo().compareTo(BigDecimal.valueOf(p.getLtInfoGPreOrder().get(0).getLen())) >= 0
&& f.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
&& f.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
&& f.getWidenFrom().compareTo(decWidRate) <= 0
&& f.getWidenTo().compareTo(decWidRate) >= 0
&& f.getWithSideFlag().equals(finalStrWithSideFlag)
).collect(Collectors.toList()).get(0).getTrimWidth().intValue();
}
//轧制宽度= 最大宽度 + 最大宽度余量 + 切边量
@ -1786,12 +1923,19 @@ public class SubController {
return;
}
//订单最大切头
int intOrdHeadMax= p.getLtActInfoGPreOrder().stream().mapToInt(GPreOrder::getCutHeadLen).max().orElse(0);
//订单最大切尾
int intOrdTailMax= p.getLtActInfoGPreOrder().stream().mapToInt(GPreOrder::getCutTailLen).max().orElse(0);
//切头
p.setHead_Len(PPCLB_Act.getHeadCut().intValue());
//切尾
p.setTail_Len(PPCLB_Act.getTailCut().intValue());
//轧制长度
p.setCal_Len(p.getEff_Len() + PPCLB_Act.getHeadCut().intValue() + PPCLB_Act.getTailCut().intValue());
p.setCal_Len((int) ((p.getEff_Len() + PPCLB_Act.getHeadCut().intValue() + PPCLB_Act.getTailCut().intValue()+intOrdHeadMax+intOrdTailMax)/0.99));
//轧制长度
p.setNeedCal_Len((int) ((p.getEff_Len() + PPCLB_Act.getHeadCut().intValue() + PPCLB_Act.getTailCut().intValue()+intOrdHeadMax+intOrdTailMax)/0.99));
//板坯厚度
p.setVirtualSlab_Thk(SInfo.getSlabActThk());
@ -1806,6 +1950,11 @@ public class SubController {
//板坯重量
p.setVirtualSlab_Wgt(p.getVirtualSlab_Thk().multiply(BigDecimal.valueOf(p.getVirtualSlab_Len())).multiply(BigDecimal.valueOf(p.getVirtualSlab_Wid())).multiply(BigDecimal.valueOf(7.85)).divide(BigDecimal.valueOf(1000000000), 2, RoundingMode.HALF_UP));
//需要板坯长度
p.setNeedSlab_Len(virtualSlabLen.intValue());
//需要板坯重量
p.setNeedSlab_Wgt(p.getVirtualSlab_Thk().multiply(BigDecimal.valueOf(p.getVirtualSlab_Len())).multiply(BigDecimal.valueOf(p.getVirtualSlab_Wid())).multiply(BigDecimal.valueOf(7.85)).divide(BigDecimal.valueOf(1000000000), 2, RoundingMode.HALF_UP));
//板坯可轧最大长度
int intSlabMaxLen=(SInfo.getRemLen().multiply(SInfo.getSlabActThk()).multiply(SInfo.getRemWid()).divide(decThk.multiply(BigDecimal.valueOf(intWid)), RoundingMode.HALF_UP)).intValue();
@ -1843,7 +1992,7 @@ public class SubController {
.multiply(SInfo.getRemWid())
.multiply(BigDecimal.valueOf(p.getVirtualSlab_Len()));
BigDecimal yieldRate = rolledVolume.divide(slabVolume, 2, RoundingMode.HALF_UP); // 保留4位小数
BigDecimal yieldRate = rolledVolume.divide(slabVolume, 4, RoundingMode.HALF_UP); // 保留4位小数
// 设置成材率到 p 对象中
p.setRate(yieldRate);
@ -1960,7 +2109,8 @@ public class SubController {
// 找到重量最大成材率最大的数据
Optional<GGrpCalRslt> maxWeightMaxYieldRate = filteredList.stream()
.max(Comparator.comparing((GGrpCalRslt g) -> g.getVirtualSlab_Wgt())
.thenComparing(GGrpCalRslt::getRate));
.thenComparing(GGrpCalRslt::getRate)
.thenComparing(GGrpCalRslt::getVirtualSlab_Len));
// 将筛选出的数据添加到 gltSelGGrpCalRslt 中
maxWeightMaxYieldRate.ifPresent(gltSelGGrpCalRslt::add);

@ -143,4 +143,6 @@ public interface SubMapper extends BaseMapper<Map> {
void insertPmCmdCont(PmCmdContDO pmCmdContDO);
String GetMaxSeq(String pono);
List<PmThickAddvBtDO> getPmThickAddvBt();
}

@ -28,15 +28,23 @@ public class GGrpCalRslt {
//虚拟板坯厚度
private BigDecimal VirtualSlab_Thk;
//虚拟板坯重量
private BigDecimal VirtualSlab_Wgt;
//虚拟板坯重量
private BigDecimal VirtualSlab_Wgt;
//轧制宽度
private int Cal_Wid;
//需要板坯长度
private int needSlab_Len;
//需要板坯重量
private BigDecimal needSlab_Wgt;
//轧制宽度
private int Cal_Wid;
//厚度
private BigDecimal Cal_Thk;
//长度
private int Cal_Len;
//长度
private int NeedCal_Len;
//宽度
private int Wid;
//厚度
@ -67,6 +75,7 @@ public class GGrpCalRslt {
private int Smp_Len;
//补长
private int Rep_Len;
//全部合同信息
private List<GPreOrder> LtInfoGPreOrder;
//实际合同信息

@ -38,6 +38,11 @@ public class GPreOrder {
//厚度公差下限
private BigDecimal thickTolMin;
//切头
private int CutHeadLen;
//切尾
private int CutTailLen;
//合同信息
private PmProContDO infoPmProContDo;
@ -47,4 +52,7 @@ public class GPreOrder {
//合同产线工艺参数表
private PmContMscTechDO infoPmContMscTechDO;
//合同
private QdToPoOrderDO infoQdToPoOrderDO;
}

@ -121,4 +121,6 @@ public interface SubService {
void batchInsertPmCmdCont(List<PmCmdContDO> pmCmdContDOList);
String GetMaxSeq(String pono);
List<PmThickAddvBtDO> getPmThickAddvBt();
}

@ -360,5 +360,10 @@ public class SubServiceImpl implements SubService {
return subMapper.GetMaxSeq(pono);
}
@Override
public List<PmThickAddvBtDO> getPmThickAddvBt() {
return subMapper.getPmThickAddvBt();
}
}

@ -28,7 +28,7 @@
LEFT JOIN PM_PD_SLAB PPS ON PPS.SLAB_NO = MS.SLAB_NO --PM_PD_SLAB 组板板坯表
LEFT JOIN PM_PD_CONST_BT PPCB ON PPCB.ROLL_LINE_NO = SUBSTR(MS.MSC_LINE_NO, 3, 2)
WHERE 1 = 1
AND MS.MSC_LINE_NO = '1030' --5米轧线
-- AND MS.MSC_LINE_NO = '1030' --5米轧线
-- AND MS.SLAB_NO = 'C50015130500'
-- AND MS.SLAB_NO = 'C50015130100'
<if test="slabNo != null and slabNo != ''">AND MS.SLAB_NO = #{slabNo}</if>
@ -54,7 +54,7 @@
LEFT JOIN PM_PD_SLAB_INFO PPSI ON PPSI.SLAB_NO = MS.SLAB_NO --PM_PD_SLAB 组板板坯表
LEFT JOIN PM_PD_CONST_BT PPCB ON PPCB.ROLL_LINE_NO = SUBSTR(MS.MSC_LINE_NO, 3, 2)
WHERE 1 = 1
AND MS.MSC_LINE_NO = '1030' --5米轧线
-- AND MS.MSC_LINE_NO = '1030' --5米轧线
-- AND MS.SLAB_NO = 'C50015130500'
-- AND MS.SLAB_NO = 'C50015130100'
<if test="slabNo != null and slabNo != ''">AND MS.SLAB_NO = #{slabNo}</if>
@ -82,8 +82,8 @@
AND ppc.PRO_CONT_ID = pcmt.PRO_CONT_ID
-- AND cm.MSC_LINE_NO = pcmt.MSC_LINE_NO --PM_PRO_CONT没有MSC_LINE_NO
WHERE 1=1
AND pcmt.MSC_LINE_NO = '1030' --5米轧线
-- AND ppc.ORDER_NO IN ('52500037002')
-- AND pcmt.MSC_LINE_NO = '1030' --5米轧线
AND ppc.ORDER_NO IN ('J2502001208')
AND PCMT.FUR_TYPE ='C' --加热炉类型 C 没有注解C和S 都代表什么
AND ppcpa.ORDER_TYPE_CODE != 'QFH'
AND PPC.ON_PD_FLAG != 1 --不用验证操作者
@ -103,7 +103,7 @@
AND ppc.PRO_CONT_ID = pcmt.PRO_CONT_ID
-- AND cm.MSC_LINE_NO = pcmt.MSC_LINE_NO --PM_PRO_CONT没有MSC_LINE_NO
WHERE 1=1
AND pcmt.MSC_LINE_NO = '1030' --5米轧线
-- AND pcmt.MSC_LINE_NO = '1030' --5米轧线
-- AND ppc.ORDER_NO IN ('52500037002')
AND PCMT.FUR_TYPE ='C' --加热炉类型 C 没有注解C和S 都代表什么
AND ppcpa.ORDER_TYPE_CODE != 'QFH'
@ -280,6 +280,12 @@
</select>
<select id="getPmThickAddvBt" resultType="net.xdclass.shopmanager.model.PmThickAddvBtDO">
SELECT *
FROM PM_THICK_ADDV_BT
</select>
<select id="GetMaxSeq" resultType="java.lang.String" parameterType="java.lang.String">
SELECT NVL(MAX(VIRTUAL_SLAB_NO), 0)
FROM PM_PD_SLAB

Loading…
Cancel
Save