Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
xiaoshi 2025-08-04 13:25:08 +08:00
commit efca0bd7ea
1 changed files with 92 additions and 0 deletions

View File

@ -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<Map<String, Long>> paramMap = new ArrayList<>();
Map<String, Long> 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<Map<String, Object>> 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<Long, List<Map<String, Long>>> accountAssgrp = new HashMap();
private List<String> groupBys = new ArrayList();
private boolean isSubstractPL = false;*/
//BanlanceServiceHelper.getBalance(balanceQueryParam);
}
}
public Set<Long> 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<Long> orgIds = new ArrayList<>(1);
//orgIds.add(1692204547985902592L);
orgIds.add(orgId);
List<Long> subOrgIds = OrgUnitServiceHelper.getAllSubordinateOrgs(1L, orgIds, true);
return subOrgIds.stream().collect(Collectors.toSet());
}
}