From 327e7e8e3ee890b186ef63961978ff63ae46b9e2 Mon Sep 17 00:00:00 2001 From: yuxueliang0813 <407010292@qq.com> Date: Tue, 29 Apr 2025 10:19:08 +0800 Subject: [PATCH] =?UTF-8?q?SAP=E5=BA=94=E4=BB=98=E5=87=AD=E8=AF=81?= =?UTF-8?q?=E6=B8=85=E5=8D=95SAP=E5=BA=94=E6=94=B6=E5=87=AD=E8=AF=81?= =?UTF-8?q?=E6=B8=85=E5=8D=95=20SAP=E5=BA=94=E6=94=B6=E5=B7=B2=E6=B8=85?= =?UTF-8?q?=E6=94=B6=E6=AC=BE(=E6=8B=86=E5=88=86=E5=93=81=E7=89=8C)?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=EF=BC=88=E8=BE=93=E5=85=A5=E6=97=A5=E6=9C=9F?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=AE=9A=E4=B9=89=EF=BC=9AyyyyMMdd=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fi/plugin/form/ASParbillFormPlugin.java | 2 +- .../operate/RecPushVoucherOperation.java | 27 +++++++++++++++++-- .../plugin/task/FundPlanCollectionTask.java | 8 +++--- .../fi/plugin/task/FundPlanPaymentTask.java | 8 +++--- 4 files changed, 34 insertions(+), 11 deletions(-) diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/form/ASParbillFormPlugin.java b/main/java/shjh/jhzj7/fi/fi/plugin/form/ASParbillFormPlugin.java index 6dfdac7..8190b8c 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/form/ASParbillFormPlugin.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/form/ASParbillFormPlugin.java @@ -153,7 +153,7 @@ public class ASParbillFormPlugin extends AbstractFormPlugin { FormShowParameter showParameter = this.getView().getFormShowParameter(); String billNumber = showParameter.getCustomParam("billNumber"); //组装查询入参 日期格式 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String shjh_pzh = (String) this.getModel().getValue("shjh_pzh");//SAP应收凭证号 String shjh_kmbh = (String) this.getModel().getValue("shjh_kmbh");//会计科目编号 String shjh_year = (String) this.getModel().getValue("shjh_year");//会计年度 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 43cc92d..f90258b 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecPushVoucherOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecPushVoucherOperation.java @@ -140,7 +140,8 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl if (null != recBill) { JSONObject data = new JSONObject(); //抬头,参考《IS_HEADER》 - data.put("IS_HEADER", getIS_HEADER(recBill)); + JSONObject json_HEADER = getIS_HEADER(recBill); + data.put("IS_HEADER", json_HEADER); //详细,参考《IT_ITEM》 JSONArray itItem = getIT_ITEM(recBill); if (itItem == null){ @@ -154,8 +155,30 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl String receivingType = recBill.getString("receivingtype.number"); if ("103".equals(receivingType) || "109".equals(receivingType)) { //清账数据,参考《IT_CLEAR》,仅清账需要输入,且此时清账不需要传入行号 - data.put("IT_CLEAR", getIT_CLEAR(recBill)); + JSONArray json_clear = getIT_CLEAR(recBill); + data.put("IT_CLEAR", json_clear); data.put("I_WHXMH", "X");//是否传入行号为否 + //如果是员工还款 109 则将入参中的客户字段值更改为分录上的员工工号 + if("109".equals(receivingType)){ + String personNumber = null; + if(!recBill.getDynamicObjectCollection("entry").isEmpty()){ + personNumber = recBill.getDynamicObjectCollection("entry").get(0).getString("shjh_usercode"); + } + if(!JhzjUtils.isEmpty(personNumber)){ + json_HEADER.put("KUNNR", personNumber);//修改header + //修改ITEM + for (int i = 0; i < itItem.size(); i++) { + if(!JhzjUtils.isEmpty(itItem.getJSONObject(i).getString("KUNNR"))){ + itItem.getJSONObject(i).put("KUNNR",personNumber); + } + } + //修改CLEAR + for (int i = 0; i < json_clear.size(); i++) { + json_clear.getJSONObject(i).put("KUNNR",personNumber); + } + } + + } } String type = recBill.getString(RecFieldsInfo.PAYER_TYPE);//付款人类型 long id = recBill.getLong("payer");//付款人id diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanCollectionTask.java b/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanCollectionTask.java index 9b16400..35b4226 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanCollectionTask.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanCollectionTask.java @@ -35,7 +35,7 @@ import java.util.Map; public class FundPlanCollectionTask extends AbstractTask implements Plugin { private static final String entityName = "fpm_report";//资金计划编制 t_fpm_report private static final String payReceName = "shjh_pay_account";//收付款资金计划科目配置表 - private static final String ppsybName = "shjh_pp_syb";//品牌和事业部对应关系 tk_shjh_pp_syb +// private static final String ppsybName = "shjh_pp_syb";//品牌和事业部对应关系 tk_shjh_pp_syb private static final String custName = "bd_customer";//系统库 表名 T_BD_Customer @@ -46,7 +46,7 @@ public class FundPlanCollectionTask extends AbstractTask implements Plugin { public void execute(RequestContext requestContext, Map map) throws KDException { //查询当月已审核收款类资金计划(收款不区分公司,当月应只有一个) QFilter qFilter = new QFilter("billstatus", QCP.equals, "C");//单据状态 - qFilter.and("name", QCP.equals, " 编制表");//报表名称 +// qFilter.and("name", QCP.equals, " 编制表");//报表名称--非报表类型名称,注释此过滤条件 qFilter.and("enable", QCP.equals, "1");//是否可用 qFilter.and("reportplantype", QCP.equals, "reportplan");//报表类型-计划编制 DynamicObject[] collection = BusinessDataServiceHelper.load(entityName, "id", qFilter.toArray()); @@ -134,12 +134,12 @@ public class FundPlanCollectionTask extends AbstractTask implements Plugin { //获取上月1号的日期 Date lastMonthFirstDay = cal.getTime(); //日期格式 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); JSONArray IT_LIST = new JSONArray(); String duedate_starts = sdf.format(lastMonthFirstDay);//TODO 上月1号-取出纳模块的当前期间的1号 String duedate_ends = sdf.format(new Date());//系统当前日期 // addFilterCondition(IT_LIST, "BUDAT", duedate_starts, duedate_ends);//过账日期-上月和当前月 - addFilterCondition(IT_LIST, "BUDAT", "2024-01-01", "2024-12-31");//TODO 测试指定日期 + addFilterCondition(IT_LIST, "BUDAT", "20240101", "20241231");//TODO 测试指定日期 JSONObject sapresult = SapUtils.sapARClearedDataAPI(IT_LIST, "FundPlanCollectionTask"); if(sapresult != null){ JSONObject data = sapresult.getJSONObject("data"); diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanPaymentTask.java b/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanPaymentTask.java index 7fa4b4e..13ed738 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanPaymentTask.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanPaymentTask.java @@ -34,7 +34,7 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { private static final String entityName = "fpm_report";//资金计划编制 t_fpm_report private static final String payReceName = "shjh_request_account";//付款申请单_资金计划科目配置表 - private static final String ppsybName = "shjh_ejbm_syb";//二级部门和事业部对应关系 tk_shjh_pg +// private static final String ppsybName = "shjh_ejbm_syb";//二级部门和事业部对应关系 tk_shjh_pg private static final Log logger = LogFactory.getLog(FundPlanPaymentTask.class); @@ -44,7 +44,7 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { public void execute(RequestContext requestContext, Map map) throws KDException { //查询当月暂存付款类资金计划(付款不区分公司,当月应只有一个) QFilter qFilter = new QFilter("billstatus", QCP.equals, "A");//单据状态 -// qFilter.and("name", QCP.equals, " 编制表");//报表名称 +// qFilter.and("name", QCP.equals, " 编制表");//报表名称--非报表类型名称,注释此过滤条件 qFilter.and("enable", QCP.equals, "1");//是否可用 qFilter.and("reportplantype", QCP.equals, "reportplan");//报表类型-计划编制 DynamicObject[] collection = BusinessDataServiceHelper.load(entityName, "id", qFilter.toArray()); @@ -130,14 +130,14 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { //将日期加一月份得到下月1号 cal.add(Calendar.MONTH, 1); //日期格式 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); JSONArray IT_LIST = new JSONArray(); String duedate_starts = sdf.format(cal.getTime());//下月1号为开始日期 //将日期加三月份得到一个季度后的1号 cal.add(Calendar.MONTH, 3); String duedate_ends = sdf.format(cal.getTime()); // addFilterCondition(IT_LIST, "FAEDT", duedate_starts, duedate_ends);//到期日 - addFilterCondition(IT_LIST, "FAEDT", "2024-01-01", duedate_ends);//到期日 + addFilterCondition(IT_LIST, "FAEDT", "20241101", duedate_ends);//到期日 JSONObject sapresult = SapUtils.vouchers_payable(IT_LIST, "FundPlanPaymentTask"); if(sapresult != null){ JSONObject data = sapresult.getJSONObject("data");