From 5abd625d55942dccdafd2a0c4ae7138a33848e5e Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Wed, 20 Dec 2023 14:53:17 +0800 Subject: [PATCH] =?UTF-8?q?SAP=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=94=B6=E8=B4=A7=E8=BF=87=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/system/api/RemoteSapService.java | 10 +- .../api/factory/RemoteSapFallbackFactory.java | 12 +- .../com/op/sap/controller/SapController.java | 12 +- .../com/op/sap/service/SapOrderService.java | 1 + .../com/op/sap/service/SapWmsService.java | 2 +- .../sap/service/impl/SapOrderServiceImpl.java | 75 ++++++++ .../sap/service/impl/SapWmsServicelmpl.java | 169 ++++++------------ 7 files changed, 164 insertions(+), 117 deletions(-) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java index 845ed2c9..dcce1181 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java @@ -78,5 +78,13 @@ public interface RemoteSapService { /**智慧工厂储位信息*/ @PostMapping("/sap/sapLgortInfo") - public R sapLgortInfo(@RequestBody(required = false) Map map); + public R sapLgortInfo(@RequestBody(required = false) List> mapList); + + /**成品下线入库*/ + @PostMapping("/sapProductWarehousing") + public R sapProductWarehousing(@RequestBody(required = false) List> mapList); + + /**采购订单收货过账*/ + @PostMapping("/sapPOrderGoodsReceipt") + public R sapPOrderGoodsReceipt(@RequestBody(required = false) List> mapList); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java index ab9a85ea..8af8be38 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java @@ -90,10 +90,20 @@ public class RemoteSapFallbackFactory implements FallbackFactory map) { + public R sapLgortInfo(List> mapList) { return R.fail("储位仓库信息获取失败" + throwable.getMessage()); } + @Override + public R sapProductWarehousing(List> mapList) { + return R.fail("成品下线入库失败" + throwable.getMessage()); + } + + @Override + public R sapPOrderGoodsReceipt(List> mapList) { + return R.fail("采购订单收货过账失败" + throwable.getMessage()); + } + }; } } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java index db102a01..0e56963e 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java @@ -405,6 +405,12 @@ public class SapController extends BaseController { return sapOrderService.sapPurchaseOrderSync(sapPurchaseOrderQuery); } + @PostMapping("/sapPOrderGoodsReceipt") + @Log(title = "采购订单收货过账", businessType = BusinessType.SAP) + public R sapPOrderGoodsReceipt(@RequestBody(required = false) List> mapList){ + return sapOrderService.sapPOrderGoodsReceipt(mapList); + } + /** * 智慧工厂101类型订单收货 * 订单为母订单 @@ -421,13 +427,13 @@ public class SapController extends BaseController { /** * 智慧工厂储位信息 - * @param map + * @param mapList * @return */ @PostMapping("/sapLgortInfo") @Log(title = "智慧工厂储位信息", businessType = BusinessType.SAP) - public R sapLgortInfo(@RequestBody(required = false) Map map){ - return sapWmsService.sapLgortInfo(map); + public R sapLgortInfo(@RequestBody(required = false) List> mapList){ + return sapWmsService.sapLgortInfo(mapList); } /** diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java b/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java index 4cdf12d2..14968ba9 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java @@ -56,4 +56,5 @@ public interface SapOrderService { R sapOrderReceipt(SapOrderReceiptQuery sapOrderReceiptQuery); + R sapPOrderGoodsReceipt(List> mapList); } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/SapWmsService.java b/op-modules/op-sap/src/main/java/com/op/sap/service/SapWmsService.java index cd4eac1a..03644f8a 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/SapWmsService.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/SapWmsService.java @@ -7,7 +7,7 @@ import java.util.Map; public interface SapWmsService { - R sapLgortInfo(Map map); + R sapLgortInfo(List> mapList); R sapProductWarehousing(List> mapList); } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java index 18d8d533..62c8c454 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java @@ -544,6 +544,81 @@ public class SapOrderServiceImpl implements SapOrderService { } } + @Override + public R sapPOrderGoodsReceipt(List> mapList) { + try { + JCoRepository repository = dest.getRepository(); + JCoFunction func = repository.getFunction("ZMES_PROMIGO_CREATE"); + if (func == null) { + throw new RuntimeException("Function does not exist in SAP"); + } + log.info("采购订单收货过账ZMES_PROMIGO_CREATE-------"+mapList.toString()); + /** + EBELN 采购凭证号 + EBELP 采购凭证的项目编号 + BWART 移动类型(库存管理) + PLANT 工厂 + LGORT 库存地点 + MATNR 物料号 + QUANTITY 数量 + MEINS 基本计量单位 + BATCH 批号 + HSDAT 生产日期 + VFDAT 货架寿命到期日 + + */ + JCoTable L_ITEM = func.getTableParameterList().getTable("L_ITEM"); + for (Map stringObjectMap:mapList){ + L_ITEM.appendRow(); + L_ITEM.setValue("EBELN", stringObjectMap.get("EBELN")); + L_ITEM.setValue("EBELP", stringObjectMap.get("EBELP")); + L_ITEM.setValue("BWART", stringObjectMap.get("BWART")); + L_ITEM.setValue("PLANT", stringObjectMap.get("PLANT")); + L_ITEM.setValue("LGORT", stringObjectMap.get("LGORT")); + L_ITEM.setValue("KOSTL", stringObjectMap.get("KOSTL")); + L_ITEM.setValue("MATNR", stringObjectMap.get("MATNR")); + L_ITEM.setValue("QUANTITY", stringObjectMap.get("QUANTITY")); + L_ITEM.setValue("MEINS", stringObjectMap.get("MEINS")); + L_ITEM.setValue("BATCH", stringObjectMap.get("BATCH")); + L_ITEM.setValue("HSDAT", stringObjectMap.get("HSDAT")); + L_ITEM.setValue("VFDAT", stringObjectMap.get("VFDAT")); + } + System.out.println(L_ITEM); + func.execute(dest);//执行调用函数 + // 获取 内表 - ZMES_PRO + + JCoTable LT_RETURN = func.getTableParameterList().getTable("LT_RETURN"); + StringBuilder Msg = new StringBuilder(); + for (int i = 0; i < LT_RETURN.getNumRows(); i++) { + LT_RETURN.setRow(i); + String MESSAGE = LT_RETURN.getString("MESSAGE"); + Msg.append(MESSAGE+"/"); + } + + + String L_MSG= func.getExportParameterList().getString("L_MSG"); + String RETCODE= func.getExportParameterList().getString("RETCODE"); + String MATERIALDOCUMENT= func.getExportParameterList().getString("MATERIALDOCUMENT"); + String MATDOCUMENTYEAR= func.getExportParameterList().getString("MATDOCUMENTYEAR"); + System.out.println("L_MSG"+L_MSG); + System.out.println("返回值:0-没有错误,1-有错误:"+RETCODE); + System.out.println("物料凭证编号"+MATERIALDOCUMENT); + System.out.println("物料凭证年度"+MATDOCUMENTYEAR); + if (!("0").equals(RETCODE)){ + return R.fail("",Msg.toString()); + }else { + Map map=new HashMap(); + map.put("MATERIALDOCUMENT",MATERIALDOCUMENT); + map.put("MATDOCUMENTYEAR",MATDOCUMENTYEAR); + return R.ok(map,Msg.toString()); + } + + }catch (Exception e){ + log.error(e.getMessage()); + return R.fail(e.getMessage()); + } + } + // public static void main(String[] args) { // List sapBackflushMPQueryList=new ArrayList<>(); // SapBackflushMPQuery sapBackflushMPQuery=new SapBackflushMPQuery(); diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWmsServicelmpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWmsServicelmpl.java index 5be3897d..1f0cbfc6 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWmsServicelmpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWmsServicelmpl.java @@ -24,21 +24,25 @@ public class SapWmsServicelmpl implements SapWmsService { private JCoDestination dest; @Override - public R sapLgortInfo(Map map) { + public R sapLgortInfo(List> mapList) { try { JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZMES_GET_LGORT"); if (func == null) { throw new RuntimeException("Function does not exist in SAP"); } - log.info("获取储位信息入参-------"+map.toString()); - if (!StringUtils.isNull(map.get("S_WERKS"))){ - JCoTable S_MATNR = func.getTableParameterList().getTable("S_WERKS"); - S_MATNR.appendRow(); - S_MATNR.setValue("SIGN", "I"); - S_MATNR.setValue("OPTION", "EQ"); - S_MATNR.setValue("LOW", map.get("S_WERKS")); + log.info("获取储位信息入参-------"+mapList.toString()); + JCoTable S_WERKS = func.getTableParameterList().getTable("S_WERKS"); + JCoTable S_LGORT = func.getTableParameterList().getTable("S_LGORT"); + System.out.println(S_WERKS); + // System.out.println(S_LGORT); + for (Map stringObjectMap:mapList){ + S_WERKS.appendRow(); + S_WERKS.setValue("SIGN", "I"); + S_WERKS.setValue("OPTION", "EQ"); + S_WERKS.setValue("LOW", stringObjectMap.get("S_WERKS")); } + func.execute(dest);//执行调用函数 // 获取 内表 - ZMES_PRO JCoTable maraTable = func.getTableParameterList().getTable("LT_LGORT"); @@ -48,7 +52,7 @@ public class SapWmsServicelmpl implements SapWmsService { * LGOBE 仓储地点的描述 * ZTYPE 已冻结标识 */ - List mapList=new ArrayList<>(); + List mapLists=new ArrayList<>(); for (int i = 0; i > mapList) { + try { JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZMES_PRODUCT_MB1A"); @@ -97,109 +102,51 @@ public class SapWmsServicelmpl implements SapWmsService { VFDAT 货架寿命到期日 */ JCoTable L_ITEM = func.getTableParameterList().getTable("L_ITEM"); - System.out.println(L_ITEM); - System.out.println( L_ITEM.getNumRows()); - for (int i=1;i<10;i++){ + for (Map stringObjectMap:mapList){ L_ITEM.appendRow(); - L_ITEM.setValue("AUFNR", "01234567890"+String.valueOf(i)); - L_ITEM.setValue("POSN", "012"+String.valueOf(i)); - L_ITEM.setValue("POSN", "012"+String.valueOf(i)); - L_ITEM.setValue("POSN", "012"+String.valueOf(i)); + L_ITEM.setValue("AUFNR", stringObjectMap.get("AUFNR")); + L_ITEM.setValue("POSNR", stringObjectMap.get("POSNR")); + L_ITEM.setValue("BWART", stringObjectMap.get("BWART")); + L_ITEM.setValue("PLANT", stringObjectMap.get("PLANT")); + L_ITEM.setValue("LGORT", stringObjectMap.get("LGORT")); + L_ITEM.setValue("KOSTL", stringObjectMap.get("KOSTL")); + L_ITEM.setValue("MATNR", stringObjectMap.get("MATNR")); + L_ITEM.setValue("QUANTITY", stringObjectMap.get("QUANTITY")); + L_ITEM.setValue("MEINS", stringObjectMap.get("MEINS")); + L_ITEM.setValue("BATCH", stringObjectMap.get("BATCH")); + L_ITEM.setValue("HSDAT", stringObjectMap.get("HSDAT")); + L_ITEM.setValue("VFDAT", stringObjectMap.get("VFDAT")); } System.out.println(L_ITEM); -// if (!StringUtils.isNull(map.get("AUFNR"))){ -// JCoTable S_MATNR = func.getTableParameterList().getTable("AUFNR"); -// S_MATNR.appendRow(); -// S_MATNR.setValue("SIGN", "I"); -// S_MATNR.setValue("OPTION", "EQ"); -// S_MATNR.setValue("LOW", map.get("AUFNR")); -// } -// if (!StringUtils.isNull(map.get("POSNR"))){ -// JCoTable S_MATNR = func.getTableParameterList().getTable("POSNR"); -// S_MATNR.appendRow(); -// S_MATNR.setValue("SIGN", "I"); -// S_MATNR.setValue("OPTION", "EQ"); -// S_MATNR.setValue("LOW", map.get("POSNR")); -// } -// if (!StringUtils.isNull(map.get("BWART"))){ -// JCoTable S_MATNR = func.getTableParameterList().getTable("BWART"); -// S_MATNR.appendRow(); -// S_MATNR.setValue("SIGN", "I"); -// S_MATNR.setValue("OPTION", "EQ"); -// S_MATNR.setValue("LOW", map.get("BWART")); -// } -// if (!StringUtils.isNull(map.get("PLANT"))){ -// JCoTable S_MATNR = func.getTableParameterList().getTable("PLANT"); -// S_MATNR.appendRow(); -// S_MATNR.setValue("SIGN", "I"); -// S_MATNR.setValue("OPTION", "EQ"); -// S_MATNR.setValue("LOW", map.get("PLANT")); -// } -// if (!StringUtils.isNull(map.get("LGORT"))){ -// JCoTable S_MATNR = func.getTableParameterList().getTable("LGORT"); -// S_MATNR.appendRow(); -// S_MATNR.setValue("SIGN", "I"); -// S_MATNR.setValue("OPTION", "EQ"); -// S_MATNR.setValue("LOW", map.get("LGORT")); -// } -// if (!StringUtils.isNull(map.get("KOSTL"))){ -// JCoTable S_MATNR = func.getTableParameterList().getTable("KOSTL"); -// S_MATNR.appendRow(); -// S_MATNR.setValue("SIGN", "I"); -// S_MATNR.setValue("OPTION", "EQ"); -// S_MATNR.setValue("LOW", map.get("KOSTL")); -// } -// if (!StringUtils.isNull(map.get("MATNR"))){ -// JCoTable S_MATNR = func.getTableParameterList().getTable("MATNR"); -// S_MATNR.appendRow(); -// S_MATNR.setValue("SIGN", "I"); -// S_MATNR.setValue("OPTION", "EQ"); -// S_MATNR.setValue("LOW", map.get("MATNR")); -// } -// if (!StringUtils.isNull(map.get("QUANTITY"))){ -// JCoTable S_MATNR = func.getTableParameterList().getTable("QUANTITY"); -// S_MATNR.appendRow(); -// S_MATNR.setValue("SIGN", "I"); -// S_MATNR.setValue("OPTION", "EQ"); -// S_MATNR.setValue("LOW", map.get("QUANTITY")); -// } -// if (!StringUtils.isNull(map.get("MEINS"))){ -// JCoTable S_MATNR = func.getTableParameterList().getTable("MEINS"); -// S_MATNR.appendRow(); -// S_MATNR.setValue("SIGN", "I"); -// S_MATNR.setValue("OPTION", "EQ"); -// S_MATNR.setValue("LOW", map.get("MEINS")); -// } -// if (!StringUtils.isNull(map.get("BATCH"))){ -// JCoTable S_MATNR = func.getTableParameterList().getTable("BATCH"); -// S_MATNR.appendRow(); -// S_MATNR.setValue("SIGN", "I"); -// S_MATNR.setValue("OPTION", "EQ"); -// S_MATNR.setValue("LOW", map.get("BATCH")); -// } -// func.execute(dest);//执行调用函数 -// // 获取 内表 - ZMES_PRO -// JCoTable maraTable = func.getTableParameterList().getTable("LT_LGORT"); -// -// List mapList=new ArrayList<>(); -// for (int i = 0; i