diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/ApiService.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/ApiService.java index d578638..fadf18d 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/ApiService.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/ApiService.java @@ -329,14 +329,17 @@ public class ApiService { } break; // 支付结果 + //TS 交易成功 + //TF 交易失败 + //NC 交易未确认 + //OF 银企异常 case "https://10.1.9.43/iuap-api-auth/yonbip/ctm/api/settlement/feedback": saveResponseBody = pushBill(token, saveUrl, saveRequestBody); jsonObject = JSON.parseObject(saveResponseBody); code = jsonObject.getString("code"); if ("200".equals(code)) { - dynamic.set("billstatus", "A"); - if ("TF、NC、OF".contains(dynamic.getString("bankpaystatus"))) { + dynamic.set("billstatus", "A"); dynamic.set("shkd_pushstatus", "结算失败"); } else if ("TS".equals(dynamic.getString("bankpaystatus"))) { dynamic.set("shkd_pushstatus", "已结算"); diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/PayBillApiSavePlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/PayBillApiSavePlugin.java index aac3670..556e589 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/PayBillApiSavePlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/PayBillApiSavePlugin.java @@ -71,7 +71,7 @@ public class PayBillApiSavePlugin implements ApiSavePlugin { // 付款银行编码 fieldName2 = "payerbank"; String billstatus = map.get("billstatus").toString(); - if ("B".equals(billstatus)) { + if ("A".equals(billstatus)) { map.put("shkd_pushstatus", "未结算"); } @@ -237,13 +237,13 @@ public class PayBillApiSavePlugin implements ApiSavePlugin { map.put(fieldName2, payeebank); // 如果为供应商或者客户 - if ("bd_supplier".equals(payeetype)) { + if ("bd_supplier".equals(payertype)) { Map societycreditcode = new HashMap<>(); societycreditcode.put("societycreditcode", map.get("payernumber").toString()); map.put("shkd_supplier", societycreditcode); logger.info("付款供应商统一社会信用代码:{}", map.get("payernumber")); - DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,number,name,societycreditcode,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank", new QFilter("societycreditcode", QCP.equals, map.get("payernumber").toString()).toArray()); + DynamicObject[] objects = BusinessDataServiceHelper.load(payertype.toString(), "id,number,name,societycreditcode,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank", new QFilter("societycreditcode", QCP.equals, map.get("payernumber").toString()).toArray()); if (objects.length > 0) { DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank"); @@ -256,13 +256,13 @@ public class PayBillApiSavePlugin implements ApiSavePlugin { //收款人编码 objectNumber = objects[0].getString("number"); } - } else if ("bd_customer".equals(payeetype)) { + } else if ("bd_customer".equals(payertype)) { Map societycreditcode = new HashMap<>(); societycreditcode.put("societycreditcode", map.get("payernumber").toString()); map.put("shkd_customer", societycreditcode); logger.info("付款客户统一社会信用代码:{}", map.get("payernumber")); - DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,number,name,societycreditcode,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank", new QFilter("societycreditcode", QCP.equals, map.get("payernumber").toString()).toArray()); + DynamicObject[] objects = BusinessDataServiceHelper.load(payertype.toString(), "id,number,name,societycreditcode,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank", new QFilter("societycreditcode", QCP.equals, map.get("payernumber").toString()).toArray()); if (objects.length > 0) { DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank"); @@ -274,12 +274,12 @@ public class PayBillApiSavePlugin implements ApiSavePlugin { //收款人编码 objectNumber = objects[0].getString("number"); } - } else if ("bos_user".equals(payeetype)) { + } else if ("bos_user".equals(payertype)) { Map username = new HashMap<>(); username.put("username", map.get("payernumber").toString()); map.put("shkd_user", username); - DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,name,number,username", new QFilter("username", QCP.equals, map.get("payernumber").toString()).toArray()); + DynamicObject[] objects = BusinessDataServiceHelper.load(payertype.toString(), "id,name,number,username", new QFilter("username", QCP.equals, map.get("payernumber").toString()).toArray()); if (objects.length > 0) { // 付款人编码 map.put("payernumber", objects[0].getString("number")); @@ -288,12 +288,12 @@ public class PayBillApiSavePlugin implements ApiSavePlugin { // 付款人编码 objectNumber = objects[0].getString("number"); } - } else if ("bos_org".equals(payeetype)) { + } else if ("bos_org".equals(payertype)) { Map number = new HashMap<>(); number.put("number", map.get("payernumber").toString()); map.put("shkd_org", number); - DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,number,name,", new QFilter("number", QCP.equals, map.get("payernumber").toString()).toArray()); + DynamicObject[] objects = BusinessDataServiceHelper.load(payertype.toString(), "id,number,name,", new QFilter("number", QCP.equals, map.get("payernumber").toString()).toArray()); if (objects.length > 0) { // 收款人编码 map.put("payernumber", objects[0].getString("number")); diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/FinanceReportFormPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/FinanceReportFormPlugin.java new file mode 100644 index 0000000..a1a77c5 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/FinanceReportFormPlugin.java @@ -0,0 +1,83 @@ +package shkd.sys.sys.plugin.report; + +import kd.bos.bill.BillShowParameter; +import kd.bos.bill.OperationStatus; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.LocaleString; +import kd.bos.entity.datamodel.IDataModel; +import kd.bos.entity.datamodel.events.PackageDataEvent; +import kd.bos.entity.report.FilterInfo; +import kd.bos.entity.report.FilterItemInfo; +import kd.bos.entity.report.ReportColumn; +import kd.bos.entity.report.ReportQueryParam; +import kd.bos.entity.report.queryds.ReportFilterField; +import kd.bos.entity.report.queryds.ReportFilterFieldConfig; +import kd.bos.filter.FilterColumn; +import kd.bos.form.ClientProperties; +import kd.bos.form.FormShowParameter; +import kd.bos.form.ShowType; +import kd.bos.form.control.events.FilterContainerInitEvent; +import kd.bos.form.events.HyperLinkClickEvent; +import kd.bos.form.events.HyperLinkClickListener; +import kd.bos.form.plugin.AbstractFormPlugin; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.report.ReportList; +import kd.bos.report.filter.ReportFilter; +import kd.bos.report.plugin.AbstractReportFormPlugin; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.QueryServiceHelper; +import org.apache.commons.lang3.time.DateUtils; + +import java.text.SimpleDateFormat; +import java.util.*; + +public class FinanceReportFormPlugin extends AbstractReportFormPlugin implements HyperLinkClickListener { + FilterContainerInitEvent contInitEvent; + ReportQueryParam queryParam; + + DynamicObject selorg; +// @Override +// public void packageData(PackageDataEvent evt) { +// +// if(evt.getFormatValue() != null && (evt.getFormatValue().toString().startsWith("139") +// +// || evt.getFormatValue().toString().startsWith("张") +// +// || evt.getFormatValue().toString().startsWith("00"))){ +// +// evt.getNoLinkKey().add(((ReportColumn)evt.getSource()).getFieldKey()); +// +// } +// +// } + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + ReportList reportlistap = this.getView().getControl("reportlistap"); + reportlistap.addHyperClickListener(this::hyperLinkClick); + } + + @Override + public void hyperLinkClick(HyperLinkClickEvent hyperLinkClickEvent) { + if ("shkd_org".equals(hyperLinkClickEvent.getFieldName())) { + ReportFilter filter =this.getView().getControl("reportfilterap"); + IDataModel model = this.getView().getModel(); + String name = (String) hyperLinkClickEvent.getRowData().get(0);//公司名称 + DynamicObject selorg = QueryServiceHelper.queryOne("bos_org", "id,name,number", (new QFilter("name", QCP.equals, name)).toArray()); + Long pkValue = selorg.getLong("id"); + DynamicObject single = BusinessDataServiceHelper.loadSingle(pkValue, "bos_org"); + this.getModel().setValue("shkd_selorg",single); + Object shkd_selorg = this.getView().getModel().getValue("shkd_selorg"); + filter.search(); + } + } + + @Override + protected void filterContainerInit(FilterContainerInitEvent contInitEvent, ReportQueryParam queryParam) { + this.contInitEvent= contInitEvent; + this.queryParam= queryParam; + super.filterContainerInit(contInitEvent, queryParam); + } +} diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/FinanceReportPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/FinanceReportPlugin.java new file mode 100644 index 0000000..8607810 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/FinanceReportPlugin.java @@ -0,0 +1,227 @@ +package shkd.sys.sys.plugin.report; + +import kd.bos.algo.DataSet; +import kd.bos.algo.JoinDataSet; +import kd.bos.algo.JoinType; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.db.DB; +import kd.bos.db.DBRoute; +import kd.bos.entity.MainEntityType; +import kd.bos.entity.report.AbstractReportListDataPlugin; +import kd.bos.entity.report.FastFilter; +import kd.bos.entity.report.FilterItemInfo; +import kd.bos.entity.report.ReportQueryParam; +import kd.bos.entity.tree.TreeNode; +import kd.bos.org.model.OrgTreeBuildType; +import kd.bos.org.model.OrgTreeParam; +import kd.bos.orm.ORM; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.MetadataServiceHelper; +import kd.bos.servicehelper.QueryServiceHelper; +import kd.bos.servicehelper.org.OrgUnitServiceHelper; +import kd.bos.servicehelper.org.OrgViewType; +import kd.bos.util.CollectionUtils; +import shkd.sys.sys.plugin.report.domain.FinanceVarietyEnum; + +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +public class FinanceReportPlugin extends AbstractReportListDataPlugin { + public List getListQFilter(ReportQueryParam reportQueryParam) { + //过滤条件数组 + ArrayList filters = new ArrayList<>(); + //初始化过滤数据 + List initFilter = reportQueryParam.getFilter().getFilterItems(); + if (CollectionUtils.isNotEmpty(initFilter)) { + for (FilterItemInfo filterItemInfo : initFilter) { +// QFilter filter = new QFilter(filterItemInfo.getPropName(), filterItemInfo.getCompareType(), filterItemInfo.getValue()); + QFilter filter = new QFilter(filterItemInfo.getPropName(), QCP.equals, filterItemInfo.getValue()); + filters.add(filter); + } + } + //快速过滤 + FastFilter fastFilter = reportQueryParam.getFilter().getFastFilter(); + if (fastFilter != null) { + List fastFilterList = reportQueryParam.getFilter().getFastFilter().getQFilters(); + //添加过滤条件 + if (CollectionUtils.isNotEmpty(fastFilterList)) { + filters.addAll(fastFilterList); + } + } + return filters; + } + + /* + * 将过滤条件存在集合中 + * */ + private void getFilterList(List qFilters, List orgIds, List dateList) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + for (QFilter filter : qFilters) { + if (filter.getProperty().contains("shkd_selorg")) { + DynamicObject org= (DynamicObject) filter.getValue(); + orgIds.add(org.getString("number")); + } else if (filter.getProperty().contains("shkd_seldate")) { + dateList.add(sdf.format(filter.getValue())); + } + } + } + + @Override + public DataSet query(ReportQueryParam reportQueryParam, Object o) throws Throwable { + //获取筛选器的值 + List listQFilter = getListQFilter(reportQueryParam); + List dateList = new ArrayList<>(); + DynamicObject selorgDy = null; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + for (QFilter filter : listQFilter) { + if (filter.getProperty().contains("shkd_selorg")) { + selorgDy= (DynamicObject) filter.getValue(); + } else if (filter.getProperty().contains("shkd_seldate")) { + dateList.add(sdf.format(filter.getValue())); + } + } + + HashMap> map = new HashMap<>();//组织层级关系 + getOrgrelate(map, selorgDy); + System.out.println(map); + //根据组织关系配置sql + StringBuilder sqlBuilder = new StringBuilder("/*dialect*/ "); + int size = map.size(); + int index = 0; + for (Map.Entry> entry : map.entrySet()) { + Long key = entry.getKey(); // 获取key + DynamicObject bos_org = BusinessDataServiceHelper.loadSingle(key,"bos_org");//直接下级业务单元 + List value = entry.getValue(); // 获取value + getSQlBuilder(dateList,value,bos_org.getString("number"),sqlBuilder); + + index++; + // 判断是否是最后一项 + if (index == size) { + + } else { + sqlBuilder.append("\n union all \n"); + } + + } + System.out.println(sqlBuilder); + DataSet res = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), sqlBuilder.toString());//财务云 + + + //业务单元数据集 + DataSet balanceDataSet = QueryServiceHelper.queryDataSet(this.getClass().getSimpleName(),"bos_org","id,number as shkd_orgnumber,name as shkd_org", null, null); + +// //当前业务单元的数据 +// MainEntityType uniondataEntityType = MetadataServiceHelper.getDataEntityType("cfm_loancontractbill"); +// String unionmainDbRouteKey = uniondataEntityType.getDBRouteKey(); +// StringBuilder sQlBuilder = getSQlBuilder(Arrays.asList(selorgDy.getLong("id")),selorgDy.getString("number")); +// DataSet nuion = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of(unionmainDbRouteKey), sQlBuilder.toString()); +// +// JoinDataSet join = res.join(balanceDataSet, JoinType.INNER);//连接组织 + //DataSet 转 DynamicObjectCollection +// DynamicObjectCollection srcCollection = ORM.create().toPlainDynamicObjectCollection(res.copy()); +// System.out.println(srcCollection); +// DataSet dataSet = join.on("orgnumber","shkd_orgnumber").select(new String[]{"shkd_orgnumber","shkd_org", "shkd_zqrzamount","shkd_dqjkamount","shkd_zqrzamount+shkd_dqjkamount as shkd_oneotnine"}).finish(); +// dataSet.addField("shkd_zqrzamount + shkd_dqjkamount","shkd_oneotnine");//1至9金额合计 +// return dataSet; + return res; + } + + /* + * 银行借款合同拼接方法 + * 拼接sql方法 + * */ + public StringBuilder getSQlBuilder(List dateList,List orgIds,String orgnumber,StringBuilder sqlBuilder){ + String result = orgIds.toString(); + result = result.substring(1, result.length() - 1); + sqlBuilder.append("SELECT '"+orgnumber+"' as shkd_orgnumber, \n"); + String zqrz = getrzpzId(FinanceVarietyEnum.zqrz, "cfm_financingvarieties");//获取债券融资的融资品种 + String dqjk = getrzpzId(FinanceVarietyEnum.dqjk, "cfm_financingvarieties");//获取短期借款的融资品种 + sqlBuilder.append("SUM ( CASE WHEN rzpz in ("+zqrz+") THEN je ELSE 0 END ) AS shkd_zqrzamount,\n" + + "SUM ( CASE WHEN rzpz in ("+zqrz+") THEN je*zxll ELSE 0 END )/SUM ( CASE WHEN rzpz in ("+zqrz+") THEN je ELSE 0 END ) AS shkd_zqrzrzcb,\n" + + "SUM ( CASE WHEN rzpz in ("+zqrz+") THEN je*(y+m/12.0+d/365.0) ELSE 0 END )/SUM ( CASE WHEN rzpz in ("+zqrz+") THEN je ELSE 0 END ) AS shkd_zqrzqx ,\n");//债券融资 + + sqlBuilder.append("SUM ( CASE WHEN rzpz in ("+dqjk+") THEN je ELSE 0 END ) AS shkd_dqjkamount,\n" + + "SUM ( CASE WHEN rzpz in ("+dqjk+") THEN je*zxll ELSE 0 END )/SUM ( CASE WHEN rzpz in ("+dqjk+") THEN je ELSE 0 END ) AS shkd_dqjkzrzcb,\n" + + "SUM ( CASE WHEN rzpz in ("+dqjk+") THEN je*(y+m/12.0+d/365.0) ELSE 0 END )/SUM ( CASE WHEN rzpz in ("+dqjk+") THEN je ELSE 0 END ) AS shkd_dqjkqx \n");//短期借款 + + sqlBuilder.append("FROM ( \n"); + sqlBuilder.append("SELECT\n" + + "t1.fbillno,t1.ffinproductid as rzpz,rpentry.fexdrawamount as je,e.forgid as zz,t.flatestrate as zxll,e.fterm AS qx,\n" + + "CASE WHEN POSITION ( 'y' IN e.fterm ) > 0 THEN CAST ( SUBSTRING ( e.fterm FROM 1 FOR POSITION ( 'y' IN e.fterm ) - 1 ) AS INT ) ELSE 0 END AS y,\n" + + "CASE WHEN POSITION ( 'm' IN e.fterm ) > 0 THEN CAST ( SUBSTRING ( e.fterm FROM CASE WHEN POSITION ( 'y' IN e.fterm ) > 0 THEN POSITION ( 'y' IN e.fterm ) + 1 ELSE 1 END FOR POSITION ( 'm' IN e.fterm ) - CASE WHEN POSITION ( 'y' IN e.fterm ) > 0 THEN POSITION ( 'y' IN e.fterm ) + 1 ELSE 1 END ) AS INT ) ELSE 0 END AS M,\n" + + "CASE WHEN POSITION ( 'd' IN e.fterm ) > 0 THEN CAST ( SUBSTRING ( e.fterm FROM CASE WHEN POSITION ( 'm' IN e.fterm ) > 0 THEN POSITION ( 'm' IN e.fterm ) + 1 WHEN POSITION ( 'y' IN e.fterm ) > 0 THEN POSITION ( 'y' IN e.fterm ) + 1 ELSE 1 END FOR POSITION ( 'd' IN e.fterm ) - CASE WHEN POSITION ( 'm' IN e.fterm ) > 0 THEN POSITION ( 'm' IN e.fterm ) + 1 WHEN POSITION ( 'y' IN e.fterm ) > 0 THEN POSITION ( 'y' IN e.fterm ) + 1 ELSE 1 END ) AS INT ) ELSE 0 END AS d \n" + + "FROM\n" + + " t_cfm_loanbill t1 \n" + + " INNER JOIN t_cfm_loanbill_e e ON e.fid = t1.fid \n" + + " INNER JOIN t_cfm_loanbill_t t ON t.fid = t1.fid \n" + + " INNER JOIN t_cfm_loanbill_rp_entry rpentry ON rpentry.fid = t1.fid \n" + + "WHERE\n" + + " t1.fbillstatus='C'\n" + + " and e.forgid IN ( "+result+" )\n" + + " and t1.fbizdate <= '"+dateList.get(0)+"'\n" + + " and rpentry.fexrepaymentdate > '"+dateList.get(0)+"' \n");//债券发行表 + + sqlBuilder.append("UNION ALL \n"); + + sqlBuilder.append("SELECT \n" + + " t2.fbillno as fbillno,COALESCE( NULLIF ( t2.fk_shkd_basedatafield, 0 ), t2.ffinproductid ) AS rzpz,rpentry.fexdrawamount as je,e.forgid as zz ,t.flatestrate as zxll,CONCAT(TIMESTAMPDIFF(YEAR, t3.fbizdate, rpentry.fexrepaymentdate), 'y',TIMESTAMPDIFF(MONTH, t3.fbizdate, rpentry.fexrepaymentdate) % 12, 'm',DATEDIFF(DAY,t3.fbizdate, rpentry.fexrepaymentdate) % 30, 'd') AS qx,\n" + + " TIMESTAMPDIFF(YEAR, t3.fbizdate, rpentry.fexrepaymentdate) AS y,\n" + + " TIMESTAMPDIFF(MONTH, t3.fbizdate, rpentry.fexrepaymentdate) % 12 AS m,\n" + + " DATEDIFF(DAY,t3.fbizdate, rpentry.fexrepaymentdate) % 30 AS d\n" + + "FROM\n" + + " t_cfm_loancontractbill t2 \n" + + " INNER JOIN t_cfm_loancontractbill_e e ON e.fid = t2.fid \n" + + " INNER JOIN t_cfm_loanbill_e e1 ON e1.floancontractbillid = t2.fid \n" + + " INNER JOIN t_cfm_loanbill t3 ON t3.fid = e1.fid \n" + + " INNER JOIN t_cfm_loanbill_rp_entry rpentry ON rpentry.fid = t3.fid \n" + + " INNER JOIN t_cfm_loanbill_t t ON t.fid = t3.fid \n" + + "WHERE\n" + + " t2.fbillstatus='C' and e.floantype<>'finlease' \n" + + " AND t3.fbillstatus='C'\n" + + " and e.forgid IN ( "+result+" )\n" + + " and t3.fbizdate <= '"+dateList.get(0)+"'\n" + + " and rpentry.fexrepaymentdate > '"+dateList.get(0)+"' \n");//借款合同表 + + sqlBuilder.append(") AS hbb"); + return sqlBuilder; + } + + public HashMap> getOrgrelate(HashMap> map,DynamicObject selorgDy){ + // 查询该组织的直接下级业务单元 + OrgTreeParam orgTreeParam=new OrgTreeParam(); + orgTreeParam.setId(selorgDy.getLong("id")); + orgTreeParam.setOrgViewType(OrgViewType.OrgUnit);//设置视图方案为业务单元的 + orgTreeParam.setTreeBuildType(OrgTreeBuildType.FILL_HIDDEN_PARENT_DIRECT); + List treeNodes=OrgUnitServiceHelper.getTreeChildren(orgTreeParam); + + for (TreeNode treeNode : treeNodes) { + Long id = Long.valueOf(treeNode.getId());//业务单元id + List orgIds = new ArrayList<>(1); + orgIds.add(id); + DynamicObject bos_org = BusinessDataServiceHelper.loadSingle(id,"bos_org");//直接下级业务单元 + //获取该组织的全部下级业务单元 + List allSubordinateOrgs = OrgUnitServiceHelper.getAllSubordinateOrgs(OrgViewType.OrgUnit, orgIds, true);//包括自己 +// OrgTreeParam param = new OrgTreeParam(); +// param.setId(id); +// param.setOrgViewNumber(OrgViewType.OrgUnit); +// Map treeRootNodeMapById = OrgUnitServiceHelper.getTreeRootNodeMapById(param); +// Boolean isleaf = (Boolean) treeRootNodeMapById.get("isleaf"); + map.put(id,allSubordinateOrgs); + } + return map; + } + + public String getrzpzId(List rzpz,String entity){ + QFilter qFilter = new QFilter("name", QCP.in, rzpz); + DynamicObject[] ids = BusinessDataServiceHelper.load(entity, "id", qFilter.toArray()); + // 使用 Stream 来将 ids 数组转为逗号分隔的字符串 + String result = Arrays.stream(ids) + .map(id -> id.getString("id")) // 假设 getId() 返回 id 的值 + .collect(Collectors.joining(",")); + return result; + } +} diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/domain/FinanceVarietyEnum.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/domain/FinanceVarietyEnum.java new file mode 100644 index 0000000..75e13ac --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/domain/FinanceVarietyEnum.java @@ -0,0 +1,18 @@ +package shkd.sys.sys.plugin.report.domain; + + +import java.util.Arrays; +import java.util.List; + +/* +* +* 融资品种枚举 +* */ +public class FinanceVarietyEnum { + + //①债券融资 + public static final List zqrz = Arrays.asList("短期融资券", "超短期融资券", "公司债券"," 企业债券", "中期票据", "定向债务融资工具","可转换公司债券"); + + //②短期借款 + public static final List dqjk = Arrays.asList("短期借款"); +} diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java index ce1c469..7ab8402 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java @@ -74,7 +74,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { "id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," + "payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," + "shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus" - , new QFilter("bizdate", QCP.large_equals, calculateTheDate(2)) + , new QFilter("bizdate", QCP.large_equals, calculateTheDate(10)) .and("bankpaystatus", QCP.in, new String[]{"TS", "TF", "NC", "OF"}) .and("shkd_pushstatus", QCP.equals, "未结算") .and(new QFilter("shkd_businessname", QCP.equals, "共享系统")).toArray()); @@ -129,7 +129,8 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { "bankdetailno,transbalance,description,debitamount,creditamount,shkd_pushstatus," + "shkd_businessnumber,shkd_businessid,shkd_businessname,recedbillentry,receiptno," + "recedbillentry.e_recedbilltype,recedbillentry.e_recedbillnumber,recedbillentry.e_recedbillid" - , new QFilter("bizdate", QCP.large_equals, getFirstDayOfMonth()) + , new QFilter("bizdate", QCP.large_equals, calculateTheDate(7)) + .and("bizdate", QCP.less_equals, calculateTheDate(1)) .and("shkd_pushstatus", QCP.not_equals, "已推送").toArray()); Arrays.stream(objects3).forEach(dynamicObject -> {