From 0cf33db060d83c4a1e6717f861e9fa5cfdb9f3d9 Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Sat, 21 Sep 2024 17:29:14 +0800 Subject: [PATCH] =?UTF-8?q?wms=E5=8C=85=E6=9D=90=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WmsToWCSmissionController.java | 6 +- .../op/wms/mapper/OdsProcureOrderMapper.java | 2 + .../wms/service/IOdsProcureOrderService.java | 2 + .../impl/OdsProcureOrderServiceImpl.java | 214 ++++++++++++++++++ .../mapper/wms/OdsProcureOrderMapper.xml | 41 ++++ .../mapper/wms/OdsProcureOutOrderMapper.xml | 1 + .../mapper/wms/WmsProductPutMapper.xml | 2 +- 7 files changed, 266 insertions(+), 2 deletions(-) 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 41c223f68..dfe466732 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 @@ -828,6 +828,10 @@ public class WmsToWCSmissionController { String result = odsProcureOrderService.addOrderCard(odsProcureOrder); return success(result); } - + @PostMapping("/addOrderCardX") + public AjaxResult addOrderCardX(@RequestBody List orderList) { + String result = odsProcureOrderService.addOrderCardX(orderList); + return success(result); + } } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOrderMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOrderMapper.java index d2185f503..4cce83fe8 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOrderMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOrderMapper.java @@ -89,4 +89,6 @@ public interface OdsProcureOrderMapper { * @return 包材采购单集合 */ public List selectOdsProcureOrderList1(OdsProcureOrder odsProcureOrder); + + OdsProcureOrder selectOdsProcureOrderCardByUserDefined1(OdsProcureOrder odsProcureOrder); } 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 0c9a81c5f..063e22abb 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 @@ -129,4 +129,6 @@ public interface IOdsProcureOrderService { String NewConMaterialOutSC(List odsProcureOutOrder); void OutboundPostingzcSAP(List orderList); + + String addOrderCardX(List orderList); } 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 bcabe805d..07b9a5f29 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 @@ -1911,6 +1911,220 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { } } + @Override + public String addOrderCardX(List orderList) { + String factoryCode = orderList.get(0).getFactoryCode(); + //现在是传了个list标识卡集合 + String result1="操作成功"; + DynamicDataSourceContextHolder.push("ds_" + factoryCode); + //如果这样的话,就区分出来单子和对应的物料。然后根据集合放入暂收集合中 + List orderList1=new ArrayList<>();// + for (OdsProcureOrder order: + orderList) { + OdsProcureOrder order1= odsProcureOrderMapper.selectOdsProcureOrderCardByUserDefined1(order); + order.setUserDefined7(order1.getUserDefined7());//批次 + order.setPoLine(order1.getUserDefined3()); + order.setUnit(order1.getUnit()); + order.setID(order1.getID()); + if (orderList1.size()>0){ + String tem="0"; + for (OdsProcureOrder odsProcureOrder:orderList1){ + if (odsProcureOrder.getID().equals(order1.getID())){ + tem="1";//已经保存对应订单了 + } + } + if (tem.equals("0")){ + orderList1.add(order1); + } + }else { + orderList1.add(order1); + } + } + for (OdsProcureOrder odsProcureOrder: + orderList1) {//单子 + BigDecimal czNumber=new BigDecimal("0"); + for ( OdsProcureOrder order : + orderList) { + if (order.getID().equals(odsProcureOrder.getID())){ + czNumber=czNumber.add(order.getPlanNumber()); + } + } + odsProcureOrder.setCzNumber(czNumber); + } + Map paramMap=new HashMap<>(); + List mapList = new ArrayList<>(); + for (OdsProcureOrder order : + orderList1) { + paramMap.put("EBELN",order.getProcureCode());// + paramMap.put("EBELP",order.getUserDefined3());//行项目 + paramMap.put("MATNR",order.getMaterialCode());//物料 + paramMap.put("WERKS",order.getSiteCode());//工厂 + paramMap.put("QUANTITY",order.getCzNumber());//数量 + paramMap.put("P_LFSNR",order.getUserDefined5());//送 + mapList.add(paramMap); + } + R result2 = remoteSapService.temporarilyCollected(mapList); + int code = result2.getCode(); + 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(order1k.getUserDefined7());//批次 + wmsRawOrderInSn.setWhCode(order1k.getWhCode());//厂库编号 + wmsRawOrderInSn.setWaCode(order1k.getWaCode()); + wmsRawOrderInSn.setWlCode(order1k.getSn());//库位设置为托盘 + wmsRawOrderInSn.setPoNo(order1k.getProcureCode());//采购单号 + wmsRawOrderInSn.setPoLine(order1k.getUserDefined3());//行项目 + wmsRawOrderInSn.setMaterialCode(order1k.getMaterialCode()); + wmsRawOrderInSn.setMaterialDesc(order1k.getMaterialDesc()); + wmsRawOrderInSn.setAmount(order1k.getPlanNumber());//实际输入数量 + wmsRawOrderInSn.setFactoryCode(order1k.getFactoryCode()); + wmsRawOrderInSn.setCreateBy(order1k.getCreateBy()); + wmsRawOrderInSn.setGmtCreate(new Date()); + wmsRawOrderInSn.setActiveFlag("1"); + wmsRawOrderInSn.setUserDefined4(order1k.getUnit());//单位 + wmsRawOrderInSn.setSn(order1k.getSn());//托盘号 + wmsRawOrderInSn.setFactoryCode(order1k.getFactoryCode()); + wmsRawOrderInSn.setUserDefined3(order1k.getID()); + wmsRawOrderInSn.setUserDefined5(order1k.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); + } + + odsProcureOrderMapper.updateodsProcureOrderCard(order1k); + } + Map map = new HashMap(); + map = (Map) result2.getData(); + String MATERIALDOCUMENT = (String) map.get("MATERIALDOCUMENT"); + String MATDOCUMENTYEAR = (String) map.get("MATDOCUMENTYEAR"); + for (OdsProcureOrder odsProcureOrder: + orderList1) { + BigDecimal planNumber= odsProcureOrder.getPlanNumber(); + ;//操作数量 + odsProcureOrder.setOrderStatus("1"); + BigDecimal result = odsProcureOrder.getRealityNumber().add(odsProcureOrder.getCzNumber()); + System.out.println(result); + if (result.compareTo(planNumber)== 0) { + odsProcureOrder.setOrderStatus("2"); + } + odsProcureOrder.setPlanNumber(odsProcureOrder.getCzNumber()); + odsProcureOrderMapper.updateRealityNuById(odsProcureOrder); + } + for (OdsProcureOrder odsProcureOrder: + orderList1) { + //标识卡记录已经录入,订单已经修改完成 + OdsProcureOrder order1 = odsProcureOrderMapper.selectOdsProcureOrderByID(odsProcureOrder.getID()); + order1.setSapTempInfor(result2.getMsg()); + WmsRawOrderIn wmsRawOrderIn=new WmsRawOrderIn(); + wmsRawOrderIn.setRawOrderInId(IdUtils.fastSimpleUUID()); + wmsRawOrderIn.setFactoryCode(odsProcureOrder.getFactoryCode()); + wmsRawOrderIn.setDnNo(odsProcureOrder.getReceiptNoCode()); + wmsRawOrderIn.setPoNo(odsProcureOrder.getProcureCode()); + wmsRawOrderIn.setPoLine(odsProcureOrder.getUserDefined3()); + wmsRawOrderIn.setMaterialCode(odsProcureOrder.getMaterialCode()); + wmsRawOrderIn.setMaterialDesc(odsProcureOrder.getMaterialDesc()); + wmsRawOrderIn.setRequestAmount(odsProcureOrder.getCzNumber()); + wmsRawOrderIn.setUnit(odsProcureOrder.getUnit()); + wmsRawOrderIn.setRequestTime(new Date()); + wmsRawOrderIn.setOrderStatus("0");//暂收 + wmsRawOrderIn.setActiveFlag("1"); + wmsRawOrderIn.setSupplyCode(odsProcureOrder.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); + order1.setSapTempStatus("1");//0是失败。1是成功 + odsProcureOrderMapper.updateOdsProcureOrder(order1); + } + + + for (OdsProcureOrder odsProcureOrder1:orderList){ + //收货 + WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = new WmsOdsMateStorageNewsSn(); + wmsOdsMateStorageNewsSn.setMateOrderInSnId(IdUtils.fastSimpleUUID()); + wmsOdsMateStorageNewsSn.setWhCode(odsProcureOrder1.getWhCode());//仓库编码 + wmsOdsMateStorageNewsSn.setWaCode(odsProcureOrder1.getWaCode()); + wmsOdsMateStorageNewsSn.setWlCode(odsProcureOrder1.getSn());//库位编码- + wmsOdsMateStorageNewsSn.setMaterialCode(odsProcureOrder1.getMaterialCode()); + wmsOdsMateStorageNewsSn.setMaterialDesc(odsProcureOrder1.getMaterialDesc()); + wmsOdsMateStorageNewsSn.setSn(odsProcureOrder1.getSn()); + wmsOdsMateStorageNewsSn.setAmount(odsProcureOrder1.getPlanNumber()); + wmsOdsMateStorageNewsSn.setCreateBy(odsProcureOrder1.getCreateBy()); + wmsOdsMateStorageNewsSn.setGmtCreate(new Date()); + wmsOdsMateStorageNewsSn.setUserDefined2(odsProcureOrder1.getUserDefined7());//批次 + wmsOdsMateStorageNewsSn.setUserDefined1("RK"); + wmsOdsMateStorageNewsSn.setUserDefined3("0");//0是暂收,1是真收 + wmsOdsMateStorageNewsSn.setFactoryCode(odsProcureOrder1.getFactoryCode()); + wmsOdsMateStorageNewsSn.setSapFactoryCode(odsProcureOrder1.getFactoryCode()); + wmsOdsMateStorageNewsSn.setActiveFlag("1"); + wmsOdsMateStorageNewsSnMapper.insertWmsOdsMateStorageNewsSn(wmsOdsMateStorageNewsSn); + //修改库存 + //2,修改库存---/加库存数量-/-冻结数量 + WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); + wmsOdsEmStorageNews.setWhCode(odsProcureOrder1.getWhCode());//仓库编码 + wmsOdsEmStorageNews.setWlCode(odsProcureOrder1.getSn());//库位编码 + wmsOdsEmStorageNews.setWaCode(odsProcureOrder1.getWaCode());//库位编码 + wmsOdsEmStorageNews.setMaterialCode(odsProcureOrder1.getMaterialCode()); + wmsOdsEmStorageNews.setUserDefined2(odsProcureOrder1.getUserDefined7());//批次 + wmsOdsEmStorageNews.setAmount(odsProcureOrder1.getPlanNumber()); + //添加库存--这个要有个判断有没有这个库存如果没有的话,就插入 + WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectByWhCodeAndMate(wmsOdsEmStorageNews); + if (wmsOdsMateStorageNews == null) { + WmsOdsMateStorageNews wmsOdsMateStorageNews1 = new WmsOdsMateStorageNews(); + wmsOdsMateStorageNews1.setStorageId(IdUtils.fastSimpleUUID()); + wmsOdsMateStorageNews1.setWhCode(odsProcureOrder1.getWhCode()); + wmsOdsMateStorageNews1.setWlCode(odsProcureOrder1.getSn()); + wmsOdsMateStorageNews1.setWaCode(odsProcureOrder1.getWaCode()); + wmsOdsMateStorageNews1.setAmount(odsProcureOrder1.getPlanNumber()); + wmsOdsMateStorageNews1.setStorageAmount(odsProcureOrder1.getPlanNumber()); + wmsOdsMateStorageNews1.setMaterialCode(odsProcureOrder1.getMaterialCode()); + wmsOdsMateStorageNews1.setMaterialDesc(odsProcureOrder1.getMaterialDesc()); + wmsOdsMateStorageNews1.setStorageType("BC"); + wmsOdsMateStorageNews1.setCreateBy(odsProcureOrder1.getCreateBy()); + wmsOdsMateStorageNews1.setGmtCreate(new Date()); + wmsOdsMateStorageNews1.setActiveFlag("1"); + wmsOdsMateStorageNews1.setFactoryCode(odsProcureOrder1.getFactoryCode()); + wmsOdsMateStorageNews1.setSapFactoryCode(odsProcureOrder1.getFactoryCode()); + wmsOdsMateStorageNews1.setUserDefined1(odsProcureOrder1.getUnit());//单位 + wmsOdsMateStorageNewsMapper.insertWmsOdsMateStorageNews(wmsOdsMateStorageNews1); + } else { + wmsOdsMateStorageNewsSnMapper.updateAdd(wmsOdsEmStorageNews); + } + // wmsRawOrderInSnMapper.updateU1Byid(wmsRawOrderInSn);//入库 + } + }else {////失败| + result1="暂收失败"; + for (OdsProcureOrder order : + orderList1) { + OdsProcureOrder order2 = odsProcureOrderMapper.selectOdsProcureOrderByID(order.getID()); + order2.setSapTempInfor(result2.getMsg()); + order2.setSapTempStatus("0");//0是失败。1是成功 + odsProcureOrderMapper.updateOdsProcureOrder(order2); + } + return result1; + } + return result1; + } + public String dayin( List orderList) { // 定义请求的URL地址 diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOrderMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOrderMapper.xml index d9ac30750..028fd6d90 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOrderMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOrderMapper.xml @@ -575,5 +575,46 @@ SET User_Defined10 = '1' where User_Defined1 = #{userDefined6} + diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml index 5c987ea60..68b4164f3 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml @@ -1045,6 +1045,7 @@ and User_Defined1 = #{userDefined1} and Active = #{Active} + ORDER BY Create_Date DESC