Browse Source

feat(org): 新增组织帮助类并优化履历筛选逻辑

- 新增 OrgHelper 类,提供获取创建组织和控制策略的方法
- 移除 STARTDATE 和 ENDDATE 字段查询,改用 NCKD_CHANGETIME 进行筛选
- 优化党政履历筛选逻辑,基于变动时间年份进行过滤
- 更新时间范围判断条件,确保记录在指定年份内
- 调整最大值比较器,使用 STARTDATE 字段进行排序
wyc 1 tuần trước cách đây
mục cha
commit
1d3e65664e

+ 47 - 0
code/base/nckd-jxccl-base-helper/src/main/java/nckd/jxccl/base/org/helper/OrgHelper.java

@@ -0,0 +1,47 @@
+package nckd.jxccl.base.org.helper;
+
+import kd.bos.servicehelper.basedata.BaseDataServiceHelper;
+import nckd.jxccl.base.common.constant.FormConstant;
+import nckd.jxccl.base.common.utils.ConvertUtil;
+
+import java.util.List;
+
+/**
+ * Org帮助类
+ *
+ * @author W.Y.C
+ * @version 1.0
+ * @date 2025/12/4 10:22
+ */
+public class OrgHelper {
+
+    /**
+     * 获取创建组织
+     * @param entity 实体id
+     * @return: java.lang.Long
+     * @author W.Y.C
+     * @date: 2025/12/04 10:27
+     */
+    public Long getCreateOrgList(String entity) {
+        List<Long> createOrgList = BaseDataServiceHelper.getCreateOrgList(entity);
+        if (createOrgList != null && !createOrgList.isEmpty()) {
+            return createOrgList.get(0);
+        }
+        return null;
+    }
+
+    /**
+     * 获取控制策略
+     * @param entity 实体id
+     * @param createOrg 创建组织id
+     * @return: java.lang.String
+     * @author W.Y.C
+     * @date: 2025/12/04 10:26
+     */
+    public String getBdCtrlStrgy(String entity, Long createOrg) {
+        return BaseDataServiceHelper.getBdCtrlStrgy(entity, ConvertUtil.toStr(createOrg));
+    }
+
+
+
+}

+ 5 - 6
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/mas/plugin/form/empmgt/SubCoHeadServiceListPlugin.java

@@ -156,8 +156,6 @@ public class SubCoHeadServiceListPlugin extends AbstractListPlugin implements Pl
         //查询党政履历
 //        nckd_hrpi_partyposh
         QueryFieldBuilder partyPoshFieldBuilder = QueryFieldBuilder.create()
-                .add(MasConstant.STARTDATE)
-                .add(MasConstant.ENDDATE)
                 .addIdNumberName(MasConstant.NCKD_PAYUNIT)
                 //变动时间
                 .add(MasConstant.NCKD_CHANGETIME)
@@ -194,11 +192,12 @@ public class SubCoHeadServiceListPlugin extends AbstractListPlugin implements Pl
             // 筛选出在当年时间范围内的记录,然后取STARTDATE最新的那一条
             Optional<DynamicObject> latestRecord = records.stream()
                     .filter(record -> {
-                        Date startDate = record.getDate(MasConstant.STARTDATE);
-                        Date endDate = record.getDate(MasConstant.ENDDATE);
+                        if(record.getDate(MasConstant.NCKD_CHANGETIME) == null){
+                            return false;
+                        }
+                        LocalDateTime changeTime = DateUtil.toLocalDateTime(record.getDate(MasConstant.NCKD_CHANGETIME));
                         // 判断记录是否在当年范围内
-                        return startDate != null && !startDate.after(endOfYear) &&
-                                (endDate == null || !endDate.before(startOfYear));
+                        return changeTime.getYear() == beginYear.getYear();
                     })
                     .max(Comparator.comparing(record -> record.getDate(MasConstant.STARTDATE),
                             Comparator.nullsFirst(Comparator.naturalOrder())));

+ 5 - 6
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/mas/plugin/form/empmgt/TenurePersonListListPlugin.java

@@ -118,8 +118,6 @@ public class TenurePersonListListPlugin extends AbstractListPlugin implements Pl
         //查询党政履历
 //        nckd_hrpi_partyposh
         QueryFieldBuilder partyPoshFieldBuilder = QueryFieldBuilder.create()
-                .add(MasConstant.STARTDATE)
-                .add(MasConstant.ENDDATE)
                 .add(MasConstant.NCKD_PAYUNIT)
                 //变动时间
                 .add(MasConstant.NCKD_CHANGETIME)
@@ -155,11 +153,12 @@ public class TenurePersonListListPlugin extends AbstractListPlugin implements Pl
             // 筛选出在当年时间范围内的记录,然后取STARTDATE最新的那一条
             Optional<DynamicObject> latestRecord = records.stream()
                     .filter(record -> {
-                        Date startDate = record.getDate(MasConstant.STARTDATE);
-                        Date endDate = record.getDate(MasConstant.ENDDATE);
+                        if(record.getDate(MasConstant.NCKD_CHANGETIME) == null){
+                            return false;
+                        }
+                        LocalDateTime changeTime = DateUtil.toLocalDateTime(record.getDate(MasConstant.NCKD_CHANGETIME));
                         // 判断记录是否在当年范围内
-                        return startDate != null && !startDate.after(endOfYear) &&
-                                (endDate == null || !endDate.before(startOfYear));
+                        return changeTime.getYear() == beginYear.getYear();
                     })
                     .max(Comparator.comparing(record -> record.getDate(MasConstant.STARTDATE),
                             Comparator.nullsFirst(Comparator.naturalOrder())));