From 6e390615301e11d768c629f8034301038de2728f Mon Sep 17 00:00:00 2001 From: yuxueliang0813 <407010292@qq.com> Date: Wed, 7 May 2025 12:47:28 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E9=87=91=E8=AE=A1=E5=88=92=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E6=98=8E=E7=BB=86=E7=BB=B4=E5=BA=A6=E7=9A=84=E6=9C=9F?= =?UTF-8?q?=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fi/fi/plugin/operate/RevenueBillOperation.java | 2 +- .../fi/fi/plugin/task/FundPlanCollectionTask.java | 13 +++++++++++-- .../fi/fi/plugin/task/FundPlanPaymentTask.java | 14 ++++++++++---- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RevenueBillOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RevenueBillOperation.java index cd72abc..0f17c5a 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RevenueBillOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RevenueBillOperation.java @@ -33,7 +33,7 @@ import java.text.SimpleDateFormat; */ public class RevenueBillOperation extends AbstractOperationServicePlugIn implements Plugin { - private static final String updateVoucherFlag = "update t_cim_revenue set fk_shjh_sendsap=1,shjh_sappzh=? where fid=?;"; + private static final String updateVoucherFlag = "update t_cim_revenue set fk_shjh_sendsap=1,fk_shjh_sappzh=? where fid=?;"; private static final String userName = "bos_user";//用户 private static final String voucherName = "gl_voucher";//凭证 private static final String pcName = "shjh_pc";//利润中心 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 35b4226..e8afece 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanCollectionTask.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanCollectionTask.java @@ -62,6 +62,7 @@ public class FundPlanCollectionTask extends AbstractTask implements Plugin { JSONObject json_obj;//入参主对象 JSONArray items;//计划科目明细 String reportPeriodCode;//编报期间的编号 + DynamicObject detailPeriodInfo;//明细期间 DynamicObject reportOrg;//编报主体对象 DynamicObject accountInfo;//资金计划科目 String sybnum;//事业部编号-编报主体的编号 @@ -96,11 +97,16 @@ public class FundPlanCollectionTask extends AbstractTask implements Plugin { //非叶子节点的数据,不处理 continue; } + detailPeriodInfo = entryinfo.getDynamicObject("periodmem"); + if(detailPeriodInfo == null){ + //无明细期间,比如备注列或非金额列,不处理 + continue; + } accountnum = accountInfo.getString("number"); JSONObject itemInfo = new JSONObject(); itemInfo.put("currencyCode",entryinfo.getDynamicObject("currencymem").getString("number"));//币别 code itemInfo.put("subjectCode",accountnum);//计划科目 code - months = entryinfo.getDynamicObject("periodmem").getString("number"); + months = detailPeriodInfo.getString("number"); itemInfo.put("entryPeriodCode",months);//主维度数据分录期间 code //组装度量值 JSONArray mms = new JSONArray(1);//科目的度量值明细,目前只写入计划参考数 @@ -108,6 +114,9 @@ public class FundPlanCollectionTask extends AbstractTask implements Plugin { //PLANREFERENCEAMT 计划参考值 ACTMAT 已执行额度 mmInfo.put("templateMetricType","ACTMAT");//度量值预置类型 mmInfo.put("amount",acctamountMap.get(months+accountnum));//写入金额-从SAP接口中汇总 + logger.info(billno+"收款计划实际数入参 months "+months); + logger.info(billno+"收款计划实际数入参 accountnum "+accountnum); + logger.info(billno+"收款计划实际数"+acctamountMap.get(months+accountnum)); mmInfo.put("amountUnit","one");//金额单位 one元 thousand千元 ten_thousand 万元 mms.add(mmInfo); itemInfo.put("metricMembers",mms);//度量值列表 @@ -174,7 +183,7 @@ public class FundPlanCollectionTask extends AbstractTask implements Plugin { }else{ acctamountMap.put(mapkey,amount); } - + logger.info("SAP应收已清对应资金科目"+mapkey); //根据品牌和事业部关系,将该笔金额归属到事业部上 // ppsybinfo = BusinessDataServiceHelper.loadSingleFromCache(ppsybName,new QFilter[]{new QFilter("shjh_productgroup.number", QCP.equals, productnum)}); // if(ppsybinfo != null){ 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 93afdcb..03f3d43 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanPaymentTask.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanPaymentTask.java @@ -36,7 +36,7 @@ import java.util.*; */ public class FundPlanPaymentTask extends AbstractTask implements Plugin { - private static final String entityName = "fpm_report";//资金计划编制 t_fpm_report + private static final String entityName = "fpm_report";//资金计划编制 t_fpm_report 维度分表 t_fpm_reportdatamain private static final String payReceName = "shjh_request_account";//付款申请单_资金计划科目配置表 // private static final String ppsybName = "shjh_ejbm_syb";//二级部门和事业部对应关系 tk_shjh_pg @@ -51,7 +51,7 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { // qFilter.and("name", QCP.equals, " 编制表");//报表名称--非报表类型名称,注释此过滤条件 qFilter.and("enable", QCP.equals, "1");//是否可用 qFilter.and("reportplantype", QCP.equals, "reportplan");//报表类型-计划编制 - DynamicObject[] collection = BusinessDataServiceHelper.load(entityName, "id,maindimentry", qFilter.toArray()); + DynamicObject[] collection = BusinessDataServiceHelper.load(entityName, "id,maindimentry.id", qFilter.toArray()); if(collection.length > 0){ //调用SAP应付未清接口,按照事业部、月份、计划科目汇总金额 Map acctamountMap = getSapAR(); @@ -64,6 +64,7 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { JSONObject json_obj;//入参主对象 JSONArray items;//计划科目明细 String reportPeriodCode;//编报期间的编号 + DynamicObject detailPeriodInfo;//明细期间 DynamicObject reportOrg;//编报主体对象 DynamicObject accountInfo;//资金计划科目 String sybnum;//编报主体的编号 @@ -79,7 +80,7 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { maindimentrys = doinfo.getDynamicObjectCollection("maindimentry");//主维度分录 if(maindimentrys.isEmpty()){ //自动触发调用保存操作,现在测试出来,前台保存后,才会有这个维度分录 -// doinfo = BusinessDataServiceHelper.loadSingle(doinfo.getPkValue(),entityName); + doinfo = BusinessDataServiceHelper.loadSingle(doinfo.getPkValue(),entityName); OperationServiceHelper.executeOperate("save", entityName, new DynamicObject[]{doinfo}, option); doinfo = BusinessDataServiceHelper.loadSingle(doinfo.getPkValue(),entityName); maindimentrys = doinfo.getDynamicObjectCollection("maindimentry");//主维度分录 @@ -109,11 +110,16 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { //非叶子节点的数据,不处理 continue; } + detailPeriodInfo = entryinfo.getDynamicObject("periodmem"); + if(detailPeriodInfo == null){ + //无明细期间,比如备注列或非金额列,不处理 + continue; + } accountnum = accountInfo.getString("number"); JSONObject itemInfo = new JSONObject(); itemInfo.put("currencyCode",entryinfo.getDynamicObject("currencymem").getString("number"));//币别 code itemInfo.put("subjectCode",accountnum);//计划科目 code - months = entryinfo.getDynamicObject("periodmem").getString("number"); + months = detailPeriodInfo.getString("number"); itemInfo.put("entryPeriodCode",months);//主维度数据分录期间 code //组装度量值 JSONArray mms = new JSONArray(1);//科目的度量值明细,目前只写入计划参考数