@ -43,6 +43,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value ;
import org.springframework.stereotype.Service ;
import com.op.wms.service.IOdsProcureOrderService ;
import org.springframework.transaction.annotation.Transactional ;
import org.springframework.util.CollectionUtils ;
import org.springframework.web.context.request.RequestContextHolder ;
import org.springframework.web.context.request.ServletRequestAttributes ;
@ -779,7 +780,8 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
mapList . add ( paramMap ) ;
R result2 = remoteSapService . temporarilyCollected ( mapList ) ;
int code = result2 . getCode ( ) ;
if ( code = = 200 ) { //成功
if ( code = = 200 ) {
//成功
Map map = new HashMap ( ) ;
map = ( Map ) result2 . getData ( ) ;
String MATERIALDOCUMENT = ( String ) map . get ( "MATERIALDOCUMENT" ) ;
@ -1157,7 +1159,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
}
pw . setCardNum ( String . valueOf ( i + + ) ) ;
String dateString = pw . getUserDefined11 ( ) . replace ( "-" , "" ) ;
pw . setUserDefined1 ( pw . getProcureCode ( ) + "-" + pw . getUserDefined3 ( ) + "-" + pw . getUserDefined8 ( ) + "-" + dateString + "-" + pw. getCardNum ( ) ) ; //采购单+行项目+类型+日期+板次
pw . setUserDefined1 ( pw . getProcureCode ( ) + "-" + pw . getUserDefined3 ( ) + "-" + pw . getUserDefined8 ( ) + "-" + dateString + "-" + odsProcureOrder. getID ( ) + "-" + pw. getCardNum ( ) ) ; //采购单+行项目+类型+日期+板次
pw . setCreateTime ( nowDate ) ;
pw . setActive ( "1" ) ;
dtos . add ( pw ) ;
@ -1212,6 +1214,178 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
return order ;
}
@Override
@Transactional
public String addOrderCard ( OdsProcureOrder odsProcureOrder ) {
//他有两部分,分别是单子和标识卡,修改单子,把标识卡保存修改库存
String result1 = "操作成功" ;
//收货记录- - rawOrderInSnId。修改收货数量-------------
DynamicDataSourceContextHolder . push ( "ds_" + odsProcureOrder . getFactoryCode ( ) ) ;
//--receiptNoCode收货单号
OdsProcureOrder order = odsProcureOrderMapper . selectOdsProcureOrderByID ( odsProcureOrder . getID ( ) ) ;
//查询出对应的采购单
List < OdsProcureOrder > orderList = odsProcureOrder . getList ( ) ;
//对应采购单的标识卡
//wms_raw_order_in_sn
BigDecimal Tme = new BigDecimal ( "0" ) ;
for ( OdsProcureOrder order1 :
orderList ) {
//标识卡信息
//wms_raw_order_in_sn
WmsRawOrderInSn wmsRawOrderInSn = new WmsRawOrderInSn ( ) ;
wmsRawOrderInSn . setRawOrderInSnId ( IdUtils . fastSimpleUUID ( ) ) ;
wmsRawOrderInSn . setUserDefined1 ( "2" ) ; //1是收货,2是入库
wmsRawOrderInSn . setUserDefined2 ( order . getUserDefined7 ( ) ) ; //批次
wmsRawOrderInSn . setWhCode ( odsProcureOrder . getWhCode ( ) ) ; //厂库编号
wmsRawOrderInSn . setWaCode ( odsProcureOrder . getWaCode ( ) ) ;
wmsRawOrderInSn . setWlCode ( order1 . getSn ( ) ) ; //库位设置为托盘
wmsRawOrderInSn . setPoNo ( order . getProcureCode ( ) ) ; //采购单号
wmsRawOrderInSn . setPoLine ( odsProcureOrder . getPoLine ( ) ) ; //行项目
wmsRawOrderInSn . setMaterialCode ( order1 . getMaterialCode ( ) ) ;
wmsRawOrderInSn . setMaterialDesc ( order1 . getMaterialDesc ( ) ) ;
wmsRawOrderInSn . setAmount ( order1 . getPlanNumber ( ) ) ; //实际输入数量
wmsRawOrderInSn . setFactoryCode ( odsProcureOrder . getFactoryCode ( ) ) ;
wmsRawOrderInSn . setCreateBy ( odsProcureOrder . getCreateBy ( ) ) ;
wmsRawOrderInSn . setGmtCreate ( new Date ( ) ) ;
wmsRawOrderInSn . setActiveFlag ( "1" ) ;
wmsRawOrderInSn . setUserDefined4 ( order . getUnit ( ) ) ; //单位
wmsRawOrderInSn . setSn ( order1 . getSn ( ) ) ; //托盘号
wmsRawOrderInSn . setFactoryCode ( odsProcureOrder . getFactoryCode ( ) ) ;
wmsRawOrderInSn . setUserDefined3 ( order . getID ( ) ) ;
wmsRawOrderInSn . setUserDefined5 ( odsProcureOrder . getReceiptNoCode ( ) ) ;
wmsRawOrderInSn . setUserDefined6 ( order1 . getUserDefined6 ( ) ) ; //标识码绑定
wmsRawOrderInSnMapper . insertWmsRawOrderInSn ( wmsRawOrderInSn ) ;
//标识码绑定
if ( order1 . getUserDefined6 ( ) ! = null ) {
WmsLogotypeTable wmsLogotypeTable = new WmsLogotypeTable ( ) ;
wmsLogotypeTable . setId ( IdUtils . fastSimpleUUID ( ) ) ;
wmsLogotypeTable . setLogotype ( order1 . getUserDefined6 ( ) ) ;
wmsLogotypeTable . setSn ( order1 . getSn ( ) ) ;
wmsLogotypeTable . setActiveFlag ( "1" ) ;
wmsRawOrderInSnMapper . insertWmsLogotypeTable ( wmsLogotypeTable ) ;
}
//插入收货记录
//如果收货完成了的话,就插入信息收货完成
odsProcureOrder . setPlanNumber ( order1 . getPlanNumber ( ) ) ; //操作数量
odsProcureOrder . setOrderStatus ( "1" ) ;
BigDecimal result = order . getRealityNumber ( ) . add ( order1 . getPlanNumber ( ) ) ;
if ( result . equals ( order . getPlanNumber ( ) ) ) {
odsProcureOrder . setOrderStatus ( "2" ) ; //
}
odsProcureOrderMapper . updateRealityNuById ( odsProcureOrder ) ;
Tme = Tme . add ( order1 . getPlanNumber ( ) ) ;
//单据修改完成
}
//标识卡记录已经录入,订单已经修改完成
BigDecimal amount = Tme ; //要入库的数量
Map paramMap = new HashMap < > ( ) ;
List < Map > mapList = new ArrayList < > ( ) ;
paramMap . put ( "EBELN" , order . getProcureCode ( ) ) ;
paramMap . put ( "EBELP" , order . getUserDefined3 ( ) ) ;
paramMap . put ( "MATNR" , order . getMaterialCode ( ) ) ;
paramMap . put ( "WERKS" , order . getSiteCode ( ) ) ;
paramMap . put ( "QUANTITY" , amount . toString ( ) ) ;
mapList . add ( paramMap ) ;
R result2 = remoteSapService . temporarilyCollected ( mapList ) ;
int code = result2 . getCode ( ) ;
if ( code = = 200 ) {
Map map = new HashMap ( ) ;
map = ( Map ) result2 . getData ( ) ;
String MATERIALDOCUMENT = ( String ) map . get ( "MATERIALDOCUMENT" ) ;
String MATDOCUMENTYEAR = ( String ) map . get ( "MATDOCUMENTYEAR" ) ;
order . setSapTempInfor ( result2 . getMsg ( ) ) ;
WmsRawOrderIn wmsRawOrderIn = new WmsRawOrderIn ( ) ;
wmsRawOrderIn . setRawOrderInId ( IdUtils . fastSimpleUUID ( ) ) ;
wmsRawOrderIn . setFactoryCode ( odsProcureOrder . getFactoryCode ( ) ) ;
wmsRawOrderIn . setDnNo ( odsProcureOrder . getReceiptNoCode ( ) ) ;
wmsRawOrderIn . setPoNo ( order . getProcureCode ( ) ) ;
wmsRawOrderIn . setPoLine ( order . getUserDefined3 ( ) ) ;
wmsRawOrderIn . setMaterialCode ( order . getMaterialCode ( ) ) ;
wmsRawOrderIn . setMaterialDesc ( order . getMaterialDesc ( ) ) ;
wmsRawOrderIn . setRequestAmount ( amount ) ;
wmsRawOrderIn . setUnit ( order . getUnit ( ) ) ;
wmsRawOrderIn . setRequestTime ( new Date ( ) ) ;
wmsRawOrderIn . setOrderStatus ( "0" ) ; //暂收
wmsRawOrderIn . setActiveFlag ( "1" ) ;
wmsRawOrderIn . setSupplyCode ( order . getSupplierCode ( ) ) ;
//wmsRawOrderIn.setUserDefined1();
wmsRawOrderIn . setAccountingStatus ( "0" ) ; //0是暂收
wmsRawOrderIn . setUserDefined1 ( MATERIALDOCUMENT ) ; //物料凭证编号
wmsRawOrderIn . setUserDefined2 ( MATDOCUMENTYEAR ) ; //年凭证号
wmsRawOrderIn . setUserDefined3 ( result2 . getMsg ( ) ) ; //暂收信息
//wmsRawOrderIn.setAccountingMessage(result2.getMsg());
wmsRawOrderIn . setSapFactoryCode ( odsProcureOrder . getFactoryCode ( ) ) ;
wmsRawOrderIn . setCreateBy ( odsProcureOrder . getCreateBy ( ) ) ;
wmsRawOrderIn . setGmtCreate ( new Date ( ) ) ;
wmsRawOrderInMapper . insertWmsRawOrderIn ( wmsRawOrderIn ) ;
order . setSapTempStatus ( "1" ) ; //0是失败。1是成功
odsProcureOrderMapper . updateOdsProcureOrder ( order ) ;
for ( OdsProcureOrder odsProcureOrder1 : orderList ) {
//收货
WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = new WmsOdsMateStorageNewsSn ( ) ;
wmsOdsMateStorageNewsSn . setMateOrderInSnId ( IdUtils . fastSimpleUUID ( ) ) ;
wmsOdsMateStorageNewsSn . setWhCode ( odsProcureOrder . getWhCode ( ) ) ; //仓库编码
wmsOdsMateStorageNewsSn . setWaCode ( odsProcureOrder . getWaCode ( ) ) ;
wmsOdsMateStorageNewsSn . setWlCode ( odsProcureOrder1 . getSn ( ) ) ; //库位编码-
wmsOdsMateStorageNewsSn . setMaterialCode ( odsProcureOrder1 . getMaterialCode ( ) ) ;
wmsOdsMateStorageNewsSn . setMaterialDesc ( odsProcureOrder1 . getMaterialDesc ( ) ) ;
wmsOdsMateStorageNewsSn . setSn ( odsProcureOrder1 . getSn ( ) ) ;
wmsOdsMateStorageNewsSn . setAmount ( odsProcureOrder1 . getPlanNumber ( ) ) ;
wmsOdsMateStorageNewsSn . setCreateBy ( odsProcureOrder . getCreateBy ( ) ) ;
wmsOdsMateStorageNewsSn . setGmtCreate ( new Date ( ) ) ;
wmsOdsMateStorageNewsSn . setUserDefined2 ( order . getUserDefined7 ( ) ) ; //批次
wmsOdsMateStorageNewsSn . setFactoryCode ( odsProcureOrder . getFactoryCode ( ) ) ;
wmsOdsMateStorageNewsSn . setSapFactoryCode ( odsProcureOrder . getFactoryCode ( ) ) ;
wmsOdsMateStorageNewsSn . setActiveFlag ( "1" ) ;
wmsOdsMateStorageNewsSnMapper . insertWmsOdsMateStorageNewsSn ( wmsOdsMateStorageNewsSn ) ;
//修改库存
//2,修改库存---/加库存数量-/-冻结数量
WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews ( ) ;
wmsOdsEmStorageNews . setWhCode ( odsProcureOrder . getWhCode ( ) ) ; //仓库编码
wmsOdsEmStorageNews . setWlCode ( odsProcureOrder1 . getSn ( ) ) ; //库位编码
wmsOdsEmStorageNews . setWaCode ( odsProcureOrder . getWaCode ( ) ) ; //库位编码
wmsOdsEmStorageNews . setMaterialCode ( odsProcureOrder1 . getMaterialCode ( ) ) ;
wmsOdsEmStorageNews . setUserDefined2 ( order . getUserDefined7 ( ) ) ; //批次
wmsOdsEmStorageNews . setAmount ( odsProcureOrder1 . getPlanNumber ( ) ) ;
//添加库存--这个要有个判断有没有这个库存如果没有的话,就插入
WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper . selectByWhCodeAndMate ( wmsOdsEmStorageNews ) ;
if ( wmsOdsMateStorageNews = = null ) {
WmsOdsMateStorageNews wmsOdsMateStorageNews1 = new WmsOdsMateStorageNews ( ) ;
wmsOdsMateStorageNews1 . setStorageId ( IdUtils . fastSimpleUUID ( ) ) ;
wmsOdsMateStorageNews1 . setWhCode ( odsProcureOrder . getWhCode ( ) ) ;
wmsOdsMateStorageNews1 . setWlCode ( odsProcureOrder1 . getSn ( ) ) ;
wmsOdsMateStorageNews1 . setWaCode ( odsProcureOrder . getWaCode ( ) ) ;
wmsOdsMateStorageNews1 . setAmount ( odsProcureOrder1 . getPlanNumber ( ) ) ;
wmsOdsMateStorageNews1 . setStorageAmount ( odsProcureOrder1 . getPlanNumber ( ) ) ;
wmsOdsMateStorageNews1 . setMaterialCode ( odsProcureOrder1 . getMaterialCode ( ) ) ;
wmsOdsMateStorageNews1 . setMaterialDesc ( odsProcureOrder1 . getMaterialDesc ( ) ) ;
wmsOdsMateStorageNews1 . setStorageType ( "BC" ) ;
wmsOdsMateStorageNews1 . setCreateBy ( odsProcureOrder . getCreateBy ( ) ) ;
wmsOdsMateStorageNews1 . setGmtCreate ( new Date ( ) ) ;
wmsOdsMateStorageNews1 . setActiveFlag ( "1" ) ;
wmsOdsMateStorageNews1 . setFactoryCode ( odsProcureOrder . getFactoryCode ( ) ) ;
wmsOdsMateStorageNews1 . setSapFactoryCode ( odsProcureOrder . getFactoryCode ( ) ) ;
wmsOdsMateStorageNews1 . setUserDefined1 ( order . getUnit ( ) ) ; //单位
wmsOdsMateStorageNewsMapper . insertWmsOdsMateStorageNews ( wmsOdsMateStorageNews1 ) ;
} else {
wmsOdsMateStorageNewsSnMapper . updateAdd ( wmsOdsEmStorageNews ) ;
}
// wmsRawOrderInSnMapper.updateU1Byid(wmsRawOrderInSn);//入库
}
} else { ////失败|
result1 = "暂收失败" ;
order . setSapTempInfor ( result2 . getMsg ( ) ) ;
order . setSapTempStatus ( "0" ) ; //0是失败。1是成功
odsProcureOrderMapper . updateOdsProcureOrder ( order ) ;
return result1 ;
}
return result1 ;
}
public String dayin ( List < OdsProcureOrder > orderList ) {
// 定义请求的URL地址
String url = dayinUrl1 ;