diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/AssistbalanceAutoData.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/AssistbalanceAutoData.java index 76cf8c5..69e3ba6 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/AssistbalanceAutoData.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/AssistbalanceAutoData.java @@ -25,17 +25,11 @@ public class AssistbalanceAutoData { QFilter filteraccountTable = new QFilter("number", QCP.equals, "0003"); DynamicObject accountTableLoad = BusinessDataServiceHelper.loadSingle("bd_accounttable", "id", new QFilter[]{filteraccountTable}); + //查询核算组织 QFilter number = new QFilter("fisaccounting", "=", "1"); QFilter structure = new QFilter("structure.longnumber", QCP.like, "10000000!10006431%"); QFilter isleaf = new QFilter("structure.isleaf", QCP.equals, true); DynamicObject[] load = BusinessDataServiceHelper.load("bos_org", "id,structure.longnumber,structure.view", new QFilter[]{number, structure,isleaf}); - - DynamicObject[] accountConf = BusinessDataServiceHelper.load("zcgj_conf_balanceaccount", "zcgj_account", new QFilter[]{}); - Set accountNumber = new HashSet<>(); - for (DynamicObject dynamicObject : accountConf) { - accountNumber.add(dynamicObject.getDynamicObject("zcgj_account").getString("number")); - } - List orgIds = new ArrayList<>(); Map orgNumberMap = new HashMap<>(); for (int i = 0; i < load.length; i++) { @@ -45,20 +39,40 @@ public class AssistbalanceAutoData { } + //查询科目余额配置表 + DynamicObject[] accountConf = BusinessDataServiceHelper.load("zcgj_conf_balanceaccount", "zcgj_account", new QFilter[]{}); + Set accountNumber = new HashSet<>(); + for (DynamicObject dynamicObject : accountConf) { + accountNumber.add(dynamicObject.getDynamicObject("zcgj_account").getString("number")); + } + //查询组织下对应的当前期间数据 DynamicObject[] orgByCurperiod = BusinessDataServiceHelper.load("gl_accountbook", "org,curperiod", new QFilter[]{new QFilter("enable", QCP.equals, Boolean.TRUE). and("status", QCP.equals, "C").and("org.id", QCP.in, orgIds)}); - /*Map orgByCurperiodMap = - Arrays.stream(orgByCurperiod).collect(Collectors.toMap( - i -> i.getLong("org.id"), - i -> i));*/ Map orgByCurperiodMap = new HashMap<>(); for (DynamicObject dynamicObject : orgByCurperiod) { orgByCurperiodMap.put(dynamicObject.getLong("org.id"), dynamicObject); } + //获取核算组织的项目 + + Map projectMap = new HashMap<>(); + //ec_project + DynamicObject[] projects = BusinessDataServiceHelper.load("ec_project", + "fiaccountorg,zcgj_pm", + new QFilter[]{new QFilter("billstatus", QCP.equals, "C"). + and("fiaccountorg", QCP.in, orgIds)}); + for (DynamicObject project : projects) { + DynamicObject fiaccountorg = project.getDynamicObject("fiaccountorg"); + DynamicObject pm = project.getDynamicObject("zcgj_pm"); + if(fiaccountorg!=null){ + projectMap.put(fiaccountorg.getString("number"), pm); + } + } + + //清除数据 //DeleteServiceHelper.delete("zcgj_rpt_assistbalance",new QFilter[]{}); List sqlparams = new ArrayList<>(); @@ -128,6 +142,7 @@ public class AssistbalanceAutoData { assistbalance.set("zcgj_account", record.getAccount()); assistbalance.set("zcgj_period",curperiod); assistbalance.set("zcgj_isnew",true); + assistbalance.set("zcgj_pm",projectMap.get(orgNumber)); Map assgrp = record.getAssgrp(); if (assgrp.containsKey("0001")) { assistbalance.set("zcgj_customernumber",assgrp.get("0001").getNumber());