Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

wyc 6 дней назад
Родитель
Сommit
7106720784

+ 108 - 0
code/base/nckd-jxccl-base-helper/src/main/java/nckd/jxccl/base/sit/helper/SITHelper.java

@@ -0,0 +1,108 @@
+package nckd.jxccl.base.sit.helper;
+
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.hr.hbp.business.servicehelper.HRBaseServiceHelper;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+public class SITHelper {
+
+    /*党政职务*/
+    public static final HRBaseServiceHelper PARTYPOSH_HELPER = new HRBaseServiceHelper("nckd_hrpi_partyposh");
+    /*雇佣信息*/
+    public static final HRBaseServiceHelper EMPENTREL_HELPER = new HRBaseServiceHelper("hsbs_empentrel");
+    /*服务年限*/
+    public static final HRBaseServiceHelper PERSERLEN_HELPER = new HRBaseServiceHelper("hsbs_perserlen");
+    /*职称信息*/
+    public static final HRBaseServiceHelper PERPROTITLE_HELPER = new HRBaseServiceHelper("hsbs_perprotitle");
+    /**
+     * 根据员工ID获取入职日期
+     * 员工档案-雇佣信息-入职日期
+     *
+     * @param employeeIds
+     * @return
+     */
+    public Map<Long, Date> getJoinDateByEmployeeID(List<Long> employeeIds) {
+        QFilter filter = new QFilter("employee.id", QCP.in, employeeIds);
+        filter.and("startdate", QCP.less_equals, new Date());
+        filter.and("enddate", QCP.large_equals, new Date());
+        filter.and("empstagelatestrecord", QCP.equals, "1");
+        String selectFields = "employee.id, entrydate";
+        DynamicObjectCollection cols = EMPENTREL_HELPER.queryOriginalCollection(selectFields, filter.toArray());
+        return (Map<Long, Date>) cols.stream().collect(Collectors.toMap((obj) -> {
+            return obj.getLong("employee.id");
+        }, (obj) -> {
+            return obj.getDate("entrydate");
+        }, (k1, k2) -> {
+            return k1;
+        }));
+    }
+
+    /**
+     * 根据员工ID获取离职日期
+     * 员工档案-服务年限-离职日期
+     *
+     * @param employeeIds
+     * @return
+     */
+    public Map<Long, Date> getQuitDateByEmployeeID(List<Long> employeeIds) {
+        QFilter filter = new QFilter("employee.id", QCP.in, employeeIds);
+        filter.and("iscurrentdata", QCP.equals, "1");
+        String selectFields = "employee.id, nckd_departdate";
+        DynamicObjectCollection cols = PERSERLEN_HELPER.queryOriginalCollection(selectFields, filter.toArray());
+        return (Map<Long, Date>) cols.stream().collect(Collectors.toMap((obj) -> {
+            return obj.getLong("employee.id");
+        }, (obj) -> {
+            return obj.getDate("nckd_departdate");
+        }, (k1, k2) -> {
+            return k1;
+        }));
+    }
+
+    /**
+     * 根据员工ID获取职务层级
+     * 员工档案-党政职务变更履历-职务层级
+     * @param employeeIds
+     * @return Map, k = employeeId, v = 职位层级名称
+     */
+    public Map<Long, String> getZwcjByEmployeeID(List<Long> employeeIds) {
+        QFilter filter = new QFilter("employee.id", QCP.in, employeeIds);
+        filter.and("startdate", QCP.less_equals, new Date());
+        filter.and("enddate", QCP.large_equals, new Date());
+        String selectFields = "employee.id, nckd_posgrade.name";
+        DynamicObjectCollection cols = PARTYPOSH_HELPER.queryOriginalCollection(selectFields, filter.toArray());
+        return (Map<Long, String>) cols.stream().collect(Collectors.toMap((obj) -> {
+            return obj.getLong("employee.id");
+        }, (obj) -> {
+            return obj.getString("nckd_posgrade.name");
+        }, (k1, k2) -> {
+            return k1;
+        }));
+    }
+
+    /**
+     * 根据员工ID获取职称级别
+     * 员工档案-职称信息-职称级别
+     *
+     * @param employeeIds
+     * @return
+     */
+    public Map<Long, Long> getProtitleLevelByEmployeeID(List<Long> employeeIds) {
+        QFilter filter = new QFilter("employee.id", QCP.in, employeeIds);
+        filter.and("iscompany", QCP.equals, "1");
+        String selectFields = "employee.id, prolevel.id";
+        DynamicObjectCollection cols = PERPROTITLE_HELPER.queryOriginalCollection(selectFields, filter.toArray());
+        return (Map<Long, Long>) cols.stream().collect(Collectors.toMap((obj) -> {
+            return obj.getLong("employee.id");
+        }, (obj) -> {
+            return obj.getLong("prolevel.id");
+        }, (k1, k2) -> {
+            return k1;
+        }));
+    }
+}

+ 57 - 0
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/sit/hcsi/formplugin/web/file/SinsurFileEditEx.java

@@ -0,0 +1,57 @@
+package nckd.jxccl.sit.hcsi.formplugin.web.file;
+
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.datamodel.IDataModel;
+import kd.bos.form.plugin.AbstractFormPlugin;
+import kd.sdk.plugin.Plugin;
+import nckd.jxccl.base.sit.helper.SITHelper;
+
+import java.util.Date;
+import java.util.EventObject;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * Tyx 2026-01-05
+ * 社保档案表单插件,查询入职日期,离职日期,党政职务,技术职称
+ */
+public class SinsurFileEditEx extends AbstractFormPlugin implements Plugin {
+
+
+    @Override
+    public void beforeBindData(EventObject e) {
+        super.beforeBindData(e);
+        getRelatedData();
+    }
+
+    @Override
+    public void afterBindData(EventObject e) {
+        super.afterBindData(e);
+    }
+
+    /**
+     * 查询相关信息:
+     * 查询入职日期,离职日期,党政职务,技术职称
+     */
+    public void getRelatedData(){
+        IDataModel model = this.getModel();
+        DynamicObject dyn = model.getDataEntity();
+        Long employeeId = dyn.getLong("employee.id");
+        List<Long> employeeIds = Stream.of(employeeId).collect(Collectors.toList());
+        
+        SITHelper helper = new SITHelper();
+        Map<Long, Date> joinDateMap = helper.getJoinDateByEmployeeID(employeeIds);
+        Map<Long, Date> quitDateMap = helper.getQuitDateByEmployeeID(employeeIds);
+        Map<Long, String> zwcjMap = helper.getZwcjByEmployeeID(employeeIds);
+        Map<Long, Long> protitleMap = helper.getProtitleLevelByEmployeeID(employeeIds);
+
+        model.setValue("nckd_joindate", joinDateMap.keySet().contains(employeeId) ? joinDateMap.get(employeeId) : null);
+        model.setValue("nckd_leavedate", quitDateMap.keySet().contains(employeeId) ? quitDateMap.get(employeeId) : null);
+        model.setValue("nckd_posname", zwcjMap.keySet().contains(employeeId) ? zwcjMap.get(employeeId) : null);
+        model.setValue("nckd_prolevel", protitleMap.keySet().contains(employeeId) ? protitleMap.get(employeeId) : 0L);
+    }
+
+
+}