|
@@ -0,0 +1,77 @@
|
|
|
|
+package nckd.jimin.jyyy.hr.plugin.workflow;
|
|
|
|
+
|
|
|
|
+import kd.bos.dataentity.entity.DynamicObject;
|
|
|
|
+import kd.bos.logging.Log;
|
|
|
|
+import kd.bos.logging.LogFactory;
|
|
|
|
+import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
|
+import kd.hrmp.hrpi.business.domian.service.impl.PersonServiceImpl;
|
|
|
|
+
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
+
|
|
|
|
+public class HRWorkflowUtils {
|
|
|
|
+
|
|
|
|
+ private static final Log log = LogFactory.getLog(GetFirstDeptChargerWorkflowPlugin.class);
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据部门ID获取一级部门ID
|
|
|
|
+ * @param adminOrgId
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static Long getFirstDeptId (Long adminOrgId) {
|
|
|
|
+ String adminType = "";
|
|
|
|
+ DynamicObject adminDyn = BusinessDataServiceHelper.loadSingle(adminOrgId, "haos_adminorghr");
|
|
|
|
+ adminType = adminDyn.getString("orgtype.name");
|
|
|
|
+ while(!adminType.equals("一级部门")) {
|
|
|
|
+ adminDyn = BusinessDataServiceHelper.loadSingle(adminOrgId, "haos_adminorghr");
|
|
|
|
+ adminType = adminDyn.getString("orgtype.name");
|
|
|
|
+ adminOrgId = adminDyn.getLong("parent.id");
|
|
|
|
+ if(adminOrgId == 0L)
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ return adminOrgId;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据部门ID获取二级部门ID
|
|
|
|
+ * @param adminOrgId
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static Long getSecondDeptId (Long adminOrgId) {
|
|
|
|
+ String adminType = "";
|
|
|
|
+ DynamicObject adminDyn = BusinessDataServiceHelper.loadSingle(adminOrgId, "haos_adminorghr");
|
|
|
|
+ adminType = adminDyn.getString("orgtype.name");
|
|
|
|
+ while(!adminType.equals("二级部门")) {
|
|
|
|
+ adminDyn = BusinessDataServiceHelper.loadSingle(adminOrgId, "haos_adminorghr");
|
|
|
|
+ adminType = adminDyn.getString("orgtype.name");
|
|
|
|
+ adminOrgId = adminDyn.getLong("parent.id");
|
|
|
|
+ if(adminOrgId == 0L)
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ return adminOrgId;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public static List<Long> transPersonIdToUserId(List<Long> personIds) {
|
|
|
|
+ log.info(" HRWorkflowUtils transPersonIdToUserId {}", personIds);
|
|
|
|
+ List<Long> userIds = new ArrayList(personIds.size());
|
|
|
|
+ Map<String, List<Long>> queryMap = new HashMap();
|
|
|
|
+ queryMap.put("person", personIds);
|
|
|
|
+ Map<String, Object> userInfoMap = PersonServiceImpl.getInstance().getUserIdByPersonInfo(queryMap);
|
|
|
|
+ if (!userInfoMap.isEmpty() && userInfoMap.get("success") == Boolean.TRUE) {
|
|
|
|
+ Map<Long, Object> data = (Map)userInfoMap.get("data");
|
|
|
|
+ data.values().forEach((user) -> {
|
|
|
|
+ Map<String, Long> userMap = (Map)user;
|
|
|
|
+ if (userMap != null && !userMap.isEmpty()) {
|
|
|
|
+ userIds.add(userMap.get("user"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return userIds;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|