diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java index 1df02da5..1545e916 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java @@ -787,6 +787,11 @@ public class WmsToWCSmissionController { OdsProcureOrder odsProcureOrder1 = odsProcureOrderService.selectOrderCard(odsProcureOrder); return success(odsProcureOrder1); } - + // + @PostMapping("/addOrderCard") + public AjaxResult addOrderCard(@RequestBody OdsProcureOrder odsProcureOrder) { + String result = odsProcureOrderService.addOrderCard(odsProcureOrder); + return success(result); + } } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOrderService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOrderService.java index db3a7362..f81dcc85 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOrderService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOrderService.java @@ -117,4 +117,6 @@ public interface IOdsProcureOrderService { String getIdCardListDA(OdsProcureOrder odsProcureOrder); OdsProcureOrder selectOrderCard(OdsProcureOrder odsProcureOrder); + + String addOrderCard(OdsProcureOrder odsProcureOrder); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java index 6df4db65..3bdd0e7b 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java @@ -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 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 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 orderList) { // 定义请求的URL地址 String url = dayinUrl1;