3 次代码提交 b1457955b1 ... a0d5371b57

作者 SHA1 备注 提交日期
  lisheng a0d5371b57 Merge branch 'master' of http://111.75.220.136:10030/turborao/jyyy 6 天之前
  lisheng e4f4072a83 1.调整报销工作台逻辑:已完成-去除借款预付类单据审核通过状态 6 天之前
  lisheng e8ce7af4ab 1.调整差旅报销标准同步逻辑 6 天之前

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

@@ -252,7 +252,7 @@ public class ReimWorkBenchesHelper {
 
 
         //已废弃、已关闭、审核未通过、审核通过(借款余额=0)、已付款(借款余额=0)的借款预付类单据。
         //已废弃、已关闭、审核未通过、审核通过(借款余额=0)、已付款(借款余额=0)的借款预付类单据。
         QFilter prepayBillStatusFilter = new QFilter("billstatus", QCP.in, new String[]{"H", "I"})
         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)));
+                .or(new QFilter("billstatus", QCP.equals, "G").and(new QFilter("balanceamount", QCP.equals, BigDecimal.ZERO)));
 
 
         DataSet dailyloanDataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "er_dailyloanbill",
         DataSet dailyloanDataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "er_dailyloanbill",
                 "id billid,bizdate applydate,'er_dailyloanbill' billtype,'er_dailyloanbill' pageid, billno billno,description description,loanamount applyamount," +
                 "id billid,bizdate applydate,'er_dailyloanbill' billtype,'er_dailyloanbill' pageid, billno billno,description description,loanamount applyamount," +

+ 22 - 12
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/task/PersonJobPositionBakTask.java

@@ -15,6 +15,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.QueryServiceHelper;
 import kd.bos.servicehelper.QueryServiceHelper;
 import kd.bos.servicehelper.operation.DeleteServiceHelper;
 import kd.bos.servicehelper.operation.DeleteServiceHelper;
 import kd.bos.servicehelper.operation.SaveServiceHelper;
 import kd.bos.servicehelper.operation.SaveServiceHelper;
+import kd.bos.util.CollectionUtils;
 import nckd.jimin.jyyy.fi.common.constant.BillTypeConstants;
 import nckd.jimin.jyyy.fi.common.constant.BillTypeConstants;
 import nckd.jimin.jyyy.fi.common.constant.JobPositionBakBillConstant;
 import nckd.jimin.jyyy.fi.common.constant.JobPositionBakBillConstant;
 import nckd.jimin.jyyy.fi.common.util.CommonUtils;
 import nckd.jimin.jyyy.fi.common.util.CommonUtils;
@@ -51,6 +52,7 @@ public class PersonJobPositionBakTask extends AbstractTask implements StopTask {
 
 
     protected List<DynamicObject> createNewJobPosotionBakBill(Map<String, DynamicObject> hisBakBillMap){
     protected List<DynamicObject> createNewJobPosotionBakBill(Map<String, DynamicObject> hisBakBillMap){
         List<DynamicObject> bakBillList = new ArrayList<>();
         List<DynamicObject> bakBillList = new ArrayList<>();
+        Date syncDate = new Date();
         // 查询当前生效的人员岗位信息
         // 查询当前生效的人员岗位信息
         DynamicObjectCollection positionCol = QueryServiceHelper.query(BillTypeConstants.HRPI_EMPPOSORGREL, "person.id,position.id,company.id", new QFilter[]{
         DynamicObjectCollection positionCol = QueryServiceHelper.query(BillTypeConstants.HRPI_EMPPOSORGREL, "person.id,position.id,company.id", new QFilter[]{
                 new QFilter("businessstatus", QCP.equals, "1"),
                 new QFilter("businessstatus", QCP.equals, "1"),
@@ -72,6 +74,7 @@ public class PersonJobPositionBakTask extends AbstractTask implements StopTask {
             }
             }
         }
         }
 
 
+
         // 查询当前生效的人员职级信息
         // 查询当前生效的人员职级信息
         Map<Long, Long> personJobMap = QueryServiceHelper.query(BillTypeConstants.HRPI_EMPJOBREL, "person.id,joblevel.id", new QFilter[]{
         Map<Long, Long> personJobMap = QueryServiceHelper.query(BillTypeConstants.HRPI_EMPJOBREL, "person.id,joblevel.id", new QFilter[]{
                 new QFilter("businessstatus", QCP.equals, "1"),
                 new QFilter("businessstatus", QCP.equals, "1"),
@@ -86,23 +89,30 @@ public class PersonJobPositionBakTask extends AbstractTask implements StopTask {
                 bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_USER, userInfo);
                 bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_USER, userInfo);
                 bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_ORG_NEW, position.getLong("company.id"));
                 bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_ORG_NEW, position.getLong("company.id"));
                 bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_POSITION_NEW, position.getLong("position.id"));
                 bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_POSITION_NEW, position.getLong("position.id"));
-                bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_UPDATETIME, new Date());
+                bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_UPDATETIME, syncDate);
                 if(personJobMap.containsKey(personId)){
                 if(personJobMap.containsKey(personId)){
                     bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_JOBLEVEL_NEW, personJobMap.get(personId));
                     bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_JOBLEVEL_NEW, personJobMap.get(personId));
                 }
                 }
                 bakBillList.add(bakBillInfo);
                 bakBillList.add(bakBillInfo);
 
 
-                if(hisBakBillMap.containsKey(personId)){
-                    DynamicObject hisBakInfo = hisBakBillMap.get(personId);
-                    if(hisBakInfo != null){
-                        if(isOnlyUpdateNew){
-                            bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_ORG_OLD, hisBakInfo.get(JobPositionBakBillConstant.KEY_NCKD_ORG_OLD));
-                            bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_POSITION_OLD, hisBakInfo.get(JobPositionBakBillConstant.KEY_NCKD_POSITION_OLD));
-                            bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_JOBLEVEL_OLD, hisBakInfo.get(JobPositionBakBillConstant.KEY_NCKD_JOBLEVEL_OLD));
-                        }else{
-                            bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_ORG_OLD, hisBakInfo.get(JobPositionBakBillConstant.KEY_NCKD_ORG_NEW));
-                            bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_POSITION_OLD, hisBakInfo.get(JobPositionBakBillConstant.KEY_NCKD_POSITION_NEW));
-                            bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_JOBLEVEL_OLD, hisBakInfo.get(JobPositionBakBillConstant.KEY_NCKD_JOBLEVEL_NEW));
+                // 备份表数据为空,则新旧数据相同
+                if(CollectionUtils.isEmpty(newestBakBillCol)){
+                    bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_ORG_OLD, bakBillInfo.get(JobPositionBakBillConstant.KEY_NCKD_ORG_NEW));
+                    bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_POSITION_OLD, bakBillInfo.get(JobPositionBakBillConstant.KEY_NCKD_POSITION_NEW));
+                    bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_JOBLEVEL_OLD, bakBillInfo.get(JobPositionBakBillConstant.KEY_NCKD_JOBLEVEL_NEW));
+                }else{
+                    if(hisBakBillMap.containsKey(personId)){
+                        DynamicObject hisBakInfo = hisBakBillMap.get(personId);
+                        if(hisBakInfo != null){
+                            if(isOnlyUpdateNew){
+                                bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_ORG_OLD, hisBakInfo.get(JobPositionBakBillConstant.KEY_NCKD_ORG_OLD));
+                                bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_POSITION_OLD, hisBakInfo.get(JobPositionBakBillConstant.KEY_NCKD_POSITION_OLD));
+                                bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_JOBLEVEL_OLD, hisBakInfo.get(JobPositionBakBillConstant.KEY_NCKD_JOBLEVEL_OLD));
+                            }else{
+                                bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_ORG_OLD, hisBakInfo.get(JobPositionBakBillConstant.KEY_NCKD_ORG_NEW));
+                                bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_POSITION_OLD, hisBakInfo.get(JobPositionBakBillConstant.KEY_NCKD_POSITION_NEW));
+                                bakBillInfo.set(JobPositionBakBillConstant.KEY_NCKD_JOBLEVEL_OLD, hisBakInfo.get(JobPositionBakBillConstant.KEY_NCKD_JOBLEVEL_NEW));
+                            }
                         }
                         }
                     }
                     }
                 }
                 }

+ 23 - 13
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/task/PersonReimLeverSyncTask.java

@@ -10,7 +10,9 @@ import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
 import kd.bos.orm.query.QFilter;
 import kd.bos.schedule.api.StopTask;
 import kd.bos.schedule.api.StopTask;
 import kd.bos.schedule.executor.AbstractTask;
 import kd.bos.schedule.executor.AbstractTask;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.QueryServiceHelper;
 import kd.bos.servicehelper.QueryServiceHelper;
+import kd.bos.servicehelper.operation.SaveServiceHelper;
 import nckd.jimin.jyyy.fi.common.constant.BillTypeConstants;
 import nckd.jimin.jyyy.fi.common.constant.BillTypeConstants;
 import nckd.jimin.jyyy.fi.common.util.CommonUtils;
 import nckd.jimin.jyyy.fi.common.util.CommonUtils;
 import nckd.jimin.jyyy.fi.plugin.operate.Helper.PersonReimQuotaHelper;
 import nckd.jimin.jyyy.fi.plugin.operate.Helper.PersonReimQuotaHelper;
@@ -37,34 +39,42 @@ public class PersonReimLeverSyncTask extends AbstractTask implements StopTask {
     public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
     public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
         log.info("-------- PersonReimLeverSyncTask 启动同步人员报销级别任务 --------");
         log.info("-------- PersonReimLeverSyncTask 启动同步人员报销级别任务 --------");
 
 
+        // 查询所有人员的报销级别设置
+        DynamicObject[] reimburseSettingArray = BusinessDataServiceHelper.load("er_reimbursesetting_rel", "user.id,user.number,reimburselevel.id,company.id", QFilter.isNotNull("user.id").toArray());
         // 查询当前生效的人员岗位信息
         // 查询当前生效的人员岗位信息
-        DynamicObjectCollection positionCol = QueryServiceHelper.query(BillTypeConstants.HRPI_EMPPOSORGREL, "person.id,position.id,company.id", new QFilter[]{
+        DynamicObjectCollection positionCol = QueryServiceHelper.query(BillTypeConstants.HRPI_EMPPOSORGREL, "person.number,company.id", new QFilter[]{
                 new QFilter("businessstatus", QCP.equals, "1"),
                 new QFilter("businessstatus", QCP.equals, "1"),
                 new QFilter("iscurrentversion", QCP.equals, "1"),
                 new QFilter("iscurrentversion", QCP.equals, "1"),
                 new QFilter("datastatus", QCP.equals, "1"),
                 new QFilter("datastatus", QCP.equals, "1"),
                 new QFilter("isprimary", QCP.equals, "1")
                 new QFilter("isprimary", QCP.equals, "1")
         });
         });
-        Map<Long, Long> personCompanyMap = positionCol.stream().collect(Collectors.toMap(r -> r.getLong("person.id"), r -> r.getLong("company.id"), (k1, k2) -> k1));
+        Map<String, Long> personCompanyMap = positionCol.stream().collect(Collectors.toMap(r -> r.getString("person.number"), r -> r.getLong("company.id"), (k1, k2) -> k1));
         // 获取所有人员最新的职级
         // 获取所有人员最新的职级
-        Map<Long, Long> personJobMap = QueryServiceHelper.query(BillTypeConstants.HRPI_EMPJOBREL, "person.id,joblevel.id", new QFilter[]{
+        Map<String, Long> personJobMap = QueryServiceHelper.query(BillTypeConstants.HRPI_EMPJOBREL, "person.number,joblevel.id", new QFilter[]{
                 new QFilter("businessstatus", QCP.equals, "1"),
                 new QFilter("businessstatus", QCP.equals, "1"),
                 new QFilter("datastatus", QCP.equals, "1"),
                 new QFilter("datastatus", QCP.equals, "1"),
                 new QFilter("iscurrentversion", QCP.equals, "1")
                 new QFilter("iscurrentversion", QCP.equals, "1")
-        }).stream().collect(Collectors.toMap(r -> r.getLong("person.id"), r -> r.getLong("joblevel.id"), (k1, k2) -> k1));
-
+        }).stream().collect(Collectors.toMap(r -> r.getString("person.number"), r -> r.getLong("joblevel.id"), (k1, k2) -> k1));
         // 获取人员最新的报销级别
         // 获取人员最新的报销级别
         PersonReimQuotaHelper helper = getPersonReimQuotaHelper();
         PersonReimQuotaHelper helper = getPersonReimQuotaHelper();
+        // 默认职级
+        DynamicObject defultReimLever = helper.getDefultReimLever();
+        // 通过公司查询共享策略查询报销级别;没有查到就取默认
+        for(DynamicObject reimburseSetting : reimburseSettingArray){
+            String userNumber = reimburseSetting.getString("user.number");
+            Long companyId = reimburseSetting.getLong("company.id");
+            Long personCompanyId = personCompanyMap.get(userNumber);
+            DynamicObject reimLever = null;
+            if(personCompanyId != null && companyId != null && personCompanyId.equals(companyId)) {
+                reimLever = helper.getReimLever(personJobMap.get(userNumber), personCompanyId);
+            }
 
 
-        for(Map.Entry<Long, Long> entryRow : personJobMap.entrySet()){
-            Long personId = entryRow.getKey();
-            Long jobLeverId = entryRow.getValue();
-            if(personJobMap.containsKey(personId)){
-                DynamicObject userInfo = CommonUtils.getUserByHrPersonId(personId);
-                helper.syncReimLever(userInfo.getLong("id"),personCompanyMap.get(personId),jobLeverId);
+            if (reimLever == null) {
+                reimLever = defultReimLever;
             }
             }
+            reimburseSetting.set("reimburselevel", reimLever.getLong("id"));
         }
         }
-
-
+        SaveServiceHelper.save(reimburseSettingArray);
         log.info("-------- PersonReimLeverSyncTask 同步人员报销级别任务结束 --------");
         log.info("-------- PersonReimLeverSyncTask 同步人员报销级别任务结束 --------");
     }
     }
 }
 }