From 133c270d175198a4c10a324bcd3a42ae2d75bf64 Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Sat, 14 Sep 2024 11:31:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=87=E8=B4=A6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/mapper/OdsProcureOutOrderMapper.java | 8 +- .../impl/OdsProcureOrderServiceImpl.java | 119 +++++++++++++++++- .../mapper/wms/OdsProcureOutOrderMapper.xml | 41 ++++++ 3 files changed, 164 insertions(+), 4 deletions(-) diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOutOrderMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOutOrderMapper.java index 0cd4c84d6..21f1d4085 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOutOrderMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOutOrderMapper.java @@ -119,10 +119,12 @@ public interface OdsProcureOutOrderMapper { public List selectWmsOdsProcureOutOrderByIDs(@Param("list") List orderList); - void updateWMSOdsProcureOutOrderByids(@Param("order") OdsProcureOutOrder order, @Param("list") List sapMaterialPostingList); + public void updateWMSOdsProcureOutOrderByids(@Param("order") OdsProcureOutOrder order, @Param("list") List sapMaterialPostingList); - List selectWmsRawMissionOutByPrdAndMa(OdsProcureOutOrder order1); + public List selectWmsRawMissionOutByPrdAndMa(OdsProcureOutOrder order1); - List selectPreDetailHzList(OdsProcureOutOrder odsProcureOutOrder); + public List selectPreDetailHzList(OdsProcureOutOrder odsProcureOutOrder); + + public List selectWmsOdsProcureOutOrderByOrderStatus(OdsProcureOutOrder order); } 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 536ad7068..7f235470a 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 @@ -1176,6 +1176,10 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { }else{ dtos.addAll(dtos0); } +// for (OdsProcureOrder order1: +// dtos ) { +// +// } String msg= dayin(dtos); return msg; } @@ -1471,7 +1475,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { } return orderLists; } -// OdsProcureOutOrder order = odsProcureOutOrderMapper.selectMesPrepareBC(odsProcureOutOrder); +// OdsProcureOutOrder order = odsProcureOutOrderMapper.selectMesPrepareBC(odsProcureOutOrder); List orderList= odsProcureOutOrderMapper.selectPreDetailHzList(odsProcureOutOrder); //根据订单号查询对应的最大批次号 Integer orderItem = 0; @@ -1660,9 +1664,122 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { wmsOdsEmStorageNews.setLastModifiedBy(createBy); wmsOdsMateStorageNewsSnMapper.updatekdd(wmsOdsEmStorageNews);//库存调整 } + // + OdsProcureOutOrder order=new OdsProcureOutOrder(); + List orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByOrderStatus(order); + if (orderList1.size()>0){ + OutboundPostingzcSAPGY(orderList1); + } return result; } + public void OutboundPostingzcSAPGY(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); + } + } + } + + /** * * @param orderList 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 5ac165f27..60c54b156 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 @@ -1086,4 +1086,45 @@ ORDER BY mpd.material_code +