From a4dc2091a3fd62c637bef3450afb71e680e06ed7 Mon Sep 17 00:00:00 2001 From: zhangzhiguo <421587375@qq.com> Date: Mon, 29 Sep 2025 09:40:58 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=91=E7=9B=AE=E4=BD=99=E9=A2=9D=E5=B7=A5?= =?UTF-8?q?=E5=BA=8F=E5=8F=96=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/common/SubjectbalanceAutoData.java | 195 +++++++++--------- 1 file changed, 98 insertions(+), 97 deletions(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/SubjectbalanceAutoData.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/SubjectbalanceAutoData.java index 5a00e30..1e168f3 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/SubjectbalanceAutoData.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/SubjectbalanceAutoData.java @@ -12,6 +12,7 @@ import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.operation.SaveServiceHelper; +import kd.bos.util.StringUtils; import zcgj.zcdev.zcdev.fs.utils.AccountRecord; import zcgj.zcdev.zcdev.fs.utils.BalanceQueryParamApi; @@ -20,6 +21,8 @@ import java.util.*; public class SubjectbalanceAutoData { + private static final String[] asseestypeArrays = new String[]{"0032","0017",""}; + public static void getData(){ String[] selectorsArray = new String[]{"beginlocal", "endlocal", "yeardebitfor","yearcreditfor","debitlocal","creditlocal"}; @@ -54,18 +57,6 @@ public class SubjectbalanceAutoData { orgIds.add(dynamicObject.getLong("id")); } } - - //查询科目余额配置表 - DynamicObject[] accountConf = BusinessDataServiceHelper.load("zcgj_conf_balanceaccoungx", "zcgj_entryentity.zcgj_account", new QFilter[]{}); - Set accountNumber = new HashSet<>(); - for (DynamicObject dynamicObject : accountConf) { - DynamicObjectCollection zcgjEntryentity = dynamicObject.getDynamicObjectCollection("zcgj_entryentity"); - for (DynamicObject object : zcgjEntryentity) { - accountNumber.add(object.getDynamicObject("zcgj_account").getString("number")); - } - } - - //查询组织下对应的当前期间数据 DynamicObject[] orgByCurperiod = BusinessDataServiceHelper.load("gl_accountbook", "org,curperiod", @@ -76,22 +67,6 @@ public class SubjectbalanceAutoData { 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<>(); @@ -100,84 +75,110 @@ public class SubjectbalanceAutoData { DB.executeBatch(DBRoute.of("fi"), "update tk_zcgj_rpt_assistbalangx set fk_zcgj_isnew = ? ", sqlparams); - for (String orgNumber : orgNumberMap.keySet()) { - BalanceQueryParamApi balanceQueryParamApi = new BalanceQueryParamApi(); - balanceQueryParamApi.setSelectors(Arrays.asList(selectorsArray)); - // balanceQueryParamApi.setOrgNumber("cw000102"); - balanceQueryParamApi.setOrgNumber(orgNumber); - balanceQueryParamApi.setBookTypeNumber("100002"); //账簿类型 - balanceQueryParamApi.setAccountTableNumber("0003");//科目表 + for (String asseestype : asseestypeArrays) { + //查询科目余额配置表 + DynamicObject[] accountConf = BusinessDataServiceHelper.load("zcgj_conf_balanceaccoungx", "zcgj_entryentity.zcgj_account,zcgj_entryentity.zcgj_asseestype", new QFilter[]{}); + Set accountNumber = new HashSet<>(); + for (DynamicObject dynamicObject : accountConf) { + DynamicObjectCollection zcgjEntryentity = dynamicObject.getDynamicObjectCollection("zcgj_entryentity"); + for (DynamicObject object : zcgjEntryentity) { + String zcgjAsseestype = object.getString("zcgj_asseestype"); + if(asseestype.equals(zcgjAsseestype)){ + accountNumber.add(object.getDynamicObject("zcgj_account").getString("number")); + } + } + } - DynamicObject orgObj = orgNumberMap.get(orgNumber); - DynamicObject periodObj = orgByCurperiodMap.get(orgObj.getLong("id")); - DynamicObject curperiod = null; - if(periodObj != null) { - curperiod = periodObj.getDynamicObject("curperiod"); - if( curperiod!= null) { - balanceQueryParamApi.setPeriodNumber(curperiod.getString("number")); // + for (String orgNumber : orgNumberMap.keySet()) { + BalanceQueryParamApi balanceQueryParamApi = new BalanceQueryParamApi(); + balanceQueryParamApi.setSelectors(Arrays.asList(selectorsArray)); + // balanceQueryParamApi.setOrgNumber("cw000102"); + balanceQueryParamApi.setOrgNumber(orgNumber); + balanceQueryParamApi.setBookTypeNumber("100002"); //账簿类型 + balanceQueryParamApi.setAccountTableNumber("0003");//科目表 + + DynamicObject orgObj = orgNumberMap.get(orgNumber); + DynamicObject periodObj = orgByCurperiodMap.get(orgObj.getLong("id")); + DynamicObject curperiod = null; + if(periodObj != null) { + curperiod = periodObj.getDynamicObject("curperiod"); + if( curperiod!= null) { + balanceQueryParamApi.setPeriodNumber(curperiod.getString("number")); // + }else{ + continue; + } }else{ continue; } - }else{ - continue; - } - Map>> accountAssgrp = new HashMap<>(); - List> li = new ArrayList<>(); - Map map1 = new HashMap<>(); - map1.put("0032",""); - li.add(map1); - for (String accNum : accountNumber) { - accountAssgrp.put(accNum,li); - } - balanceQueryParamApi.setAccountAssgrp(accountAssgrp); - List groupBy = new ArrayList<>(); - groupBy.add("0032"); - groupBy.add("account"); - balanceQueryParamApi.setGroupBys(groupBy); - Gson gson = new Gson(); - String json = gson.toJson(balanceQueryParamApi); - Map params = gson.fromJson(json, - new TypeToken>(){}.getType()); - OpenApiResult balanceData = OpenApiSdkUtil.invoke("/v2/gl/getBalanceApi", params); - - List addEntities = new ArrayList<>(); - if(balanceData.isStatus()){ - String data = (String) balanceData.getData(); - Type listType = new TypeToken>() {}.getType(); - List records = gson.fromJson(data, listType); - // 示例输出 - for (AccountRecord record : records) { - DynamicObject assistbalance - =BusinessDataServiceHelper.newDynamicObject("zcgj_rpt_assistbalancegx"); - assistbalance.set("zcgj_debitlocal", record.getDebitlocal()); - assistbalance.set("zcgj_beginlocal", record.getBeginlocal()); - assistbalance.set("zcgj_creditlocal", record.getCreditlocal()); - assistbalance.set("zcgj_yeardebitfor", record.getYeardebitfor()); - assistbalance.set("zcgj_yearcreditfor", record.getYearcreditfor()); - assistbalance.set("zcgj_endlocal", record.getEndlocal()); - assistbalance.set("zcgj_org",orgNumberMap.get(orgNumber)); - assistbalance.set("zcgj_accounttable",accountTableLoad); - 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("0032")) { - assistbalance.set("zcgj_processnumber",assgrp.get("0032").getNumber()); - assistbalance.set("zcgj_processname",assgrp.get("0032").getName()); + List groupBy = new ArrayList<>(); + if(!StringUtils.isEmpty(asseestype)){ + Map>> accountAssgrp = new HashMap<>(); + List> li = new ArrayList<>(); + Map map1 = new HashMap<>(); + map1.put(asseestype,""); + li.add(map1); + for (String accNum : accountNumber) { + accountAssgrp.put(accNum,li); } - addEntities.add(assistbalance); + balanceQueryParamApi.setAccountAssgrp(accountAssgrp); + + groupBy.add(asseestype); + } + groupBy.add("account"); + balanceQueryParamApi.setGroupBys(groupBy); + Gson gson = new Gson(); + String json = gson.toJson(balanceQueryParamApi); + Map params = gson.fromJson(json, + new TypeToken>(){}.getType()); + + OpenApiResult balanceData = OpenApiSdkUtil.invoke("/v2/gl/getBalanceApi", params); + + List addEntities = new ArrayList<>(); + if(balanceData.isStatus()){ + String data = (String) balanceData.getData(); + Type listType = new TypeToken>() {}.getType(); + List records = gson.fromJson(data, listType); + // 示例输出 + for (AccountRecord record : records) { + DynamicObject assistbalance + =BusinessDataServiceHelper.newDynamicObject("zcgj_rpt_assistbalancegx"); + assistbalance.set("zcgj_debitlocal", record.getDebitlocal()); + assistbalance.set("zcgj_beginlocal", record.getBeginlocal()); + assistbalance.set("zcgj_creditlocal", record.getCreditlocal()); + assistbalance.set("zcgj_yeardebitfor", record.getYeardebitfor()); + assistbalance.set("zcgj_yearcreditfor", record.getYearcreditfor()); + assistbalance.set("zcgj_endlocal", record.getEndlocal()); + assistbalance.set("zcgj_org",orgNumberMap.get(orgNumber)); + assistbalance.set("zcgj_accounttable",accountTableLoad); + 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("0032")) { + if(assgrp.get("0032")!=null){ + assistbalance.set("zcgj_processnumber",assgrp.get("0032").getNumber()); + assistbalance.set("zcgj_processname",assgrp.get("0032").getName()); + } + }else if(assgrp.containsKey("0017")){ + if(assgrp.get("0017")!=null){ + assistbalance.set("zcgj_costcompanynumber",assgrp.get("0017").getNumber()); + assistbalance.set("zcgj_costcompanyname",assgrp.get("0017").getName()); + } + } + addEntities.add(assistbalance); + } + } - } - - if (!addEntities.isEmpty()) { - try { - SaveServiceHelper.save(addEntities.toArray(new DynamicObject[0])); - } catch (Exception ex) { - throw new RuntimeException(ex); + if (!addEntities.isEmpty()) { + try { + SaveServiceHelper.save(addEntities.toArray(new DynamicObject[0])); + } catch (Exception ex) { + throw new RuntimeException(ex); + } } } }