浏览代码

资金预警需求-预警报表:
1.删除没有使用的报表插件类
2.增加报表插件,通过数量查看关联的交易明细详情
3.日常报销夜间额外创建报表

lisheng 1 天之前
父节点
当前提交
7eddc797ea

+ 14 - 1
main/java/kd/cosmic/jkjt/tmc/bei/formplugin/detail/TransDetailMsgWarnList.java

@@ -72,7 +72,7 @@ public class TransDetailMsgWarnList extends AbstractListPlugin {
         List<QFilter> qFilters = e.getQFilters();
         // 其他账户
         if("nckd_rpt_otheraccount".equals(billFormId)){
-            //qFilters.add(new QFilter("accountbank.isdefaultpay", QFilter.equals, false));
+            qFilters.add(new QFilter("accountbank.isdefaultpay", QFilter.equals, false));
             qFilters.add(QFilter.isNotNull("oppunit"));
             qFilters.add(new QFilter("length(trim(oppunit))", QCP.large_than,0));
             qFilters.add(new QFilter("length(oppunit)", QCP.less_equals,4));
@@ -84,5 +84,18 @@ public class TransDetailMsgWarnList extends AbstractListPlugin {
         if( "nckd_rpt_accchange".equals(billFormId)){
             return;
         }
+        // 动账提醒夜间提醒
+        if("nckd_rpt_dailyreimnight".equals(billFormId)){
+            qFilters.add(QFilter.isNotNull("oppunit"));
+            qFilters.add(new QFilter("length(trim(oppunit))", QCP.large_than,0));
+            qFilters.add(new QFilter("length(oppunit)", QCP.less_equals,4));
+            qFilters.add(new QFilter("debitamount",QCP.large_than, BigDecimal.ZERO));
+            qFilters.add(new QFilter("accountbank.isdefaultpay",QCP.equals, true));
+
+            QFilter bizTimeFilter = new QFilter("Hour(biztime)", QCP.large_equals,21).and(new QFilter("Hour(biztime)", QCP.less_equals,24))
+                    .or(new QFilter("Hour(biztime)", QCP.less_than,9));
+            qFilters.add(bizTimeFilter);
+
+        }
     }
 }

+ 8 - 8
main/java/kd/cosmic/jkjt/tmc/bei/report/plugin/DailyReimQueryListDataPlugin.java

@@ -80,8 +80,8 @@ public class DailyReimQueryListDataPlugin extends AbstractReportListDataPlugin {
 
         // 通过公司、我方账号,对方账号分组,求和
         DataSet amountDataSet = dataSet
-                .groupBy(new String[]{"company.id", "accountbank.id", "oppunit"}).sum("debitamount").count("totaltimes").finish()
-                .select("company.id,oppunit,accountbank.id,debitamount totalamount,totaltimes").filter("totalamount > 1000000");
+                .groupBy(new String[]{"company.id", "accountbank.id", "oppunit"}).groupConcat("id","idlist",",").sum("debitamount").count("totaltimes").finish()
+                .select("company.id,oppunit,accountbank.id,debitamount totalamount,totaltimes,idlist").filter("totalamount > 1000000");
         Set companyIdSet = CommonUtils.getFieldValue(amountDataSet, "company.id");
         DataSet companyDataSet = QueryServiceHelper
                 .queryDataSet(this.getClass().getName(), "bos_org", "id,name", new QFilter("id", QCP.in, companyIdSet).toArray(), "");
@@ -91,9 +91,9 @@ public class DailyReimQueryListDataPlugin extends AbstractReportListDataPlugin {
                 .queryDataSet(this.getClass().getName(), "bd_accountbanks", "id,bankaccountnumber,bank.name", new QFilter("id", QCP.in, accountBankIdSet).toArray(), "");
         return amountDataSet
                 .leftJoin(companyDataSet).on("company.id", "id")
-                .select( new String[] {"company.id nckd_company", "oppunit nckd_oppunit", "accountbank.id accountbankid","totaltimes nckd_count","totalamount nckd_amount"},  new String[] {"name nckd_payaccount"}).finish()
+                .select( new String[] {"company.id nckd_company", "oppunit nckd_oppunit", "accountbank.id accountbankid","totaltimes nckd_count","totalamount nckd_amount","idlist nckd_relateids"},  new String[] {"name nckd_payaccount"}).finish()
                 .leftJoin(accountBankDataSet).on("accountbankid", "id")
-                .select(new String[] {"nckd_company", "nckd_oppunit", "nckd_payaccount","nckd_count","nckd_amount","'amount' nckd_source"}, new String[]{"bankaccountnumber nckd_payaccbanknumber", "bank.name nckd_payaccbank"})
+                .select(new String[] {"nckd_company", "nckd_oppunit", "nckd_payaccount","nckd_count","nckd_amount","'amount' nckd_source","nckd_relateids"}, new String[]{"bankaccountnumber nckd_payaccbanknumber", "bank.name nckd_payaccbank"})
                 .finish();
 
     }
@@ -106,8 +106,8 @@ public class DailyReimQueryListDataPlugin extends AbstractReportListDataPlugin {
 
         // 通过公司、我方账号,对方账号分组,求和
         DataSet amountDataSet = dataSet
-                .groupBy(new String[]{"company.id", "accountbank.id", "oppunit"}).sum("debitamount").count("totaltimes").finish()
-                .select("company.id,oppunit,accountbank.id,debitamount totalamount,totaltimes").filter("totaltimes > 20");
+                .groupBy(new String[]{"company.id", "accountbank.id", "oppunit"}).groupConcat("id","idlist",",").sum("debitamount").count("totaltimes").finish()
+                .select("company.id,oppunit,accountbank.id,debitamount totalamount,totaltimes,idlist").filter("totaltimes > 20");
         Set companyIdSet = CommonUtils.getFieldValue(amountDataSet, "company.id");
         DataSet companyDataSet = QueryServiceHelper
                 .queryDataSet(this.getClass().getName(), "bos_org", "id,name", new QFilter("id", QCP.in, companyIdSet).toArray(), "");
@@ -117,9 +117,9 @@ public class DailyReimQueryListDataPlugin extends AbstractReportListDataPlugin {
                 .queryDataSet(this.getClass().getName(), "bd_accountbanks", "id,bankaccountnumber,bank.name", new QFilter("id", QCP.in, accountBankIdSet).toArray(), "");
         return amountDataSet
                 .leftJoin(companyDataSet).on("company.id", "id")
-                .select( new String[] {"company.id nckd_company", "oppunit nckd_oppunit", "accountbank.id accountbankid","totaltimes nckd_count","totalamount nckd_amount"},  new String[] {"name nckd_payaccount"}).finish()
+                .select( new String[] {"company.id nckd_company", "oppunit nckd_oppunit", "accountbank.id accountbankid","totaltimes nckd_count","totalamount nckd_amount","idlist nckd_relateids"},  new String[] {"name nckd_payaccount"}).finish()
                 .leftJoin(accountBankDataSet).on("accountbankid", "id")
-                .select(new String[] {"nckd_company", "nckd_oppunit", "nckd_payaccount","nckd_count","nckd_amount","'times' nckd_source"}, new String[]{"bankaccountnumber nckd_payaccbanknumber", "bank.name nckd_payaccbank"})
+                .select(new String[] {"nckd_company", "nckd_oppunit", "nckd_payaccount","nckd_count","nckd_amount","'times' nckd_source","nckd_relateids"}, new String[]{"bankaccountnumber nckd_payaccbanknumber", "bank.name nckd_payaccbank"})
                 .finish();
     }
 }

+ 51 - 0
main/java/kd/cosmic/jkjt/tmc/bei/report/plugin/DailyReimReportFormPlugin.java

@@ -0,0 +1,51 @@
+package kd.cosmic.jkjt.tmc.bei.report.plugin;
+
+import kd.bos.form.ShowType;
+import kd.bos.form.events.HyperLinkClickEvent;
+import kd.bos.form.events.HyperLinkClickListener;
+import kd.bos.list.ListShowParameter;
+import kd.bos.orm.query.QFilter;
+import kd.bos.report.ReportList;
+import kd.bos.report.plugin.AbstractReportFormPlugin;
+import kd.bos.util.StringUtils;
+import kd.cosmic.jkjt.tmc.bei.common.constant.BeiBeTransDetailConstant;
+
+import java.util.Arrays;
+import java.util.EventObject;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class DailyReimReportFormPlugin extends AbstractReportFormPlugin implements HyperLinkClickListener {
+
+
+    @Override
+    public void registerListener(EventObject e) {
+        super.registerListener(e);
+        ReportList reportList = (ReportList)this.getControl("reportlistap");
+        reportList.addHyperClickListener(this);
+    }
+
+    @Override
+    public void hyperLinkClick(HyperLinkClickEvent event) {
+        String fieldName = event.getFieldName();
+        if("nckd_count".equals(fieldName)){
+            int rowIndex = event.getRowIndex();
+            String nckd_relateids = event.getRowData().getString("nckd_relateids");
+            if(StringUtils.isNotEmpty(nckd_relateids)){
+                List<Long> idList = Arrays.stream(nckd_relateids.split(",")).map(r -> Long.valueOf(r)).collect(Collectors.toList());
+                ListShowParameter listShowParameter = new ListShowParameter();
+
+                listShowParameter.setFormId("bos_list");
+
+                listShowParameter.setBillFormId("nckd_rpt_dailyreimdetail");
+
+                listShowParameter.getOpenStyle().setShowType(ShowType.MainNewTabPage);
+
+                List<QFilter> qFilters = listShowParameter.getListFilterParameter().getQFilters();
+                qFilters.add(new QFilter("id", QFilter.in, idList));
+                this.getView().showForm(listShowParameter);
+            }
+        }
+
+    }
+}

+ 4 - 4
main/java/kd/cosmic/jkjt/tmc/bei/report/plugin/NonDirectConQueryListDataPlugin.java

@@ -59,8 +59,8 @@ public class NonDirectConQueryListDataPlugin extends AbstractReportListDataPlugi
 
         // 通过公司、我方账号,对方账号分组,求和
         DataSet amountDataSet = dataSet
-                .groupBy(new String[]{"company.id", "accountbank.id"}).sum(amountField).count("totaltimes").finish()
-                .select("company.id,accountbank.id,"+amountField+" totalamount,totaltimes");
+                .groupBy(new String[]{"company.id", "accountbank.id"}).groupConcat("id","idlist",",").sum(amountField).count("totaltimes").finish()
+                .select("company.id,accountbank.id,"+amountField+" totalamount,totaltimes,idlist");
 
         Set companyIdSet = CommonUtils.getFieldValue(amountDataSet, "company.id");
         DataSet companyDataSet = QueryServiceHelper
@@ -71,9 +71,9 @@ public class NonDirectConQueryListDataPlugin extends AbstractReportListDataPlugi
                 .queryDataSet(this.getClass().getName(), "bd_accountbanks", "id,bankaccountnumber,bank.name", new QFilter("id", QCP.in, accountBankIdSet).toArray(), "");
         return amountDataSet
                 .leftJoin(companyDataSet).on("company.id", "id")
-                .select( new String[] {"company.id nckd_company", "accountbank.id accountbankid","totaltimes nckd_count","totalamount nckd_amount"},  new String[] {"name nckd_payaccount"}).finish()
+                .select( new String[] {"company.id nckd_company", "accountbank.id accountbankid","totaltimes nckd_count","totalamount nckd_amount","idlist nckd_relateids"},  new String[] {"name nckd_payaccount"}).finish()
                 .leftJoin(accountBankDataSet).on("accountbankid", "id")
-                .select(new String[] {"nckd_company", "nckd_payaccount","nckd_count","nckd_amount", String.format("'%s' nckd_dc",isDebitamount?"1":"-1")}, new String[]{"bankaccountnumber nckd_payaccbanknumber", "bank.name nckd_payaccbank"})
+                .select(new String[] {"nckd_company", "nckd_payaccount","nckd_count","nckd_amount", String.format("'%s' nckd_dc",isDebitamount?"1":"-1"),"nckd_relateids"}, new String[]{"bankaccountnumber nckd_payaccbanknumber", "bank.name nckd_payaccbank"})
                 .finish();
     }
 }

+ 0 - 15
main/java/kd/cosmic/jkjt/tmc/bei/report/plugin/TransDetailMsgListDataPlugin.java

@@ -1,15 +0,0 @@
-package kd.cosmic.jkjt.tmc.bei.report.plugin;
-
-import kd.bos.algo.DataSet;
-import kd.bos.entity.report.AbstractReportListDataPlugin;
-import kd.bos.entity.report.ReportQueryParam;
-
-import java.util.Map;
-
-public class TransDetailMsgListDataPlugin extends AbstractReportListDataPlugin {
-    @Override
-    public DataSet query(ReportQueryParam reportQueryParam, Object o) throws Throwable {
-        Map<String, Object> customParam = reportQueryParam.getCustomParam();
-        return null;
-    }
-}

+ 0 - 29
main/java/kd/cosmic/jkjt/tmc/bei/report/plugin/TransDetailMsgWarnReportPlugin.java

@@ -1,29 +0,0 @@
-package kd.cosmic.jkjt.tmc.bei.report.plugin;
-
-import kd.bos.entity.report.FilterInfo;
-import kd.bos.entity.report.ReportQueryParam;
-import kd.bos.form.control.events.FilterContainerInitEvent;
-import kd.bos.report.events.CreateFilterInfoEvent;
-import kd.bos.report.plugin.AbstractReportFormPlugin;
-
-public class TransDetailMsgWarnReportPlugin extends AbstractReportFormPlugin {
-    @Override
-    protected void filterContainerInit(FilterContainerInitEvent contInitEvent, ReportQueryParam queryParam) {
-        super.filterContainerInit(contInitEvent, queryParam);
-
-    }
-
-    @Override
-    public void beforeQuery(ReportQueryParam queryParam) {
-        super.beforeQuery(queryParam);
-        FilterInfo filter = queryParam.getFilter();
-        filter.getFilterItems().removeIf(filterItemInfo -> filterItemInfo.getPropName().equals("nckd_warntype"));
-    }
-
-    @Override
-    public void beforeCreateFilterInfo(CreateFilterInfoEvent event) {
-        super.beforeCreateFilterInfo(event);
-
-    }
-
-}

+ 1 - 0
main/java/kd/cosmic/jkjt/tmc/bei/task/PersonalFinanceMsgWarnTask.java

@@ -120,6 +120,7 @@ public class PersonalFinanceMsgWarnTask extends AbstractTask implements StopTask
         DynamicObject accountBank = QueryServiceHelper.queryOne("bd_accountbanks", "bankaccountnumber,bank.name",
                 new QFilter("id", QCP.equals,accountBankId).toArray());
         return MsgWarnTemplateConstant.formatDailyMessage(
+                null,
                 payerAccount,
                 accountBank.getString("bankaccountnumber"),
                 accountBank.getString("bank.name"),