Prechádzať zdrojové kódy

refactor(date): 优化日期处理和查询过滤逻辑

- 在 PerfManagerBillPlugin 中,将日期范围检查逻辑改为使用 LocalDateTime
- 在 PerfManagerTreeListPlugin 中,引入 QFilterCommonHelper 类以简化过滤条件创建
- 优化了树列表过滤逻辑,提高了代码可读性和维护性
wyc 1 týždeň pred
rodič
commit
9696a53fba

+ 2 - 2
code/opmc/nckd-jxccl-opmc/src/main/java/nckd/jxccl/opmc/pm/plugin/form/PerfManagerBillPlugin.java

@@ -76,7 +76,7 @@ public class PerfManagerBillPlugin extends AbstractBillPlugIn implements Plugin
                     boolean hasOutOfRangeEntry = entrys != null ? entrys.stream()
                             .map(entry -> entry.getDate(nckd.jxccl.opmc.pm.common.PerfManagerFormConstant.APPRAISAL_YEAR_KEY))
                             .filter(Objects::nonNull)
-                            .anyMatch(date -> !DateUtil.isInRange(date, beginYear, endYear)) : false;
+                            .anyMatch(date -> !DateUtil.isInRange(DateUtil.toLocalDateTime(date), DateUtil.toLocalDateTime(beginYear), DateUtil.toLocalDateTime(endYear))) : false;
                     if(hasOutOfRangeEntry){
                         e.setCancel(true);
                         this.getView().showErrorNotification("考核年份不在周期范围内,请检查!");
@@ -151,7 +151,7 @@ public class PerfManagerBillPlugin extends AbstractBillPlugIn implements Plugin
         }
         Set<Integer> yearSet = new HashSet<>();
         for (Date date : dateList) {
-            int year = DateUtil.getYear(date);
+            int year = DateUtil.getYear(DateUtil.toLocalDateTime(date));
             if (yearSet.contains(year)) {
                 return true;
             }

+ 5 - 6
code/opmc/nckd-jxccl-opmc/src/main/java/nckd/jxccl/opmc/pm/plugin/form/PerfManagerTreeListPlugin.java

@@ -9,8 +9,8 @@ import kd.hr.hbp.business.dao.factory.HRBaseDaoFactory;
 import kd.hr.hbp.common.constants.org.OrgTreeDynEnum;
 import kd.hr.hbp.common.util.org.model.OrgTreeModel;
 import kd.hr.hbp.formplugin.web.org.template.AdminOrgTreeListTemplate;
+import nckd.jxccl.base.orm.helper.QFilterCommonHelper;
 
-import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -31,14 +31,13 @@ public class PerfManagerTreeListPlugin extends AdminOrgTreeListTemplate {
         String focusNodeId = buildTreeListFilterEvent.getNodeId().toString();
         QFilter nodeClickFilter = null;
         if(!this.getTreeModel().getRoot().getId().equalsIgnoreCase(focusNodeId)){
-            QFilter isCurrentVersionFilter = new QFilter("iscurrentversion", QCP.equals, "1");
-            QFilter initStatusFilter = new QFilter("initstatus", QCP.equals, "2");
-            QFilter dataStatusFilter = new QFilter("datastatus", QCP.in, Arrays.asList("1", "2"));
+
             QFilter focusNodeIdFilter = new QFilter("adminorg.id", QCP.equals, Long.valueOf(focusNodeId));
-            DynamicObject structlongnumber = HRBaseDaoFactory.getInstance(this.getEntityName()).queryOne("structlongnumber", new QFilter[]{isCurrentVersionFilter, initStatusFilter, dataStatusFilter, focusNodeIdFilter});
+            DynamicObject structlongnumber = HRBaseDaoFactory.getInstance(this.getEntityName()).queryOne("structlongnumber", new QFilter[]{QFilterCommonHelper.getCurrentVersionFilter(), QFilterCommonHelper.getInitStatusFinishFilter(),
+                    QFilterCommonHelper.getDataStatusFilter(), focusNodeIdFilter});
             String focusNodeLongNumber = (String)structlongnumber.get("structlongnumber");
             QFilter filter = new QFilter("structlongnumber", QCP.like, focusNodeLongNumber + "%");
-            DynamicObjectCollection dynamicObjects = HRBaseDaoFactory.getInstance(this.getEntityName()).queryColl("adminorg.id adminorg", new QFilter[]{filter, isCurrentVersionFilter, initStatusFilter}, null);
+            DynamicObjectCollection dynamicObjects = HRBaseDaoFactory.getInstance(this.getEntityName()).queryColl("adminorg.id adminorg", new QFilter[]{filter, QFilterCommonHelper.getCurrentVersionFilter(), QFilterCommonHelper.getInitStatusFinishFilter()}, null);
             Set<Long> ids = new HashSet<>(dynamicObjects.size());
             dynamicObjects.forEach(dynamicObject -> ids.add(dynamicObject.getLong("adminorg")));
             nodeClickFilter = new QFilter("nckd_person.adminorg.id", QCP.in, ids);