parent
							
								
									2f41312927
								
							
						
					
					
						commit
						4c6bc2dcea
					
				| 
						 | 
				
			
			@ -1,10 +1,14 @@
 | 
			
		|||
//
 | 
			
		||||
// Source code recreated from a .class file by IntelliJ IDEA
 | 
			
		||||
// (powered by FernFlower decompiler)
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
package shkd.sys.sys.plugin.report;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.EventObject;
 | 
			
		||||
import java.util.Iterator;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.Objects;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
import kd.bos.context.RequestContext;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
 | 
			
		||||
| 
						 | 
				
			
			@ -31,109 +35,11 @@ import kd.tmc.fbp.common.helper.TmcOrgDataHelper;
 | 
			
		|||
import kd.tmc.fbp.common.util.EmptyUtil;
 | 
			
		||||
import kd.tmc.fca.common.enums.StatisCycleEnum;
 | 
			
		||||
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
public class transbillreportnewFormPlugin extends AbstractReportFormPlugin implements HyperLinkClickListener {
 | 
			
		||||
    private static final String SYSTEM_TYPE = "tmc-fca-report";
 | 
			
		||||
    private static final String[] BANK_DIMENSION = new String[]{"sumlevel", "parentorg", "parentorgid", "bank", "bankid", "statcurrency", "upamount", "downamount", "differenceamount"};
 | 
			
		||||
    private static final String[] SON_ORG_DIMENSION = new String[]{"sumlevel", "parentorg", "parentorgid", "sonorg", "sonorgid", "statcurrency", "upamount", "downamount", "differenceamount"};
 | 
			
		||||
 | 
			
		||||
    public transbillreportnewFormPlugin() {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void registerListener(EventObject e) {
 | 
			
		||||
        super.registerListener(e);
 | 
			
		||||
        ReportList reportlist = (ReportList)this.getView().getControl("reportlistap");
 | 
			
		||||
        reportlist.addHyperClickListener(this);
 | 
			
		||||
        BasedataEdit accountGroup = (BasedataEdit)this.getControl("filter_accountgroup");
 | 
			
		||||
        accountGroup.addBeforeF7SelectListener((evt) -> {
 | 
			
		||||
            DynamicObjectCollection parentOrg = (DynamicObjectCollection)this.getModel().getValue("filter_org");
 | 
			
		||||
            if (parentOrg != null && !parentOrg.isEmpty()) {
 | 
			
		||||
                List<Object> orgIdList = (List)parentOrg.stream().map((v) -> {
 | 
			
		||||
                    return v.getDynamicObject("fbasedataid").getPkValue();
 | 
			
		||||
                }).collect(Collectors.toList());
 | 
			
		||||
                evt.getCustomQFilters().add(new QFilter("company", "in", orgIdList));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void initDefaultQueryParam(ReportQueryParam queryParam) {
 | 
			
		||||
        List<Long> authOrgList = TmcOrgDataHelper.getAuthorizedBankOrgId(RequestContext.get().getCurrUserId(), this.getView().getFormShowParameter().getAppId(), this.getModel().getDataEntityType().getName(), "47150e89000000ac");
 | 
			
		||||
        BasedataEdit org = (BasedataEdit)this.getControl("filter_org");
 | 
			
		||||
        org.setQFilter(new QFilter("id", "in", this.getAuthParentOrgList(authOrgList)));
 | 
			
		||||
        BasedataEdit sonOrg = (BasedataEdit)this.getControl("filter_sonorg");
 | 
			
		||||
        sonOrg.setQFilter(new QFilter("id", "in", this.getAuthSonOrgList(authOrgList)));
 | 
			
		||||
        BasedataEdit currency = (BasedataEdit)this.getControl("filter_currency");
 | 
			
		||||
        currency.setQFilter(new QFilter("id", "in", this.getCurrencyIdList()));
 | 
			
		||||
        BasedataEdit bank = (BasedataEdit)this.getControl("filter_bank");
 | 
			
		||||
        bank.setQFilter(new QFilter("id", "in", this.getBankIdList(authOrgList)));
 | 
			
		||||
        BasedataEdit accountGroup = (BasedataEdit)this.getControl("filter_accountgroup");
 | 
			
		||||
        accountGroup.setQFilter(new QFilter("id", "in", this.getAccountGroupIdList(authOrgList)));
 | 
			
		||||
        this.setDefaultOrg();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void propertyChanged(PropertyChangedArgs e) {
 | 
			
		||||
        super.propertyChanged(e);
 | 
			
		||||
        switch (e.getProperty().getName()) {
 | 
			
		||||
            case "filter_dimension":
 | 
			
		||||
                ReportFilter rptFilter = (ReportFilter)this.getControl("reportfilterap");
 | 
			
		||||
                rptFilter.search();
 | 
			
		||||
            default:
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean verifyQuery(ReportQueryParam param) {
 | 
			
		||||
        Map<String, Object> paramMap = SnapDataHelper.transQueryParam(param);
 | 
			
		||||
        String filterPeriod = (String)paramMap.get("filter_period");
 | 
			
		||||
        if (EmptyUtil.isEmpty(filterPeriod)) {
 | 
			
		||||
            this.getView().showTipNotification(ResManager.loadKDString("统计周期条件不能为空。", "TransBillReportFormListPlugin_0", "tmc-fca-report", new Object[0]));
 | 
			
		||||
            return false;
 | 
			
		||||
        } else if (!Objects.equals(StatisCycleEnum.CONSTOM.getCode(), filterPeriod) || paramMap.get("filter_startdate") != null && paramMap.get("filter_enddate") != null) {
 | 
			
		||||
            if (EmptyUtil.isEmpty(this.getModel().getValue("filter_statcurrency"))) {
 | 
			
		||||
                this.getView().showTipNotification(ResManager.loadKDString("统计币种不能为空。", "TransBillReportFormListPlugin_3", "tmc-fca-report", new Object[0]));
 | 
			
		||||
                return false;
 | 
			
		||||
            } else {
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            this.getView().showTipNotification(ResManager.loadKDString("起止日期条件不能为空。", "TransBillReportFormListPlugin_1", "tmc-fca-report", new Object[0]));
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void beforeQuery(ReportQueryParam queryParam) {
 | 
			
		||||
        super.beforeQuery(queryParam);
 | 
			
		||||
        String dimension = (String)this.getModel().getValue("filter_dimension");
 | 
			
		||||
        queryParam.getFilter().addFilterItem("filter_dimension", dimension);
 | 
			
		||||
        if ("bank".equals(dimension)) {
 | 
			
		||||
            this.rebuildColumn(BANK_DIMENSION);
 | 
			
		||||
        } else {
 | 
			
		||||
            this.rebuildColumn(SON_ORG_DIMENSION);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        DynamicObjectCollection sonOrg = (DynamicObjectCollection)this.getModel().getValue("filter_sonorg");
 | 
			
		||||
        if (sonOrg != null && !sonOrg.isEmpty()) {
 | 
			
		||||
            List<Object> orgIdList = (List)sonOrg.stream().map((v) -> {
 | 
			
		||||
                return v.getDynamicObject("fbasedataid").getPkValue();
 | 
			
		||||
            }).collect(Collectors.toList());
 | 
			
		||||
            queryParam.getFilter().getFilterItem("filter_sonorg").setValue(orgIdList);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        DynamicObjectCollection accountGroup = (DynamicObjectCollection)this.getModel().getValue("filter_accountgroup");
 | 
			
		||||
        List authOrgList;
 | 
			
		||||
        if (accountGroup != null && !accountGroup.isEmpty()) {
 | 
			
		||||
            authOrgList = (List)accountGroup.stream().map((v) -> {
 | 
			
		||||
                return v.getDynamicObject("fbasedataid").getPkValue();
 | 
			
		||||
            }).collect(Collectors.toList());
 | 
			
		||||
            queryParam.getFilter().getFilterItem("filter_accountgroup").setValue(authOrgList);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        authOrgList = TmcOrgDataHelper.getAuthorizedBankOrgId(RequestContext.get().getCurrUserId(), this.getView().getFormShowParameter().getAppId(), this.getModel().getDataEntityType().getName(), "47150e89000000ac");
 | 
			
		||||
        queryParam.getFilter().addFilterItem("orgIdList", this.getAuthParentOrgList(authOrgList));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static final String[] BANK_DIMENSION = new String[]{"sumlevel", "parentorg", "parentorgid", "bank", "bankid", "sonorg", "sonorgid", "shkd_subacct", "statcurrency", "shkd_qcye","shkd_qckyye", "upamount", "downamount", "differenceamount","shkd_qmye","shkd_qmkyye"};
 | 
			
		||||
    private static final String[] SON_ORG_DIMENSION = new String[]{"sumlevel", "parentorg", "parentorgid", "sonorg", "sonorgid", "statcurrency", "upamount", "downamount", "differenceamount","shkd_qcamount","shkd_qmamount"};
 | 
			
		||||
    @Override
 | 
			
		||||
    public void hyperLinkClick(HyperLinkClickEvent evt) {
 | 
			
		||||
        String field = evt.getFieldName();
 | 
			
		||||
        if ("upamount".equals(field) || "downamount".equals(field) || "differenceamount".equals(field)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -142,6 +48,7 @@ public class transbillreportnewFormPlugin extends AbstractReportFormPlugin imple
 | 
			
		|||
            IReportListModel reportModel = reportList.getReportModel();
 | 
			
		||||
            DynamicObject rowData = reportModel.getRowData(rowIndex);
 | 
			
		||||
            ReportShowParameter param = new ReportShowParameter();
 | 
			
		||||
 | 
			
		||||
            DynamicObjectCollection currency;
 | 
			
		||||
            Object[] currencyIds;
 | 
			
		||||
            if (EmptyUtil.isNoEmpty(rowData.get("parentorgid"))) {
 | 
			
		||||
| 
						 | 
				
			
			@ -214,46 +121,103 @@ public class transbillreportnewFormPlugin extends AbstractReportFormPlugin imple
 | 
			
		|||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private List<Long> getAuthParentOrgList(List<Long> authOrgList) {
 | 
			
		||||
        QFilter companyIdFilter = new QFilter("company", "in", authOrgList);
 | 
			
		||||
        DynamicObjectCollection groupAccount = QueryServiceHelper.query("fca_acctgroup", "company", new QFilter[]{companyIdFilter});
 | 
			
		||||
        return (List)groupAccount.stream().map((g) -> {
 | 
			
		||||
            return g.getLong("company");
 | 
			
		||||
        }).collect(Collectors.toList());
 | 
			
		||||
    @Override
 | 
			
		||||
    public void registerListener(EventObject e) {
 | 
			
		||||
        super.registerListener(e);
 | 
			
		||||
        ReportList reportlist = (ReportList)this.getView().getControl("reportlistap");
 | 
			
		||||
        reportlist.addHyperClickListener(this);
 | 
			
		||||
        BasedataEdit accountGroup = (BasedataEdit)this.getControl("filter_accountgroup");
 | 
			
		||||
        accountGroup.addBeforeF7SelectListener((evt) -> {
 | 
			
		||||
            DynamicObjectCollection parentOrg = (DynamicObjectCollection)this.getModel().getValue("filter_org");
 | 
			
		||||
            if (parentOrg != null && !parentOrg.isEmpty()) {
 | 
			
		||||
                List<Object> orgIdList = (List)parentOrg.stream().map((v) -> {
 | 
			
		||||
                    return v.getDynamicObject("fbasedataid").getPkValue();
 | 
			
		||||
                }).collect(Collectors.toList());
 | 
			
		||||
                evt.getCustomQFilters().add(new QFilter("company", "in", orgIdList));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private List<Long> getAuthSonOrgList(List<Long> authOrgList) {
 | 
			
		||||
        QFilter companyIdFilter = new QFilter("entrys.bankacct.company", "in", authOrgList);
 | 
			
		||||
        DynamicObjectCollection groupAccount = QueryServiceHelper.query("fca_acctgroup", "entrys.bankacct.company", new QFilter[]{companyIdFilter});
 | 
			
		||||
        return (List)groupAccount.stream().map((g) -> {
 | 
			
		||||
            return g.getLong("entrys.bankacct.company");
 | 
			
		||||
        }).collect(Collectors.toList());
 | 
			
		||||
    public void initDefaultQueryParam(ReportQueryParam queryParam) {
 | 
			
		||||
        List<Long> authOrgList = TmcOrgDataHelper.getAuthorizedBankOrgId(RequestContext.get().getCurrUserId(), this.getView().getFormShowParameter().getAppId(), this.getModel().getDataEntityType().getName(), "47150e89000000ac");
 | 
			
		||||
        BasedataEdit org = (BasedataEdit)this.getControl("filter_org");
 | 
			
		||||
        org.setQFilter(new QFilter("id", "in", this.getAuthParentOrgList(authOrgList)));
 | 
			
		||||
        BasedataEdit sonOrg = (BasedataEdit)this.getControl("filter_sonorg");
 | 
			
		||||
        sonOrg.setQFilter(new QFilter("id", "in", this.getAuthSonOrgList(authOrgList)));
 | 
			
		||||
        BasedataEdit currency = (BasedataEdit)this.getControl("filter_currency");
 | 
			
		||||
        currency.setQFilter(new QFilter("id", "in", this.getCurrencyIdList()));
 | 
			
		||||
        BasedataEdit bank = (BasedataEdit)this.getControl("filter_bank");
 | 
			
		||||
        bank.setQFilter(new QFilter("id", "in", this.getBankIdList(authOrgList)));
 | 
			
		||||
        BasedataEdit accountGroup = (BasedataEdit)this.getControl("filter_accountgroup");
 | 
			
		||||
        accountGroup.setQFilter(new QFilter("id", "in", this.getAccountGroupIdList(authOrgList)));
 | 
			
		||||
        this.setDefaultOrg();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private List<Long> getCurrencyIdList() {
 | 
			
		||||
        QFilter filter = new QFilter("1", "=", 1);
 | 
			
		||||
        DynamicObjectCollection groupAccount = QueryServiceHelper.query("fca_acctgroup", "currency", new QFilter[]{filter});
 | 
			
		||||
        return (List)groupAccount.stream().map((g) -> {
 | 
			
		||||
            return g.getLong("currency");
 | 
			
		||||
        }).collect(Collectors.toList());
 | 
			
		||||
    @Override
 | 
			
		||||
    public void propertyChanged(PropertyChangedArgs e) {
 | 
			
		||||
        super.propertyChanged(e);
 | 
			
		||||
        switch (e.getProperty().getName()) {
 | 
			
		||||
            case "filter_dimension":
 | 
			
		||||
                ReportFilter rptFilter = (ReportFilter)this.getControl("reportfilterap");
 | 
			
		||||
                rptFilter.search();
 | 
			
		||||
            default:
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private List<Long> getBankIdList(List<Long> authOrgList) {
 | 
			
		||||
        QFilter companyIdFilter = new QFilter("company", "in", authOrgList);
 | 
			
		||||
        DynamicObjectCollection groupAccount = QueryServiceHelper.query("fca_acctgroup", "accountbank.bank.id", new QFilter[]{companyIdFilter});
 | 
			
		||||
        return (List)groupAccount.stream().map((g) -> {
 | 
			
		||||
            return g.getLong("accountbank.bank.id");
 | 
			
		||||
        }).collect(Collectors.toList());
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean verifyQuery(ReportQueryParam param) {
 | 
			
		||||
        Map<String, Object> paramMap = SnapDataHelper.transQueryParam(param);
 | 
			
		||||
        String filterPeriod = (String)paramMap.get("filter_period");
 | 
			
		||||
        if (EmptyUtil.isEmpty(filterPeriod)) {
 | 
			
		||||
            this.getView().showTipNotification(ResManager.loadKDString("统计周期条件不能为空。", "TransBillReportFormListPlugin_0", "tmc-fca-report", new Object[0]));
 | 
			
		||||
            return false;
 | 
			
		||||
        } else if (!Objects.equals(StatisCycleEnum.CONSTOM.getCode(), filterPeriod) || paramMap.get("filter_startdate") != null && paramMap.get("filter_enddate") != null) {
 | 
			
		||||
            if (EmptyUtil.isEmpty(this.getModel().getValue("filter_statcurrency"))) {
 | 
			
		||||
                this.getView().showTipNotification(ResManager.loadKDString("统计币种不能为空。", "TransBillReportFormListPlugin_3", "tmc-fca-report", new Object[0]));
 | 
			
		||||
                return false;
 | 
			
		||||
            } else {
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            this.getView().showTipNotification(ResManager.loadKDString("起止日期条件不能为空。", "TransBillReportFormListPlugin_1", "tmc-fca-report", new Object[0]));
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private List<Long> getAccountGroupIdList(List<Long> authOrgList) {
 | 
			
		||||
        QFilter companyIdFilter = new QFilter("company", "in", authOrgList);
 | 
			
		||||
        DynamicObjectCollection groupAccount = QueryServiceHelper.query("fca_acctgroup", "id", new QFilter[]{companyIdFilter});
 | 
			
		||||
        return (List)groupAccount.stream().map((g) -> {
 | 
			
		||||
            return g.getLong("id");
 | 
			
		||||
        }).collect(Collectors.toList());
 | 
			
		||||
    @Override
 | 
			
		||||
    public void beforeQuery(ReportQueryParam queryParam) {
 | 
			
		||||
        super.beforeQuery(queryParam);
 | 
			
		||||
        String dimension = (String)this.getModel().getValue("filter_dimension");
 | 
			
		||||
        queryParam.getFilter().addFilterItem("filter_dimension", dimension);
 | 
			
		||||
        if ("bank".equals(dimension)) {//根据维度展示字段
 | 
			
		||||
            this.rebuildColumn(BANK_DIMENSION);
 | 
			
		||||
        } else {
 | 
			
		||||
            this.rebuildColumn(SON_ORG_DIMENSION);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        DynamicObjectCollection sonOrg = (DynamicObjectCollection)this.getModel().getValue("filter_sonorg");
 | 
			
		||||
        if (sonOrg != null && !sonOrg.isEmpty()) {
 | 
			
		||||
            List<Object> orgIdList = (List)sonOrg.stream().map((v) -> {
 | 
			
		||||
                return v.getDynamicObject("fbasedataid").getPkValue();
 | 
			
		||||
            }).collect(Collectors.toList());
 | 
			
		||||
            queryParam.getFilter().getFilterItem("filter_sonorg").setValue(orgIdList);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        DynamicObjectCollection accountGroup = (DynamicObjectCollection)this.getModel().getValue("filter_accountgroup");
 | 
			
		||||
        List authOrgList;
 | 
			
		||||
        if (accountGroup != null && !accountGroup.isEmpty()) {
 | 
			
		||||
            authOrgList = (List)accountGroup.stream().map((v) -> {
 | 
			
		||||
                return v.getDynamicObject("fbasedataid").getPkValue();
 | 
			
		||||
            }).collect(Collectors.toList());
 | 
			
		||||
            queryParam.getFilter().getFilterItem("filter_accountgroup").setValue(authOrgList);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        authOrgList = TmcOrgDataHelper.getAuthorizedBankOrgId(RequestContext.get().getCurrUserId(), this.getView().getFormShowParameter().getAppId(), this.getModel().getDataEntityType().getName(), "47150e89000000ac");
 | 
			
		||||
        queryParam.getFilter().addFilterItem("orgIdList", this.getAuthParentOrgList(authOrgList));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    private void rebuildColumn(String[] fields) {
 | 
			
		||||
        ReportList listTable = (ReportList)this.getView().getControl("reportlistap");
 | 
			
		||||
        if (fields != null && fields.length >= 1) {
 | 
			
		||||
| 
						 | 
				
			
			@ -284,7 +248,41 @@ public class transbillreportnewFormPlugin extends AbstractReportFormPlugin imple
 | 
			
		|||
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private List<Long> getAuthParentOrgList(List<Long> authOrgList) {
 | 
			
		||||
        QFilter companyIdFilter = new QFilter("company", "in", authOrgList);
 | 
			
		||||
        DynamicObjectCollection groupAccount = QueryServiceHelper.query("fca_acctgroup", "company", new QFilter[]{companyIdFilter});
 | 
			
		||||
        return (List)groupAccount.stream().map((g) -> {
 | 
			
		||||
            return g.getLong("company");
 | 
			
		||||
        }).collect(Collectors.toList());
 | 
			
		||||
    }
 | 
			
		||||
    private List<Long> getAuthSonOrgList(List<Long> authOrgList) {
 | 
			
		||||
        QFilter companyIdFilter = new QFilter("entrys.bankacct.company", "in", authOrgList);
 | 
			
		||||
        DynamicObjectCollection groupAccount = QueryServiceHelper.query("fca_acctgroup", "entrys.bankacct.company", new QFilter[]{companyIdFilter});
 | 
			
		||||
        return (List)groupAccount.stream().map((g) -> {
 | 
			
		||||
            return g.getLong("entrys.bankacct.company");
 | 
			
		||||
        }).collect(Collectors.toList());
 | 
			
		||||
    }
 | 
			
		||||
    private List<Long> getCurrencyIdList() {
 | 
			
		||||
        QFilter filter = new QFilter("1", "=", 1);
 | 
			
		||||
        DynamicObjectCollection groupAccount = QueryServiceHelper.query("fca_acctgroup", "currency", new QFilter[]{filter});
 | 
			
		||||
        return (List)groupAccount.stream().map((g) -> {
 | 
			
		||||
            return g.getLong("currency");
 | 
			
		||||
        }).collect(Collectors.toList());
 | 
			
		||||
    }
 | 
			
		||||
    private List<Long> getBankIdList(List<Long> authOrgList) {
 | 
			
		||||
        QFilter companyIdFilter = new QFilter("company", "in", authOrgList);
 | 
			
		||||
        DynamicObjectCollection groupAccount = QueryServiceHelper.query("fca_acctgroup", "accountbank.bank.id", new QFilter[]{companyIdFilter});
 | 
			
		||||
        return (List)groupAccount.stream().map((g) -> {
 | 
			
		||||
            return g.getLong("accountbank.bank.id");
 | 
			
		||||
        }).collect(Collectors.toList());
 | 
			
		||||
    }
 | 
			
		||||
    private List<Long> getAccountGroupIdList(List<Long> authOrgList) {
 | 
			
		||||
        QFilter companyIdFilter = new QFilter("company", "in", authOrgList);
 | 
			
		||||
        DynamicObjectCollection groupAccount = QueryServiceHelper.query("fca_acctgroup", "id", new QFilter[]{companyIdFilter});
 | 
			
		||||
        return (List)groupAccount.stream().map((g) -> {
 | 
			
		||||
            return g.getLong("id");
 | 
			
		||||
        }).collect(Collectors.toList());
 | 
			
		||||
    }
 | 
			
		||||
    private void setDefaultOrg() {
 | 
			
		||||
        Long org = RequestContext.get().getOrgId();
 | 
			
		||||
        String appId = this.getView().getFormShowParameter().getAppId();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,27 +5,51 @@
 | 
			
		|||
 | 
			
		||||
package shkd.sys.sys.plugin.report;
 | 
			
		||||
 | 
			
		||||
import kd.bos.algo.DataSet;
 | 
			
		||||
import kd.bos.algo.GroupbyDataSet;
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
import java.text.SimpleDateFormat;
 | 
			
		||||
import java.time.LocalDate;
 | 
			
		||||
import java.time.format.DateTimeFormatter;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
import com.alibaba.fastjson.JSONException;
 | 
			
		||||
import com.google.common.collect.Lists;
 | 
			
		||||
import kd.bos.algo.*;
 | 
			
		||||
import kd.bos.algo.datatype.DateType;
 | 
			
		||||
import kd.bos.algo.input.CollectionInput;
 | 
			
		||||
import kd.bos.context.RequestContext;
 | 
			
		||||
import kd.bos.dataentity.entity.DataEntityBase;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
 | 
			
		||||
import kd.bos.dataentity.utils.StringUtils;
 | 
			
		||||
import kd.bos.db.DB;
 | 
			
		||||
import kd.bos.db.DBRoute;
 | 
			
		||||
import kd.bos.entity.report.ReportQueryParam;
 | 
			
		||||
import kd.bos.orm.ORM;
 | 
			
		||||
import kd.bos.orm.query.QCP;
 | 
			
		||||
import kd.bos.orm.query.QFilter;
 | 
			
		||||
import kd.bos.orm.query.QFilterHint;
 | 
			
		||||
import kd.bos.servicehelper.DispatchServiceHelper;
 | 
			
		||||
import kd.bos.servicehelper.QueryServiceHelper;
 | 
			
		||||
import kd.ebg.aqap.common.core.utils.Sequence;
 | 
			
		||||
import kd.ebg.aqap.common.entity.biz.balance.BatchBalanceRequest;
 | 
			
		||||
import kd.ebg.aqap.common.entity.biz.balance.BatchBalanceRequestBody;
 | 
			
		||||
import kd.ebg.aqap.common.entity.biz.balance.BatchBalanceResponse;
 | 
			
		||||
import kd.ebg.aqap.formplugin.exception.EBBizException;
 | 
			
		||||
import kd.ebg.aqap.formplugin.util.StringUtil;
 | 
			
		||||
import kd.ebg.egf.common.entity.base.EBHeader;
 | 
			
		||||
import kd.ebg.egf.common.model.bank.BankAcnt;
 | 
			
		||||
import kd.ebg.egf.common.repository.acnt.BankAcntRepository;
 | 
			
		||||
import kd.tmc.fbp.common.enums.ReportOrgQueryWayEnum;
 | 
			
		||||
import kd.tmc.fbp.common.helper.TmcBusinessBaseHelper;
 | 
			
		||||
import kd.tmc.fbp.common.helper.TmcOrgDataHelper;
 | 
			
		||||
import kd.tmc.fbp.common.util.DateUtils;
 | 
			
		||||
import kd.tmc.fbp.common.util.EmptyUtil;
 | 
			
		||||
import kd.tmc.fbp.report.data.AbstractTmcTreeReportDataPlugin;
 | 
			
		||||
import kd.tmc.fca.common.enums.FcaTransDetailStatusEnum;
 | 
			
		||||
import kd.tmc.fca.common.enums.FcaTransPayStatusEnum;
 | 
			
		||||
import kd.tmc.fca.common.enums.StatisCycleEnum;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
public class transbillreportnewPlugin extends AbstractTmcTreeReportDataPlugin {
 | 
			
		||||
    private static final String UP_BANK_SELECT = "company.name as parentorg, company.id as parentorgid, bank.name as bank, bank.id as bankid, currency, entrys.transamt as upamount, 0 as downamount";
 | 
			
		||||
    private static final String UP_SON_ORG_SELECT = "company.name as parentorg, company.id as parentorgid, entrys.e_useorg.name as sonorg, entrys.e_useorg.id as sonorgid, currency, entrys.transamt as upamount, 0 as downamount";
 | 
			
		||||
| 
						 | 
				
			
			@ -33,29 +57,33 @@ public class transbillreportnewPlugin extends AbstractTmcTreeReportDataPlugin {
 | 
			
		|||
    private static final String DOWN_SON_ORG_SELECT = "company.name as parentorg, company.id as parentorgid, entrys.e_useorg.name as sonorg, entrys.e_useorg.id as sonorgid, currency, 0 as upamount, entrys.transamt as downamount";
 | 
			
		||||
    private static final String BANK_SELECT = "parentorg, parentorgid, bank, bankid, upamount_report as upamount, downamount_report as downamount";
 | 
			
		||||
    private static final String SON_ORG_SELECT = "parentorg, parentorgid, sonorg, sonorgid, upamount_report as upamount, downamount_report as downamount";
 | 
			
		||||
    private static final String[] BANK_GROUP_SELECT = new String[]{"parentorg", "parentorgid", "bank", "bankid"};
 | 
			
		||||
    private static final String[] BANK_GROUP_SELECT = new String[]{"parentorg", "parentorgid", "bank", "bankid","sonorg","sonorgid","shkd_subacct"};
 | 
			
		||||
    private static final String[] SON_ORG_GROUP_SELECT = new String[]{"parentorg", "parentorgid", "sonorg", "sonorgid"};
 | 
			
		||||
    private List<String> sumAmountFieldList;
 | 
			
		||||
    private String sumNameField;
 | 
			
		||||
    private boolean isCompute = true;
 | 
			
		||||
 | 
			
		||||
    public transbillreportnewPlugin() {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public DataSet queryDataSet(ReportQueryParam reportQueryParam) {
 | 
			
		||||
        Map<String, Object> paramMap = this.transQueryParam(reportQueryParam);
 | 
			
		||||
        QFilter filter = this.initFilter(paramMap);
 | 
			
		||||
        QFilter filter = this.initFilter(paramMap);//过滤条件
 | 
			
		||||
        String upSelect;
 | 
			
		||||
        String downSelect;
 | 
			
		||||
        String[] groupSelect;
 | 
			
		||||
        StringBuilder sqlBuilder = new StringBuilder("/*dialect*/ ");
 | 
			
		||||
        String select;
 | 
			
		||||
        if ("bank".equals(paramMap.get("filter_dimension"))) {
 | 
			
		||||
            upSelect = "company.name as parentorg, company.id as parentorgid, bank.name as bank, bank.id as bankid, currency, entrys.transamt as upamount, 0 as downamount";
 | 
			
		||||
            downSelect = "company.name as parentorg, company.id as parentorgid, bank.name as bank, bank.id as bankid, currency, 0 as upamount, entrys.transamt as downamount";
 | 
			
		||||
            select = "parentorg, parentorgid, bank, bankid, upamount_report as upamount, downamount_report as downamount";
 | 
			
		||||
        if ("bank".equals(paramMap.get("filter_dimension"))) {//默认开户行
 | 
			
		||||
//            upSelect = "company.name as parentorg, company.id as parentorgid, bank.name as bank, bank.id as bankid, currency, entrys.transamt as upamount, 0 as downamount";
 | 
			
		||||
//            downSelect = "company.name as parentorg, company.id as parentorgid, bank.name as bank, bank.id as bankid, currency, 0 as upamount, entrys.transamt as downamount";
 | 
			
		||||
//            select = "parentorg, parentorgid, bank, bankid, upamount_report as upamount, downamount_report as downamount";
 | 
			
		||||
//            groupSelect = BANK_GROUP_SELECT;
 | 
			
		||||
//            this.setSumNameField("bank");
 | 
			
		||||
 | 
			
		||||
            upSelect = "company.name as parentorg, company.id as parentorgid, bank.name as bank, bank.id as bankid,  entrys.e_useorg.name as sonorg, entrys.e_useorg.id as sonorgid,  currency, entrys.transamt as upamount, 0 as downamount,entrys.subacct as shkd_subacct";
 | 
			
		||||
            downSelect = "company.name as parentorg, company.id as parentorgid, bank.name as bank, bank.id as bankid, entrys.e_useorg.name as sonorg, entrys.e_useorg.id as sonorgid,  currency, 0 as upamount, entrys.transamt as downamount,entrys.subacct as shkd_subacct";
 | 
			
		||||
            select = "parentorg, parentorgid, bank, bankid, sonorg, sonorgid, upamount_report as upamount, downamount_report as downamount,shkd_subacct";
 | 
			
		||||
            groupSelect = BANK_GROUP_SELECT;
 | 
			
		||||
            this.setSumNameField("bank");
 | 
			
		||||
        } else {
 | 
			
		||||
        } else {//不走
 | 
			
		||||
            upSelect = "company.name as parentorg, company.id as parentorgid, entrys.e_useorg.name as sonorg, entrys.e_useorg.id as sonorgid, currency, entrys.transamt as upamount, 0 as downamount";
 | 
			
		||||
            downSelect = "company.name as parentorg, company.id as parentorgid, entrys.e_useorg.name as sonorg, entrys.e_useorg.id as sonorgid, currency, 0 as upamount, entrys.transamt as downamount";
 | 
			
		||||
            select = "parentorg, parentorgid, sonorg, sonorgid, upamount_report as upamount, downamount_report as downamount";
 | 
			
		||||
| 
						 | 
				
			
			@ -67,21 +95,73 @@ public class transbillreportnewPlugin extends AbstractTmcTreeReportDataPlugin {
 | 
			
		|||
        DataSet downDataSet = QueryServiceHelper.queryDataSet("fca_transdownbill", "fca_transdownbill", downSelect, filter.toArray(), "company");
 | 
			
		||||
        DataSet dataSet = upDataSet.union(downDataSet);
 | 
			
		||||
        dataSet = this.addExchangeRateAndCurrencyUnit(dataSet, paramMap);
 | 
			
		||||
//        DynamicObjectCollection srcCollection = ORM.create().toPlainDynamicObjectCollection(dataSet.copy());
 | 
			
		||||
        dataSet = dataSet.select(select);
 | 
			
		||||
        this.isCompute = false;
 | 
			
		||||
        GroupbyDataSet group = dataSet.groupBy(groupSelect);
 | 
			
		||||
        dataSet = group.sum("upamount").sum("downamount").finish();
 | 
			
		||||
        //链接期初期初余额表
 | 
			
		||||
        DataSet getqc = getqc(filter, paramMap);
 | 
			
		||||
        List<String> sumAmountFieldList = new ArrayList(2);
 | 
			
		||||
 | 
			
		||||
        sumAmountFieldList.add("upamount");
 | 
			
		||||
        sumAmountFieldList.add("downamount");
 | 
			
		||||
        sumAmountFieldList.add("differenceamount");
 | 
			
		||||
        this.setSumAmountFieldList(sumAmountFieldList);
 | 
			
		||||
        dataSet = dataSet.addField("upamount - downamount", "differenceamount");
 | 
			
		||||
        JoinDataSet join = dataSet.join(getqc, JoinType.LEFT);//连接
 | 
			
		||||
        dataSet = join.on("shkd_subacct","shkd_subacct")
 | 
			
		||||
                .select(new String[]{"parentorg", "parentorgid", "bank", "bankid", "sonorg", "sonorgid", "upamount", "downamount","shkd_subacct","differenceamount","shkd_qcye","shkd_qckyye"}).finish();
 | 
			
		||||
 | 
			
		||||
        //组装查询银企sql
 | 
			
		||||
//      DataSet getyq = getyqsql(filter, paramMap);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        //期末
 | 
			
		||||
        List<String> sumAmountFieldList1 = new ArrayList(5);
 | 
			
		||||
        sumAmountFieldList1.add("shkd_qcye");
 | 
			
		||||
        sumAmountFieldList1.add("shkd_qckyye");
 | 
			
		||||
        sumAmountFieldList1.add("upamount");
 | 
			
		||||
        sumAmountFieldList1.add("downamount");
 | 
			
		||||
        sumAmountFieldList1.add("shkd_qmye");
 | 
			
		||||
        sumAmountFieldList1.add("shkd_qmkyye");
 | 
			
		||||
        this.setSumAmountFieldList(sumAmountFieldList1);
 | 
			
		||||
        //期末余额
 | 
			
		||||
        dataSet = dataSet.addField("shkd_qcye+upamount- downamount", "shkd_qmye");
 | 
			
		||||
        dataSet = dataSet.addField("shkd_qckyye+upamount- downamount", "shkd_qmkyye");
 | 
			
		||||
        Object statCurrency = ((DynamicObject)paramMap.get("filter_statcurrency")).getPkValue();
 | 
			
		||||
        dataSet = dataSet.addField(String.valueOf(statCurrency), "currency");
 | 
			
		||||
        return dataSet;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private DataSet getyqsql(QFilter filter, Map<String, Object> paramMap) {
 | 
			
		||||
        //获取截止日期
 | 
			
		||||
        List<QFilter.QFilterNest> nests = filter.getNests(true);//过滤条件
 | 
			
		||||
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 | 
			
		||||
        String enddate="";
 | 
			
		||||
        for (int i = 0; i <nests.size() ; i++) {
 | 
			
		||||
            QFilter filter1 = nests.get(i).getFilter();
 | 
			
		||||
            if ("entrys.paydate".equals(filter1.getProperty())){
 | 
			
		||||
                String cp = filter1.getCP();
 | 
			
		||||
                if (cp.contains("<")){//结束日期
 | 
			
		||||
                    enddate=sdf.format(filter.getValue());
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        StringBuilder sqlBuilder = new StringBuilder("/*dialect*/ ");
 | 
			
		||||
        sqlBuilder.append("SELECT faccountbankid, fmodifytime, fvalibalance as upamount,fcurrencyid as currency \n" +
 | 
			
		||||
                "FROM t_bei_bankbalance\n" +
 | 
			
		||||
                "WHERE (faccountbankid, fmodifytime) IN (\n" +
 | 
			
		||||
                "    SELECT faccountbankid, MAX(fmodifytime)\n" +
 | 
			
		||||
                "    FROM t_bei_bankbalance\n" +
 | 
			
		||||
                "    WHERE fmodifytime <= '"+enddate+"'\n" +
 | 
			
		||||
                "    GROUP BY faccountbankid\n" +
 | 
			
		||||
                ")");
 | 
			
		||||
        DataSet res = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), sqlBuilder.toString());//财务云
 | 
			
		||||
 | 
			
		||||
        return res;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public List<String> groupFields() {
 | 
			
		||||
        List<String> groupFieldList = new ArrayList(2);
 | 
			
		||||
        groupFieldList.add("parentorg");
 | 
			
		||||
| 
						 | 
				
			
			@ -189,4 +269,163 @@ public class transbillreportnewPlugin extends AbstractTmcTreeReportDataPlugin {
 | 
			
		|||
    protected boolean isNeedDimCurrency() {
 | 
			
		||||
        return this.isCompute;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public DataSet getqc(QFilter filter,Map<String, Object> paramMap){
 | 
			
		||||
        //组装期初的过滤条件
 | 
			
		||||
        List<QFilter.QFilterNest> nests = filter.getNests(true);//过滤条件
 | 
			
		||||
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 | 
			
		||||
        QFilter qFilter=null;
 | 
			
		||||
        String startdate="";
 | 
			
		||||
        for (int i = 0; i <nests.size() ; i++) {
 | 
			
		||||
            QFilter filter1 = nests.get(i).getFilter();
 | 
			
		||||
            if ("entrys.paydate".equals(filter1.getProperty())){
 | 
			
		||||
                String cp = filter1.getCP();
 | 
			
		||||
                if (cp.contains(">")){//开始日期
 | 
			
		||||
                    qFilter=new QFilter("entrys.paydate", "<", filter1.getValue());
 | 
			
		||||
                    startdate=sdf.format(filter1.getValue());
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
//        for (QFilter.QFilterNest nest : nests) {
 | 
			
		||||
//            String op = nest.getOp();
 | 
			
		||||
//            QFilter filter1 = nest.getFilter();
 | 
			
		||||
//            if (!"entrys.paydate".equals(filter1.getProperty())){
 | 
			
		||||
//                if ("AND".equals(op)){
 | 
			
		||||
//                    qFilter.and(filter1);
 | 
			
		||||
//                }else {
 | 
			
		||||
//                    qFilter.or(filter1);
 | 
			
		||||
//                }
 | 
			
		||||
//
 | 
			
		||||
//            }
 | 
			
		||||
//        }
 | 
			
		||||
//
 | 
			
		||||
//
 | 
			
		||||
//        //查询期初数据
 | 
			
		||||
//        DataSet upDataSet = QueryServiceHelper.queryDataSet("fca_transupbill", "fca_transupbill",
 | 
			
		||||
//                "company.name as parentorg, company.id as parentorgid, bank.name as bank, bank.id as bankid,  entrys.e_useorg.name as sonorg, entrys.e_useorg.id as sonorgid,  currency, entrys.transamt as upamount,entrys.subacct as shkd_subacct",
 | 
			
		||||
//                qFilter.toArray(), "company");//上划期初
 | 
			
		||||
//        DataSet downDataSet = QueryServiceHelper.queryDataSet("fca_transdownbill", "fca_transdownbill",
 | 
			
		||||
//                "company.name as parentorg, company.id as parentorgid, bank.name as bank, bank.id as bankid, entrys.e_useorg.name as sonorg, entrys.e_useorg.id as sonorgid,  currency, -1*entrys.transamt as upamount,entrys.subacct as shkd_subacct",
 | 
			
		||||
//                qFilter.toArray(), "company");//下拨期初
 | 
			
		||||
//        DataSet dataSet = upDataSet.union(downDataSet);
 | 
			
		||||
//
 | 
			
		||||
//        dataSet = addExchangeRateAndCurrencyUnit1(dataSet, paramMap);
 | 
			
		||||
//        dataSet = dataSet.select(new String[]{"parentorg", "parentorgid", "bank", "bankid", "sonorg", "sonorgid", "upamount_report as shkd_qcamount","shkd_subacct","currency"});
 | 
			
		||||
//        GroupbyDataSet group = dataSet.groupBy(new String[]{"parentorg", "parentorgid", "bank", "bankid","sonorg","sonorgid","shkd_subacct"});
 | 
			
		||||
//        dataSet = group.sum("shkd_qcamount").finish();
 | 
			
		||||
        StringBuilder sqlBuilder = new StringBuilder("/*dialect*/ ");
 | 
			
		||||
        sqlBuilder.append("SELECT faccountbankid as shkd_subacct, fmodifytime,famount as downamount, fvalibalance as upamount,fcurrencyid as currency \n" +
 | 
			
		||||
                "FROM t_bei_bankbalance\n" +
 | 
			
		||||
                "WHERE (faccountbankid, fmodifytime) IN (\n" +
 | 
			
		||||
                "    SELECT faccountbankid, MAX(fmodifytime)\n" +
 | 
			
		||||
                "    FROM t_bei_bankbalance\n" +
 | 
			
		||||
                "    WHERE fmodifytime < '"+startdate+"'\n" +
 | 
			
		||||
                "    GROUP BY faccountbankid\n" +
 | 
			
		||||
                ")");
 | 
			
		||||
        DataSet res = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), sqlBuilder.toString());//财务云
 | 
			
		||||
        res = addExchangeRateAndCurrencyUnit1(res, paramMap);
 | 
			
		||||
        DataSet select = res.select(new String[]{"shkd_subacct","downamount as shkd_qcye","upamount as shkd_qckyye"});
 | 
			
		||||
        return select;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected DataSet addExchangeRateAndCurrencyUnit1(DataSet bizDataSet, Map<String, Object> paramMap) {
 | 
			
		||||
        String unit = null;
 | 
			
		||||
        boolean isNeedCurrencyUnit = true;
 | 
			
		||||
        boolean isNeedDimCurrency = true;
 | 
			
		||||
        String[] selectFields;
 | 
			
		||||
        if (isNeedDimCurrency) {
 | 
			
		||||
            DataSet exchangeRateSet = getExChangeRateDs1(bizDataSet, paramMap);
 | 
			
		||||
            if (isNeedCurrencyUnit) {
 | 
			
		||||
                unit = (String)paramMap.get("filter_currencyunit");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            selectFields = initSelectFields1(bizDataSet, unit, isNeedCurrencyUnit, isNeedDimCurrency);
 | 
			
		||||
            return bizDataSet.leftJoin(exchangeRateSet).on("currency", "tarcurrency").select(selectFields).finish();
 | 
			
		||||
        } else if (isNeedCurrencyUnit) {
 | 
			
		||||
            unit = (String)paramMap.get("filter_currencyunit");
 | 
			
		||||
            selectFields = initSelectFields1(bizDataSet, unit, isNeedCurrencyUnit, isNeedDimCurrency);
 | 
			
		||||
            return bizDataSet.select(selectFields);
 | 
			
		||||
        } else {
 | 
			
		||||
            return bizDataSet;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private String[] initSelectFields1(DataSet bizDataSet, String unit, boolean isNeedCurrencyUnit, boolean isNeedDimCurrency) {
 | 
			
		||||
//        List<String> amountFields = Collections.singletonList("upamount");
 | 
			
		||||
        List<String> amountFields = Arrays.asList("upamount", "downamount");
 | 
			
		||||
//        List<String> amountUnitFields = Collections.singletonList("upamount");
 | 
			
		||||
        List<String> amountUnitFields = Arrays.asList("upamount", "downamount");
 | 
			
		||||
        String[] oralfields = bizDataSet.getRowMeta().getFieldNames();
 | 
			
		||||
        List<String> fieldList = new ArrayList(oralfields.length);
 | 
			
		||||
        String[] var9 = oralfields;
 | 
			
		||||
        int var10 = oralfields.length;
 | 
			
		||||
 | 
			
		||||
        for(int var11 = 0; var11 < var10; ++var11) {
 | 
			
		||||
            String field = var9[var11];
 | 
			
		||||
            if (!fieldList.contains(field) && !amountFields.contains(field) && !amountUnitFields.contains(field)) {
 | 
			
		||||
                fieldList.add(field);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        Iterator var13 = amountUnitFields.iterator();
 | 
			
		||||
 | 
			
		||||
        String field;
 | 
			
		||||
        while(var13.hasNext()) {
 | 
			
		||||
            field = (String)var13.next();
 | 
			
		||||
            if (isNeedCurrencyUnit) {
 | 
			
		||||
                fieldList.add(String.format(field + " / %s " + field, unit));
 | 
			
		||||
            } else {
 | 
			
		||||
                fieldList.add(field);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        var13 = amountFields.iterator();
 | 
			
		||||
 | 
			
		||||
        while(var13.hasNext()) {
 | 
			
		||||
            field = (String)var13.next();
 | 
			
		||||
            if (isNeedDimCurrency) {
 | 
			
		||||
                if (isNeedCurrencyUnit) {
 | 
			
		||||
                    fieldList.add(String.format("(" + field + " * rate) / %s " + field + "_report", unit));
 | 
			
		||||
                } else {
 | 
			
		||||
                    fieldList.add("(" + field + " * rate) " + field + "_report");
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (isNeedDimCurrency) {
 | 
			
		||||
            fieldList.add("tarcurrency");
 | 
			
		||||
            fieldList.add("rate");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return (String[])fieldList.toArray(new String[0]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected DataSet getExChangeRateDs1(DataSet dataSet, Map<String, Object> paramMap) {
 | 
			
		||||
        Long tarCurrencyId = (Long)((DynamicObject)paramMap.get("filter_statcurrency")).getPkValue();
 | 
			
		||||
        DataSet currencySet = dataSet.copy().groupBy(new String[]{"currency"}).finish();
 | 
			
		||||
        List<Long> currencyIdList = new ArrayList(10);
 | 
			
		||||
        currencySet.iterator().forEachRemaining((v) -> {
 | 
			
		||||
            currencyIdList.add(v.getLong("currency"));
 | 
			
		||||
        });
 | 
			
		||||
        long orgId = 0L;
 | 
			
		||||
        String queryWay = (String)paramMap.get("filter_queryway");
 | 
			
		||||
        boolean orgQueryWay = ReportOrgQueryWayEnum.ORG.getValue().equals(queryWay);
 | 
			
		||||
        if (orgQueryWay) {
 | 
			
		||||
            orgId = RequestContext.get().getOrgId();
 | 
			
		||||
        } else {
 | 
			
		||||
            DynamicObject orgView = (DynamicObject)paramMap.get("filter_orgview");
 | 
			
		||||
            if (EmptyUtil.isNoEmpty(orgView)) {
 | 
			
		||||
                orgId = Long.parseLong(TmcOrgDataHelper.getOrgRootId(orgView.getLong("id")));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (orgId != 0L) {
 | 
			
		||||
            return TmcBusinessBaseHelper.getExChangeDataSet(currencyIdList, tarCurrencyId, orgId, new Date(), orgQueryWay);
 | 
			
		||||
        } else {
 | 
			
		||||
            String[] fieldNames = new String[]{"tarcurrency", "rate"};
 | 
			
		||||
            DataType[] dataTypes = new DataType[]{DataType.LongType, DataType.BigDecimalType};
 | 
			
		||||
            return createEmptyDataSet(fieldNames, dataTypes);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue