Browse Source

refactor(org): 优化组织机构相关工具类方法

- 将 OrgHelper 中的 getCreateOrgList 和 getBdCtrlStrgy 方法改为静态方法
- 移除未使用的 FormConstant 导入
- 在多个业务插件中替换 BaseDataServiceHelper 调用为 OrgHelper 静态方法
- 简化获取创建组织逻辑,直接使用返回的第一个组织 ID
- 更新 SubCoHeadServiceListPlugin 和 TenurePersonListListPlugin 中的时间比较逻辑
- 使用 NCKD_CHANGETIME 替代 ENDDATE 进行记录比较
wyc 1 week ago
parent
commit
efe83a0f1e

+ 2 - 3
code/base/nckd-jxccl-base-helper/src/main/java/nckd/jxccl/base/org/helper/OrgHelper.java

@@ -1,7 +1,6 @@
 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;
@@ -22,7 +21,7 @@ public class OrgHelper {
      * @author W.Y.C
      * @date: 2025/12/04 10:27
      */
-    public Long getCreateOrgList(String entity) {
+    public static Long getCreateOrgList(String entity) {
         List<Long> createOrgList = BaseDataServiceHelper.getCreateOrgList(entity);
         if (createOrgList != null && !createOrgList.isEmpty()) {
             return createOrgList.get(0);
@@ -38,7 +37,7 @@ public class OrgHelper {
      * @author W.Y.C
      * @date: 2025/12/04 10:26
      */
-    public String getBdCtrlStrgy(String entity, Long createOrg) {
+    public static String getBdCtrlStrgy(String entity, Long createOrg) {
         return BaseDataServiceHelper.getBdCtrlStrgy(entity, ConvertUtil.toStr(createOrg));
     }
 

+ 4 - 4
code/opmc/nckd-jxccl-opmc/src/main/java/nckd/jxccl/opmc/pm/plugin/operate/cycle/CycleGenerateOpPlugin.java

@@ -38,6 +38,7 @@ import nckd.jxccl.base.common.utils.DateUtil;
 import nckd.jxccl.base.common.utils.QueryFieldBuilder;
 import nckd.jxccl.base.common.utils.StrFormatter;
 import nckd.jxccl.base.entity.helper.EntityHelper;
+import nckd.jxccl.base.org.helper.OrgHelper;
 import nckd.jxccl.opmc.pm.common.PerfManagerFormConstant;
 import nckd.jxccl.opmc.pm.common.SalAdjTrackerConstant;
 
@@ -99,11 +100,10 @@ public class CycleGenerateOpPlugin extends AbstractOperationServicePlugIn implem
         SaveServiceHelper.update(dbPerfManagerArray);*/
 
         MainEntityType bosOrgEntityType = EntityMetadataCache.getDataEntityType(FormConstant.BOS_ORG);
-        List<Long> createOrgList = BaseDataServiceHelper.getCreateOrgList(SalAdjTrackerConstant.SALADJTRACKER_ENTITYID);
+        Long createOrg = OrgHelper.getCreateOrgList(SalAdjTrackerConstant.SALADJTRACKER_ENTITYID);
         DynamicObject org = new DynamicObject(bosOrgEntityType);
-        if (!createOrgList.isEmpty()) {
-            org.set(FormConstant.ID_KEY, createOrgList.get(0));
-        }
+        org.set(FormConstant.ID_KEY, createOrg);
+
 
         //调用save-op
         List<DynamicObject> savePerfManager = new ArrayList<>();

+ 3 - 4
code/opmc/nckd-jxccl-opmc/src/main/java/nckd/jxccl/opmc/pm/plugin/operate/salary/SalaryAdjOpPlugin.java

@@ -42,6 +42,7 @@ import nckd.jxccl.base.common.utils.DateUtil;
 import nckd.jxccl.base.common.utils.QueryFieldBuilder;
 import nckd.jxccl.base.common.utils.StrFormatter;
 import nckd.jxccl.base.entity.helper.EntityHelper;
+import nckd.jxccl.base.org.helper.OrgHelper;
 import nckd.jxccl.opmc.pm.common.PerfManagerFormConstant;
 import nckd.jxccl.opmc.pm.common.SalAdjTrackerConstant;
 import org.apache.commons.lang3.StringUtils;
@@ -386,12 +387,10 @@ public class SalaryAdjOpPlugin extends AbstractOperationServicePlugIn implements
                 }
                 List<DynamicObject> addSalAdjTrackerList = new ArrayList<>();
                 List<Long> ids = new ArrayList<>(salaryAdjustmentResultList.size());
-                List<Long> createOrgList = BaseDataServiceHelper.getCreateOrgList(SalAdjTrackerConstant.SALADJTRACKER_ENTITYID);
                 MainEntityType bosOrgEntityType = EntityMetadataCache.getDataEntityType(FormConstant.BOS_ORG);
+                Long createOrg = OrgHelper.getCreateOrgList(SalAdjTrackerConstant.SALADJTRACKER_ENTITYID);
                 DynamicObject org = new DynamicObject(bosOrgEntityType);
-                if (!createOrgList.isEmpty()) {
-                    org.set(FormConstant.ID_KEY, createOrgList.get(0));
-                }
+                org.set(FormConstant.ID_KEY, createOrg);
                 for (SalaryAdjustmentResult result : salaryAdjustmentResultList) {
                     if (result.salaryStDv != null && result.oldStandardItem != null && result.oldSalaryRank != null) {
                         DynamicObject newSalAdjTracker = EntityHelper.newEntity(SalAdjTrackerConstant.SALADJTRACKER_ENTITYID);

+ 4 - 5
code/opmc/nckd-jxccl-opmc/src/main/java/nckd/jxccl/opmc/pm/task/PromotionCycleGeneratorTask.java

@@ -28,6 +28,7 @@ import nckd.jxccl.base.common.utils.QueryFieldBuilder;
 import nckd.jxccl.base.common.utils.StrFormatter;
 import nckd.jxccl.base.entity.helper.EntityHelper;
 import nckd.jxccl.base.hrpi.helper.EmpPosOrgRelHelper;
+import nckd.jxccl.base.org.helper.OrgHelper;
 import nckd.jxccl.base.orm.helper.QFilterCommonHelper;
 import nckd.jxccl.opmc.pm.common.PerfManagerFormConstant;
 import nckd.jxccl.opmc.pm.common.SalAdjTrackerConstant;
@@ -125,13 +126,11 @@ public class PromotionCycleGeneratorTask extends AbstractTask implements Plugin
                     ));
             logger.debug("查询到{}条管理层级细项数据", mgtLvldtlMap.size());
 
-
-            List<Long> createOrgList = BaseDataServiceHelper.getCreateOrgList(SalAdjTrackerConstant.SALADJTRACKER_ENTITYID);
+            Long createOrg = OrgHelper.getCreateOrgList(SalAdjTrackerConstant.SALADJTRACKER_ENTITYID);
             MainEntityType bosOrgEntityType = EntityMetadataCache.getDataEntityType(FormConstant.BOS_ORG);
             DynamicObject org = new DynamicObject(bosOrgEntityType);
-            if (!createOrgList.isEmpty()) {
-                org.set(FormConstant.ID_KEY, createOrgList.get(0));
-            }
+            org.set(FormConstant.ID_KEY, createOrg);
+
             List<DynamicObject> perfManagerList = new ArrayList<>(transferApplyFilterQuery.size());
             List<Long> personIdList = new ArrayList<>(transferApplyFilterQuery.size());
             for (DynamicObject transferApply : transferApplyFilterQuery) {

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

@@ -207,14 +207,14 @@ public class SubCoHeadServiceListPlugin extends AbstractListPlugin implements Pl
                 latestPartyPoshRecordMap.put(employeeId, currentRecord);
 
                 // 根据当前记录的结束时间查找下一条记录
-                Date currentEndDate = currentRecord.getDate(MasConstant.ENDDATE);
-                if (currentEndDate != null) {
+                Date currentChangeTime = currentRecord.getDate(MasConstant.NCKD_CHANGETIME);
+                if (currentChangeTime != null) {
                     // 查找开始时间等于当前记录结束时间的下一条记录
                     Optional<DynamicObject> nextRecord = records.stream()
                             .filter(record -> {
-                                Date startDate = record.getDate(MasConstant.STARTDATE);
-                                // 查找开始时间等于当前记录结束时间的记录
-                                return startDate != null && !startDate.before(currentEndDate);
+                                Date changeTime = record.getDate(MasConstant.NCKD_CHANGETIME);
+                                // 查找开始时间大于等于当前记录结束时间的记录
+                                return changeTime != null && changeTime.compareTo(currentChangeTime) > 0;
                             })
                             .findFirst();
 

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

@@ -169,13 +169,14 @@ public class TenurePersonListListPlugin extends AbstractListPlugin implements Pl
 
                 // 根据当前记录的结束时间查找下一条记录
                 Date currentEndDate = currentRecord.getDate(MasConstant.ENDDATE);
-                if (currentEndDate != null) {
+                Date currentChangeTime = currentRecord.getDate(MasConstant.NCKD_CHANGETIME);
+                if (currentChangeTime != null) {
                     // 查找开始时间等于当前记录结束时间的下一条记录
                     Optional<DynamicObject> nextRecord = records.stream()
                             .filter(record -> {
-                                Date startDate = record.getDate(MasConstant.STARTDATE);
-                                // 查找开始时间等于当前记录结束时间的记录
-                                return startDate != null && !startDate.before(currentEndDate);
+                                Date changeTime = record.getDate(MasConstant.NCKD_CHANGETIME);
+                                // 查找开始时间大于等于当前记录结束时间的记录
+                                return changeTime != null && changeTime.compareTo(currentChangeTime) > 0;
                             })
                             .findFirst();