2025-02-21

main
sunhao 21 hours ago
parent e8f1e1587a
commit 8ddc206516

@ -748,7 +748,7 @@ public class SubController {
*/
public void SetGrpDataBySlab(SlabInfoDO SInfo) {
gltGrpOrderFir.parallelStream().forEach(e -> {
gltGrpOrderFir.forEach(e -> {
// gltGCalGrp 产生可计算分组
@ -760,10 +760,16 @@ public class SubController {
GCalGrp GCG = new GCalGrp();
GCG.setLtInfoGPreOrder(new CopyOnWriteArrayList<>());
e.getLtInfoGPreOrder().parallelStream().forEach(f -> {
e.getLtInfoGPreOrder().forEach(f -> {
//同钢种判断
if (!SInfo.getStNo().equals(f.getInfoPmContMscTechDO().getStNo()))
{
return;
}
try {
//化学成分 chemical composition
// 化学成分 chemical composition
if (!ChkChemical(SInfo, f)) {
return;
}
@ -1369,7 +1375,7 @@ public class SubController {
public static synchronized void SetAllOrder(PmProContDO prPmProContDO, PmProContProdAttrDO ppcpa, PmContMscTechDO pcmt) {
// 获取缺乏的数量
BigDecimal lackNum = prPmProContDO.getPdLackQty();
BigDecimal lackNum =prPmProContDO.getPdTotQty().add(prPmProContDO.getPdLackQty());
// 如果缺乏数量大于0则根据缺乏数量创建相应数量的订单对象
if (lackNum.intValue() > 0) {
for (int i = 0; i < lackNum.intValue(); i++) {
@ -1562,8 +1568,10 @@ public class SubController {
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();
//① 氧化铁皮损失率取固定值0.01
intMaxLen = (SInfo.getRemLen().multiply(BigDecimal.valueOf(0.99)).multiply(SInfo.getSlabActThk()).multiply(SInfo.getRemWid()).divide(intThk.multiply(BigDecimal.valueOf(intWid)), RoundingMode.HALF_UP)).intValue();
}
//不能小于可轧制的最小长度
if (intMaxLen < intRollMinLen) {
return;
@ -1617,6 +1625,11 @@ public class SubController {
return;
}
//测试代码
if (e.getOrderNo()=="52500096071" )
{
}
ltOrder.add(e.getOrderNo());//添加订单号
ltValues.add(e.getIDValue());//价值
ltweights.add(e.getLen());//长度
@ -1663,8 +1676,8 @@ public class SubController {
//切尾
int intTail = PPCLB.getTailCut().intValue();
//去掉切头尾长度
int intCap = p.getCal_Len() - intHead - intTail;
//去掉切头尾长度 300为预留式样长度
int intCap = p.getCal_Len() - intHead - intTail-300;
long[] capacities = {intCap};
@ -1793,10 +1806,38 @@ 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));
//板坯可轧最大长度
int intSlabMaxLen=(SInfo.getRemLen().multiply(SInfo.getSlabActThk()).multiply(SInfo.getRemWid()).divide(decThk.multiply(BigDecimal.valueOf(intWid)), RoundingMode.HALF_UP)).intValue();
//短坯料计算总长度小于轧线最大长度不切割
if (intSlabMaxLen < intRollMaxLen) {
//板坯最大长度
p.setVirtualSlab_Len(SInfo.getRemLen().intValue());
//轧制长度
p.setCal_Len( SInfo.getSlabActThk()
.multiply(SInfo.getRemWid())
.multiply(SInfo.getRemLen())
.divide(decThk.multiply(BigDecimal.valueOf(intWid)), 0, RoundingMode.CEILING).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 rolledVolume =new BigDecimal(0) ;
// p.getCal_Thk()
// .multiply(BigDecimal.valueOf(p.getCal_Wid()))
// .multiply(BigDecimal.valueOf(p.getEff_Len()));
for (int i = 0; i < p.getLtActInfoGPreOrder().size(); i++) {
rolledVolume=rolledVolume.add( BigDecimal.valueOf(p.getLtActInfoGPreOrder().get(i).getLen())
.multiply(p.getCal_Thk())
.multiply(BigDecimal.valueOf(p.getLtActInfoGPreOrder().get(i).getWid())));
}
BigDecimal slabVolume = SInfo.getSlabActThk()
.multiply(SInfo.getRemWid())
@ -1824,7 +1865,7 @@ public class SubController {
}
//成材率大于90%
if (p.getRate().compareTo(BigDecimal.valueOf(0.9)) <= 0) {
if (p.getRate().compareTo(BigDecimal.valueOf(0.7)) <= 0) {
p.setIntUseFlg(0);
return;
}
@ -2097,7 +2138,7 @@ public class SubController {
pmPdSlabDO.setVirtualSlabNo(ggcr.getVirtualSlabNo());
pmPdSlabDO.setSlabNo(ggcr.getSlabNo());
pmPdSlabDO.setMatDesignKind("S");
pmPdSlabDO.setPdStatusHp("12");
pmPdSlabDO.setPdStatusHp("18");
pmPdSlabDO.setPdResp("781"); // TODO 组板责任者 未赋值 操作人id
pmPdSlabDO.setFormPlateMode("A1"); //TODO 组板方式 需要判断
pmPdSlabDO.setPickModeLenDir(BigDecimal.ZERO); //TODO 取板方式_长度方向 未赋值
@ -2217,7 +2258,7 @@ public class SubController {
pmPdSlabDO.setPreCleanSlabLen(BigDecimal.valueOf(ggcr.getVirtualSlab_Len()));
pmPdSlabDO.setPreCleanSlabMaxLen(BigDecimal.valueOf(ggcr.getVirtualSlab_Len()));
pmPdSlabDO.setPreCleanSlabMinLen(BigDecimal.valueOf(ggcr.getVirtualSlab_Len()));
BigDecimal weight = SInfo.getSlabActThk().multiply(SInfo.getSlabActWid()).multiply(BigDecimal.valueOf(ggcr.getVirtualSlab_Len())).multiply(BigDecimal.valueOf(7.85));
BigDecimal weight = SInfo.getSlabActThk().multiply(SInfo.getSlabActWid()).multiply(BigDecimal.valueOf(ggcr.getVirtualSlab_Len())).multiply(BigDecimal.valueOf(7.85)).divide(BigDecimal.valueOf(1000000000),3,RoundingMode.HALF_UP);
pmPdSlabDO.setPreCleanSlabWt(weight);
pmPdSlabDO.setPreCleanSlabMaxWt(weight);
pmPdSlabDO.setPreCleanSlabMinWt(weight);
@ -2231,6 +2272,9 @@ public class SubController {
pmPdSlabDO.setInfurSlabMaxWt(weight);
pmPdSlabDO.setInfurSlabMinWt(weight);
pmPdSlabDO.setNeedSlabLen(BigDecimal.valueOf(ggcr.getVirtualSlab_Len()));
pmPdSlabDO.setNeedSlabWt(weight);
pmPdSlabDO.setAddSlabFlag("1"); //TODO 暂时写死
pmPdSlabDO.setFixSlabLenFlag(0);
pmPdSlabDO.setFixSlabLen(BigDecimal.valueOf(ggcr.getVirtualSlab_Len()));
@ -2297,6 +2341,9 @@ public class SubController {
pmPdSlabDO.setTransFlag(BigDecimal.valueOf(0));
pmPdSlabDO.setSlabCleanWtLossRateSt(BigDecimal.valueOf(0));
pmPdSlabDO.setSlabCleanWtLossRateFr(BigDecimal.valueOf(0));
pmPdSlabDO.setCreatedBy(781L);//TODO 创建人修改人暂时默认781 BKGY
pmPdSlabDO.setLastUpdatedBy(781L);
pmPdSlabDO.setCreationDate(now);
@ -2424,8 +2471,8 @@ public class SubController {
} else {
pmSmallPltPosDO.setSmallPlateDivNo(SMALL_PLATE_DIV_NO[j]);
}
pmSmallPltPosDO.setPickModeLenDir(0);//TODO 取板方式 长度方向 不知道怎么取暂时默认为0
pmSmallPltPosDO.setPickModeWidDir(0);//TODO 取板方式 宽度方向 不知道怎么取暂时默认为0
pmSmallPltPosDO.setPickModeLenDir(j+1);//TODO 取板方式 长度方向 列数累加
pmSmallPltPosDO.setPickModeWidDir(1);//TODO 取板方式 宽度方向 第一行
pmSmallPltPosDO.setOrderThick(gpo.getThk());
pmSmallPltPosDO.setOrderWidth(BigDecimal.valueOf(gpo.getWid()));
pmSmallPltPosDO.setOrderLen(gpo.getLen()); //TODO 长度不确定用实际长度还是长度
@ -2436,6 +2483,7 @@ public class SubController {
pmSmallPltPosDO.setSmallPlateWidth(BigDecimal.valueOf(gpo.getWid()));
pmSmallPltPosDO.setSmallPlateLen(gpo.getLen()); //TODO 长度不确定用实际长度还是长度
pmSmallPltPosDO.setCreatedBy(781L);//TODO 创建人修改人暂时默认781 BKGY
pmSmallPltPosDO.setLastUpdatedBy(781L);
pmSmallPltPosDO.setCreationDate(now);
@ -2469,7 +2517,7 @@ public class SubController {
pmCmdSlabDO.setPreCleanSlabLen(pmPdSlabDO.getPreCleanSlabLen());
pmCmdSlabDO.setPreCleanSlabMaxLen(pmPdSlabDO.getPreCleanSlabMaxLen());
pmCmdSlabDO.setPreCleanSlabMinLen(pmPdSlabDO.getPreCleanSlabMinLen());
pmCmdSlabDO.setPreCleanSlabWt(pmPdSlabDO.getPreCleanSlabWt().divide(BigDecimal.valueOf(1000000000), 3, RoundingMode.HALF_UP));
pmCmdSlabDO.setPreCleanSlabWt(pmPdSlabDO.getPreCleanSlabWt());
pmCmdSlabDO.setPreCleanSlabMaxWt(pmPdSlabDO.getPreCleanSlabMaxWt());
pmCmdSlabDO.setPreCleanSlabMinWt(pmPdSlabDO.getPreCleanSlabMinWt());
Long slabPdQty = plistPmPdSlabInfoDO.stream()
@ -2482,18 +2530,20 @@ public class SubController {
pmCmdSlabDO.setMoldThick(resultPmPdSlabInfoDO.get().getMatActThick().intValue());
pmCmdSlabDO.setMoldWid(resultPmPdSlabInfoDO.get().getMatActWidth().intValue());
}
pmCmdSlabDO.setSlabCleanWtLossRateSt(pmPdSlabDO.getSlabCleanWtLossRateSt());
pmCmdSlabDO.setSlabCleanWtLossRateFr(pmPdSlabDO.getSlabCleanWtLossRateFr());
pmCmdSlabDO.setAddSlabFlag(pmPdSlabDO.getAddSlabFlag());
pmCmdSlabDO.setInfurSlabThick(pmPdSlabDO.getInfurSlabThick());
pmCmdSlabDO.setInfurSlabWid(pmPdSlabDO.getInfurSlabWid());
pmCmdSlabDO.setInfurSlabLen(pmPdSlabDO.getInfurSlabLen());
pmCmdSlabDO.setInfurSlabMaxLen(pmPdSlabDO.getInfurSlabMaxLen());
pmCmdSlabDO.setInfurSlabMinLen(pmPdSlabDO.getInfurSlabMinLen());
pmCmdSlabDO.setInfurSlabWt(pmPdSlabDO.getInfurSlabWt().divide(BigDecimal.valueOf(1000000000), 3, RoundingMode.HALF_UP));
pmCmdSlabDO.setInfurSlabWt(pmPdSlabDO.getInfurSlabWt());
pmCmdSlabDO.setInfurSlabMaxWt(pmPdSlabDO.getInfurSlabMaxWt());
pmCmdSlabDO.setInfurSlabMinWt(pmPdSlabDO.getInfurSlabLen());
pmCmdSlabDO.setNeedSlabLen(pmPdSlabDO.getInfurSlabLen());
pmCmdSlabDO.setNeedSlabWt(pmPdSlabDO.getInfurSlabWt().divide(BigDecimal.valueOf(1000000000), 3, RoundingMode.HALF_UP));
pmCmdSlabDO.setNeedSlabWt(pmPdSlabDO.getInfurSlabWt());
pmCmdSlabDO.setFixSlabLenFlag(String.valueOf(pmPdSlabDO.getFixSlabLenFlag()));
pmCmdSlabDO.setFixSlabLen(pmPdSlabDO.getFixSlabLen().intValue());
pmCmdSlabDO.setSlabPlaceCode(pmPdSlabDO.getSlabPlaceCode());
@ -2577,7 +2627,7 @@ public class SubController {
pmCmdLargePltDO.setOrder1Thick(pmPdSlabDO.getOrderThickAxis());
pmCmdLargePltDO.setCombinePlateWidth(pmPdSlabDO.getCombinePlateWidth());
pmCmdLargePltDO.setCombinePlateLen(pmPdSlabDO.getCombinePlateLen());
pmCmdLargePltDO.setRollWtHp(pmPdSlabDO.getRollWtHp().divide(BigDecimal.valueOf(1000000000), 3, RoundingMode.HALF_UP));
pmCmdLargePltDO.setRollWtHp(pmPdSlabDO.getRollWtHp());
pmCmdLargePltDO.setNormYield(pmPdSlabDO.getNormYield());
pmCmdLargePltDO.setCommandYield(pmPdSlabDO.getCommandYield());
pmCmdLargePltDO.setRollYield(pmPdSlabDO.getRollYield());
@ -2635,6 +2685,7 @@ public class SubController {
.findFirst();
pmCmdContDO.setWholeBacklog(pmContMscTechDOItem.get().getWholeBacklog());
pmCmdContDO.setStNo(pmContMscTechDOItem.get().getStNo());
pmCmdContDO.setRollMode(pmContMscTechDOItem.get().getRollMode());
Optional<PmPdSlabDO> pmPdSlabDOItem = pmPdSlabDOList.stream()
.filter(item -> pmPdContSumDO.getPdMatNo().equals(item.getVirtualSlabNo()))
@ -2714,6 +2765,8 @@ public class SubController {
pmCmdContDO.setUrgOrderFlag(pmPdSlabDOItem.get().getUrgOrderFlag());
pmCmdContDO.setUltCode(pmPdSlabDOItem.get().getUltCode());//TODO 遍根据合同号从质量模块MES合同主档QD_TO_PO_ORDER读取超声探伤标准1、超声探伤标2、超声探伤标3、超声探伤标4、超声探伤标5去重后所有数据用-’拼接成一条记录
pmCmdContDO.setMscLineNo(mscLineNo);
pmCmdContDO.setAxisFlag(0);//TODO 轴合同标记暂时默认0
pmCmdContDO.setCreatedBy(781L);//TODO 创建人修改人暂时默认781 BKGY
pmCmdContDO.setLastUpdatedBy(781L);
pmCmdContDO.setCreationDate(now);
@ -2740,7 +2793,7 @@ public class SubController {
pmCmdSmallPltDO.setSmallPlateThick(pmSmallPltPosDO.getSmallPlateThick());
pmCmdSmallPltDO.setSmallPlateWidth(pmSmallPltPosDO.getSmallPlateWidth());
pmCmdSmallPltDO.setSmallPlateLen(BigDecimal.valueOf(pmSmallPltPosDO.getSmallPlateLen()));
pmCmdSmallPltDO.setSampleLenGive(BigDecimal.valueOf(pmProContProdAttrDO.getSampleLenGive()));
// pmCmdSmallPltDO.setSampleLenGive(BigDecimal.valueOf(pmProContProdAttrDO.getSampleLenGive())); //TODO 对比数据手动组板为空
pmCmdSmallPltDO.setMscLineNo(mscLineNo);
pmCmdSmallPltDO.setCreatedBy(781L);//TODO 创建人修改人暂时默认781 BKGY
pmCmdSmallPltDO.setLastUpdatedBy(781L);

@ -17,104 +17,100 @@
<!--实际的查询板坯SQL-->
<select id="getSlabInfo" resultType="net.xdclass.shopmanager.model.SlabInfoDO" parameterType="net.xdclass.shopmanager.model.SubParams">
SELECT DISTINCT MS.MSC_LINE_NO --产线
, PPCB.SLAB_CUT_GAP --切缝
, MS.NEXT_WHOLE_BACKLOG_CODE -- 全程工序代码
, MS.SLAB_STATUS
, (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 --剩余长度
, MS.*
, PPCB.SLAB_CUT_GAP --切缝
, MS.NEXT_WHOLE_BACKLOG_CODE -- 全程工序代码
, MS.SLAB_STATUS
, (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 --剩余长度
, MS.*
FROM XISC_MM.MM_SLAB MS --MM_SLAB 板坯表
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)
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.SLAB_NO = 'C50010630200'
-- AND MS.SLAB_NO = 'C50015130500'
-- AND MS.SLAB_NO = 'C50015130100'
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>
-- AND MS.SLAB_STATUS ='29' --在制余材
-- AND SUBSTR(MS.SLAB_NO,1,1) NOT IN ('F','E') --复合/叠轧坯,不能组板
-- AND NVL(MS.PONO,' ') != ' '
-- AND NVL(MS.ST_NO,' ') != ' '
-- AND NVL(MS.SLAB_ACT_THK,0.001) &gt; 0.001
-- AND NVL(MS.SLAB_ACT_WID,0.001) &gt; 0.001
-- AND NVL(MS.SLAB_ACT_LEN,0.001) &gt; 0.001
-- AND (NVL(MS.SLAB_ACT_WGT,0.001) &gt; 0.001 OR NVL(MS.SLAB_GROSS_WGT,0.001) &gt; 0.001)
-- AND SUBSTR(NVL(MS.NEXT_WHOLE_BACKLOG_CODE,'123'),2,1) !='B' --全程工序代码第二位不能是B不嫩是火切工序 TODO NEXT_WHOLE_BACKLOG_CODE字段值为null 用nvl处理
-- AND NVL(MS.COMPLEX_DECIDE_CODE,' ') !='4'--废品 TODO COMPLEX_DECIDE_CODE字段值为null 用nvl处理
-- 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)--重量相同 TODO 此条件加上只能查到一条数据
AND MS.SLAB_STATUS ='29' --在制余材
AND SUBSTR(MS.SLAB_NO,1,1) NOT IN ('F','E') --复合/叠轧坯,不能组板
AND NVL(MS.PONO,' ') != ' '
AND NVL(MS.ST_NO,' ') != ' '
AND NVL(MS.SLAB_ACT_THK,0.001) &gt; 0.001
AND NVL(MS.SLAB_ACT_WID,0.001) &gt; 0.001
AND NVL(MS.SLAB_ACT_LEN,0.001) &gt; 0.001
AND (NVL(MS.SLAB_ACT_WGT,0.001) &gt; 0.001 OR NVL(MS.SLAB_GROSS_WGT,0.001) &gt; 0.001)
AND SUBSTR(NVL(MS.NEXT_WHOLE_BACKLOG_CODE,'123'),2,1) !='B' --全程工序代码第二位不能是B不嫩是火切工序 TODO NEXT_WHOLE_BACKLOG_CODE字段值为null 用nvl处理
AND NVL(MS.COMPLEX_DECIDE_CODE,' ') !='4'--废品 TODO COMPLEX_DECIDE_CODE字段值为null 用nvl处理
-- 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)--重量相同 TODO 此条件加上只能查到一条数据
</select>
<select id="getPmPdSlabInfo" resultType="net.xdclass.shopmanager.model.PmPdSlabInfoDO" parameterType="net.xdclass.shopmanager.model.SubParams">
SELECT DISTINCT PPSI.*
FROM XISC_MM.MM_SLAB MS --MM_SLAB 板坯表
LEFT JOIN PM_PD_SLAB PPS ON PPS.SLAB_NO = MS.SLAB_NO --PM_PD_SLAB 组板板坯表
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)
LEFT JOIN PM_PD_SLAB PPS ON PPS.SLAB_NO = MS.SLAB_NO --PM_PD_SLAB 组板板坯表
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.SLAB_NO = 'C50010630200'
-- AND MS.SLAB_NO = 'C50015130500'
-- AND MS.SLAB_NO = 'C50015130100'
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>
-- AND MS.SLAB_STATUS ='29' --在制余材
-- AND SUBSTR(MS.SLAB_NO,1,1) NOT IN ('F','E') --复合/叠轧坯,不能组板
-- AND NVL(MS.PONO,' ') != ' '
-- AND NVL(MS.ST_NO,' ') != ' '
-- AND NVL(MS.SLAB_ACT_THK,0.001) &gt; 0.001
-- AND NVL(MS.SLAB_ACT_WID,0.001) &gt; 0.001
-- AND NVL(MS.SLAB_ACT_LEN,0.001) &gt; 0.001
-- AND (NVL(MS.SLAB_ACT_WGT,0.001) &gt; 0.001 OR NVL(MS.SLAB_GROSS_WGT,0.001) &gt; 0.001)
-- AND SUBSTR(NVL(MS.NEXT_WHOLE_BACKLOG_CODE,'123'),2,1) !='B' --全程工序代码第二位不能是B不嫩是火切工序 TODO NEXT_WHOLE_BACKLOG_CODE字段值为null 用nvl处理
-- AND NVL(MS.COMPLEX_DECIDE_CODE,' ') !='4'--废品 TODO COMPLEX_DECIDE_CODE字段值为null 用nvl处理
-- 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)--重量相同 TODO 此条件加上只能查到一条数据
AND MS.SLAB_STATUS ='29' --在制余材
AND SUBSTR(MS.SLAB_NO,1,1) NOT IN ('F','E') --复合/叠轧坯,不能组板
AND NVL(MS.PONO,' ') != ' '
AND NVL(MS.ST_NO,' ') != ' '
AND NVL(MS.SLAB_ACT_THK,0.001) &gt; 0.001
AND NVL(MS.SLAB_ACT_WID,0.001) &gt; 0.001
AND NVL(MS.SLAB_ACT_LEN,0.001) &gt; 0.001
AND (NVL(MS.SLAB_ACT_WGT,0.001) &gt; 0.001 OR NVL(MS.SLAB_GROSS_WGT,0.001) &gt; 0.001)
AND SUBSTR(NVL(MS.NEXT_WHOLE_BACKLOG_CODE,'123'),2,1) !='B' --全程工序代码第二位不能是B不嫩是火切工序 TODO NEXT_WHOLE_BACKLOG_CODE字段值为null 用nvl处理
AND NVL(MS.COMPLEX_DECIDE_CODE,' ') !='4'--废品 TODO COMPLEX_DECIDE_CODE字段值为null 用nvl处理
-- 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)--重量相同 TODO 此条件加上只能查到一条数据
</select>
<select id="getOrderInfo" resultType="net.xdclass.shopmanager.model.PmProContDO">
SELECT ppc.* FROM PM_PRO_CONT ppc
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_CONT_MSC_TECH PCMT ON PCMT.ORDER_NO = ppc.ORDER_NO
AND ppc.PRO_CONT_ID = pcmt.PRO_CONT_ID
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_CONT_MSC_TECH PCMT ON PCMT.ORDER_NO = ppc.ORDER_NO
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'
-- AND ppc.ORDER_NO IN ('52500003002','52500036002')
-- AND ppc.ORDER_NO='522484Q020'
-- AND PCMT.FUR_TYPE ='C' --加热炉类型 C 没有注解C和S 都代表什么
-- AND ppcpa.ORDER_TYPE_CODE != 'QFH'
-- AND PPC.ON_PD_FLAG != 1 --不用验证操作者
-- AND PPC.PD_HOLD_FLAG != 1 -- 不能封锁状态
-- AND pcmt.ROLL_DIRECT_CODE ='L' --轧制方向代码
-- AND NVL(cm.ORDER_STATUS,0) &gt;= 40 AND NVL(cm.ORDER_STATUS,0) &lt; 67 --TODO 添加nvl处理 表中无效数字
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'
AND PPC.ON_PD_FLAG != 1 --不用验证操作者
AND PPC.PD_HOLD_FLAG != 1 -- 不能封锁状态
AND pcmt.ROLL_DIRECT_CODE ='L' --轧制方向代码
AND NVL(cm.ORDER_STATUS,0) &gt;= 40 AND NVL(cm.ORDER_STATUS,0) &lt; 67 --TODO 添加nvl处理 表中无效数字
-- AND PPC.PD_LACK_QTY &gt; 0 --欠量大于0 TODO 存在欠量小于0的数据
</select>
<select id="getQdToPoOrder" resultType="net.xdclass.shopmanager.model.QdToPoOrderDO">
SELECT QTPO.* FROM PM_PRO_CONT ppc
LEFT JOIN XISC_CT.CT_MAIN CM ON PPC.ORDER_NO = CM.ORDER_NO
LEFT JOIN XISC_QD.QD_TO_PO_ORDER QTPO ON QTPO.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
AND ppc.PRO_CONT_ID = pcmt.PRO_CONT_ID
LEFT JOIN XISC_CT.CT_MAIN CM ON PPC.ORDER_NO = CM.ORDER_NO
LEFT JOIN XISC_QD.QD_TO_PO_ORDER QTPO ON QTPO.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
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'
-- AND ppc.ORDER_NO IN ('52500003002','52500036002')
-- AND ppc.ORDER_NO='522484Q020'
-- AND PCMT.FUR_TYPE ='C' --加热炉类型 C 没有注解C和S 都代表什么
-- AND ppcpa.ORDER_TYPE_CODE != 'QFH'
-- AND PPC.ON_PD_FLAG != 1 --不用验证操作者
-- AND PPC.PD_HOLD_FLAG != 1 -- 不能封锁状态
-- AND pcmt.ROLL_DIRECT_CODE ='L'--轧制方向代码
-- AND NVL(cm.ORDER_STATUS,0) &gt;= 40 AND NVL(cm.ORDER_STATUS,0) &lt; 67 --TODO 添加nvl处理 表中无效数字
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'
AND PPC.ON_PD_FLAG != 1 --不用验证操作者
AND PPC.PD_HOLD_FLAG != 1 -- 不能封锁状态
AND pcmt.ROLL_DIRECT_CODE ='L'--轧制方向代码
AND NVL(cm.ORDER_STATUS,0) &gt;= 40 AND NVL(cm.ORDER_STATUS,0) &lt; 67 --TODO 添加nvl处理 表中无效数字
-- AND PPC.PD_LACK_QTY &gt; 0 --欠量大于0 TODO 存在欠量小于0的数据
</select>

Loading…
Cancel
Save