Selaa lähdekoodia

feat(workflow): 添加职务层级获取工作流插件

- 创建 GetZwcjWorkflowPlugin 工作流插件类
- 实现 IWorkflowPlugin 接口用于获取人员职务层级
- 在 WTCHelper 中添加 PARTYPOSH_HELPER 常量
- 新增 getZwcjByEmployeeId 方法根据员工ID查询职务层级
- 集成 WTCHelper.getZwcjByEmployeeId 用于工作流中获取职务层级
- 添加 ObjectUtils 工具类用于对象空值判断
Tyx 1 viikko sitten
vanhempi
säilyke
2afd600e6c

+ 16 - 1
code/base/nckd-jxccl-base-helper/src/main/java/nckd/jxccl/base/wtc/helper/WTCHelper.java

@@ -2,6 +2,7 @@ package nckd.jxccl.base.wtc.helper;
 
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.dataentity.utils.ObjectUtils;
 import kd.bos.logging.Log;
 import kd.bos.logging.LogFactory;
 import kd.bos.orm.query.QCP;
@@ -28,6 +29,7 @@ public class WTCHelper {
     /* 工作流角色 */
     public static final HRBaseServiceHelper WFROLE_HELPER = new HRBaseServiceHelper("wf_role");
     public static final HRBaseServiceHelper VAAPPLY_HELPER = new HRBaseServiceHelper("wtabm_vaapply");
+    public static final HRBaseServiceHelper PARTYPOSH_HELPER = new HRBaseServiceHelper("nckd_hrpi_partyposh");
 
     /**
      * 根据考勤档案ID获取二级单位编码
@@ -209,5 +211,18 @@ public class WTCHelper {
         return subPositionDyns.stream().map(dyn -> dyn.getLong("id")).collect(Collectors.toList());
     }
 
-
+    /**
+     * 根据员工ID获取职务层级
+     * 员工档案-党政职务变更履历-职务层级
+     * @param employeeId
+     * @return
+     */
+    public static String getZwcjByEmployeeId(Long employeeId) {
+        QFilter filter = new QFilter("employee.id", QCP.equals, employeeId);
+        filter.and("startdate", QCP.less_equals, new Date());
+        filter.and("enddate", QCP.large_equals, new Date());
+        String selectFields = "nckd_posgrade.name";
+        DynamicObject dyn = PARTYPOSH_HELPER.queryOriginalOne(selectFields, filter.toArray());
+        return ObjectUtils.isEmpty(dyn)? null : dyn.getString("nckd_posgrade.name");
+    }
 }

+ 29 - 0
code/wtc/nckd-jxccl-wtc/src/main/java/nckd/jxccl/wtc/workflow/GetZwcjWorkflowPlugin.java

@@ -0,0 +1,29 @@
+package nckd.jxccl.wtc.workflow;
+
+import kd.bos.logging.Log;
+import kd.bos.logging.LogFactory;
+import kd.bos.workflow.api.AgentExecution;
+import kd.bos.workflow.engine.extitf.IWorkflowPlugin;
+import nckd.jxccl.base.wtc.helper.WTCHelper;
+
+/**
+ * 工作流插件
+ * 获取人员的职务层级
+ * 人员档案-党政职务变更履历-职务层级
+ * 流程变量中需要配置employeeId和zwcj
+ * @author Tyx
+ */
+public class GetZwcjWorkflowPlugin implements IWorkflowPlugin {
+
+    private static final Log log = LogFactory.getLog(GetZwcjWorkflowPlugin.class);
+
+    @Override
+    public void notify(AgentExecution execution) {
+        IWorkflowPlugin.super.notify(execution);
+        Long employeeId = Long.valueOf(execution.getVariable("employeeId").toString());
+        log.info("employeeId : " + employeeId);
+        String zwcj = WTCHelper.getZwcjByEmployeeId(employeeId);
+        log.info("zwcj : " + zwcj);
+        execution.setVariable("zwcj",  zwcj);
+    }
+}