Эх сурвалжийг харах

1.调整差旅报销标准同步逻辑
2.调整人员职级备份表逻辑
3.调整报销工作台逻辑:已完成-去除借款预付类单据审核通过状态

lisheng 1 өдөр өмнө
parent
commit
e8ce7af4ab

+ 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 同步人员报销级别任务结束 --------");
     }
     }
 }
 }