From 671abbec9bdea333d90efab2696fde4546530684 Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Fri, 14 Mar 2025 17:01:24 +0800 Subject: [PATCH] =?UTF-8?q?wms,sap=E5=BA=93=E5=AD=98=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/system/api/RemoteSapService.java | 2 + .../system/api/domain/sap/SapZmesGetMchb.java | 50 +++++++++ .../api/factory/RemoteSapFallbackFactory.java | 5 + .../src/main/java/com/op/job/task/RyTask.java | 11 +- .../com/op/sap/controller/SapController.java | 7 +- .../op/sap/service/SapItemSyncService.java | 3 + .../op/sap/service/impl/SapItemSyncImpl.java | 105 +++++++++++++++++- .../impl/OdsProcureOrderServiceImpl.java | 2 + 8 files changed, 179 insertions(+), 6 deletions(-) create mode 100644 op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapZmesGetMchb.java 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 8d584adb8..d1785bcf6 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 @@ -148,6 +148,8 @@ public interface RemoteSapService { public R handleUpdateSAP102(@RequestBody(required = false)List mapList); @PostMapping("/sap/sapProductOutboundCostTW") public R sapProductOutboundCostTW(@RequestBody(required = false) List mapList) ; + @PostMapping("/sap/ObtainSapInventory") + public R ObtainSapInventory(@RequestBody(required = false) SapZmesGetMchb sapZmesGetMchb); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapZmesGetMchb.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapZmesGetMchb.java new file mode 100644 index 000000000..062592a46 --- /dev/null +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapZmesGetMchb.java @@ -0,0 +1,50 @@ +package com.op.system.api.domain.sap; + +public class SapZmesGetMchb { + private String S_MATNR;//工厂 + private String S_WERKS;//工厂描述 + private String S_LGORT;//工作中心 + private String S_CHARG;//工作中心描述 + + public String getS_MATNR() { + return S_MATNR; + } + + public void setS_MATNR(String s_MATNR) { + S_MATNR = s_MATNR; + } + + public String getS_WERKS() { + return S_WERKS; + } + + public void setS_WERKS(String s_WERKS) { + S_WERKS = s_WERKS; + } + + public String getS_LGORT() { + return S_LGORT; + } + + public void setS_LGORT(String s_LGORT) { + S_LGORT = s_LGORT; + } + + public String getS_CHARG() { + return S_CHARG; + } + + public void setS_CHARG(String s_CHARG) { + S_CHARG = s_CHARG; + } + + @Override + public String toString() { + return "SapZmesGetMchb{" + + "S_MATNR='" + S_MATNR + '\'' + + ", S_WERKS='" + S_WERKS + '\'' + + ", S_LGORT='" + S_LGORT + '\'' + + ", S_CHARG='" + S_CHARG + '\'' + + '}'; + } +} 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 da303b056..1a8cb2895 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 @@ -178,6 +178,11 @@ public class RemoteSapFallbackFactory implements FallbackFactory mapList); R handleUpdateSAP102(List mapList); + + R ObtainSapInventory(SapZmesGetMchb sapZmesGetMchb); } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java index ddb75eb80..07511a804 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java @@ -10,15 +10,12 @@ import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.bean.BeanValidators; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; -import com.op.system.api.domain.sap.SapWBDemand; +import com.op.system.api.domain.sap.*; import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO; -import com.op.system.api.domain.sap.SapBackflushMPQuery; import com.op.sap.domain.vo.SapItemQuery; -import com.op.system.api.domain.sap.SapMaterialPosting; import com.op.sap.mapper.SapBaseProductMapper; import com.op.sap.service.SapItemSyncService; import com.op.system.api.RemoteUserService; -import com.op.system.api.domain.sap.SapBaseProduct; import com.sap.conn.jco.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -1213,4 +1210,104 @@ public class SapItemSyncImpl implements SapItemSyncService { return R.fail(e.getMessage()); } } + + @Override + public R ObtainSapInventory(SapZmesGetMchb sapZmesGetMchb) { + try { + JCoRepository repository = dest.getRepository(); + JCoFunction func = repository.getFunction("ZMES_GET_MCHB"); + if (func == null) { + throw new RuntimeException("Function does not exist in SAP"); + } + + log.info("sapZmesGetMchb:-------" + sapZmesGetMchb.toString()); + //物料号 + JCoTable S_MATNR = func.getTableParameterList().getTable("S_MATNR"); + //工厂 + JCoTable S_WERKS = func.getTableParameterList().getTable("S_WERKS"); + //库位 + JCoTable S_LGORT = func.getTableParameterList().getTable("S_LGORT"); + //批次 + JCoTable S_CHARG = func.getTableParameterList().getTable("S_CHARG"); +// +// +// //物料号 +// String S_MATNR = sapZmesGetMchb.getS_MATNR();//物料 +// //工厂 +// String S_WERKS =sapZmesGetMchb.getS_WERKS();//工厂 +// //库位 +// String S_LGORT = sapZmesGetMchb.getS_LGORT();//库位 +// //批次 +// String S_CHARG = sapZmesGetMchb.getS_CHARG();//批次 + if (StringUtils.isNotEmpty(sapZmesGetMchb.getS_MATNR())){ + S_MATNR.appendRow(); + S_MATNR.setValue(Constants.SIGN, "I"); + S_MATNR.setValue(Constants.OPTION, "BT"); + S_MATNR.setValue(Constants.LOW, sapZmesGetMchb.getS_MATNR()); + S_MATNR.setValue(Constants.HIGH, sapZmesGetMchb.getS_MATNR()); + } + if (StringUtils.isNotEmpty(sapZmesGetMchb.getS_WERKS())){ + S_WERKS.appendRow(); + S_WERKS.setValue(Constants.SIGN, "I"); + S_WERKS.setValue(Constants.OPTION, "BT"); + S_WERKS.setValue(Constants.LOW, sapZmesGetMchb.getS_WERKS()); + S_WERKS.setValue(Constants.HIGH, sapZmesGetMchb.getS_WERKS()); + } + if (StringUtils.isNotEmpty(sapZmesGetMchb.getS_LGORT())){ + S_LGORT.appendRow(); + S_LGORT.setValue(Constants.SIGN, "I"); + S_LGORT.setValue(Constants.OPTION, "BT"); + S_LGORT.setValue(Constants.LOW, sapZmesGetMchb.getS_LGORT()); + S_LGORT.setValue(Constants.HIGH, sapZmesGetMchb.getS_LGORT()); + } + if (StringUtils.isNotEmpty(sapZmesGetMchb.getS_CHARG())){ + S_CHARG.appendRow(); + S_CHARG.setValue(Constants.SIGN, "I"); + S_CHARG.setValue(Constants.OPTION, "BT"); + S_CHARG.setValue(Constants.LOW, sapZmesGetMchb.getS_CHARG()); + S_CHARG.setValue(Constants.HIGH, sapZmesGetMchb.getS_CHARG()); + } + + func.execute(dest);//执行调用函数 + JCoTable maraTable = func.getTableParameterList().getTable("LT_MCHB"); + List> mapResult=new ArrayList<>(); + for (int i = 0; i < maraTable.getNumRows(); i++) { + maraTable.setRow(i); + Map map=new HashMap(); + String MATNR=maraTable.getString("MATNR");//物料号 + String WERKS=maraTable.getString("WERKS");//工厂 + String LGORT=maraTable.getString("LGORT");//库存地点 + String CHARG=maraTable.getString("CHARG");//批号 + String MAKTX=maraTable.getString("MAKTX");//物料描述 + String MATKL=maraTable.getString("MATKL");//物料组 + String MEINS=maraTable.getString("MEINS");//基本计量单位 + String CLABS=maraTable.getString("CLABS");//非限制库存 + String CINSM=maraTable.getString("CINSM");//质检库存 + String CEINM=maraTable.getString("CEINM");//限制库存 + String CSPEM=maraTable.getString("CSPEM");//冻结库存 + + log.info("物料号:"+MATNR+"工厂:"+WERKS+"库存地点:"+LGORT+"批号:"+CHARG+"物料描述:"+MAKTX+"物料组:"+MATKL+ + "基本计量单位:"+MEINS+"非限制库存:"+CLABS+"质检库存:"+CINSM+"限制库存:"+CEINM+"冻结库存:"+CSPEM); + map.put("MATNR",MATNR); + map.put("MAKTX",MAKTX); + map.put("WERKS",WERKS); + map.put("LGORT",LGORT); + map.put("CHARG",CHARG); + map.put("MATKL",MATKL); + map.put("CLABS",CLABS); + map.put("CINSM",CINSM); + map.put("MEINS",MEINS); + map.put("CEINM",CEINM); + map.put("CSPEM",CSPEM); + mapResult.add(map); + } + + return R.ok(); + } catch (Exception e) { + log.error(e.getMessage()); + return R.fail(e.getMessage()); + } + } + + } 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 cb68c6ddb..613948af8 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 @@ -2087,6 +2087,8 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { } // OdsProcureOutOrder order = odsProcureOutOrderMapper.selectMesPrepareBC(odsProcureOutOrder); List orderList= odsProcureOutOrderMapper.selectPreDetailHzList(odsProcureOutOrder); + // and mpd.material_name not like '%白坯%' and mpd.material_name not like '%药液%' + // and mpd.material_code not like '0000000208%' //根据订单号查询对应的最大批次号 Integer orderItem = 0; for (OdsProcureOutOrder orderLine1 :