Ver código fonte

1.新增人员岗位、职级备份表及调度任务
2.同步所有人员差旅标准

lisheng 3 dias atrás
pai
commit
c593663a0c

+ 50 - 0
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/common/constant/JobPositionBakBillConstant.java

@@ -0,0 +1,50 @@
+package nckd.jimin.jyyy.fi.common.constant;
+
+public interface JobPositionBakBillConstant extends BillConstant{
+    /**
+     * 人员岗位职级备份表单据标识
+     */
+    String ENTITYID = "nckd_jobpositionbakbill";
+
+    /**
+     * 基本信息 - 同步人员
+     */
+    String KEY_NCKD_USER = "nckd_user";
+
+    /**
+     * 基本信息 - 更新时间
+     */
+    String KEY_NCKD_UPDATETIME = "nckd_updatetime";
+
+    /**
+     * 最新状态信息 - 组织(新)
+     */
+    String KEY_NCKD_ORG_NEW = "nckd_org_new";
+
+    /**
+     * 最新状态信息 - 岗位(新)
+     */
+    String KEY_NCKD_POSITION_NEW = "nckd_position_new";
+
+    /**
+     * 最新状态信息 - 职级(新)
+     */
+    String KEY_NCKD_JOBLEVEL_NEW = "nckd_joblevel_new";
+
+    /**
+     * 历史状态信息 - 组织(旧)
+     */
+    String KEY_NCKD_ORG_OLD = "nckd_org_old";
+
+    /**
+     * 历史状态信息 - 岗位(旧)
+     */
+    String KEY_NCKD_POSITION_OLD = "nckd_position_old";
+
+    /**
+     * 历史状态信息 - 职级(旧)
+     */
+    String KEY_NCKD_JOBLEVEL_OLD = "nckd_joblevel_old";
+
+
+}

+ 38 - 0
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/common/util/CommonUtils.java

@@ -3,10 +3,16 @@ package nckd.jimin.jyyy.fi.common.util;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import kd.bos.algo.DataSet;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.dataentity.utils.StringUtils;
 import kd.bos.entity.operate.result.IOperateInfo;
 import kd.bos.entity.operate.result.OperateErrorInfo;
 import kd.bos.entity.operate.result.OperationResult;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.bos.servicehelper.QueryServiceHelper;
 
 
 import java.util.*;
@@ -96,4 +102,36 @@ public class CommonUtils {
         calendar.setTime(date);
         return calendar.get(filed);
     }
+
+    public static DynamicObject getUserByHrPersonId(Object hrPersonId){
+        DynamicObject hrPersonInfo = QueryServiceHelper.queryOne("hrpi_person", "number", new QFilter("id", QCP.equals, hrPersonId).toArray());
+        if(hrPersonInfo == null){
+            return null;
+        }
+
+        String personNumber = hrPersonInfo.getString("number");
+        if(StringUtils.isEmpty(personNumber)){
+            return null;
+        }
+        return BusinessDataServiceHelper.loadSingleFromCache("bos_user", new QFilter("number",QCP.equals,personNumber).toArray());
+    }
+
+    public static Map<Long,Long> getUserByHrPersonId(List hrPersonIdList){
+        DynamicObjectCollection hrPersonCol = QueryServiceHelper.query("hrpi_person", "number", new QFilter("id", QCP.in, hrPersonIdList).toArray());
+        if(hrPersonCol == null || hrPersonCol.size() == 0){
+            return null;
+        }
+        Map<Long, String> idNumberMap = hrPersonCol.stream().collect(Collectors.toMap(dyn -> dyn.getLong("id"), dyn -> dyn.getString("number"), (k1, k2) -> k1));
+        DynamicObjectCollection userCol = QueryServiceHelper.query("bos_user", "id,number",new QFilter("number", QCP.in, idNumberMap.values()).toArray()   );
+        Map<String, Long> userNumberMap = userCol.stream().collect(Collectors.toMap(dyn -> dyn.getString("number"), dyn -> dyn.getLong("id"), (k1, k2) -> k1));
+        Map<Long, Long> idMap = new HashMap<>();
+        for(Map.Entry<Long, String> entryRow : idNumberMap.entrySet()){
+            Long personId = entryRow.getKey();
+            String personNumber = entryRow.getValue();
+            if(userNumberMap.containsKey(personNumber)){
+                idMap.put(personId,userNumberMap.get(personNumber));
+            }
+        }
+        return idMap;
+    }
 }