Browse Source

1.修改报销工作台快速过滤逻辑
2.调整报销、借款、还款逻辑

lisheng 1 day ago
parent
commit
ad078adbcd

+ 37 - 10
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/form/ReimWorkBenchesDetailFormPlugin.java

@@ -94,6 +94,22 @@ public class ReimWorkBenchesDetailFormPlugin extends AbstractFormPlugin implemen
     // 关闭
     private static final String BTN_CLOSE = "btn_close";
 
+    protected ReimWorkBenchesHelper reimHelper ;
+
+    @Override
+    public void initialize() {
+        super.initialize();
+        reimHelper = new ReimWorkBenchesHelper();
+    }
+
+    protected ReimWorkBenchesHelper getReimHelper(){
+        if(reimHelper != null){
+            return reimHelper;
+        }else{
+            return new ReimWorkBenchesHelper();
+        }
+    }
+
     @Override
     public void registerListener(EventObject e) {
         super.registerListener(e);
@@ -196,7 +212,7 @@ public class ReimWorkBenchesDetailFormPlugin extends AbstractFormPlugin implemen
 
         // 差旅借款单
         if("er_dailyloanbill".equals(billtype)){
-            botpCreateBillOpen(billid,billtype, "er_publicreimbursebill");
+            botpCreateBillOpen(billid,billtype, "er_tripreimbursebill");
             return;
         }
 
@@ -232,12 +248,6 @@ public class ReimWorkBenchesDetailFormPlugin extends AbstractFormPlugin implemen
             return;
         }
 
-        // 差旅借款单
-        if("er_dailyloanbill".equals(billtype)){
-            botpCreateBillOpen(billid,billtype, "er_dailyloanbill");
-            return;
-        }
-
         // 外办申请单
         if("er_dailyvehiclebill".equals(billtype)){
             botpCreateBillOpen(billid,billtype, "er_prepaybill");
@@ -254,6 +264,24 @@ public class ReimWorkBenchesDetailFormPlugin extends AbstractFormPlugin implemen
     }
 
     protected void doRepay(ItemClickEvent evt){
+        DynamicObject selectRow = getSelectRows().get(0);
+        String billtype = selectRow.getString("billtype");
+        String billid = selectRow.getString("billid");
+
+
+        // 差旅借款单
+        if("er_dailyloanbill".equals(billtype)){
+            botpCreateBillOpen(billid,billtype, "er_repaymentbill");
+            return;
+        }
+
+
+        // 预付单
+        if("er_prepaybill".equals(billtype)){
+            botpCreateBillOpen(billid,billtype, "er_repaymentbill");
+            return;
+        }
+        throw new KDBizException("单据无法进行还款操作。");
 
     }
 
@@ -483,7 +511,7 @@ public class ReimWorkBenchesDetailFormPlugin extends AbstractFormPlugin implemen
 
     protected  DataSet queryDataSet(ReimDetailTypeEnum reportType){
         String quickFilter = getQuicklyQueryContent();
-        ReimWorkBenchesHelper service = new ReimWorkBenchesHelper();
+        ReimWorkBenchesHelper service = getReimHelper();
         if(reportType.equals(ReimDetailTypeEnum.APPLY)){
             return service.queryDataApply(null,quickFilter);
         }
@@ -503,8 +531,7 @@ public class ReimWorkBenchesDetailFormPlugin extends AbstractFormPlugin implemen
     }
 
     protected String getQuicklyQueryContent(){
-        Search search = getView().getParentView().getControl("nckd_searchap");
-        return Optional.ofNullable(search.getSearchKey()).orElse("");
+        return (String)getView().getParentView().getModel().getValue("nckd_quicklysearch");
     }
 
     protected List<DynamicObject> getSelectRows(){

+ 25 - 8
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/form/ReimWorkBenchesFormPlugin.java

@@ -2,6 +2,7 @@ package nckd.jimin.jyyy.fi.plugin.form;
 
 import kd.bos.algo.DataSet;
 import kd.bos.bill.OperationStatus;
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
 import kd.bos.form.FormShowParameter;
 import kd.bos.form.IClientViewProxy;
 import kd.bos.form.ShowType;
@@ -22,8 +23,7 @@ public class ReimWorkBenchesFormPlugin extends AbstractFormPlugin implements Tab
     // 切换报销台
     private static final String BTN_QUICKSEARCH = "btn_quicksearch";
 
-    // 快速搜索控件
-    private static final String NCKD_SEARCHAP = "nckd_searchap";
+    private static final String NCKD_QUICKLYSEARCH = "nckd_quicklysearch";
 
     // 页签
     private static final String NCKD_TABAP = "nckd_tabap";
@@ -66,11 +66,20 @@ public class ReimWorkBenchesFormPlugin extends AbstractFormPlugin implements Tab
             getView().showTipNotification("没有匹配的数据。");
             return;
         }
-        tab.activeTab(NCKD_TAB_FLAG + detailType.getKey());
 
-//        Search search = this.getControl(NCKD_SEARCHAP);
-//        search.setSearchKey(null);
-//       getView().updateView(NCKD_SEARCHAP);
+        String currentTab = tab.getCurrentTab();
+        if(currentTab.equals(NCKD_TAB_FLAG + detailType.getKey())){
+            // 搜索控件搜索的关键字
+            FormShowParameter params = new FormShowParameter();
+            params.setFormId("nckd_reimbenchesdetail");
+            params.getOpenStyle().setShowType(ShowType.InContainer);
+            params.getOpenStyle().setTargetKey(currentTab);
+            params.setCustomParam("reimtype",currentTab.replace(NCKD_TAB_FLAG,""));
+            params.setStatus(OperationStatus.VIEW);
+            getView().showForm(params);
+        }else{
+            tab.activeTab(NCKD_TAB_FLAG + detailType.getKey());
+        }
     }
 
     /**
@@ -80,8 +89,7 @@ public class ReimWorkBenchesFormPlugin extends AbstractFormPlugin implements Tab
     protected ReimDetailTypeEnum getQucickFilterData(){
         ReimWorkBenchesHelper service = new ReimWorkBenchesHelper();
         ReimDetailTypeEnum[] detailTypeArray = ReimDetailTypeEnum.values();
-        Search search = this.getControl(NCKD_SEARCHAP);
-        String quickFilter = search.getSearchKey();
+        String quickFilter = (String)this.getModel().getValue(NCKD_QUICKLYSEARCH);
         for(ReimDetailTypeEnum detailType : detailTypeArray){
 
             if(detailType.equals(ReimDetailTypeEnum.APPLY)){
@@ -137,6 +145,15 @@ public class ReimWorkBenchesFormPlugin extends AbstractFormPlugin implements Tab
 
     }
 
+    @Override
+    public void propertyChanged(PropertyChangedArgs e) {
+        super.propertyChanged(e);
+        String name = e.getProperty().getName();
+        if(NCKD_QUICKLYSEARCH.equals(name)){
+            quicklySearch();
+        }
+    }
+
     @Override
     public void search(SearchEnterEvent event) {
 //        Search search = (Search)event.getSource();

+ 5 - 5
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/form/ReimWorkBenchesHelper.java

@@ -62,7 +62,7 @@ public class ReimWorkBenchesHelper {
 
         DataSet dailyApplyDataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "er_dailyapplybill",
                 "id billid,bizdate applydate,'er_dailyapplybill' billtype,'er_dailyapplybill' pageid,billno billno,description description,applyamount applyamount," +
-                        "approveamount approveamount,billstatus billstatus,company.id company,applier.id applier",
+                        "approveamount approveamount,billstatus billstatus,costcompany.id company,applier.id applier",
                 applierFilter.toArray(new QFilter[0]), "");
 
         dataSetList.add(getTaskApproveData(dailyVehHeadDataSet));
@@ -85,7 +85,7 @@ public class ReimWorkBenchesHelper {
         DataSet prepayBillDataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "er_prepaybill",
                 "id billid,bizdate applydate,'er_prepaybill' billtype,case when nckd_pageid = 'nckd_er_srmperpaybill' then 'nckd_er_srmperpaybill' else 'nckd_er_dailyloanbill' end pageid," +
                         "billno billno,description description,loanamount applyamount," +
-                        "approveamount approveamount,billstatus billstatus,company.id company,applier.id applier",
+                        "approveamount approveamount,billstatus billstatus,costcompany.id company,applier.id applier",
                 loanPayFilter.toArray(new QFilter[0]), "");
 
 
@@ -119,12 +119,12 @@ public class ReimWorkBenchesHelper {
         // 确认可用余额的取值逻辑
         DataSet dailyVehDataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "er_dailyvehiclebill",
                 "id billid,bizdate applydate,'er_dailyvehiclebill' billtype,'er_dailyvehiclebill' pageid,billno billno,description description,null applyamount," +
-                        "null approveamount,null balanceamount,billstatus billstatus,company.id costcompany,applier.id applier",
+                        "null approveamount,null balanceamount,billstatus billstatus,costcompany.id company,applier.id applier",
                 getFilterArr(projectPersonFilter,quickFilter,applyStatusFilter), "");
 
         DataSet tripReqDataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "er_tripreqbill",
                 "id billid,bizdate applydate,'er_tripreqbill' billtype,'er_tripreqbill' pageid,billno billno,description description,null applyamount," +
-                        "null approveamount,null balanceamount,billstatus billstatus,company.id costcompany,applier.id applier",
+                        "null approveamount,null balanceamount,billstatus billstatus,costcompany.id company,applier.id applier",
                 getFilterArr(projectPersonFilter,quickFilter,applyStatusFilter), "");
 
         DataSet dailyApplyDataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "er_dailyapplybill",
@@ -314,7 +314,7 @@ public class ReimWorkBenchesHelper {
         DataSet repaymentBillDataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "er_repaymentbill",
                 "id billid,repaymentdate applydate,'er_repaymentbill' billtype,case when trim(nckd_pageid) != '' then nckd_pageid else 'nckd_repaymentbill' end pageid," +
                         "billno billno,description description,amount applyamount," +
-                        "approveamount approveamount,billstatus billstatus,company.id company,applier.id applier",
+                        "approveamount approveamount,billstatus billstatus,costcompany.id company,applier.id applier",
                 repayFilter.toArray(new QFilter[0]), "");
         return getTaskApproveData(repaymentBillDataSet);
     }