@ -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 < PmSubHisDO > plistpmSubHisDO = new ArrayList < > ( ) ;
private static List < PmSubHisDO > plistpmSubHisDO = new ArrayList < > ( ) ;
//组板订单详细表
private static List < PmSubOrdDO > plistpmSubOrdDO = new ArrayList < > ( ) ;
private static List < PmSubOrdDO > 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 ) {
@ -279,10 +296,21 @@ public class SubController {
logger . info ( "结果数据板坯号:{};数量:{}" , p . getSlabNo ( ) , gltGGrpCalRslt . size ( ) ) ;
}
// if (gltGGrpCalRslt.size() > 0) {
// now = new Date();
// SetSaveDate(p);
// }
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 ) ;
@ -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,10 +1468,11 @@ public class SubController {
int intRollMinLen = plistPmPdConstBtDO . stream ( ) . filter ( p - > p . getRollLineNo ( ) . equals ( "30" ) ) . findFirst ( ) . orElse ( null ) . getHpmMinPLen ( ) . intValue ( ) ;
//初始化分组数据
gltGGrpCalRslt = new ArrayList< > ( ) ;
gltGGrpCalRslt = new CopyOnWrite ArrayList< > ( ) ;
//gltGCalGrp.parallelStream().forEach(e->{
gltGCalGrp . parallelStream ( ) . forEach ( e - > {
try {
//实例化计算结果数组
GGrpCalRslt GGCR = new GGrpCalRslt ( ) ;
//可轧制最大长度
@ -1473,8 +1503,10 @@ public class SubController {
//最大长度
GGCR . setCal_Len ( intMaxLen ) ;
GGCR . setLtInfoGPreOrder ( e . getLtInfoGPreOrder ( ) ) ;
gltGGrpCalRslt . add ( GGCR ) ;
} catch ( Exception ex ) {
logger . info ( "***计算结果异常:" + ex . getMessage ( ) ) ;
}
} ) ;
if ( gltGGrpCalRslt . size ( ) = = 0 ) {
@ -1483,6 +1515,7 @@ public class SubController {
//分组计算
//gltGGrpCalRslt.parallelStream().forEach(p -> {
gltGGrpCalRslt . parallelStream ( ) . forEach ( p - > {
try {
// 测试数据
//处理数据多处理
List < Integer > ltValues = new ArrayList < > ( ) ;
@ -1684,7 +1717,7 @@ public class SubController {
. 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 ) ) ;
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 ( )
@ -1699,7 +1732,9 @@ public class SubController {
// 设置成材率到 p 对象中
p . setRate ( yieldRate ) ;
} catch ( Exception e ) {
log . error ( "new1" , e ) ;
}
} ) ;
//判断结果数据是否存在
if ( gltGGrpCalRslt . size ( ) = = 0 ) {
@ -1707,7 +1742,7 @@ public class SubController {
}
//判断结算结果长度和成材率是否可用
gltGGrpCalRslt . parallelStream ( ) . forEach ( p - > {
try {
//没有成材率
if ( p . getRate ( ) = = null ) {
p . setIntUseFlg ( 0 ) ;
@ -1772,8 +1807,10 @@ public class SubController {
//数据可用
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 < GGrpCalRslt > 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 ( ) ) ) ; // 宽度
@ -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" ) ; // 轴合同
@ -1907,13 +1950,13 @@ 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 < QdToPoOrderDO > 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 ( ) ) ;
Long slabPdQty = plistPmPdSlabInfoDO . stream ( )
. filter ( item - > item ! = null & & ggcr ! = null & & ggcr . getSlabNo ( ) ! = null & & ggcr . getSlabNo ( ) . equals ( item . getSlabNo ( ) ) )
. count ( ) ;
if ( slabPdQty > 0 ) {
Optional < PmPdSlabInfoDO > 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< GPreOrder > 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 < PmProContProdAttrDO > 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 < PmPdSlabInfoDO > 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 ( ) ) ;
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);
}
}