|
|
|
|
@ -83,6 +83,8 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
private RemoteOpenService remoteOpenService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private BaseProductAttachedMapper baseProductAttachedMapper;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Value("${dayin.url1}")
|
|
|
|
|
private String dayinUrl1;
|
|
|
|
|
/**
|
|
|
|
|
@ -106,10 +108,10 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
@Override
|
|
|
|
|
@DS("#header.poolName")
|
|
|
|
|
public List<OdsProcureOrder> selectOdsProcureOrderList(OdsProcureOrder odsProcureOrder) {
|
|
|
|
|
List<OdsProcureOrder> orderList= odsProcureOrderMapper.selectOdsProcureOrderList(odsProcureOrder);
|
|
|
|
|
List<OdsProcureOrder> orderList= odsProcureOrderMapper.selectOdsProcureOrderList1(odsProcureOrder);
|
|
|
|
|
for (OdsProcureOrder order:
|
|
|
|
|
orderList) {
|
|
|
|
|
String name = odsProcureOrderMapper.selectBaseSupplier(order);
|
|
|
|
|
String name = odsProcureOrderMapper.selectBaseSupplier(order);
|
|
|
|
|
order.setSupplierName(name);
|
|
|
|
|
}
|
|
|
|
|
return orderList;
|
|
|
|
|
@ -857,6 +859,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
wmsOdsMateStorageNews1.setCreateBy(wmsRawOrderInSn.getCreateBy());
|
|
|
|
|
wmsOdsMateStorageNews1.setGmtCreate(new Date());
|
|
|
|
|
wmsOdsMateStorageNews1.setActiveFlag("1");
|
|
|
|
|
wmsOdsMateStorageNews1.setUserDefined2(formattedDate);
|
|
|
|
|
wmsOdsMateStorageNews1.setFactoryCode(wmsRawOrderInSn.getFactoryCode());
|
|
|
|
|
wmsOdsMateStorageNews1.setSapFactoryCode(wmsRawOrderInSn.getSapFactoryCode());
|
|
|
|
|
wmsOdsMateStorageNews1.setUserDefined1(wmsRawOrderInSn.getUserDefined4());//单位
|
|
|
|
|
@ -941,7 +944,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
List<Map<String, String>> mapList = new ArrayList<>();
|
|
|
|
|
if (result.get("code").equals(200)) {
|
|
|
|
|
mapList= (List<Map<String, String>>) result.get("data");
|
|
|
|
|
for (Map<String, String> sapPurchaseOrderQuery1 : mapList) {
|
|
|
|
|
for (Map<String, String> sapPurchaseOrderQuery1 : mapList) {
|
|
|
|
|
OdsProcureOrder order = new OdsProcureOrder();
|
|
|
|
|
// 获取 mainId
|
|
|
|
|
Object mainIdObj = sapPurchaseOrderQuery1.get("mainId");
|
|
|
|
|
@ -969,7 +972,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
//这个地方判断下是不是采购单已经被插入了,如果是的话,并且是走的送货单的路径,那就把送货单给她附上
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
|
|
|
|
|
Date date = new Date();
|
|
|
|
|
String formattedDate = dateFormat.format(date);
|
|
|
|
|
order.setUserDefined7(formattedDate+order.getUserDefined3());
|
|
|
|
|
@ -1173,6 +1176,10 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
}else{
|
|
|
|
|
dtos.addAll(dtos0);
|
|
|
|
|
}
|
|
|
|
|
// for (OdsProcureOrder order1:
|
|
|
|
|
// dtos ) {
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
String msg= dayin(dtos);
|
|
|
|
|
return msg;
|
|
|
|
|
}
|
|
|
|
|
@ -1223,6 +1230,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
//--receiptNoCode收货单号
|
|
|
|
|
OdsProcureOrder order = odsProcureOrderMapper.selectOdsProcureOrderByID(odsProcureOrder.getID());
|
|
|
|
|
//查询出对应的采购单
|
|
|
|
|
|
|
|
|
|
List<OdsProcureOrder> orderList= odsProcureOrder.getList();
|
|
|
|
|
//对应采购单的标识卡
|
|
|
|
|
|
|
|
|
|
@ -1230,51 +1238,6 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
odsProcureOrderMapper.updateodsProcureOrderCard(order1);
|
|
|
|
|
Tme= Tme.add(order1.getPlanNumber());
|
|
|
|
|
//单据修改完成
|
|
|
|
|
}
|
|
|
|
|
@ -1291,8 +1254,62 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
mapList.add(paramMap);
|
|
|
|
|
R result2 = remoteSapService.temporarilyCollected(mapList);
|
|
|
|
|
int code = result2.getCode();
|
|
|
|
|
OdsProcureOrder order1 = odsProcureOrderMapper.selectOdsProcureOrderByID(odsProcureOrder.getID());
|
|
|
|
|
if (code == 200){
|
|
|
|
|
//对应采购单的标识卡
|
|
|
|
|
for (OdsProcureOrder order1k:
|
|
|
|
|
orderList) {
|
|
|
|
|
//标识卡信息
|
|
|
|
|
//wms_raw_order_in_sn
|
|
|
|
|
WmsRawOrderInSn wmsRawOrderInSn = new WmsRawOrderInSn();
|
|
|
|
|
wmsRawOrderInSn.setRawOrderInSnId(IdUtils.fastSimpleUUID());
|
|
|
|
|
wmsRawOrderInSn.setUserDefined1("1");//1是收货,2是入库
|
|
|
|
|
wmsRawOrderInSn.setUserDefined2(order.getUserDefined7());//批次
|
|
|
|
|
wmsRawOrderInSn.setWhCode(odsProcureOrder.getWhCode());//厂库编号
|
|
|
|
|
wmsRawOrderInSn.setWaCode(odsProcureOrder.getWaCode());
|
|
|
|
|
wmsRawOrderInSn.setWlCode(order1k.getSn());//库位设置为托盘
|
|
|
|
|
wmsRawOrderInSn.setPoNo(order.getProcureCode());//采购单号
|
|
|
|
|
wmsRawOrderInSn.setPoLine(odsProcureOrder.getPoLine());//行项目
|
|
|
|
|
wmsRawOrderInSn.setMaterialCode(order1k.getMaterialCode());
|
|
|
|
|
wmsRawOrderInSn.setMaterialDesc(order1k.getMaterialDesc());
|
|
|
|
|
wmsRawOrderInSn.setAmount(order1k.getPlanNumber());//实际输入数量
|
|
|
|
|
wmsRawOrderInSn.setFactoryCode(odsProcureOrder.getFactoryCode());
|
|
|
|
|
wmsRawOrderInSn.setCreateBy(odsProcureOrder.getCreateBy());
|
|
|
|
|
wmsRawOrderInSn.setGmtCreate(new Date());
|
|
|
|
|
wmsRawOrderInSn.setActiveFlag("1");
|
|
|
|
|
wmsRawOrderInSn.setUserDefined4(order.getUnit());//单位
|
|
|
|
|
wmsRawOrderInSn.setSn(order1k.getSn());//托盘号
|
|
|
|
|
wmsRawOrderInSn.setFactoryCode(odsProcureOrder.getFactoryCode());
|
|
|
|
|
wmsRawOrderInSn.setUserDefined3(order.getID());
|
|
|
|
|
wmsRawOrderInSn.setUserDefined5(odsProcureOrder.getReceiptNoCode());
|
|
|
|
|
wmsRawOrderInSn.setUserDefined6(order1k.getUserDefined6());//标识码绑定
|
|
|
|
|
wmsRawOrderInSnMapper.insertWmsRawOrderInSn(wmsRawOrderInSn);
|
|
|
|
|
//标识码绑定
|
|
|
|
|
if (order1k.getUserDefined6()!=null){
|
|
|
|
|
WmsLogotypeTable wmsLogotypeTable=new WmsLogotypeTable();
|
|
|
|
|
wmsLogotypeTable.setId(IdUtils.fastSimpleUUID());
|
|
|
|
|
wmsLogotypeTable.setLogotype(order1k.getUserDefined6());
|
|
|
|
|
wmsLogotypeTable.setSn(order1k.getSn());
|
|
|
|
|
wmsLogotypeTable.setActiveFlag("1");
|
|
|
|
|
wmsRawOrderInSnMapper.insertWmsLogotypeTable(wmsLogotypeTable);
|
|
|
|
|
}
|
|
|
|
|
//插入收货记录
|
|
|
|
|
//如果收货完成了的话,就插入信息收货完成
|
|
|
|
|
odsProcureOrder.setPlanNumber(order1k.getPlanNumber());//操作数量
|
|
|
|
|
odsProcureOrder.setOrderStatus("1");
|
|
|
|
|
BigDecimal result = order.getRealityNumber().add(order1k.getPlanNumber());
|
|
|
|
|
System.out.println(result);
|
|
|
|
|
if (result.compareTo(order.getPlanNumber())== 0) {
|
|
|
|
|
odsProcureOrder.setOrderStatus("2");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
odsProcureOrderMapper.updateRealityNuById(odsProcureOrder);
|
|
|
|
|
|
|
|
|
|
odsProcureOrderMapper.updateodsProcureOrderCard(order1k);
|
|
|
|
|
Tme= Tme.add(order1k.getPlanNumber());
|
|
|
|
|
//单据修改完成
|
|
|
|
|
}
|
|
|
|
|
//标识卡记录已经录入,订单已经修改完成
|
|
|
|
|
OdsProcureOrder order1 = odsProcureOrderMapper.selectOdsProcureOrderByID(odsProcureOrder.getID());
|
|
|
|
|
Map map = new HashMap();
|
|
|
|
|
map = (Map) result2.getData();
|
|
|
|
|
String MATERIALDOCUMENT = (String) map.get("MATERIALDOCUMENT");
|
|
|
|
|
@ -1322,9 +1339,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
wmsRawOrderIn.setCreateBy(odsProcureOrder.getCreateBy());
|
|
|
|
|
wmsRawOrderIn.setGmtCreate(new Date());
|
|
|
|
|
wmsRawOrderInMapper.insertWmsRawOrderIn(wmsRawOrderIn);
|
|
|
|
|
|
|
|
|
|
order1.setSapTempStatus("1");//0是失败。1是成功
|
|
|
|
|
|
|
|
|
|
odsProcureOrderMapper.updateOdsProcureOrder(order1);
|
|
|
|
|
for (OdsProcureOrder odsProcureOrder1:orderList){
|
|
|
|
|
//收货
|
|
|
|
|
@ -1340,6 +1355,8 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
wmsOdsMateStorageNewsSn.setCreateBy(odsProcureOrder.getCreateBy());
|
|
|
|
|
wmsOdsMateStorageNewsSn.setGmtCreate(new Date());
|
|
|
|
|
wmsOdsMateStorageNewsSn.setUserDefined2(order.getUserDefined7());//批次
|
|
|
|
|
wmsOdsMateStorageNewsSn.setUserDefined1("RK");
|
|
|
|
|
wmsOdsMateStorageNewsSn.setUserDefined3("0");//0是暂收,1是真收
|
|
|
|
|
wmsOdsMateStorageNewsSn.setFactoryCode(odsProcureOrder.getFactoryCode());
|
|
|
|
|
wmsOdsMateStorageNewsSn.setSapFactoryCode(odsProcureOrder.getFactoryCode());
|
|
|
|
|
wmsOdsMateStorageNewsSn.setActiveFlag("1");
|
|
|
|
|
@ -1379,15 +1396,503 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
// wmsRawOrderInSnMapper.updateU1Byid(wmsRawOrderInSn);//入库
|
|
|
|
|
}
|
|
|
|
|
}else {////失败|
|
|
|
|
|
OdsProcureOrder order2 = odsProcureOrderMapper.selectOdsProcureOrderByID(odsProcureOrder.getID());
|
|
|
|
|
result1="暂收失败";
|
|
|
|
|
order.setSapTempInfor(result2.getMsg());
|
|
|
|
|
order.setSapTempStatus("0");//0是失败。1是成功
|
|
|
|
|
odsProcureOrderMapper.updateOdsProcureOrder(order);
|
|
|
|
|
order2.setSapTempInfor(result2.getMsg());
|
|
|
|
|
order2.setSapTempStatus("0");//0是失败。1是成功
|
|
|
|
|
odsProcureOrderMapper.updateOdsProcureOrder(order2);
|
|
|
|
|
return result1;
|
|
|
|
|
}
|
|
|
|
|
return result1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@DS("#header.poolName")
|
|
|
|
|
public String sap105temporarilyCollected(List<OdsProcureOrder> odsProcureOrders) {
|
|
|
|
|
OdsProcureOrder odsProcureOrder = odsProcureOrders.get(0);
|
|
|
|
|
WmsRawOrderIn wmsRawOrderIn= wmsRawOrderInMapper.selectWmsRawOrderInByRawOrderInIdTWO(odsProcureOrder.getID());
|
|
|
|
|
Map paramMap=new HashMap<>();
|
|
|
|
|
List<Map> mapList = new ArrayList<>();
|
|
|
|
|
paramMap.put("S_MBLNR",wmsRawOrderIn.getUserDefined1());
|
|
|
|
|
paramMap.put("S_MJAHR",wmsRawOrderIn.getUserDefined2());
|
|
|
|
|
paramMap.put("S_MATNR",wmsRawOrderIn.getMaterialCode());
|
|
|
|
|
paramMap.put("incomeBatchNo",wmsRawOrderIn.getReturnName()); //批次
|
|
|
|
|
paramMap.put("ebelp",wmsRawOrderIn.getPoLine());
|
|
|
|
|
mapList.add(paramMap);
|
|
|
|
|
R result2 = remoteSapService.sap105temporarilyCollected(mapList);
|
|
|
|
|
if (result2.getCode()==200){
|
|
|
|
|
//成功了--成功了,根据
|
|
|
|
|
WmsRawOrderInSn wmsRawOrderInSn=new WmsRawOrderInSn();
|
|
|
|
|
wmsRawOrderInSn.setUserDefined5(wmsRawOrderIn.getDnNo());
|
|
|
|
|
wmsRawOrderInSn.setUserDefined1("1");//暂收
|
|
|
|
|
List<WmsRawOrderInSn> wmsRawOrderInSnList= wmsRawOrderInSnMapper.selectWmsRawOrderInSnList(wmsRawOrderInSn);
|
|
|
|
|
for (WmsRawOrderInSn wmsRawOrderInSn1:
|
|
|
|
|
wmsRawOrderInSnList) {
|
|
|
|
|
WmsOdsMateStorageNewsSn wmsRawOrderInNewsSn=new WmsOdsMateStorageNewsSn();
|
|
|
|
|
wmsRawOrderInNewsSn.setMaterialCode(wmsRawOrderInSn1.getMaterialCode());
|
|
|
|
|
wmsRawOrderInNewsSn.setWaCode(wmsRawOrderInSn1.getWaCode());
|
|
|
|
|
wmsRawOrderInNewsSn.setWhCode(wmsRawOrderInSn1.getWhCode());
|
|
|
|
|
wmsRawOrderInNewsSn.setWlCode(wmsRawOrderInSn1.getWlCode());
|
|
|
|
|
wmsRawOrderInNewsSn.setUserDefined3("1");
|
|
|
|
|
wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSn(wmsRawOrderInNewsSn);
|
|
|
|
|
wmsRawOrderInSn1.setUserDefined1("2");
|
|
|
|
|
wmsRawOrderInSnMapper.updateWmsRawOrderInSn(wmsRawOrderInSn1);
|
|
|
|
|
WmsOdsMateStorageNews wmsOdsMateStorageNews=new WmsOdsMateStorageNews();
|
|
|
|
|
wmsOdsMateStorageNews.setMaterialCode(wmsRawOrderInSn1.getMaterialCode());
|
|
|
|
|
wmsOdsMateStorageNews.setWaCode(wmsRawOrderInSn1.getWaCode());
|
|
|
|
|
wmsOdsMateStorageNews.setWlCode(wmsRawOrderInSn1.getWlCode());
|
|
|
|
|
wmsOdsMateStorageNews.setWhCode(wmsRawOrderInSn1.getWhCode());
|
|
|
|
|
wmsOdsMateStorageNews.setStorageAmount(wmsRawOrderInSn1.getAmount());
|
|
|
|
|
wmsOdsMateStorageNewsMapper.updateWmsOdsMateStorageNewsUpdateStorageAmount(wmsOdsMateStorageNews);
|
|
|
|
|
}
|
|
|
|
|
wmsRawOrderIn.setOrderStatus("1");
|
|
|
|
|
wmsRawOrderIn.setAccountingTime(new Date());
|
|
|
|
|
wmsRawOrderIn.setAccountingMessage(result2.getMsg());
|
|
|
|
|
wmsRawOrderInMapper.updateWmsRawOrderIn(wmsRawOrderIn);
|
|
|
|
|
return result2.getMsg();
|
|
|
|
|
}else {
|
|
|
|
|
//失败了
|
|
|
|
|
wmsRawOrderIn.setAccountingTime(new Date());
|
|
|
|
|
wmsRawOrderIn.setAccountingMessage(result2.getMsg());
|
|
|
|
|
wmsRawOrderInMapper.updateWmsRawOrderIn(wmsRawOrderIn);
|
|
|
|
|
return result2.getMsg();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<OdsProcureOutOrder> ProductionMaterialRequisitionSC(OdsProcureOutOrder odsProcureOutOrder) {
|
|
|
|
|
DynamicDataSourceContextHolder.push("ds_" + odsProcureOutOrder.getFactoryCode());
|
|
|
|
|
if (odsProcureOutOrder.getUserDefined4().length()<=10){
|
|
|
|
|
//二维码获取的信息查询对应的sap生产订单,再用生产订单查询子单
|
|
|
|
|
|
|
|
|
|
List<OdsProcureOutOrder> orderLists=new ArrayList<>();
|
|
|
|
|
List<OdsProcureOutOrder> orderListone= odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder);
|
|
|
|
|
if (orderListone.size()>0){
|
|
|
|
|
for (OdsProcureOutOrder order:orderListone){
|
|
|
|
|
if (!"3".equals(order.getOrderStatus())){
|
|
|
|
|
orderLists.add(order);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return orderLists;
|
|
|
|
|
}
|
|
|
|
|
// OdsProcureOutOrder order = odsProcureOutOrderMapper.selectMesPrepareBC(odsProcureOutOrder);
|
|
|
|
|
List<OdsProcureOutOrder> orderList= odsProcureOutOrderMapper.selectPreDetailHzList(odsProcureOutOrder);
|
|
|
|
|
//根据订单号查询对应的最大批次号
|
|
|
|
|
Integer orderItem = 0;
|
|
|
|
|
for (OdsProcureOutOrder orderLine1 :
|
|
|
|
|
orderList) {
|
|
|
|
|
orderItem++;
|
|
|
|
|
orderLine1.setUserDefined2(String.format("%05d", orderItem));
|
|
|
|
|
}
|
|
|
|
|
List<OdsProcureOutOrder> orderList1=new ArrayList<>();
|
|
|
|
|
for (OdsProcureOutOrder order1:
|
|
|
|
|
orderList) {
|
|
|
|
|
OdsProcureOutOrder odsProcureOutOrder1 = new OdsProcureOutOrder();
|
|
|
|
|
odsProcureOutOrder1.setID(IdUtils.fastSimpleUUID());
|
|
|
|
|
odsProcureOutOrder1.setSiteCode(order1.getFactoryCode());
|
|
|
|
|
odsProcureOutOrder1.setProduceCode(odsProcureOutOrder.getUserDefined4());//反冲
|
|
|
|
|
odsProcureOutOrder1.setOutNumber(new BigDecimal("0"));
|
|
|
|
|
//odsProcureOutOrder1.setLocCode(order.getWarehouseNo());
|
|
|
|
|
odsProcureOutOrder1.setMaterialCode(order1.getMaterialCode());
|
|
|
|
|
odsProcureOutOrder1.setMaterialDesc(order1.getMaterialDesc());
|
|
|
|
|
odsProcureOutOrder1.setPlanDate(new Date());
|
|
|
|
|
odsProcureOutOrder1.setUnit(order1.getUnit());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined5(odsProcureOutOrder.getUserDefined4());
|
|
|
|
|
//odsProcureOutOrder1.setProductionLineCode(order1.getStationNo());
|
|
|
|
|
//odsProcureOutOrder1.setUserDefined1(orderLine1.getBatchNo());
|
|
|
|
|
odsProcureOutOrder1.setActive("1");
|
|
|
|
|
odsProcureOutOrder1.setOrderStatus("1");//
|
|
|
|
|
odsProcureOutOrder1.setPlanNumber(order1.getPlanNumber());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined2(order1.getUserDefined2());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined3(order1.getUserDefined3());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined4(odsProcureOutOrder.getUserDefined4());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined10("1");
|
|
|
|
|
odsProcureOutOrder1.setCreateBy(odsProcureOutOrder.getCreateBy());
|
|
|
|
|
odsProcureOutOrder1.setCreateDate(new Date());
|
|
|
|
|
//odsProcureOutOrder1.setCreateDate(new Date());
|
|
|
|
|
//odsProcureOutOrder.set
|
|
|
|
|
odsProcureOutOrderMapper.insertWmsOdsProcureOutOrder(odsProcureOutOrder1);
|
|
|
|
|
orderList1.add(odsProcureOutOrder1);
|
|
|
|
|
}
|
|
|
|
|
return orderList1;
|
|
|
|
|
}else {
|
|
|
|
|
//二维码获取的信息查询对应的sap生产订单,再用生产订单查询子单
|
|
|
|
|
|
|
|
|
|
List<OdsProcureOutOrder> orderLists=new ArrayList<>();
|
|
|
|
|
List<OdsProcureOutOrder> orderListone= odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder);
|
|
|
|
|
if (orderListone.size()>0){
|
|
|
|
|
for (OdsProcureOutOrder order:orderListone){
|
|
|
|
|
if (!"3".equals(order.getOrderStatus())){
|
|
|
|
|
orderLists.add(order);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return orderLists;
|
|
|
|
|
}
|
|
|
|
|
OdsProcureOutOrder order = odsProcureOutOrderMapper.selectMesPrepareBC(odsProcureOutOrder);
|
|
|
|
|
List<OdsProcureOutOrder> orderList= odsProcureOutOrderMapper.selectMesPrepareDetailBC(order);
|
|
|
|
|
|
|
|
|
|
//根据订单号查询对应的最大批次号
|
|
|
|
|
Integer orderItem = 0;
|
|
|
|
|
for (OdsProcureOutOrder orderLine1 :
|
|
|
|
|
orderList) {
|
|
|
|
|
orderItem++;
|
|
|
|
|
orderLine1.setUserDefined2(String.format("%05d", orderItem));
|
|
|
|
|
}
|
|
|
|
|
List<OdsProcureOutOrder> orderList1=new ArrayList<>();
|
|
|
|
|
for (OdsProcureOutOrder order1:
|
|
|
|
|
orderList) {
|
|
|
|
|
OdsProcureOutOrder odsProcureOutOrder1 = new OdsProcureOutOrder();
|
|
|
|
|
odsProcureOutOrder1.setID(IdUtils.fastSimpleUUID());
|
|
|
|
|
odsProcureOutOrder1.setSiteCode(order1.getFactoryCode());
|
|
|
|
|
odsProcureOutOrder1.setProduceCode(order.getProduceCode());
|
|
|
|
|
odsProcureOutOrder1.setOutNumber(new BigDecimal("0"));
|
|
|
|
|
//odsProcureOutOrder1.setLocCode(order.getWarehouseNo());
|
|
|
|
|
odsProcureOutOrder1.setMaterialCode(order1.getMaterialCode());
|
|
|
|
|
odsProcureOutOrder1.setMaterialDesc(order1.getMaterialDesc());
|
|
|
|
|
odsProcureOutOrder1.setPlanDate(new Date());
|
|
|
|
|
odsProcureOutOrder1.setUnit(order1.getUnit());
|
|
|
|
|
//odsProcureOutOrder1.setProductionLineCode(order1.getStationNo());
|
|
|
|
|
//odsProcureOutOrder1.setUserDefined1(orderLine1.getBatchNo());
|
|
|
|
|
odsProcureOutOrder1.setActive("1");
|
|
|
|
|
odsProcureOutOrder1.setOrderStatus("1");//
|
|
|
|
|
odsProcureOutOrder1.setPlanNumber(order1.getPlanNumber());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined2(order1.getUserDefined2());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined3(order1.getUserDefined3());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined4(odsProcureOutOrder.getUserDefined4());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined10("1");
|
|
|
|
|
odsProcureOutOrder1.setUserDefined5(order1.getNeedDate());
|
|
|
|
|
odsProcureOutOrder1.setCreateBy(odsProcureOutOrder.getCreateBy());
|
|
|
|
|
odsProcureOutOrder1.setCreateDate(new Date());
|
|
|
|
|
//odsProcureOutOrder1.setCreateDate(new Date());
|
|
|
|
|
//odsProcureOutOrder.set
|
|
|
|
|
odsProcureOutOrderMapper.insertWmsOdsProcureOutOrder(odsProcureOutOrder1);
|
|
|
|
|
orderList1.add(odsProcureOutOrder1);
|
|
|
|
|
}
|
|
|
|
|
return orderList1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public WmsOdsMateStorageNewsSn SweepMaterialCardSC(WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn) {
|
|
|
|
|
DynamicDataSourceContextHolder.push("ds_" + wmsOdsMateStorageNewsSn.getFactoryCode());
|
|
|
|
|
wmsOdsMateStorageNewsSn.setUserDefined3("1");//1是入库
|
|
|
|
|
WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSnk= wmsOdsMateStorageNewsSnMapper.selectWmsOdsMateStorageNewsSnByWlCodeTEM(wmsOdsMateStorageNewsSn);
|
|
|
|
|
return wmsOdsMateStorageNewsSnk;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 传了领料单号,还有标识卡的信息,例如,物料编号,物料描述,数量,单位,状态,需求时间,工厂,
|
|
|
|
|
* 要根据标识卡信息和生产领料单的信息,这样的话,需要用生产领料单和标识卡的信息来查询出来对应的领料单
|
|
|
|
|
* ,进行修改对应领料单的出库数量和状态(如果计划数量小于或者等于出库数量,状态改为完成),然后在出库表中添加记录,进行库存的修改(占用数量),先是明细后是总表
|
|
|
|
|
* 然后是过账,过账选择生产领料单为完成状态并且过账状态是未过账的进行过账,(过账失败的在页面上过账),--过账-成功的话,取消占用减去库存,记录信息,如果失败是记录信息,(页面过账)
|
|
|
|
|
* @param orderList
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public String NewConMaterialOutSC(List<OdsProcureOutOrder> orderList) {
|
|
|
|
|
String result="操作成功";
|
|
|
|
|
String factoryCode = orderList.get(0).getFactoryCode();
|
|
|
|
|
DynamicDataSourceContextHolder.push("ds_" + factoryCode);
|
|
|
|
|
for (OdsProcureOutOrder odsProcureOutOrder :
|
|
|
|
|
orderList) {
|
|
|
|
|
//领料单,物料编号,领料单批次,物料名称,托盘号,出库数量,库位号,
|
|
|
|
|
String produceCode= odsProcureOutOrder.getProduceCode();//生产领料单号
|
|
|
|
|
String createBy= odsProcureOutOrder.getCreateBy();//操作人
|
|
|
|
|
String mateOrderInSnId= odsProcureOutOrder.getMateOrderInSnId();
|
|
|
|
|
String waCode= odsProcureOutOrder.getWaCode();
|
|
|
|
|
String whCode= odsProcureOutOrder.getWhCode();
|
|
|
|
|
String wlCode= odsProcureOutOrder.getWlCode();
|
|
|
|
|
String sn= odsProcureOutOrder.getSn();
|
|
|
|
|
String materialCode= odsProcureOutOrder.getMaterialCode();
|
|
|
|
|
String materialDesc= odsProcureOutOrder.getMaterialDesc();
|
|
|
|
|
BigDecimal amount= odsProcureOutOrder.getAmount();//数量
|
|
|
|
|
String userDefined1= odsProcureOutOrder.getUserDefined1();//单位
|
|
|
|
|
String userDefined2= odsProcureOutOrder.getUserDefined2();//批次
|
|
|
|
|
WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = wmsOdsMateStorageNewsSnMapper.selectWmsOdsMateStorageNewsSnByMateOrderInSnIdk(mateOrderInSnId);
|
|
|
|
|
//wms_raw_mission_out--保存
|
|
|
|
|
//ods_procure_out_order--修改
|
|
|
|
|
WCSInventoryPlan wcsInventoryPlan = new WCSInventoryPlan();
|
|
|
|
|
wcsInventoryPlan.setSku(odsProcureOutOrder.getMaterialCode());
|
|
|
|
|
// WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectBaseProductByCode(wcsInventoryPlan);
|
|
|
|
|
OdsProcureOutOrder order = new OdsProcureOutOrder();
|
|
|
|
|
order.setProduceCode(produceCode);//领料单
|
|
|
|
|
order.setMaterialCode(materialCode);//
|
|
|
|
|
order.setMaterialDesc(materialDesc);
|
|
|
|
|
order.setUserDefined1(userDefined2);//批次
|
|
|
|
|
order.setUserDefined2(whCode);
|
|
|
|
|
order.setUserDefined3(wlCode);
|
|
|
|
|
order.setSn(sn);
|
|
|
|
|
order.setPlanNumber(amount);
|
|
|
|
|
order.setLocCode(waCode);//库区
|
|
|
|
|
order.setID(IdUtils.fastSimpleUUID());
|
|
|
|
|
order.setUnit(userDefined1);
|
|
|
|
|
order.setFactoryCode(factoryCode);
|
|
|
|
|
order.setActive("1");
|
|
|
|
|
order.setCreateBy(createBy);
|
|
|
|
|
order.setCreateDate(new Date());
|
|
|
|
|
order.setSiteCode(factoryCode);
|
|
|
|
|
odsProcureOutOrderMapper.insertWmsRawMissionOut(order);
|
|
|
|
|
OdsProcureOutOrder odsProcureOutOrder1=new OdsProcureOutOrder();
|
|
|
|
|
odsProcureOutOrder1.setProduceCode(produceCode);
|
|
|
|
|
odsProcureOutOrder1.setMaterialCode(materialCode);
|
|
|
|
|
List<OdsProcureOutOrder> odsProcureOutOrders = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder1);
|
|
|
|
|
OdsProcureOutOrder order1= odsProcureOutOrders.get(0);
|
|
|
|
|
BigDecimal realityNumber1 = order1.getOutNumber();//累出库数
|
|
|
|
|
BigDecimal realityNumber = order1.getPlanNumber();//计划
|
|
|
|
|
BigDecimal planNumber = amount;//本次实际数量
|
|
|
|
|
BigDecimal tem = realityNumber1.add(planNumber);
|
|
|
|
|
if (tem.compareTo(realityNumber)>= 0) {
|
|
|
|
|
order1.setOrderStatus("3");
|
|
|
|
|
} else {
|
|
|
|
|
order1.setOrderStatus("2");
|
|
|
|
|
}
|
|
|
|
|
order1.setOutNumber(tem);
|
|
|
|
|
odsProcureOutOrderMapper.updateWmsOdsProcureOutOrder(order1);//订单修改
|
|
|
|
|
//明细
|
|
|
|
|
// BigDecimal temk= wmsOdsMateStorageNewsSn.getAmount().subtract(amount);
|
|
|
|
|
wmsOdsMateStorageNewsSn.setOutNumber(amount);
|
|
|
|
|
wmsOdsMateStorageNewsSn.setLastModifiedBy(createBy);
|
|
|
|
|
wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSnAddoutNumber(wmsOdsMateStorageNewsSn);//库存明细
|
|
|
|
|
WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews();
|
|
|
|
|
wmsOdsEmStorageNews.setWhCode(wmsOdsMateStorageNewsSn.getWhCode());//仓库编码
|
|
|
|
|
wmsOdsEmStorageNews.setWlCode(wmsOdsMateStorageNewsSn.getWlCode());//库位编码
|
|
|
|
|
wmsOdsEmStorageNews.setWaCode(wmsOdsMateStorageNewsSn.getWaCode());
|
|
|
|
|
wmsOdsEmStorageNews.setProductBatch(wmsOdsMateStorageNewsSn.getUserDefined2());
|
|
|
|
|
wmsOdsEmStorageNews.setMaterialCode(wmsOdsMateStorageNewsSn.getMaterialCode());
|
|
|
|
|
wmsOdsEmStorageNews.setAmount(odsProcureOutOrder.getPlanNumber());//库存
|
|
|
|
|
wmsOdsEmStorageNews.setLastModifiedBy(createBy);
|
|
|
|
|
wmsOdsMateStorageNewsSnMapper.updatekdd(wmsOdsEmStorageNews);//库存调整
|
|
|
|
|
}
|
|
|
|
|
//
|
|
|
|
|
OdsProcureOutOrder order=new OdsProcureOutOrder();
|
|
|
|
|
List<OdsProcureOutOrder> orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByOrderStatus(order);
|
|
|
|
|
if (orderList1.size()>0){
|
|
|
|
|
OutboundPostingzcSAPGY(orderList1);
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void OutboundPostingzcSAPGY(List<OdsProcureOutOrder> orderList) {
|
|
|
|
|
//先根据出库单获取
|
|
|
|
|
// * 退料的移动类型为 262
|
|
|
|
|
// * 领料的移动类型为 261
|
|
|
|
|
List<OdsProcureOutOrder> orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByIDs(orderList);
|
|
|
|
|
List<OdsProcureOutOrder> orderList2 = new ArrayList<>();//非反冲
|
|
|
|
|
List<Map<String, Object>> mapList = new ArrayList<>();//非反冲
|
|
|
|
|
List<SapBackflushMPQuery> sapMaterialPostingFCList = new ArrayList<>();//反冲
|
|
|
|
|
List<OdsProcureOutOrder> orderList2FC = new ArrayList<>();//反冲
|
|
|
|
|
for (OdsProcureOutOrder odsProcureOutOrder :
|
|
|
|
|
orderList1) {
|
|
|
|
|
if (!"X".equals(odsProcureOutOrder.getUserDefined3())){
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
map.put("AUFNR", odsProcureOutOrder.getProduceCode());
|
|
|
|
|
map.put("PLANT", odsProcureOutOrder.getSiteCode());
|
|
|
|
|
String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode());
|
|
|
|
|
map.put("LGORT", lgort);
|
|
|
|
|
map.put("MATNR", odsProcureOutOrder.getMaterialCode());
|
|
|
|
|
map.put("QUANTITY", odsProcureOutOrder.getOutNumber().toString());
|
|
|
|
|
map.put("MEINS", odsProcureOutOrder.getUnit());
|
|
|
|
|
mapList.add(map);
|
|
|
|
|
orderList2.add(odsProcureOutOrder);
|
|
|
|
|
}else {
|
|
|
|
|
SapBackflushMPQuery sapBackflushMPQuery = new SapBackflushMPQuery();
|
|
|
|
|
sapBackflushMPQuery.setPlant(odsProcureOutOrder.getSiteCode()); //工厂
|
|
|
|
|
String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode());
|
|
|
|
|
sapBackflushMPQuery.setLgort(lgort);//库存地点
|
|
|
|
|
sapBackflushMPQuery.setMatnr(odsProcureOutOrder.getMaterialCode());//物料号
|
|
|
|
|
sapBackflushMPQuery.setQuantity(odsProcureOutOrder.getOutNumber().toString()); //数量
|
|
|
|
|
sapBackflushMPQuery.setMeins(odsProcureOutOrder.getUnit()); //基本计量单位
|
|
|
|
|
sapBackflushMPQuery.setBatch(odsProcureOutOrder.getUserDefined2()); //批号
|
|
|
|
|
sapMaterialPostingFCList.add(sapBackflushMPQuery);
|
|
|
|
|
orderList2FC.add(odsProcureOutOrder);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (mapList.size() > 0) {
|
|
|
|
|
//非反冲过账
|
|
|
|
|
SapMaterialPosting sapMaterialPosting = new SapMaterialPosting();
|
|
|
|
|
sapMaterialPosting.setPostingType("261");
|
|
|
|
|
sapMaterialPosting.setMapList(mapList);
|
|
|
|
|
R result = remoteSapService.sapMaterialPosting(sapMaterialPosting);
|
|
|
|
|
OdsProcureOutOrder order = new OdsProcureOutOrder();
|
|
|
|
|
int code = result.getCode();
|
|
|
|
|
String msg = result.getMsg();
|
|
|
|
|
//order.setSapMaterialPostingList(sapMaterialPostingList);
|
|
|
|
|
order.setUserDefined11(msg);
|
|
|
|
|
if (code == 200) {
|
|
|
|
|
//过账成功
|
|
|
|
|
Map map = new HashMap();
|
|
|
|
|
map = (Map) result.getData();
|
|
|
|
|
String userDefined9 = (String) map.get("MATERIALDOCUMENT");
|
|
|
|
|
order.setUserDefined9(userDefined9);
|
|
|
|
|
order.setUserDefined10("2");//成功
|
|
|
|
|
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2);
|
|
|
|
|
for (OdsProcureOutOrder order1:
|
|
|
|
|
orderList2) {
|
|
|
|
|
//过账成功--减库存
|
|
|
|
|
List<WmsOdsMateStorageNews> odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1);
|
|
|
|
|
for (WmsOdsMateStorageNews wmsOdsMateStorageNews:
|
|
|
|
|
odsEmStorageNews) {
|
|
|
|
|
//wmsOdsMateStorageNews
|
|
|
|
|
wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername());
|
|
|
|
|
wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
//
|
|
|
|
|
order.setUserDefined9("");
|
|
|
|
|
order.setUserDefined10("3");//失败
|
|
|
|
|
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (sapMaterialPostingFCList.size() > 0) {
|
|
|
|
|
//反冲过账
|
|
|
|
|
R result2 = remoteSapService.sapBackflushMP(sapMaterialPostingFCList);//x
|
|
|
|
|
int code = result2.getCode();
|
|
|
|
|
OdsProcureOutOrder order = new OdsProcureOutOrder();
|
|
|
|
|
String msg = result2.getMsg();
|
|
|
|
|
order.setUserDefined11(msg);
|
|
|
|
|
if (code == 200) {
|
|
|
|
|
//过账成功
|
|
|
|
|
Map map = new HashMap();
|
|
|
|
|
map = (Map) result2.getData();
|
|
|
|
|
String userDefined9 = (String) map.get("MATERIALDOCUMENT");
|
|
|
|
|
order.setUserDefined9(userDefined9);
|
|
|
|
|
order.setUserDefined10("2");//成功
|
|
|
|
|
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC);
|
|
|
|
|
for (OdsProcureOutOrder order1:
|
|
|
|
|
orderList2FC) {
|
|
|
|
|
//过账成功--减库存
|
|
|
|
|
List<WmsOdsMateStorageNews> odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1);
|
|
|
|
|
for (WmsOdsMateStorageNews wmsOdsMateStorageNews:
|
|
|
|
|
odsEmStorageNews) {
|
|
|
|
|
//wmsOdsMateStorageNews
|
|
|
|
|
wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername());
|
|
|
|
|
wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {//
|
|
|
|
|
order.setUserDefined9("");
|
|
|
|
|
order.setUserDefined10("3");//失败
|
|
|
|
|
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @param orderList
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@DS("#header.poolName")
|
|
|
|
|
public void OutboundPostingzcSAP(List<OdsProcureOutOrder> orderList) {
|
|
|
|
|
//先根据出库单获取
|
|
|
|
|
// * 退料的移动类型为 262
|
|
|
|
|
// * 领料的移动类型为 261
|
|
|
|
|
List<OdsProcureOutOrder> orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByIDs(orderList);
|
|
|
|
|
List<OdsProcureOutOrder> orderList2 = new ArrayList<>();//非反冲
|
|
|
|
|
List<Map<String, Object>> mapList = new ArrayList<>();//非反冲
|
|
|
|
|
List<SapBackflushMPQuery> sapMaterialPostingFCList = new ArrayList<>();//反冲
|
|
|
|
|
List<OdsProcureOutOrder> orderList2FC = new ArrayList<>();//反冲
|
|
|
|
|
for (OdsProcureOutOrder odsProcureOutOrder :
|
|
|
|
|
orderList1) {
|
|
|
|
|
if (!"X".equals(odsProcureOutOrder.getUserDefined3())){
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
map.put("AUFNR", odsProcureOutOrder.getProduceCode());
|
|
|
|
|
map.put("PLANT", odsProcureOutOrder.getSiteCode());
|
|
|
|
|
String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode());
|
|
|
|
|
map.put("LGORT", lgort);
|
|
|
|
|
map.put("MATNR", odsProcureOutOrder.getMaterialCode());
|
|
|
|
|
map.put("QUANTITY", odsProcureOutOrder.getOutNumber().toString());
|
|
|
|
|
map.put("MEINS", odsProcureOutOrder.getUnit());
|
|
|
|
|
mapList.add(map);
|
|
|
|
|
orderList2.add(odsProcureOutOrder);
|
|
|
|
|
}else {
|
|
|
|
|
SapBackflushMPQuery sapBackflushMPQuery = new SapBackflushMPQuery();
|
|
|
|
|
sapBackflushMPQuery.setPlant(odsProcureOutOrder.getSiteCode()); //工厂
|
|
|
|
|
String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode());
|
|
|
|
|
sapBackflushMPQuery.setLgort(lgort);//库存地点
|
|
|
|
|
sapBackflushMPQuery.setMatnr(odsProcureOutOrder.getMaterialCode());//物料号
|
|
|
|
|
sapBackflushMPQuery.setQuantity(odsProcureOutOrder.getOutNumber().toString()); //数量
|
|
|
|
|
sapBackflushMPQuery.setMeins(odsProcureOutOrder.getUnit()); //基本计量单位
|
|
|
|
|
sapBackflushMPQuery.setBatch(odsProcureOutOrder.getUserDefined2()); //批号
|
|
|
|
|
sapMaterialPostingFCList.add(sapBackflushMPQuery);
|
|
|
|
|
orderList2FC.add(odsProcureOutOrder);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (mapList.size() > 0) {
|
|
|
|
|
//非反冲过账
|
|
|
|
|
SapMaterialPosting sapMaterialPosting = new SapMaterialPosting();
|
|
|
|
|
sapMaterialPosting.setPostingType("261");
|
|
|
|
|
sapMaterialPosting.setMapList(mapList);
|
|
|
|
|
R result = remoteSapService.sapMaterialPosting(sapMaterialPosting);
|
|
|
|
|
OdsProcureOutOrder order = new OdsProcureOutOrder();
|
|
|
|
|
int code = result.getCode();
|
|
|
|
|
String msg = result.getMsg();
|
|
|
|
|
//order.setSapMaterialPostingList(sapMaterialPostingList);
|
|
|
|
|
order.setUserDefined11(msg);
|
|
|
|
|
if (code == 200) {
|
|
|
|
|
//过账成功
|
|
|
|
|
Map map = new HashMap();
|
|
|
|
|
map = (Map) result.getData();
|
|
|
|
|
String userDefined9 = (String) map.get("MATERIALDOCUMENT");
|
|
|
|
|
order.setUserDefined9(userDefined9);
|
|
|
|
|
order.setUserDefined10("2");//成功
|
|
|
|
|
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2);
|
|
|
|
|
for (OdsProcureOutOrder order1:
|
|
|
|
|
orderList2) {
|
|
|
|
|
//过账成功--减库存
|
|
|
|
|
List<WmsOdsMateStorageNews> odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1);
|
|
|
|
|
for (WmsOdsMateStorageNews wmsOdsMateStorageNews:
|
|
|
|
|
odsEmStorageNews) {
|
|
|
|
|
//wmsOdsMateStorageNews
|
|
|
|
|
wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername());
|
|
|
|
|
wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
//
|
|
|
|
|
order.setUserDefined9("");
|
|
|
|
|
order.setUserDefined10("3");//失败
|
|
|
|
|
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (sapMaterialPostingFCList.size() > 0) {
|
|
|
|
|
//反冲过账
|
|
|
|
|
R result2 = remoteSapService.sapBackflushMP(sapMaterialPostingFCList);//x
|
|
|
|
|
int code = result2.getCode();
|
|
|
|
|
OdsProcureOutOrder order = new OdsProcureOutOrder();
|
|
|
|
|
String msg = result2.getMsg();
|
|
|
|
|
order.setUserDefined11(msg);
|
|
|
|
|
if (code == 200) {
|
|
|
|
|
//过账成功
|
|
|
|
|
Map map = new HashMap();
|
|
|
|
|
map = (Map) result2.getData();
|
|
|
|
|
String userDefined9 = (String) map.get("MATERIALDOCUMENT");
|
|
|
|
|
order.setUserDefined9(userDefined9);
|
|
|
|
|
order.setUserDefined10("2");//成功
|
|
|
|
|
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC);
|
|
|
|
|
for (OdsProcureOutOrder order1:
|
|
|
|
|
orderList2FC) {
|
|
|
|
|
//过账成功--减库存
|
|
|
|
|
List<WmsOdsMateStorageNews> odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1);
|
|
|
|
|
for (WmsOdsMateStorageNews wmsOdsMateStorageNews:
|
|
|
|
|
odsEmStorageNews) {
|
|
|
|
|
//wmsOdsMateStorageNews
|
|
|
|
|
wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername());
|
|
|
|
|
wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {//
|
|
|
|
|
order.setUserDefined9("");
|
|
|
|
|
order.setUserDefined10("3");//失败
|
|
|
|
|
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String dayin( List<OdsProcureOrder> orderList) {
|
|
|
|
|
// 定义请求的URL地址
|
|
|
|
|
String url = dayinUrl1;
|
|
|
|
|
|