|
|
|
@ -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");
|
|
|
|
@ -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;
|
|
|
|
|