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 06a970a7a..6f4b867a5 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 @@ -1096,8 +1096,6 @@ public class SapItemSyncImpl implements SapItemSyncService { 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); @@ -1136,37 +1134,31 @@ public class SapItemSyncImpl implements SapItemSyncService { }else { continue; } - JCoFunction func2 = repository.getFunction("ZMES_106_MIGO");//105冲销--冲销 + JCoFunction func2 = repository.getFunction("ZMES_MBST");//105冲销--冲销 if (func2 == null) { throw new RuntimeException("Function does not exist in SAP"); } - log.info("106参数-------" + mapList.toString()); - JCoTable L_ITEM = func2.getTableParameterList().getTable("L_ITEM"); - L_ITEM.appendRow(); - L_ITEM.setValue("LFBJA",map.get("LFBJA"));//参考凭证会计年度 - L_ITEM.setValue("LFBNR",map.get("LFBNR"));//参考凭证的凭证号 - L_ITEM.setValue("LFPOS",zeile);//参考凭证项目 - L_ITEM.setValue("EBELN", ebeln);//采购订单编号 采购凭证号 - L_ITEM.setValue("EBELP",map.get("ebelp") );//采购凭证的项目编号 - L_ITEM.setValue("MATNR", matnr);//物料号 - L_ITEM.setValue("WERKS", werks);//工厂 - L_ITEM.setValue("LGORT", "0001");//库存地点 - L_ITEM.setValue("QUANTITY",menge);//数量 - System.out.println(L_ITEM); + //凭证 + func2.getImportParameterList().setValue("P_BELNR", map.get("LFBNR")); + + //会计年度 + func2.getImportParameterList().setValue("P_GJAHR", mjahr); + + //冲销日期 + func2.getImportParameterList().setValue("P_BUDAT", DateUtils.parseDateToStr("yyyyMMdd", new Date())); + 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("106冲销结果结果-----" + RETCODE+"/" +MESSAGE+"/" +MATERIALDOCUMENT+"/" +MATDOCUMENTYEAR); + MESSAGE = func2.getExportParameterList().getString("RETMSG"); + + log.info("106冲销结果结果-----" + RETCODE+"/" +MESSAGE+"/" ); } if((Constants.FAIL).equals(Integer.parseInt(RETCODE))){ return R.fail(MESSAGE); } Map Resmap = new HashMap(); - Resmap.put("MATERIALDOCUMENT", MATERIALDOCUMENT); - Resmap.put("MATDOCUMENTYEAR", MATDOCUMENTYEAR); + Resmap.put("code106", MESSAGE); return R.ok(Resmap, MESSAGE); } else { // 表为空的处理 diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsRawOrderIn.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsRawOrderIn.java index 550a1da4f..ea726b1ea 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsRawOrderIn.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsRawOrderIn.java @@ -389,6 +389,11 @@ public class WmsRawOrderIn extends BaseEntity { * **/ private String deliveryTimeEnd; + /** + * 106冲销后,保留的105凭证 + * **/ + private String oldCode105; + public String getCheckNo() { return checkNo; } @@ -917,6 +922,14 @@ public class WmsRawOrderIn extends BaseEntity { return activeFlag; } + public String getOldCode105() { + return oldCode105; + } + + public void setOldCode105(String oldCode105) { + this.oldCode105 = oldCode105; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) 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 4d392aab9..5dd781995 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 @@ -1787,6 +1787,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { order.setUserDefined9(""); order.setUserDefined10("3");//失败 odsProcureOutOrderMapper.updateWMSOdsProcureReturnOrderByids(order, orderList2); + throw new RuntimeException("过账失败:"+msg); } } } @@ -3315,6 +3316,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { } /** * 105冲销 + * (实际是要106冲销) * @param odsProcureOrders * @return */ @@ -3342,8 +3344,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { if (result2.getCode()==200){ Map map = new HashMap(); map = (Map) result2.getData(); - String MATERIALDOCUMENT = (String) map.get("MATERIALDOCUMENT"); - String MATDOCUMENTYEAR = (String) map.get("MATDOCUMENTYEAR"); + String code106 = (String) map.get("code106"); //成功了--成功了,根据 WmsRawOrderInSn wmsRawOrderInSn=new WmsRawOrderInSn(); wmsRawOrderInSn.setUserDefined5(wmsRawOrderIn.getDnNo()); @@ -3359,8 +3360,10 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { wmsRawOrderInNewsSn.setWhCode(wmsRawOrderInSn1.getWhCode()); wmsRawOrderInNewsSn.setWlCode(wmsRawOrderInSn1.getWlCode()); wmsRawOrderInNewsSn.setUserDefined3("0"); + //更新包材库存明细,变为暂收 wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSnTWM(wmsRawOrderInNewsSn); wmsRawOrderInSn1.setUserDefined1("1"); + //更新收货明细状态,变为暂收 wmsRawOrderInSnMapper.updateWmsRawOrderInSn(wmsRawOrderInSn1); WmsOdsMateStorageNews wmsOdsMateStorageNews=new WmsOdsMateStorageNews(); wmsOdsMateStorageNews.setMaterialCode(wmsRawOrderInSn1.getMaterialCode()); @@ -3368,15 +3371,28 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { wmsOdsMateStorageNews.setWlCode(wmsRawOrderInSn1.getWlCode()); wmsOdsMateStorageNews.setWhCode(wmsRawOrderInSn1.getWhCode()); wmsOdsMateStorageNews.setStorageAmount(wmsRawOrderInSn1.getAmount()); + //更新库存数量 wmsOdsMateStorageNewsMapper.updateWmsOdsMateStorageNewsUpdateStorageAmountFC(wmsOdsMateStorageNews); } wmsRawOrderIn.setOrderStatus("0"); wmsRawOrderIn.setAccountingTime(new Date()); - wmsRawOrderIn.setUserDefined10(result2.getMsg()); -// wmsRawOrderIn.setUserDefined4(MATERIALDOCUMENT); -// wmsRawOrderIn.setUserDefined5(MATDOCUMENTYEAR); + //106冲销凭证 + wmsRawOrderIn.setUserDefined10(code106); + //记录旧的105凭证 + if (StringUtils.isNotEmpty(wmsRawOrderIn.getOldCode105())){ + wmsRawOrderIn.setOldCode105(wmsRawOrderIn.getOldCode105() + ',' + wmsRawOrderIn.getUserDefined4()); + }else { + wmsRawOrderIn.setOldCode105(wmsRawOrderIn.getUserDefined4()); + } + + //去除物料凭证 + wmsRawOrderIn.setUserDefined4(""); + wmsRawOrderIn.setUserDefined5(""); + //更新库存凭证 wmsRawOrderInMapper.updateWmsRawOrderIn(wmsRawOrderIn); + // + }else { //失败了 wmsRawOrderIn.setAccountingTime(new Date()); @@ -3971,6 +3987,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { order.setUserDefined9(""); order.setUserDefined10("3");//失败 odsProcureOutOrderMapper.updateWMSOdsProcureReturnOrderByids(order, orderList2); + throw new RuntimeException("过账失败:"+msg); } } } 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 9b22b29a1..1e55585bf 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 @@ -68,6 +68,7 @@ + @@ -322,7 +323,8 @@ wms_raw_order_in.gmt_modified, wms_raw_order_in_sn.user_defined2 incomeBatchNo, ods_procure_order.ID kem, - wms_raw_order_in.active_flag + wms_raw_order_in.active_flag, + wms_raw_order_in.old_code105 FROM wms_raw_order_in LEFT JOIN wms_raw_order_in_sn ON wms_raw_order_in.dn_no=wms_raw_order_in_sn.user_defined5 AND wms_raw_order_in_sn.po_no=wms_raw_order_in.po_no @@ -497,6 +499,7 @@ last_modified_by = #{lastModifiedBy}, gmt_modified = #{gmtModified}, active_flag = #{activeFlag}, + old_code105 = #{oldCode105}, where raw_order_in_id = #{rawOrderInId}