diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/AssistbalancePlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/AssistbalancePlugin.java new file mode 100644 index 0000000..89919de --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/AssistbalancePlugin.java @@ -0,0 +1,92 @@ +package zcgj.zcdev.zcdev.fs.plugin.form; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.form.control.events.ItemClickEvent; +import kd.bos.list.plugin.AbstractListPlugin; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.org.OrgUnitServiceHelper; +import kd.fi.gl.servicehelper.BalanceQueryParam; +import kd.fi.gl.servicehelper.BanlanceServiceHelper; +import kd.sdk.plugin.Plugin; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * 核算维度余额取数表(矿山二开) + */ +public class AssistbalancePlugin extends AbstractListPlugin implements Plugin { + + + public static String ksNumberTop = "10006431"; //矿山总部组织编码 + @Override + public void itemClick(ItemClickEvent evt) { + super.itemClick(evt); + String itemKey = evt.getItemKey(); + if("zcgj_gatdata".equals(itemKey)) { + BalanceQueryParam balanceQueryParam = new BalanceQueryParam(); + String[] selectorsArray = new String[]{"beginlocal", "endlocal", "yeardebitfor","yearcreditfor","debitlocal","creditlocal"}; + Arrays.asList(selectorsArray).forEach(balanceQueryParam::addSelector); + + QFilter filterOrgId = new QFilter("number", QCP.equals,"100002");//主账簿 + DynamicObject accountbookstype = BusinessDataServiceHelper.loadSingle("bd_accountbookstype", "id,number", new QFilter[]{filterOrgId}); + balanceQueryParam.setBookTypeId(accountbookstype.getLong("id")); + + QFilter filterperiod = new QFilter("number", QCP.equals,"202501");//期间 + DynamicObject period = BusinessDataServiceHelper.loadSingle("bd_period", "id,number", new QFilter[]{filterperiod}); + balanceQueryParam.setPeriodId(period.getLong("id")); + + QFilter filtercurrency= new QFilter("number", QCP.equals,"CNY");//币别 + DynamicObject currency = BusinessDataServiceHelper.loadSingle("bd_currency", "id,number", new QFilter[]{filtercurrency}); + balanceQueryParam.setCurrencyId(currency.getLong("id")); + + QFilter filteraccount= new QFilter("number", QCP.equals,"112204");//会计科目 + DynamicObject account = BusinessDataServiceHelper.loadSingle("bd_accountview", "id,number", new QFilter[]{filteraccount}); + + List> paramMap = new ArrayList<>(); + Map map = new HashMap<>(); + map.put("0001",0L); + paramMap.add(map); + balanceQueryParam.setAccountAssgrp(account.getLong("id"),paramMap); + balanceQueryParam.addGroupBy("0001"); + balanceQueryParam.addGroupBy("account"); + for (Long orgId : getKsOrg()) { + balanceQueryParam.setOrgId(orgId); + List> balance = BanlanceServiceHelper.getBalance(balanceQueryParam); + System.out.println(); + } + + + + System.out.println(); + System.out.println(); + //balanceQueryParam.setAccountAssgrp(); + + + /* + private long orgId; + private long bookTypeId; .. + private long periodId; + private long currencyId; + private Map>> accountAssgrp = new HashMap(); + private List groupBys = new ArrayList(); + private boolean isSubstractPL = false;*/ + //BanlanceServiceHelper.getBalance(balanceQueryParam); + } + } + + + public Set getKsOrg(){ + QFilter filterOrgId = new QFilter("number", QCP.equals,ksNumberTop);//中材矿山建设有限公司 + DynamicObject adminOrg = BusinessDataServiceHelper.loadSingle("bos_org", "number,name,fullname", new QFilter[]{filterOrgId}); + long orgId = adminOrg.getLong("id"); + List orgIds = new ArrayList<>(1); + //orgIds.add(1692204547985902592L); + orgIds.add(orgId); + List subOrgIds = OrgUnitServiceHelper.getAllSubordinateOrgs(1L, orgIds, true); + return subOrgIds.stream().collect(Collectors.toSet()); + } + +}