@ -721,6 +721,93 @@ public void SaveUnDoInfo_ForSap(List<String> list, String undoid, EventInfo mak
}
}
/ * *
* 更新BOX信息并插入UNDOINFO
* @param list 标签ID
* @param undoid 物料凭证
* @param makeEventInfo 事件信息
* /
public void SaveUnDoInfoByStockPending ( List < String > list , String undoid , EventInfo makeEventInfo ) {
/ / 更新事件名
/ / 此SQL语句用于更新物料包装的最后事件名称 、 评论和时间
String sqlu = " UPDATE MATERIALPACKING m SET m.LASTEVENTNAME=:LASTEVENTNAME,m.LASTEVENTCOMMENT =:LASTEVENTCOMMENT,m.LASTEVENTTIME =SYSDATE \ r \ n " +
" WHERE m.SITENAME =:SITENAME AND m.MATERIALPACKINGNAME in (:BOXLIST) " ;
Map < String , Object > bpu = new HashMap < String , Object > ( ) ;
bpu . put ( " LASTEVENTNAME " , makeEventInfo . getEventName ( ) ) ;
bpu . put ( " LASTEVENTCOMMENT " , makeEventInfo . getEventComment ( ) ) ;
bpu . put ( " SITENAME " , " SDK " ) ;
bpu . put ( " BOXLIST " , list ) ;
IDMFrameServiceProxy . getSqlTemplate ( ) . update ( sqlu , bpu ) ;
/ / 销售交货单不返回凭证
/ / 如果undoid不等于 " S " , 则执行更新和插入操作 , 以记录undo信息
if ( ! StringUtils . equals ( " S " , undoid ) )
{
/ / 更新undo信息
/ / 此SQL语句用于更新物料包装的undoid , 仅当库存状态为 ' Stocked ' 时
String updateUndoInfo = " UPDATE MATERIALPACKING T SET T.unDoID = :unDoID WHERE T.MATERIALPACKINGNAME in (:MATERIALPACKINGNAME) "
+ " AND STOCKSTATE = 'StockPending' " ;
Map < String , Object > map = new HashMap < String , Object > ( ) ;
map . put ( " MATERIALPACKINGNAME " , list ) ;
map . put ( " unDoID " , undoid ) ;
IDMFrameServiceProxy . getSqlTemplate ( ) . update ( updateUndoInfo , map ) ;
/ / 插入undo物料包装信息
/ / 此SQL语句用于插入新的记录到BS_MATERIALPACKINGUNDOINFO表中 , 记录详细的undo信息
String insertUnDOMaterialPackingInfo = " insert into BS_MATERIALPACKINGUNDOINFO (unDoID,preundoid,UNDODETAILNAME,undoidstate,UNDOIDDATE, "
+ " SITENAME, MATERIALPACKINGNAME, MATERIALPACKINGTYPE, CONTENTMATERIALTYPE, "
+ " MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY, "
+ " MATERIALQUANTITY, PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME, "
+ " DURABLENAME, MATERIALPROCESSGROUPNAME, LASTEVENTNAME, LASTEVENTTIMEKEY, LASTEVENTTIME, LASTEVENTUSER, "
+ " LASTEVENTCOMMENT, CREATETIME, CREATEUSER, RECEIVEREQUESTNAME, RECEIVEREQUESTDETAILNAME, "
+ " MAKEDATE, RECEIVEACTNO, STOCKINTYPE, RECEIVETIME, RECEIVEUSER, SHIPREQUESTNAME, SHIPREQUESTDETAILNAME, SHIPTIME, "
+ " SHIPUSER, REASONCODETYPE, OQARESULTSTATE, OQARESULT, ERPLOCATION, ERPFACTORY, REASONCODE, CHARGE, SUPPLIERNAME,ETCSTATE,ERPEVENTTIME,NPFLAG) "
+ " select unDoID,'' as preundoid,UNDODETAILNAME,'Created' as undoidstate,:UNDOIDDATE AS UNDOIDDATE, " / /
+ " SITENAME, MATERIALPACKINGNAME, MATERIALPACKINGTYPE, CONTENTMATERIALTYPE, "
+ " MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY, "
+ " DECODE(MATERIALQUANTITY2,0,MATERIALQUANTITY,MATERIALQUANTITY2) MATERIALQUANTITY, PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME, "
+ " DURABLENAME, MATERIALPROCESSGROUPNAME, LASTEVENTNAME, LASTEVENTTIMEKEY, LASTEVENTTIME, LASTEVENTUSER, "
+ " LASTEVENTCOMMENT, CREATETIME, CREATEUSER, RECEIVEREQUESTNAME, RECEIVEREQUESTDETAILNAME, "
+ " MAKEDATE, RECEIVEACTNO, STOCKINTYPE, RECEIVETIME, RECEIVEUSER, SHIPREQUESTNAME, SHIPREQUESTDETAILNAME, SHIPTIME, "
+ " SHIPUSER, REASONCODETYPE, OQARESULTSTATE, OQARESULT, ERPLOCATION, ERPFACTORY, REASONCODE, CHARGE, SUPPLIERNAME,ETCSTATE,ERPEVENTTIME,NPFLAG "
+ " from MATERIALPACKING "
+ " where unDoID=:UNDOID " ;
Map < String , Object > bindMap_insert = new HashMap < String , Object > ( ) ;
bindMap_insert . put ( " UNDOIDDATE " , " " ) ;
bindMap_insert . put ( " UNDOID " , undoid ) ;
IDMFrameServiceProxy . getSqlTemplate ( )
. update ( insertUnDOMaterialPackingInfo , bindMap_insert ) ;
}
/ / 更新Box状态
/ / 根据物料数量和包装数量 , 更新物料包装的状态和相关属性
for ( String s : list ) {
MaterialPackingKey materialPackingKey = new MaterialPackingKey ( " SDK " , s ) ;
com . cim . idm . wmspackage . materialpacking . management . data . MaterialPacking selectByKey = MaterialPackingServiceProxy . getMaterialPackingService ( ) . selectByKey ( materialPackingKey ) ;
double materialQuantity = selectByKey . getMaterialQuantity ( ) ;
double materialQuantity2 = selectByKey . getMaterialQuantity2 ( ) ;
BigDecimal fmaterialQuantity = new BigDecimal ( materialQuantity ) ;
BigDecimal fmaterialQuantity2 = new BigDecimal ( materialQuantity2 ) ;
if ( fmaterialQuantity . compareTo ( fmaterialQuantity2 ) > 0 & & fmaterialQuantity2 . compareTo ( BigDecimal . ZERO ) ! = 0 ) {
Map < String , Object > hashMap = new HashMap < String , Object > ( ) ;
hashMap . put ( " materialQuantity " , fmaterialQuantity . subtract ( fmaterialQuantity2 ) ) ;
hashMap . put ( " materialQuantity2 " , 0 ) ;
hashMap . put ( " shipRequestName " , " " ) ;
hashMap . put ( " shipRequestDetailName " , " " ) ;
SetEventInfo setEventInfo = new SetEventInfo ( ) ;
setEventInfo . setUserColumns ( hashMap ) ;
MaterialPackingServiceProxy . getMaterialPackingService ( ) . setEvent ( materialPackingKey , makeEventInfo , setEventInfo ) ;
} else {
Map < String , Object > hashMap = new HashMap < String , Object > ( ) ;
hashMap . put ( " stockState " , " StockOut " ) ;
SetEventInfo setEventInfo = new SetEventInfo ( ) ;
setEventInfo . setUserColumns ( hashMap ) ;
MaterialPackingServiceProxy . getMaterialPackingService ( ) . setEvent ( materialPackingKey , makeEventInfo , setEventInfo ) ;
}
}
}
}