From 115a00af422b2655da952637056934b3ffa71a2b Mon Sep 17 00:00:00 2001 From: zhangzhiguo <421587375@qq.com> Date: Thu, 23 Oct 2025 11:20:27 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=91=E7=9B=AE=E4=BD=99=E9=A2=9D=E5=8F=96?= =?UTF-8?q?=E6=95=B0=E8=A1=A8=20-=20=E8=B5=84=E4=BA=A7=E8=B4=9F=E5=80=BA?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=85=AC=E5=8F=B8=E9=80=9A=E8=BF=87=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E8=A1=A8=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AssetsLiabilitiesbalanceAutoData.java | 35 ++++++++++++++----- .../form/AssetsLiabilitiesbalancePlugin.java | 31 ++++++++++++++-- 2 files changed, 55 insertions(+), 11 deletions(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/AssetsLiabilitiesbalanceAutoData.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/AssetsLiabilitiesbalanceAutoData.java index 9ed28b6..c2d48bb 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/AssetsLiabilitiesbalanceAutoData.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/AssetsLiabilitiesbalanceAutoData.java @@ -27,14 +27,14 @@ public class AssetsLiabilitiesbalanceAutoData { private static final String[] asseestypeArrays = new String[]{"0001","0005","0003"}; - public static void getData(Long periodId) { + public static void getData(Long periodId,boolean isAuto) { String[] selectorsArray = new String[]{"beginlocal", "endlocal", "yeardebitfor", "yearcreditfor", "debitlocal", "creditlocal"}; 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 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}); @@ -59,8 +59,25 @@ public class AssetsLiabilitiesbalanceAutoData { orgNumberMap.put(dynamicObject.getString("number"), dynamicObject); orgIds.add(dynamicObject.getLong("id")); } + }*/ + + //通过配置表取公司 + Map orgNumberMap = new HashMap<>(); + List orgIds = new ArrayList<>(); + DynamicObject[] companybelongs = BusinessDataServiceHelper.load("zcgj_companybelong", "id,zcgj_companyblentry.zcgj_org", new QFilter[]{}); + for (DynamicObject companybelong : companybelongs) { + DynamicObjectCollection companyblentryCollection = companybelong.getDynamicObjectCollection("zcgj_companyblentry"); + for (DynamicObject dynamicObject : companyblentryCollection) { + DynamicObject zcgjOrg = dynamicObject.getDynamicObject("zcgj_org"); + if(zcgjOrg!=null){ + long id = zcgjOrg.getLong("id"); + orgIds.add(id); + orgNumberMap.put(zcgjOrg.getString("number"), zcgjOrg); + } + } } + // 查询组织下对应的当前期间数据 DynamicObject[] orgByCurperiod = BusinessDataServiceHelper.load("gl_accountbook", "org,curperiod", @@ -72,11 +89,13 @@ public class AssetsLiabilitiesbalanceAutoData { } // 标记旧数据为非最新 - List sqlparams = new ArrayList<>(); - Object[] sqlparam = new Object[]{false}; - sqlparams.add(sqlparam); - DB.executeBatch(DBRoute.of("fi"), - "update tk_zcgj_rpt_assistbalangx set fk_zcgj_isnew = ? ", sqlparams); + if(isAuto){ //使用自动执行时标记旧数据 + List sqlparams = new ArrayList<>(); + Object[] sqlparam = new Object[]{false}; + sqlparams.add(sqlparam); + DB.executeBatch(DBRoute.of("fi"), + "update tk_zcgj_rpt_assistbalzcfz set fk_zcgj_isnew = ? ", sqlparams); + } for (String asseestype : asseestypeArrays) { // 查询科目余额配置表 @@ -168,7 +187,7 @@ public class AssetsLiabilitiesbalanceAutoData { assistbalance.set("zcgj_accounttable", accountTableLoad); assistbalance.set("zcgj_account", record.getAccount()); assistbalance.set("zcgj_period", curperiod); - assistbalance.set("zcgj_isnew", true); + assistbalance.set("zcgj_isnew", isAuto); assistbalance.set("zcgj_sourcetype", asseestype); Map assgrp = record.getAssgrp(); diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/AssetsLiabilitiesbalancePlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/AssetsLiabilitiesbalancePlugin.java index 21df182..afbaa74 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/AssetsLiabilitiesbalancePlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/AssetsLiabilitiesbalancePlugin.java @@ -1,5 +1,6 @@ package zcgj.zcdev.zcdev.fs.plugin.form; +import kd.bos.dataentity.entity.DynamicObject; import kd.bos.entity.filter.ControlFilters; import kd.bos.form.control.events.ItemClickEvent; import kd.bos.list.IListView; @@ -7,10 +8,16 @@ import kd.bos.list.ListShowParameter; import kd.bos.list.plugin.AbstractListPlugin; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.DeleteServiceHelper; import kd.sdk.plugin.Plugin; import zcgj.zcdev.zcdev.fs.plugin.common.AssetsLiabilitiesbalanceAutoData; import zcgj.zcdev.zcdev.fs.plugin.common.SubjectbalanceAutoData; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.List; /** @@ -25,7 +32,22 @@ public class AssetsLiabilitiesbalancePlugin extends AbstractListPlugin implement String itemKey = evt.getItemKey(); if("zcgj_gatdata".equals(itemKey)) { //科目余额表自动取数 - AssetsLiabilitiesbalanceAutoData.getData(null);//其他 + //获取当前自然月作为最新期间 + // 获取当前日期 + LocalDate currentDate = LocalDate.now(); + // 定义格式器 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMM"); + // 格式化为字符串 + String currentMonth = currentDate.format(formatter); + + QFilter idFilter = new QFilter("number", QCP.equals, currentMonth); + DynamicObject curperiod = BusinessDataServiceHelper.loadSingle("bd_period", "id,number", new QFilter[]{idFilter}); + if(curperiod!=null){ + AssetsLiabilitiesbalanceAutoData.getData(curperiod.getLong("id"),true);//其他 + }else{ + this.getView().showMessage("获取当前期间有误!"); + } + }else if("zcgj_gatdataperiod".equals(itemKey)) { //获取列表查询参数 ControlFilters filters = ((IListView)this.getView()).getControlFilters(); @@ -35,13 +57,16 @@ public class AssetsLiabilitiesbalancePlugin extends AbstractListPlugin implement }else{ for (Object periodId : filter) { if(periodId instanceof String) { - AssetsLiabilitiesbalanceAutoData.getData(Long.valueOf((String)periodId));//其他 + AssetsLiabilitiesbalanceAutoData.getData(Long.valueOf((String)periodId),false);//其他 } } //重新执行一下拉取最新的数据,解决历史数据最新勾选问题 - AssetsLiabilitiesbalanceAutoData.getData(null);//其他 + //AssetsLiabilitiesbalanceAutoData.getData(null);//其他 } + }else if("zcgj_deleteall".equals(itemKey)) { + int zcgjRptAssistbalanZcfz = DeleteServiceHelper.delete("zcgj_rpt_assistbalan_zcfz", new QFilter[]{}); + this.getView().showMessage("操作完成!"); } }