From 0005043b709538b1b0cf2ba177567747a6bc7f4c Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Thu, 27 Mar 2025 14:29:35 +0800 Subject: [PATCH] =?UTF-8?q?wms=E7=9A=84=E6=88=90=E5=93=81=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E5=85=A5=E5=BA=93=E6=8A=A5=E8=A1=A8=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E8=B4=A8=E6=A3=80=E7=8A=B6=E6=80=81=E8=8E=B7=E5=8F=96=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/OdsProcureOrderServiceImpl.java | 231 ++++++++++-------- .../impl/OdsProcureOutOrderServiceImpl.java | 131 ++-------- .../mapper/wms/OdsProcureOutOrderMapper.xml | 2 +- .../mapper/wms/WmsProductPutMapper.xml | 18 +- 4 files changed, 155 insertions(+), 227 deletions(-) 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 2a66fd767..cc6991120 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 @@ -1568,111 +1568,138 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { @Override public void OutboundPostingzcSAPTS(List orderList) { - //先根据出库单获取 -// * 退料的移动类型为 262 -// * 领料的移动类型为 261 List orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByIDsTS(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); - } - } + OutboundPostingzcSAPGYTS(orderList1); } + + + public void OutboundPostingzcSAPGYTS(List orderList) { + //先根据出库单获取 +// -- and wms_ods_procure_out_order.Order_Status='3' + //我把过账状态-- and wms_ods_procure_out_order.User_Defined10!='2'去掉了 + List orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderSpecialByIDs(orderList); + for (OdsProcureOutOrder order: + orderList1 ) { + if ("成本中心".equals(orderList1.get(0).getUserDefined6())){ + //区分出来内部订单 + Map paramMap=new HashMap<>(); + List mapList = new ArrayList<>(); + paramMap.put("GL_ACCOUNT", order.getUserDefined2());//总帐科目编号 + paramMap.put("COSTCENTER", order.getUserDefined3());//成本中心 + paramMap.put("GR_RCPT", order.getUserDefined4());//收货方/运达方 + paramMap.put("PLANT", order.getSiteCode());//工厂 + paramMap.put("LGORT", order.getLocCode());//库存地点 + paramMap.put("MATNR", order.getMaterialCode());//物料号 + paramMap.put("QUANTITY", order.getPlanNumber());//数量 + paramMap.put("MEINS", order.getUnit());//条目单位 + paramMap.put("BATCH", order.getUserDefined1());//批号 + paramMap.put("PROD_DATE", order.getPlanDate());//生产日期 + paramMap.put("EXPIRYDATE", order.getUserDefined5());//货架寿命到期日 + mapList.add(paramMap); + R result2 = remoteSapService.sapProductOutboundCostCenter(mapList); + + int code = result2.getCode(); + OdsProcureOutOrder order1 = 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");//成功 +// for (OdsProcureOutOrder order2: +// orderList2 ) { + order1.setID(order.getID()); + order1.setSapNumber(order.getOutNumber());//成功..这个是否的outNumber是用已出库减去已经过账的数量 + order1.setUserDefined10("2");//1是未过账,2是成功,3是失败 + order1.setUserDefined9(userDefined9);//凭证 + order1.setUserDefined11(msg);//信息 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapSpecialById(order1); +// } + order1.setProduceCode(order.getProduceCode()); + order1.setMaterialCode(order.getMaterialCode()); + List odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1); + for (WmsOdsMateStorageNews wmsOdsMateStorageNews: + odsEmStorageNews) { + //wmsOdsMateStorageNews + wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername()); + wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整 + } + }else { + order1.setID(order.getID()); + // order1.setSapNumber(order.getOutNumber());//成功..这个是否的outNumber是用已出库减去已经过账的数量 + order1.setUserDefined10("3");//1是未过账,2是成功,3是失败 + // order1.setUserDefined9(userDefined9);//凭证 + order1.setUserDefined11(msg);//信息 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapSpecialTWById(order1); + } + + + }else { + //内部订单 + Map paramMap=new HashMap<>(); + List mapList = new ArrayList<>(); + paramMap.put("AUFNR", order.getProduceCode());// + paramMap.put("GL_ACCOUNT", order.getUserDefined2());// + paramMap.put("GR_RCPT", order.getUserDefined4());//收货方/运达方 + paramMap.put("PLANT", order.getSiteCode());//工厂 + paramMap.put("LGORT", order.getLocCode());//库存地点 + paramMap.put("MATNR", order.getMaterialCode());// + paramMap.put("QUANTITY", order.getPlanNumber());// + paramMap.put("MEINS", order.getUnit());// + paramMap.put("BATCH", order.getUserDefined1());// + paramMap.put("PROD_DATE", order.getPlanDate());//生产日期 + paramMap.put("EXPIRYDATE", order.getUserDefined5());//货架寿命到期日 + mapList.add(paramMap); +// R result2 = remoteSapService.sapProductOutboundCostTWO(mapList); + R result2 = remoteSapService.sapProductOutboundCostTW(mapList); + int code = result2.getCode(); + OdsProcureOutOrder order1 = 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");//成功 +// for (OdsProcureOutOrder order2: +// orderList2 ) { + order1.setID(order.getID()); + order1.setSapNumber(order.getOutNumber());//成功..这个是否的outNumber是用已出库减去已经过账的数量 + order1.setUserDefined10("2");//1是未过账,2是成功,3是失败 + order1.setUserDefined9(userDefined9);//凭证 + order1.setUserDefined11(msg);//信息 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapSpecialById(order1); +// } + order1.setProduceCode(order.getProduceCode()); + order1.setMaterialCode(order.getMaterialCode()); + List odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1); + for (WmsOdsMateStorageNews wmsOdsMateStorageNews: + odsEmStorageNews) { + //wmsOdsMateStorageNews + wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername()); + wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整 + } + }else { + order1.setID(order.getID()); + // order1.setSapNumber(order.getOutNumber());//成功..这个是否的outNumber是用已出库减去已经过账的数量 + order1.setUserDefined10("3");//1是未过账,2是成功,3是失败 + // order1.setUserDefined9(userDefined9);//凭证 + order1.setUserDefined11(msg);//信息 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapSpecialTWById(order1); + } + + } + } + + + + } @Override @DS("#header.poolName") public void OutboundPostingzcSAPTH(List orderList) { diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java index f5b37ef10..e35ed000c 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java @@ -527,6 +527,15 @@ public class OdsProcureOutOrderServiceImpl implements IOdsProcureOutOrderService order1.setUserDefined11(msg);//信息 odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapSpecialById(order1); // } + order1.setProduceCode(order.getProduceCode()); + order1.setMaterialCode(order.getMaterialCode()); + List odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1); + for (WmsOdsMateStorageNews wmsOdsMateStorageNews: + odsEmStorageNews) { + //wmsOdsMateStorageNews + wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername()); + wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整 + } }else { order1.setID(order.getID()); // order1.setSapNumber(order.getOutNumber());//成功..这个是否的outNumber是用已出库减去已经过账的数量 @@ -575,6 +584,15 @@ public class OdsProcureOutOrderServiceImpl implements IOdsProcureOutOrderService order1.setUserDefined11(msg);//信息 odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapSpecialById(order1); // } + order1.setProduceCode(order.getProduceCode()); + order1.setMaterialCode(order.getMaterialCode()); + List odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1); + for (WmsOdsMateStorageNews wmsOdsMateStorageNews: + odsEmStorageNews) { + //wmsOdsMateStorageNews + wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername()); + wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整 + } }else { order1.setID(order.getID()); // order1.setSapNumber(order.getOutNumber());//成功..这个是否的outNumber是用已出库减去已经过账的数量 @@ -588,117 +606,6 @@ public class OdsProcureOutOrderServiceImpl implements IOdsProcureOutOrderService } -// 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.setUmlgo("0013"); -// 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");//成功 -// for (OdsProcureOutOrder order1: -// orderList2 ) { -// BigDecimal sapNumber= order1.getSapNumber(); -// order1.setSapNumber(sapNumber.add(order1.getOutNumber()));//成功..这个是否的outNumber是用已出库减去已经过账的数量 -// odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapById(order1); -// } -// 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");//成功 -// for (OdsProcureOutOrder order1: -// orderList2FC ) { -// BigDecimal sapNumber= order1.getSapNumber(); -// order1.setSapNumber(sapNumber.add(order1.getOutNumber()));//成功..这个是否的outNumber是用已出库减去已经过账的数量 -// odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapById(order1); -// } -// 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); -// } -// } + } } 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 d3a729bc8..bd91cdf45 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 @@ -1251,7 +1251,7 @@ wms_raw_mission_out WHERE prd_order=#{produceCode} AND - material_code=#{materialCode} AND + material_code like concat('%', #{materialCode},'%') AND user_defined5='1'