From 1266436fc8149f712105a102ba36cbda38e29d4e Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Tue, 21 Jan 2025 17:05:37 +0800 Subject: [PATCH] =?UTF-8?q?wms=E6=88=90=E5=93=81=E9=94=80=E5=94=AE?= =?UTF-8?q?=E5=87=BA=E5=BA=93bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/OdsProcureOrderController.java | 12 +- .../wms/service/IOdsProcureOrderService.java | 1 + .../impl/OdsProcureOrderServiceImpl.java | 106 ++++++++++++++++++ .../impl/WmsSellOutEmbryoServiceImpl.java | 6 +- .../mapper/wms/WmsFpStorageNewsSnMapper.xml | 4 +- .../mapper/wms/WmsSellOutEmbryoMapper.xml | 3 +- 6 files changed, 126 insertions(+), 6 deletions(-) diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/OdsProcureOrderController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/OdsProcureOrderController.java index 64f9e6cea..9d04816f3 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/OdsProcureOrderController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/OdsProcureOrderController.java @@ -351,7 +351,17 @@ public class OdsProcureOrderController extends BaseController { odsProcureOrderService.OutboundPostingzcSAP(orderList); return success(); } - + /** + * 领料单出库过账 + * + * @param orderList + * @return + */ + @PostMapping("/OutboundPostingzcSAPTS") + public AjaxResult OutboundPostingzcSAPTS(@RequestBody List orderList) { + odsProcureOrderService.OutboundPostingzcSAPTS(orderList); + return success(); + } @PostMapping("/listCKT") public AjaxResult listCKT(BaseWarehouse baseWarehouse) { 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 8e5a77987..a1a7ffe7a 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 @@ -155,4 +155,5 @@ public interface IOdsProcureOrderService { String upbatCardXNew(OdsProcureOrder order); + void OutboundPostingzcSAPTS(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 e53a28163..b794dd798 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 @@ -1566,6 +1566,112 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { return result; } + @Override + public void OutboundPostingzcSAPTS(List orderList) { + //先根据出库单获取 +// * 退料的移动类型为 262 +// * 领料的移动类型为 261 + List orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByIDs(orderList); + List orderList2 = new ArrayList<>();//非反冲 + List> mapList = new ArrayList<>();//非反冲 + List sapMaterialPostingFCList = new ArrayList<>();//反冲 + List orderList2FC = new ArrayList<>();//反冲 + for (OdsProcureOutOrder odsProcureOutOrder : + orderList1) { + if (!"X".equals(odsProcureOutOrder.getUserDefined3())){ + Map 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 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 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); + } + } + } @Override diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsSellOutEmbryoServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsSellOutEmbryoServiceImpl.java index 69dc4a3b3..f8d40cf5e 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsSellOutEmbryoServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsSellOutEmbryoServiceImpl.java @@ -214,7 +214,7 @@ public class WmsSellOutEmbryoServiceImpl implements IWmsSellOutEmbryoService { String productCode =wmsSellOutEmbryo2.getProductCode(); BigDecimal planQuantity = wmsSellOutEmbryo2.getPlanQuantity(); List wmsFpStorageNewsSns= wmsFpStorageNewsSnMapper.selectwmsFpStorageNewsGroupWaCode(productCode); - if (wmsFpStorageNewsSns.size()<1){//没有库存,就就跳过,但是要记录,对前端进行提示 + if (wmsFpStorageNewsSns==null|| wmsFpStorageNewsSns.size()<1){//没有库存,就就跳过,但是要记录,对前端进行提示 ten= ten+1; result=result+","+productCode; continue; @@ -228,14 +228,16 @@ public class WmsSellOutEmbryoServiceImpl implements IWmsSellOutEmbryoService { //生成一个 wmsSellOutEmbryoMapper.updateWmsSellOutEmbryoAddOut(wmsSellOutEmbryo2,planQuantity);//对订单进行修改--添加出库数量 wmsSellOutEmbryo2.setStockOrder("BH"+stock); + wmsSellOutEmbryo2.setOutQuantity(new BigDecimal("0")); wmsSellOutEmbryo2.setWaCode(wmsFpStorageNewsSn.getWaCode()); wmsSellOutEmbryo2.setPlanQuantity(planQuantity); wmsSellOutEmbryo2.setId(IdUtils.fastSimpleUUID()); wmsSellOutEmbryoMapper.insertWmsSellOutEmbryoOrder(wmsSellOutEmbryo2); - return result; + break ; }else { wmsSellOutEmbryoMapper.updateWmsSellOutEmbryoAddOut(wmsSellOutEmbryo2,tem); wmsSellOutEmbryo2.setStockOrder("BH"+stock); + wmsSellOutEmbryo2.setOutQuantity(new BigDecimal("0")); planQuantity = planQuantity.subtract(tem); // 用总数量减去tem,更新planQuantity的值 wmsSellOutEmbryo2.setWaCode(wmsFpStorageNewsSn.getWaCode()); // 设置wmsSellOutEmbryo2的waCode为当前wmsFpStorageNewsSn的waCode wmsSellOutEmbryo2.setPlanQuantity(tem); // 将tem的值赋给wmsSellOutEmbryo2的planQuantity diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsFpStorageNewsSnMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsFpStorageNewsSnMapper.xml index 5427e9ea1..510aaeaaa 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsFpStorageNewsSnMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsFpStorageNewsSnMapper.xml @@ -583,8 +583,8 @@ WHERE product_code like concat('%',#{productCode} , '%') - AND wh_code='0021' and 0 + AND wh_code='0021' 0 ]]> GROUP BY wa_code, diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsSellOutEmbryoMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsSellOutEmbryoMapper.xml index 515cde5c0..daa418e79 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsSellOutEmbryoMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsSellOutEmbryoMapper.xml @@ -101,7 +101,8 @@ and product_name like concat('%', #{productName}, '%') - and product_code = #{productCode} + and product_code like concat('%', #{productCode}, + '%') and product_sort = #{productSort} and specification = #{specification} and unit_of_measure = #{unitOfMeasure}