diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/PaybillPushSapOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/PaybillPushSapOperation.java index a7a315e..b4d996a 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/PaybillPushSapOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/PaybillPushSapOperation.java @@ -265,8 +265,7 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl hsxminfo = QueryServiceHelper.queryOne("bd_supplier", "id,name,number", new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值 IT_ITEMS.put("LIFNR",hsxminfo.getString("number"));//供应商 - } - else if("f000012".equals(asstype)){ + }else if("f000012".equals(asstype)){ //利润中心 f000012 hsxminfo = QueryServiceHelper.queryOne("shjh_pc", "id,name,number", new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值 diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecPushVoucherOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecPushVoucherOperation.java index 6d54933..3345bd0 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecPushVoucherOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecPushVoucherOperation.java @@ -309,7 +309,6 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl /** * 获取SAP凭证行项目信息 - * * @param recBill 收款单动态对象 * @return 包含行项目信息的JSONArray */ @@ -318,8 +317,8 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl //源单类型 String sourceBillType = recBill.getString("sourcebilltype"); // 1. 获取客户/供应商编号 - String payerType = recBill.getString("payertype"); - String cusOrSupNumber = getCustomerOrSupplierNumber(payerType, recBill); +// String payerType = recBill.getString("payertype"); +// String cusOrSupNumber = getCustomerOrSupplierNumber(payerType, recBill); // 2. 获取原因码和SAP行项目文本 String RSTGR = ""; @@ -365,39 +364,44 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl DynamicObjectCollection entries = gl_voucher.getDynamicObjectCollection("entries"); if (entries != null && !entries.isEmpty()) { //如果是客户拆分,则从凭证上获取客户编号 - boolean customersplit = recBill.getBoolean(RecFieldsInfo.CUSTOMER_SPLIT); +// boolean customersplit = recBill.getBoolean(RecFieldsInfo.CUSTOMER_SPLIT); for (DynamicObject entry : entries) { JSONObject IT_ITEMS = new JSONObject(); + // 设置其他字段 + IT_ITEMS.put("SGTXT", SGTXT); + IT_ITEMS.put("RSTGR", RSTGR); + IT_ITEMS.put("KOSTL", KOSTL); + IT_ITEMS.put("PRCTR", PRCTR); // 设置科目 DynamicObject account = entry.getDynamicObject("account"); if (account != null) { IT_ITEMS.put("HKONT", account.getString("number")); //查找核算维度 - DynamicObjectCollection checkItems = account.getDynamicObjectCollection("checkitementry"); - if (!customersplit && checkItems!=null && checkItems.size()!=0){ - //是否已经反写 - boolean isMark = false; - for (DynamicObject checkItem : checkItems) { - //核算维度 - String assTactItemName = checkItem.getString("asstactitem.name"); - if (assTactItemName != null){ - switch (assTactItemName){ - case "客户-获利段": - case "客户编码": - IT_ITEMS.put("KUNNR", cusOrSupNumber); - isMark = true; - break; - case "供应商": - IT_ITEMS.put("LIFNR", cusOrSupNumber); - isMark = true; - break; - } - } - if (isMark){ - break; - } - } - } +// DynamicObjectCollection checkItems = account.getDynamicObjectCollection("checkitementry"); +// if (!customersplit && checkItems!=null && checkItems.size()!=0){ +// //是否已经反写 +// boolean isMark = false; +// for (DynamicObject checkItem : checkItems) { +// //核算维度 +// String assTactItemName = checkItem.getString("asstactitem.name"); +// if (assTactItemName != null){ +// switch (assTactItemName){ +// case "客户-获利段": +// case "客户编码": +// IT_ITEMS.put("KUNNR", cusOrSupNumber); +// isMark = true; +// break; +// case "供应商": +// IT_ITEMS.put("LIFNR", cusOrSupNumber); +// isMark = true; +// break; +// } +// } +// if (isMark){ +// break; +// } +// } +// } //从凭证弹性域获取客户编号 // if(customersplit){ // } @@ -413,12 +417,25 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl //t_bas_flex_property 表中获取对应编号 客户-获利段 f0001 客户编码 f000057 hsxminfo = QueryServiceHelper.queryOne(customerName, "id,name,number", new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值 - IT_ITEMS.put("KUNNR",hsxminfo.getString("number"));//利润中心_利润中心 + IT_ITEMS.put("KUNNR",hsxminfo.getString("number")); }else if("f000005".equals(asstype)){ //供应商 f000005 hsxminfo = QueryServiceHelper.queryOne("bd_supplier", "id,name,number", new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值 - IT_ITEMS.put("LIFNR",hsxminfo.getString("number"));//供应商 + IT_ITEMS.put("LIFNR",hsxminfo.getString("number")); + }else if("f000012".equals(asstype)){ + //利润中心 f000012 + hsxminfo = QueryServiceHelper.queryOne("shjh_pc", "id,name,number", + new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值 + IT_ITEMS.put("PRCTR",hsxminfo.getString("number")); + }else if("f000011".equals(asstype)){ + //成本中心 f000011 + hsxminfo = QueryServiceHelper.queryOne("bos_costcenter", "id,name,number", + new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值 + IT_ITEMS.put("KOSTL",hsxminfo.getString("number")); + }else if("f000054".equals(asstype)){ + //原因码 f000054 + IT_ITEMS.put("RSTGR",glassistbd.getString("assval")); } } } @@ -445,12 +462,6 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl } else { logger.warn("凭证分录金额或方向为空"); } - - // 设置其他字段 - IT_ITEMS.put("SGTXT", SGTXT); - IT_ITEMS.put("RSTGR", RSTGR); - IT_ITEMS.put("KOSTL", KOSTL); - IT_ITEMS.put("PRCTR", PRCTR); //源单类型是收票登记时,设置汇票字段 if ("cdm_receivablebill".equals(sourceBillType)) { IT_ITEMS.put("UMSKZ", "W");//特殊总账标识-汇票时需设置为W @@ -482,7 +493,6 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl /** * 生成收款清账凭证数据 - * * @param recBill 收款单动态对象 * @return 清账凭证数据JSON数组 */ diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecRedPushOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecRedPushOperation.java index 930e590..5352fae 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecRedPushOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecRedPushOperation.java @@ -48,6 +48,7 @@ public class RecRedPushOperation extends AbstractOperationServicePlugIn implemen public void onPreparePropertys(PreparePropertysEventArgs e) { super.onPreparePropertys(e); //预处理单据属性,把后续校验会用到的字段,尤其是二开字段,在这里加载一下 + e.getFieldKeys().add(RedPushValidator.KEY_BILL_NUM); e.getFieldKeys().add(RedPushValidator.KEY_HOT_ACCOUNT); e.getFieldKeys().add(RedPushValidator.IS_PUSH_SAP); @@ -119,7 +120,7 @@ public class RecRedPushOperation extends AbstractOperationServicePlugIn implemen try { String response = ApiUtils.sendPost(responseHead, responseBody, API_URL); if (!EsbUtils.isEmpty(response)) { - boolean success = ApiUtils.parseResponse(response, billNumber, responseBody, INTERFACE_ID, message); + boolean success = ApiUtils.parseResponse(response, billNumber, responseBody, "SAP反清账或冲销", message); if (success){ //sap红冲凭证成功,反写sap凭证号和推送标记 JSONObject sapReturnData = JSONObject.parseObject(response); diff --git a/main/java/shjh/jhzj7/fi/fi/utils/ApiUtils.java b/main/java/shjh/jhzj7/fi/fi/utils/ApiUtils.java index d88e7e6..b79554f 100644 --- a/main/java/shjh/jhzj7/fi/fi/utils/ApiUtils.java +++ b/main/java/shjh/jhzj7/fi/fi/utils/ApiUtils.java @@ -202,22 +202,22 @@ public class ApiUtils { switch (code) { case "0": isSuccess=true; - EsbUtils.saveLog("收款处理"+billNumber, apiName, formattedBody, response, true, "ESBReversalApi", "推送成功"); + EsbUtils.saveLog(billNumber, apiName, formattedBody, response, true, "ESBReversalApi", "推送成功"); break; case "1": - EsbUtils.saveLog("收款处理"+billNumber, apiName, formattedBody, response, false, "ESBReversalApi", "服务异常"); + EsbUtils.saveLog(billNumber, apiName, formattedBody, response, false, "ESBReversalApi", "服务异常"); message.append("收款处理【").append(billNumber).append("】:").append("服务异常:").append(result.getString("msg")).append("\n"); break; case "2": - EsbUtils.saveLog("收款处理"+billNumber, apiName, formattedBody, response, false, "ESBReversalApi", "三方服务异常"); + EsbUtils.saveLog(billNumber, apiName, formattedBody, response, false, "ESBReversalApi", "三方服务异常"); message.append("收款处理【").append(billNumber).append("】:").append("三方服务异常:").append(result.getString("msg")).append("\n"); break; case "3": - EsbUtils.saveLog("收款处理"+billNumber, apiName, formattedBody, response, false, "ESBReversalApi", "业务异常"); + EsbUtils.saveLog(billNumber, apiName, formattedBody, response, false, "ESBReversalApi", "业务异常"); message.append("收款处理【").append(billNumber).append("】:").append("业务异常:").append(result.getString("msg")).append("\n"); break; default: - EsbUtils.saveLog("收款处理"+billNumber, apiName, formattedBody, response, false, "ESBReversalApi", "未知异常"); + EsbUtils.saveLog(billNumber, apiName, formattedBody, response, false, "ESBReversalApi", "未知异常"); message.append("收款处理【").append(billNumber).append("】:").append("异常:").append(result.getString("msg")).append("\n"); break; }