4 Commits d508da7a92 ... 5e9188040e

Auteur SHA1 Bericht Datum
  lisheng 5e9188040e Merge branch 'master' of http://111.75.220.136:10030/turborao/jyyy 1 week geleden
  lisheng a4810a7d19 费用标准配置 1 week geleden
  lisheng 7ed985d03b 报销工作台 1 week geleden
  lisheng db25cf07a1 单据收退换功能 1 week geleden

+ 2 - 0
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/common/constant/HandInReceiveTicketConstant.java

@@ -40,6 +40,8 @@ public interface HandInReceiveTicketConstant {
          */
         String KEY_NCKD_FORMID = "nckd_formid";
 
+        String KEY_NCKD_PAGEID = "nckd_pageid";
+
         /**
          * 公司
          */

+ 19 - 2
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/form/HandInReceiveTicketPlugin.java

@@ -10,6 +10,7 @@ import kd.bos.dataentity.OperateOption;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.dataentity.metadata.IDataEntityProperty;
+import kd.bos.dataentity.metadata.clr.DataEntityPropertyCollection;
 import kd.bos.dataentity.resource.ResManager;
 import kd.bos.entity.EntityMetadataCache;
 import kd.bos.entity.MainEntityType;
@@ -146,14 +147,29 @@ public class HandInReceiveTicketPlugin extends AbstractFormPlugin implements Row
     }
 
     protected Boolean loadBillInfo(String billlType , String billNo){
+        String companyField = "costcompany";
+        if(BillTypeConstants.ER_CHECKINGPAYBILL.equals(billlType)){
+            companyField = "company";
+        }
         String selector = String.join(",",ErReimBurseBillConstant.ID,ErReimBurseBillConstant.KEY_BILLNO,ErReimBurseBillConstant.KEY_COMPANY,
                 ErReimBurseBillConstant.KEY_NCKD_HANDIN_PERSON,ErReimBurseBillConstant.KEY_NCKD_RECEIPT_PERSON);
+        DataEntityPropertyCollection properties = EntityMetadataCache.getDataEntityType(billlType).getProperties();
+        if(properties.containsKey(ErReimBurseBillConstant.KEY_NCKD_PAGEID)){
+            selector = String.join(",",selector,ErReimBurseBillConstant.KEY_NCKD_PAGEID);
+        }
+
         DynamicObject tripReimBurseBill = BusinessDataServiceHelper.loadSingle(billlType,selector,
                 new QFilter(ErReimBurseBillConstant.KEY_BILLNO, QCP.equals, billNo).toArray());
         if(tripReimBurseBill != null){
+            String pageId = billlType;
+            if(properties.containsKey(ErReimBurseBillConstant.KEY_NCKD_PAGEID) && !StringUtils.isEmpty(tripReimBurseBill.getString(ErReimBurseBillConstant.KEY_NCKD_PAGEID))){
+                pageId = tripReimBurseBill.getString(ErReimBurseBillConstant.KEY_NCKD_PAGEID);
+            }
+
             addScanBillEntry(tripReimBurseBill.getString(ErReimBurseBillConstant.KEY_BILLNO),getReceiptStatus(tripReimBurseBill),
                     tripReimBurseBill.get(ErReimBurseBillConstant.ID), billlType,
-                    tripReimBurseBill.getDynamicObject(ErReimBurseBillConstant.KEY_COMPANY).getPkValue());
+                    tripReimBurseBill.getDynamicObject(ErReimBurseBillConstant.KEY_COMPANY).getPkValue(),
+                    pageId);
             return true;
         }
         return false;
@@ -179,12 +195,13 @@ public class HandInReceiveTicketPlugin extends AbstractFormPlugin implements Row
     }
 
 
-    protected void addScanBillEntry(String number, String status, Object billId, String formId, Object companyId){
+    protected void addScanBillEntry(String number, String status, Object billId, String formId, Object companyId,String pageId){
         int newEntryRow = this.getModel().createNewEntryRow(HandInReceiveTicketConstant.SCANBILLENTRY.ENTITYID);
         getModel().setValue(HandInReceiveTicketConstant.SCANBILLENTRY.KEY_NCKD_NUMBER,number,newEntryRow);
         getModel().setValue(HandInReceiveTicketConstant.SCANBILLENTRY.KEY_NCKD_STATUS,status,newEntryRow);
         getModel().setValue(HandInReceiveTicketConstant.SCANBILLENTRY.KEY_NCKD_BILLID,billId,newEntryRow);
         getModel().setValue(HandInReceiveTicketConstant.SCANBILLENTRY.KEY_NCKD_FORMID,formId,newEntryRow);
+        getModel().setValue(HandInReceiveTicketConstant.SCANBILLENTRY.KEY_NCKD_PAGEID,pageId,newEntryRow);
         getModel().setItemValueByID(HandInReceiveTicketConstant.SCANBILLENTRY.KEY_NCKD_COMPANY,companyId,newEntryRow);
         getView().updateView(HandInReceiveTicketConstant.SCANBILLENTRY.ENTITYID);
     }

+ 51 - 0
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/form/LimitRelasetEdit.java

@@ -0,0 +1,51 @@
+package nckd.jimin.jyyy.fi.plugin.form;
+
+import kd.bos.bill.AbstractBillPlugIn;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.entity.datamodel.BasedataItem;
+import kd.bos.entity.datamodel.events.QueryImportBasedataEventArgs;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.QueryServiceHelper;
+import nckd.jimin.jyyy.fi.common.constant.BillTypeConstants;
+
+import java.util.List;
+import java.util.Map;
+
+public class LimitRelasetEdit extends AbstractBillPlugIn {
+
+    @Override
+    public void queryImportBasedata(QueryImportBasedataEventArgs e) {
+        super.queryImportBasedata(e);
+        Map<BasedataItem, List<Object>> searchResult = e.getSearchResult();
+
+        for(Map.Entry<BasedataItem, List<Object>> entryRow : searchResult.entrySet()){
+            BasedataItem basedataItem = entryRow.getKey();
+            String entityNumber = basedataItem.getEntityNumber();
+            List<Object> dataValues = entryRow.getValue();
+            // 岗位 或者 职级 且 查询数量大于1
+            if(dataValues.size() > 1 && basedataItem.getFieldKey().equals("nckd_classfield_jobpos")){
+                // 查询职级方案
+                DynamicObjectCollection dataCol = null;
+                if("hbjm_joblevelhr".equals(entityNumber)){
+                    dataCol = QueryServiceHelper.query(entityNumber, "id", new QFilter[]{
+                            new QFilter("id", QCP.in, dataValues),
+                            new QFilter("enable", QCP.equals, "1"),
+                            new QFilter("joblevelscm.iscurrentversion", QCP.equals, "1")
+                    });
+                }else{
+                    dataCol = QueryServiceHelper.query(entityNumber, "id", new QFilter[]{
+                            new QFilter("id", QCP.in, dataValues),
+                            new QFilter("iscurrentversion", QCP.equals, "1")
+                    });
+                }
+
+                if(dataCol != null && dataCol.size() == 1){
+                    dataValues.clear();
+                    dataValues.add(dataCol.get(0).get("id"));
+                }
+            }
+        }
+    }
+}

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

@@ -225,17 +225,17 @@ public class ReimWorkBenchesHelper {
         }
 
         // 显示已废弃、已关闭、审核未通过、审核通过(可用余额=0)的申请类单据。
-        QFilter applyBillStatusFilter = new QFilter("billstatus", QCP.in, new String[]{"H", "I", "D","E"});
+        QFilter applyBillStatusFilter = new QFilter("billstatus", QCP.in, new String[]{"H", "I","E"});
 
         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,billstatus billstatus,costcompany.id company,applier.id applier",
-                getFilterArr(projectPersonFilter,quickFilter,applyBillStatusFilter), "");
+                getFilterArr(projectPersonFilter,quickFilter,new QFilter("billstatus", QCP.equals, "I")), "");
 
         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,billstatus billstatus,costcompany.id company,applier.id applier",
-                getFilterArr(projectPersonFilter,quickFilter,applyBillStatusFilter), "");
+                getFilterArr(projectPersonFilter,quickFilter,new QFilter("billstatus", QCP.in, new String[]{"H", "I"})), "");
 
         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," +
@@ -246,7 +246,7 @@ public class ReimWorkBenchesHelper {
         dataSetList.add(dailyApplyDataSet);
 
         //已废弃、已关闭、审核未通过、审核通过(借款余额=0)、已付款(借款余额=0)的借款预付类单据。
-        QFilter prepayBillStatusFilter = new QFilter("billstatus", QCP.in, new String[]{"H", "I", "D"})
+        QFilter prepayBillStatusFilter = new QFilter("billstatus", QCP.in, new String[]{"H", "I"})
                 .or(new QFilter("billstatus", QCP.in, new String[]{"E","G"}).and(new QFilter("balanceamount", QCP.equals, BigDecimal.ZERO)));
 
         DataSet dailyloanDataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "er_dailyloanbill",
@@ -262,7 +262,7 @@ public class ReimWorkBenchesHelper {
         dataSetList.add(dailyloanDataSet);
         dataSetList.add(prepayBillDataSet);
         // 显示已废弃、已关闭、审核未通过、已付款的报销类单据。
-        QFilter reimBillStatusFilter = new QFilter("billstatus", QCP.in, new String[]{"H", "I", "D","G"});
+        QFilter reimBillStatusFilter = new QFilter("billstatus", QCP.in, new String[]{"H", "I","G"});
         DataSet tripReimBillDataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "er_tripreimbursebill",
                 "id billid,bizdate applydate,'er_tripreimbursebill' billtype,'er_tripreimbursebill' pageid,billno billno,description description,amount applyamount," +
                         "approveamount approveamount,billstatus billstatus,costcompany.id company,applier.id applier",