@ -3,7 +3,6 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.* ;
import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt ;
import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesWorkOrderDao ;
import cn.estsh.i3plus.ext.mes.apiservice.schedulejob.TestJob ;
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print.IPrintTemplateStrategyService ;
import cn.estsh.i3plus.ext.mes.apiservice.utils.BeanMapUtilsExt ;
import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException ;
@ -28,8 +27,6 @@ import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.i3plus.pojo.mes.bean.* ;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel ;
import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel ;
import cn.estsh.i3plus.pojo.mes.model.report.MesProductAccountModel ;
import cn.estsh.i3plus.pojo.mes.model.report.MesProductAccountResModel ;
import cn.estsh.i3plus.pojo.mes.repository.* ;
import cn.estsh.i3plus.pojo.mes.util.DateUtilExt ;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil ;
@ -969,10 +966,12 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesPart mesPart = iMesPartService . getPartByPartNo ( mesWorkOrderDb . getPartNo ( ) , mesWorkOrderDb . getOrganizeCode ( ) ) ;
//查询产线信息
MesWorkCenter mesWorkCenter = getMesWorkCenter ( mesWorkOrderDb . getOrganizeCode ( ) , mesWorkOrderDb . getWorkCenterCode ( ) ) ;
//获取生产版本
MesProductVersion mesProductVersion = getMesProductVersion ( mesWorkOrderDb . getOrganizeCode ( ) , mesWorkOrderDb . getPartNo ( ) , mesWorkOrderDb . getProductVersion ( ) ) ;
//物料+生产版本获取bom信息
List < MesBom > mesBoms = mesBomService . findBomList ( mesPart . getOrganizeCode ( ) , mesPart , mesProductVersion . getAlternativePartList ( ) ) ;
//报工类型
if ( MesExtEnumUtil . REPORT_TYPE . REPORT . getValue ( ) = = mesWorkOrder . getReportType ( ) ) {
mesWorkOrderDb . setReportedQty ( MathOperation . add ( mesWorkOrder . getNum ( ) , mesWorkOrderDb . getReportedQty ( ) ) ) ;
@ -1018,7 +1017,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
String nowTime = StringUtil . isEmpty ( mesWorkOrder . getDescription ( ) ) ? TimeTool . getNowTime ( true ) : mesWorkOrder . getDescription ( ) ;
for ( MesBom mesBom : mesBoms ) {
mesProductOffLineList . add ( creatMesProductOffLine ( mesWorkOrder , mesProductVersion , sn , mesBom , false , nowTime , mesBoms . size ( ) ) ) ;
mesProductOffLineList . add ( creatMesProductOffLine ( mesWorkOrder , mesProductVersion , sn , mesBom , nowTime , mesBoms . size ( ) ) ) ;
}
mesProductOffLineService . insertBatch ( mesProductOffLineList ) ;
}
@ -1077,15 +1076,13 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesProductVersion mesProductVersion = new MesProductVersion ( ) ;
if ( ! mesPartProdGroupList . isEmpty ( ) ) {
MesPartProdGroup mesPartProdGroup = mesPartProdGroupList . get ( 0 ) ;
if ( mesPartProdGroup . getEnableBomVersion ( ) = = CommonEnumUtil . TRUE_OR_FALSE . TRUE . getValue ( ) ) {
if ( mesPartProdGroup . getEnableBomVersion ( ) = = null | | mesPartProdGroup . getEnableBomVersion ( ) = = CommonEnumUtil . TRUE_OR_FALSE . TRUE . getValue ( ) ) {
//获取生产版本
mesProductVersion = getMesProductVersion ( mesWorkOrder . getOrganizeCode ( ) , mesWorkOrder . getPartNo ( ) , mesWorkOrder . getProductVersion ( ) ) ;
bomVersion = mesProductVersion . getAlternativePartList ( ) ;
}
}
//物料+生产版本获取bom信息
List < MesBom > mesBoms = mesBomService . findBomList ( mesPart . getOrganizeCode ( ) , mesPart , bomVersion ) ;
//生成条码
String sn = getStringList ( mesWorkOrderNew . getOrganizeCode ( ) , AuthUtilExt . getUserName ( ) ) ;
//保存数据
@ -1096,9 +1093,17 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
String nowTime = TimeTool . getNowTime ( true ) ;
//排序工单
if ( MesExtEnumUtil . ORDER_TYPE . SORT . getValue ( ) = = mesWorkOrder . getWorkOrderType ( ) ) {
//报工类型
if ( MesExtEnumUtil . REPORT_TYPE . WRITE_OFF . getValue ( ) = = mesWorkOrder . getReportType ( ) ) {
MesException . throwMesBusiException ( "工单【%s】为排序工单不允许冲销" , mesWorkOrder . getWorkOrderNo ( ) ) ;
//排序线不能做报工调整ESD属性类型
if ( MesExtEnumUtil . REPORT_TYPE . WRITE_OFF . getValue ( ) = = mesWorkOrderNew . getReportType ( ) ) {
MesConfig config = mesConfigService . getCfgValueByCode ( mesWorkOrder . getOrganizeCode ( ) , MesExtConstWords . NOT_ALLOW_WRITE_OFF ) ;
if ( ! Objects . isNull ( config ) & & config . getCfgValue ( ) . contains ( mesPart . getEsd ( ) ) ) {
MesException . throwMesBusiException ( "物料特殊移库类型为【%s】,不允许冲销" , mesPart . getEsd ( ) ) ;
}
}
//查询工单零件表
List < MesWorkOrderPart > partList = mesWorkOrderPartService . findMesWorkOrderPart ( mesWorkOrder . getWorkOrderNo ( ) , mesWorkOrder . getOrganizeCode ( ) ) ;
if ( CollectionUtils . isEmpty ( partList ) ) {
MesException . throwMesBusiException ( "工单【%s】工单零件表信息不存在, 不允许冲销" , mesWorkOrder . getWorkOrderNo ( ) ) ;
}
//排序加工规则
MesProdRuleSortCfg mesProdRuleSortCfg = getMesProdRuleSortCfg ( mesWorkOrder ) ;
@ -1110,7 +1115,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
isReport = true ;
isMove = true ;
} else if ( MesExtEnumUtil . MES_REPORT_TYPE . CUSTOMER_SUPPLY_MOVE . getValue ( ) = = mesProdRuleSortCfg . getReportType ( ) ) {
customerSupplyMove ( mesWorkOrderNew , mesProductVersion , mesBoms , sn , mesProductOffLineList , mesMoveList , nowTim e, tru e) ;
customerSupplyMove Sort ( mesWorkOrderNew , mesProductVersion , partList , sn , mesProductOffLineList , mesMoveList , nowTim e) ;
} else {
log . info ( "工单{}排序加工规则报工类型未维护" , mesWorkOrder . getWorkOrderNo ( ) ) ;
return ;
@ -1121,8 +1126,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesPartSap mesPartSap = mesPartSapService . getMesPartSapByPartNo ( mesWorkOrder . getPartNo ( ) , mesWorkOrder . getOrganizeCode ( ) ) ;
//成品汇报
if ( isReport ) {
for ( Mes Bom mesBom : mesBoms ) {
mesProductOffLineList . add ( creatMesProductOffLine ( mesWorkOrderNew , mesProductVersion , sn , mesBom, false , nowTime , mesBoms . size ( ) ) ) ;
for ( Mes WorkOrderPart orderPart : partList ) {
mesProductOffLineList . add ( creatMesProductOffLine ( mesWorkOrderNew , mesProductVersion , sn , orderPart, false , nowTime , partList . size ( ) ) ) ;
}
}
//成品移库
@ -1133,18 +1138,23 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
}
} else if ( MesExtEnumUtil . ORDER_TYPE . UN_SORT . getValue ( ) = = mesWorkOrder . getWorkOrderType ( ) ) {
//物料+生产版本获取bom信息
List < MesBom > mesBoms = mesBomService . findBomList ( mesPart . getOrganizeCode ( ) , mesPart , bomVersion ) ;
MesProdRuleNosortCfg mesProdRuleNoSortCfg = mesProdRuleNosortCfgService . findMesProdRuleNosortCfgByWorkCenterCode ( mesWorkOrder . getWorkCenterCode ( ) , mesWorkOrder . getPartNo ( ) , mesWorkOrder . getOrganizeCode ( ) ) ;
if ( MesExtEnumUtil . NOSORT_REPORT_TYPE . REPORT . getValue ( ) = = mesProdRuleNoSortCfg . getReportType ( ) ) {
for ( MesBom mesBom : mesBoms ) {
mesProductOffLineList . add ( creatMesProductOffLine ( mesWorkOrderNew , mesProductVersion , sn , mesBom , false , nowTime , mesBoms . size ( ) ) ) ;
mesProductOffLineList . add ( creatMesProductOffLine ( mesWorkOrderNew , mesProductVersion , sn , mesBom , nowTime , mesBoms . size ( ) ) ) ;
}
} else if ( MesExtEnumUtil . NOSORT_REPORT_TYPE . CUSTOMER_SUPPLY_MOVE . getValue ( ) = = mesProdRuleNoSortCfg . getReportType ( ) ) {
customerSupplyMove ( mesWorkOrderNew , mesProductVersion , mesBoms , sn , mesProductOffLineList , mesMoveList , nowTime ,false );
customerSupplyMove ( mesWorkOrderNew , mesProductVersion , mesBoms , sn , mesProductOffLineList , mesMoveList , nowTime );
}
} else {
log . info ( "工单{}排序规则不属于排序工单和非排序工单" , mesWorkOrder . getWorkOrderNo ( ) ) ;
return ;
}
//原因备注
mesWorkOrder . setRemark ( mesWorkOrderNew . getRemark ( ) ) ;
mesWorkOrder . setDescription ( mesWorkOrderNew . getDescription ( ) ) ;
//更新工单
updateMesWorkOrder ( mesWorkOrder , ( MesExtEnumUtil . REPORT_TYPE . REPORT . getValue ( ) = = mesWorkOrderNew . getReportType ( ) ) ? MesExtEnumUtil . WORK_ORDER_LOG_TYPE . REPORT : MesExtEnumUtil . WORK_ORDER_LOG_TYPE . REPORT_ADJUST , mesWorkOrderNew . getNum ( ) ) ;
@ -1513,7 +1523,56 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
return newMesProductOffLine ;
}
private void customerSupplyMove ( MesWorkOrder mesWorkOrder , MesProductVersion mesProductVersion , List < MesBom > mesBoms , String sn , List < MesProductOffLine > mesProductOffLineList , List < MesMove > mesMoveList , String nowTime , boolean isSort ) {
private void customerSupplyMoveSort ( MesWorkOrder mesWorkOrder , MesProductVersion mesProductVersion , List < MesWorkOrderPart > orderPartList , String sn , List < MesProductOffLine > mesProductOffLineList , List < MesMove > mesMoveList , String nowTime ) {
boolean isItemMove ;
boolean isItemReport ;
MesMoveRule moveRule ;
MesPart itemPart ;
//查询零件生产组的移库规则
List < MesMoveRule > moveRules = mesMoveRuleService . findMesMoveRuleByPartProdGroupCode ( mesWorkOrder . getPartProdGroupCode ( ) , mesWorkOrder . getOrganizeCode ( ) , MesExtEnumUtil . MOVE_RULE_GROUP_TYPE . MOVE_RULE_GROUP_TYPE_20 . getValue ( ) ) ;
Map < String , List < MesMoveRule > > mesMoveRuleMap = moveRules . stream ( ) . filter ( t - > Objects . nonNull ( t . getSrcType ( ) ) ) . collect ( Collectors . groupingBy ( MesMoveRule : : getSrcType ) ) ;
List < String > itemPartNoList = orderPartList . stream ( ) . map ( MesWorkOrderPart : : getPartNo ) . collect ( Collectors . toList ( ) ) ;
//子物料SAP下发信息
Map < String , List < MesPartSap > > mesPartSapMap = getPartSapMap ( mesWorkOrder , itemPartNoList ) ;
//获取物料信息
Map < String , List < MesPart > > itemPartMap = getItemPartMap ( mesWorkOrder , itemPartNoList ) ;
for ( MesWorkOrderPart orderPart : orderPartList ) {
isItemReport = false ;
isItemMove = false ;
moveRule = null ;
itemPart = null ;
if ( itemPartMap . containsKey ( orderPart . getPartNo ( ) ) ) {
itemPart = itemPartMap . get ( orderPart . getPartNo ( ) ) . iterator ( ) . next ( ) ;
if ( ! StringUtil . isEmpty ( itemPart . getEsd ( ) ) & & mesMoveRuleMap . containsKey ( itemPart . getEsd ( ) ) ) {
moveRule = mesMoveRuleMap . get ( itemPart . getEsd ( ) ) . iterator ( ) . next ( ) ;
if ( MesExtEnumUtil . MOVE_TYPE_REPORT_TYPE . REPORT_MOVE . getValue ( ) = = moveRule . getReportType ( ) ) {
isItemMove = true ;
isItemReport = true ;
} else if ( MesExtEnumUtil . MOVE_TYPE_REPORT_TYPE . REPORT . getValue ( ) = = moveRule . getReportType ( ) ) {
isItemReport = true ;
} else if ( MesExtEnumUtil . MOVE_TYPE_REPORT_TYPE . MOVE . getValue ( ) = = moveRule . getReportType ( ) ) {
isItemMove = true ;
}
}
}
//汇报
if ( isItemReport ) {
mesProductOffLineList . add ( creatMesProductOffLine ( mesWorkOrder , mesProductVersion , sn , orderPart , true , nowTime , null ) ) ;
}
//移库
if ( isItemMove ) {
MesPartSap mesPartSap = null ;
if ( mesPartSapMap . containsKey ( orderPart . getPartNo ( ) ) ) {
mesPartSap = mesPartSapMap . get ( orderPart . getPartNo ( ) ) . iterator ( ) . next ( ) ;
}
MesMove move = createMove ( mesPartSap , moveRule . getErpSrcLocateNo ( ) , moveRule . getErpDestLocateNo ( ) , orderPart . getOrganizeCode ( ) , mesWorkOrder . getWorkCenterCode ( ) , orderPart . getItemQty ( ) , MesExtConstWords . EMPTY , MesExtEnumUtil . MOVE_TYPE . RAW_MATERIAL_MOVE . getValue ( ) ) ;
move . setMatnr ( orderPart . getPartNo ( ) ) ;
mesMoveList . add ( move ) ;
}
}
}
private void customerSupplyMove ( MesWorkOrder mesWorkOrder , MesProductVersion mesProductVersion , List < MesBom > mesBoms , String sn , List < MesProductOffLine > mesProductOffLineList , List < MesMove > mesMoveList , String nowTime ) {
boolean isItemMove ;
boolean isItemReport ;
MesMoveRule moveRule ;
@ -1546,9 +1605,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
}
//汇报
if ( isItemReport & & isSort ) {
mesProductOffLineList . add ( creatMesProductOffLine ( mesWorkOrder , mesProductVersion , sn , mesBom , true , nowTime , null ) ) ;
} else if ( isItemReport ) {
if ( isItemReport ) {
String reportSn = String . valueOf ( snowflakeIdMaker . nextId ( ) ) ;
MesProductVersion itemVersion = getMesProductVersion ( mesWorkOrder . getOrganizeCode ( ) , mesBom . getItemPartNo ( ) , mesProductVersion . getProductVersion ( ) ) ;
List < MesBom > bomList = null ;
@ -1559,10 +1616,10 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
//bom下的子节汇报
if ( ! CollectionUtils . isEmpty ( bomList ) ) {
for ( MesBom bom : bomList ) {
mesProductOffLineList . add ( getMesProductOffLine ( mesWorkOrder , itemVersion , reportSn , bom , mesBom . getItemQty ( ) , true , bomList . size ( ) , nowTime ) ) ;
mesProductOffLineList . add ( getMesProductOffLine ( mesWorkOrder , itemVersion , reportSn , bom , mesBom . getItemQty ( ) , true , bomList . size ( ) , nowTime , MesExtConstWords . SAVE_PRODUCT_VERSION_FLAG . equals ( itemPart . getEsd ( ) ) ) ) ;
}
} else {
mesProductOffLineList . add ( getMesProductOffLine ( mesWorkOrder , itemVersion , reportSn , mesBom , mesBom . getQty ( ) , true , MesExtConstWords . ONE , nowTime )) ;
mesProductOffLineList . add ( getMesProductOffLine ( mesWorkOrder , itemVersion , reportSn , mesBom , mesBom . getQty ( ) , true , MesExtConstWords . ONE , nowTime ,false )) ;
}
}
//移库
@ -1578,9 +1635,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
//bom下的子节汇报, 总成也需要汇报
if ( ! isSort & & ! CollectionUtils. isEmpty ( mesProductOffLineList ) ) {
if ( ! CollectionUtils. isEmpty ( mesProductOffLineList ) ) {
for ( MesBom mesBom : mesBoms ) {
mesProductOffLineList . add ( getMesProductOffLine ( mesWorkOrder , mesProductVersion , sn , mesBom , mesBom . getQty ( ) , false , mesBoms . size ( ) , nowTime )) ;
mesProductOffLineList . add ( getMesProductOffLine ( mesWorkOrder , mesProductVersion , sn , mesBom , mesBom . getQty ( ) , false , mesBoms . size ( ) , nowTime ,false )) ;
}
}
}
@ -1612,7 +1669,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
private MesProductOffLine getMesProductOffLine ( MesWorkOrder mesWorkOrder , MesProductVersion mesProductVersion ,
String sn , MesBom mesBom , Double itemQty , boolean isItemReport , Integer bomSize , String nowTime ) {
String sn , MesBom mesBom , Double itemQty , boolean isItemReport ,
Integer bomSize , String nowTime , boolean saveProductVersionFlag ) {
MesProductOffLine newMesProductOffLine = new MesProductOffLine ( ) ;
BeanUtils . copyProperties ( mesBom , newMesProductOffLine , MesExtConstWords . ID , MesExtConstWords . SYSTEM_SYNC_STATUS ) ;
newMesProductOffLine . setReportPartNo ( mesBom . getPartNo ( ) ) ;
@ -1621,6 +1679,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
newMesProductOffLine . setStgeLoc ( mesProductVersion . getShipInventoryPoint ( ) ) ;
newMesProductOffLine . setQty ( MathOperation . mul ( mesWorkOrder . getNum ( ) , itemQty ) ) ;
newMesProductOffLine . setItemQty ( MathOperation . mul ( newMesProductOffLine . getQty ( ) , mesBom . getItemQty ( ) ) ) ;
//装配费没有bom情况
if ( isItemReport & & mesBom . getPartNo ( ) . equals ( mesWorkOrder . getPartNo ( ) ) ) {
newMesProductOffLine . setReportPartNo ( mesBom . getItemPartNo ( ) ) ;
newMesProductOffLine . setReportPartNameRdd ( mesBom . getItemPartName ( ) ) ;
@ -1639,7 +1698,10 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
newMesProductOffLine . setWorkCenterCode ( mesWorkOrder . getWorkCenterCode ( ) ) ;
newMesProductOffLine . setWorkCellCode ( mesWorkOrder . getWorkCellCode ( ) ) ;
newMesProductOffLine . setReportType ( mesWorkOrder . getReportType ( ) ) ;
newMesProductOffLine . setSapWorkCenter ( mesWorkOrder . getWorkCenterCode ( ) ) ;
if ( Objects . equals ( MesExtEnumUtil . ORDER_TYPE . BTO . getValue ( ) , mesWorkOrder . getWorkOrderType ( ) ) ) {
newMesProductOffLine . setWorkCenterCode ( mesProductVersion . getWorkCenterCode ( ) ) ;
}
newMesProductOffLine . setSapWorkCenter ( saveProductVersionFlag ? mesProductVersion . getProductVersion ( ) : mesProductVersion . getWorkCenterCode ( ) ) ;
newMesProductOffLine . setOrganizeCode ( mesWorkOrder . getOrganizeCode ( ) ) ;
newMesProductOffLine . setDescription ( nowTime ) ;
newMesProductOffLine . setBomTotalSize ( bomSize ) ;
@ -1648,14 +1710,45 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
return newMesProductOffLine ;
}
private MesProductOffLine creatMesProductOffLine ( MesWorkOrder mesWorkOrder , MesProductVersion mesProductVersion ,
String sn , Mes Bom mesBom , boolean isItemReport , String nowTime , Integer bomTotalSize ) {
String sn , Mes WorkOrderPart workOrderPart , boolean isItemReport , String nowTime , Integer bomTotalSize ) {
MesProductOffLine newMesProductOffLine = new MesProductOffLine ( ) ;
if ( ! isItemReport ) {
if ( ! isItemReport ) {
newMesProductOffLine . setReportPartNo ( mesWorkOrder . getPartNo ( ) ) ;
newMesProductOffLine . setReportPartNameRdd ( mesWorkOrder . getPartName ( ) ) ;
}
newMesProductOffLine . setReportSn ( sn ) ;
newMesProductOffLine . setItemPartNo ( workOrderPart . getPartNo ( ) ) ;
newMesProductOffLine . setItemPartName ( workOrderPart . getPartName ( ) ) ;
newMesProductOffLine . setItemQty ( MathOperation . mul ( mesWorkOrder . getNum ( ) , workOrderPart . getItemQty ( ) ) ) ;
if ( mesProductVersion ! = null ) {
newMesProductOffLine . setAlort ( mesProductVersion . getReceiveInventoryPoint ( ) ) ;
newMesProductOffLine . setStgeLoc ( mesProductVersion . getShipInventoryPoint ( ) ) ;
newMesProductOffLine . setSapWorkCenter ( mesProductVersion . getWorkCenterCode ( ) ) ;
}
newMesProductOffLine . setQty ( Double . valueOf ( mesWorkOrder . getNum ( ) ) ) ;
newMesProductOffLine . setBomVersion ( mesWorkOrder . getProductVersion ( ) ) ;
newMesProductOffLine . setSerialNumber ( sn ) ;
newMesProductOffLine . setItemUnit ( workOrderPart . getItemUnit ( ) ) ;
newMesProductOffLine . setWorkOrderNo ( mesWorkOrder . getWorkOrderNo ( ) ) ;
newMesProductOffLine . setWorkOrderType ( mesWorkOrder . getWorkOrderType ( ) ) ;
newMesProductOffLine . setWorkCellCode ( mesWorkOrder . getWorkCellCode ( ) ) ;
newMesProductOffLine . setReportType ( mesWorkOrder . getReportType ( ) ) ;
newMesProductOffLine . setWorkCenterCode ( mesWorkOrder . getWorkCenterCode ( ) ) ;
newMesProductOffLine . setOrganizeCode ( mesWorkOrder . getOrganizeCode ( ) ) ;
newMesProductOffLine . setDescription ( nowTime ) ;
newMesProductOffLine . setBomTotalSize ( bomTotalSize ) ;
ConvertBean . serviceModelInitialize ( newMesProductOffLine , mesWorkOrder . getCreateUser ( ) ) ;
return newMesProductOffLine ;
}
private MesProductOffLine creatMesProductOffLine ( MesWorkOrder mesWorkOrder , MesProductVersion mesProductVersion ,
String sn , MesBom mesBom , String nowTime , Integer bomTotalSize ) {
MesProductOffLine newMesProductOffLine = new MesProductOffLine ( ) ;
newMesProductOffLine . setReportPartNo ( mesWorkOrder . getPartNo ( ) ) ;
newMesProductOffLine . setReportPartNameRdd ( mesWorkOrder . getPartName ( ) ) ;
newMesProductOffLine . setReportSn ( sn ) ;
newMesProductOffLine . setItemPartNo ( mesBom . getItemPartNo ( ) ) ;