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 78849497..49ecc06a 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 @@ -140,6 +140,8 @@ public interface RemoteSapService { public R sap105temporarilyCollected(@RequestBody(required = false) List mapList) ; @PostMapping("/sap/handleUpdateSAP103") public R handleUpdateSAP103(@RequestBody(required = false)List mapList); + @PostMapping("/sap/handleUpdateSAP105") + public R handleUpdateSAP105(@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 cbaf15a1..1d130973 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 @@ -158,6 +158,11 @@ public class RemoteSapFallbackFactory implements FallbackFactory mapList) { + return R.fail("105的冲销失败" + 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 b0139d88..1561c94f 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 @@ -543,6 +543,11 @@ public class SapController extends BaseController { public R handleUpdateSAP103(@RequestBody(required = false) List mapList) { return sapItemSyncService.handleUpdateSAP103(mapList); } + @PostMapping("/handleUpdateSAP105") + @Log(title = "sap105冲销接口", businessType = BusinessType.SAP) + public R handleUpdateSAP105(@RequestBody(required = false) List mapList) { + return sapItemSyncService.handleUpdateSAP105(mapList); + } /*******************设备*****************/ @PostMapping("/sapZmesAnlaGet") diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/SapItemSyncService.java b/op-modules/op-sap/src/main/java/com/op/sap/service/SapItemSyncService.java index c68f347b..b4a06187 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/SapItemSyncService.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/SapItemSyncService.java @@ -44,4 +44,6 @@ public interface SapItemSyncService { R ZmesPurwqGet(Map paramMap); R handleUpdateSAP103(List mapList); + + R handleUpdateSAP105(List mapList); } 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 b7fd6840..e2b998dd 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 @@ -967,7 +967,7 @@ public class SapItemSyncImpl implements SapItemSyncService { }else { continue; } - JCoFunction func2 = repository.getFunction("ZMES_MIGO_102");//103冲销 + JCoFunction func2 = repository.getFunction("ZMES_MIGO_104");//103冲销 if (func2 == null) { throw new RuntimeException("Function does not exist in SAP"); } @@ -980,8 +980,8 @@ public class SapItemSyncImpl implements SapItemSyncService { L_ITEM.setValue("EBELN", ebeln);//采购订单编号 采购凭证号 L_ITEM.setValue("MATNR", matnr);//采购订单编号 采购凭证号 L_ITEM.setValue("EBELP",map.get("ebelp") );//采购凭证的项目编号 - L_ITEM.setValue("WERKS", werks);//工厂 - L_ITEM.setValue("LGORT", "0001");//库存地点 +// L_ITEM.setValue("WERKS", werks);//工厂 +// L_ITEM.setValue("LGORT", "0001");//库存地点 L_ITEM.setValue("QUANTITY",menge);//数量 // L_ITEM.setValue("BATCH", map.get("incomeBatchNo"));//批号 // L_ITEM.setValue("HSDAT","");//生产日期 @@ -1010,4 +1010,158 @@ public class SapItemSyncImpl implements SapItemSyncService { return R.fail(e.getMessage()); } } + + @Override + public R handleUpdateSAP105(List mapList) { + try { + Map map= mapList.get(0); + JCoRepository repository = dest.getRepository(); + JCoFunction func = repository.getFunction("ZMES_GET_MSEG"); + if (func == null) { + throw new RuntimeException("Function does not exist in SAP"); + } + log.info("取物料凭证数据接口的参数-------" + mapList.toString()); + + JCoTable S_MBLNR = func.getTableParameterList().getTable("S_MBLNR"); + //交货单号 + JCoTable S_MJAHR = func.getTableParameterList().getTable("S_MJAHR"); + //销售凭证类型 + JCoTable S_MATNR = func.getTableParameterList().getTable("S_MATNR"); + // S_MBLNR.setValue("S_MBLNR", S_MBLNR); + S_MBLNR.appendRow(); + S_MBLNR.setValue(Constants.SIGN, "I"); + S_MBLNR.setValue(Constants.OPTION, "BT"); + S_MBLNR.setValue(Constants.LOW,map.get("S_MBLNR")); + S_MBLNR.setValue(Constants.HIGH,map.get("S_MBLNR")); + S_MJAHR.appendRow(); + S_MJAHR.setValue(Constants.SIGN, "I"); + S_MJAHR.setValue(Constants.OPTION, "BT"); + S_MJAHR.setValue(Constants.LOW,map.get("S_MJAHR")); + S_MJAHR.setValue(Constants.HIGH,map.get("S_MJAHR")); + S_MATNR.appendRow(); + S_MATNR.setValue(Constants.SIGN, "I"); + S_MATNR.setValue(Constants.OPTION, "BT"); + S_MATNR.setValue(Constants.LOW,map.get("S_MATNR")); + S_MATNR.setValue(Constants.HIGH,map.get("S_MATNR")); + func.execute(dest);//执行调用函数 + /** + * MBLNR + * MJAHR + * ZEILE + * EBELN + * EBELP + * MATNR + * WERKS + * LGORT + * MENGE + * MEINS + * ERFMG + * ERFME + * BPMNG + * BPRME + */ + JCoTable maraTable = func.getTableParameterList().getTable("LT_MSEG"); +// 首先检查表中是否有行 + if (maraTable.getNumRows() > 0) { + // 遍历每一行 + + String mblnr = new String(); // 物料凭证编号 + String mjahr = new String(); // 物料凭证年度 + String zeile = new String(); // 物料凭证中的项目 + String ebeln = new String(); // 采购订单编号 + String ebelp = new String(); // 采购凭证的项目编号 + String matnr = new String(); // 物料号 + String werks = new String(); // 工厂 + String lgort = new String(); // 库存地点 + String menge = new String(); // 数量 + String meins = new String(); // 基本计量单位 + String erfmg = new String(); // 以输入单位计的数量 + String erfme = new String(); // 条目单位 + String bpmng = new String(); // 采购订单价格单位的数量 + String bprme = new String(); // 订单价格单位(采购) + String RETCODE= new String(); + String MESSAGE= new String(); + String MATERIALDOCUMENT = new String(); + String MATDOCUMENTYEAR= new String(); + String tem="0"; + for (int i = 0; i < maraTable.getNumRows(); i++) { + maraTable.setRow(i); + mblnr = maraTable.getString("MBLNR"); // 物料凭证编号 + mjahr = maraTable.getString("MJAHR"); // 物料凭证年度 + zeile = maraTable.getString("ZEILE"); // 物料凭证中的项目 + ebeln = maraTable.getString("EBELN"); // 采购订单编号 + matnr = maraTable.getString("MATNR"); // 物料号 + werks = maraTable.getString("WERKS"); // 工厂 + lgort = maraTable.getString("LGORT"); // 库存地点 + menge = maraTable.getString("MENGE"); // 数量 + meins = maraTable.getString("MEINS"); // 基本计量单位 + erfmg = maraTable.getString("ERFMG"); // 以输入单位计的数量 + erfme = maraTable.getString("ERFME"); // 条目单位 + bpmng = maraTable.getString("BPMNG"); // 采购订单价格单位的数量 + bprme = maraTable.getString("BPRME"); // 订单价格单位(采购) + + // 处理获取到的字段值 + System.out.println("物料凭证编号: " + mblnr); + System.out.println("物料凭证年度: " + mjahr); + System.out.println("物料凭证中的项目: " + zeile); + System.out.println("采购订单编号: " + ebeln); + System.out.println("采购凭证的项目编号: " + ebelp); + System.out.println("物料号: " + matnr); + System.out.println("工厂: " + werks); + System.out.println("库存地点: " + lgort); + System.out.println("数量: " + menge); + System.out.println("基本计量单位: " + meins); + System.out.println("以输入单位计的数量: " + erfmg); + System.out.println("条目单位: " + erfme); + System.out.println("采购订单价格单位的数量: " + bpmng); + System.out.println("订单价格单位(采购): " + bprme); + //需要做判断 + if (map.get("poNo").equals(ebeln)&&map.get("S_MATNR").equals(matnr)){//需要判断采购单和物料 + tem="1"; + }else { + continue; + } + JCoFunction func2 = repository.getFunction("ZMES_MIGO_106");//105冲销 + if (func2 == null) { + throw new RuntimeException("Function does not exist in SAP"); + } + log.info("105参数-------" + mapList.toString()); + JCoTable L_ITEM = func2.getTableParameterList().getTable("L_ITEM"); + L_ITEM.appendRow(); + L_ITEM.setValue("LFBJA",mjahr);//参考凭证会计年度 + L_ITEM.setValue("LFBNR",mblnr);//参考凭证的凭证号 + L_ITEM.setValue("LFPOS",zeile);//参考凭证项目 + L_ITEM.setValue("EBELN", ebeln);//采购订单编号 采购凭证号 + L_ITEM.setValue("MATNR", matnr);//采购订单编号 采购凭证号 + L_ITEM.setValue("EBELP",map.get("ebelp") );//采购凭证的项目编号 + L_ITEM.setValue("WERKS", werks);//工厂 + L_ITEM.setValue("LGORT", "0001");//库存地点 + L_ITEM.setValue("QUANTITY",menge);//数量 + // L_ITEM.setValue("BATCH", map.get("incomeBatchNo"));//批号 + // L_ITEM.setValue("HSDAT","");//生产日期 + System.out.println(L_ITEM); + func2.execute(dest);//执行调用函数 + RETCODE = func2.getExportParameterList().getString("RETCODE"); + MESSAGE = func2.getExportParameterList().getString("L_MSG"); + MATERIALDOCUMENT = func2.getExportParameterList().getString("MATERIALDOCUMENT"); + MATDOCUMENTYEAR = func2.getExportParameterList().getString("MATDOCUMENTYEAR"); + log.info("103冲销结果结果-----" + RETCODE+"/" +MESSAGE+"/" +MATERIALDOCUMENT+"/" +MATDOCUMENTYEAR); + } + if((Constants.FAIL).equals(Integer.parseInt(RETCODE))){ + return R.fail(MESSAGE); + } + Map Resmap = new HashMap(); + Resmap.put("MATERIALDOCUMENT", MATERIALDOCUMENT); + Resmap.put("MATDOCUMENTYEAR", MATDOCUMENTYEAR); + return R.ok(Resmap, MESSAGE); + } else { + // 表为空的处理 + System.out.println("表中没有数据。"); + return R.fail("没有暂收数据"); + } + } 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/controller/WmsToWCSmissionController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java index f37fb99d..1b088f0f 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java @@ -276,7 +276,7 @@ public class WmsToWCSmissionController { return success("仓库没有这个标识卡"); } if (wmsOdsMateStorageNewsSn1.getUserDefined3().equals("0")){//userDefined3 - return error("未105过账"); + return success("未105过账"); } return success(wmsOdsMateStorageNewsSn1); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRawOrderInMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRawOrderInMapper.java index f4089979..d772d1f5 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRawOrderInMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRawOrderInMapper.java @@ -69,4 +69,6 @@ public interface WmsRawOrderInMapper { WmsRawOrderIn selectWmsRawOrderInByRawOrderInIdTWO(String rawOrderInId); String selectQcCheckTask(WmsRawOrderIn wmsRawOrderIn1); + + WmsRawOrderIn selectWmsRawOrderInByRawOrderInIdThress(String id); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsOdsMateStorageNewsSnServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsOdsMateStorageNewsSnServiceImpl.java index 9ae08929..aa235db5 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsOdsMateStorageNewsSnServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsOdsMateStorageNewsSnServiceImpl.java @@ -281,7 +281,7 @@ public class WmsOdsMateStorageNewsSnServiceImpl implements IWmsOdsMateStorageNew //入参是物料,仓库,库区,数量,生成标识卡, odsProcureOrderMapper.deleteBatchPalletBycard(order.getWlCode());//更具标识卡删除 - wmsOdsMateStorageNewsMapper.deleteWmsOdsMateStorageNewsBycard(order.getWlCode()); + // wmsOdsMateStorageNewsMapper.deleteWmsOdsMateStorageNewsBycard(order.getWlCode()); wmsOdsMateStorageNewsSnMapper.deleteWmsOdsMateStorageNewsSnBycard(order.getWlCode()); diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java index 0b3172aa..6f361bf3 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java @@ -297,7 +297,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { map.put("ERFME", wmsProductPut3.getUnitOfMeasure()); map.put("BATCH", wmsProductPut3.getAttr4()); map.put("STCK_TYPE", wmsProductPut1.getAttr3()); - + //去除空格 if (wmsProductPut3.getBatchNumber().trim().length()==24){ String HSDAT = InterceptionSJRules(wmsProductPut3.getBatchNumber()); diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsRawOrderInMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsRawOrderInMapper.xml index f4bc74c0..f5e74ec6 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsRawOrderInMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsRawOrderInMapper.xml @@ -255,6 +255,70 @@ where wms_raw_order_in.raw_order_in_id = #{rawOrderInId} and wms_raw_order_in.order_status='0' + insert into wms_raw_order_in