Browse Source

Merge branch 'refs/heads/feat-hr-psms_1.0'

wyc 1 week ago
parent
commit
b811b1afe3

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

@@ -197,11 +197,18 @@ public class SubCoHeadServiceListPlugin extends AbstractListPlugin implements Pl
                         }
                         LocalDateTime changeTime = DateUtil.toLocalDateTime(record.getDate(MasConstant.NCKD_CHANGETIME));
                         // 判断记录是否在当年范围内
-                        return changeTime.getYear() == beginYear.getYear();
+                        return  changeTime.getYear() <= beginYear.getYear();
                     })
                     .max(Comparator.comparing(record -> record.getDate(MasConstant.NCKD_CHANGETIME),
                             Comparator.nullsFirst(Comparator.naturalOrder())));
 
+            // 如果没有当年范围内的记录,则取所有记录中最新的那条
+            if (!latestRecord.isPresent()) {
+                latestRecord = records.stream()
+                        .max(Comparator.comparing(record -> record.getDate(MasConstant.NCKD_CHANGETIME),
+                                Comparator.nullsFirst(Comparator.naturalOrder())));
+            }
+
             if (latestRecord.isPresent()) {
                 DynamicObject currentRecord = latestRecord.get();
                 latestPartyPoshRecordMap.put(employeeId, currentRecord);
@@ -265,8 +272,7 @@ public class SubCoHeadServiceListPlugin extends AbstractListPlugin implements Pl
                         Date startDate = record.getDate(MasConstant.STARTDATE);
                         Date endDate = record.getDate(MasConstant.ENDDATE);
                         // 判断记录是否在当年范围内
-                        return startDate != null && !startDate.after(endOfYear) &&
-                                (endDate == null || !endDate.before(startOfYear));
+                        return startDate != null && beginYear.getYear() >= DateUtil.getYear(startDate)  &&  DateUtil.now().getYear() <= DateUtil.getYear(endDate);
                     })
                     .max(Comparator.comparing(record -> record.getDate(MasConstant.STARTDATE),
                             Comparator.nullsFirst(Comparator.naturalOrder())));

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

@@ -158,11 +158,16 @@ public class TenurePersonListListPlugin extends AbstractListPlugin implements Pl
                         }
                         LocalDateTime changeTime = DateUtil.toLocalDateTime(record.getDate(MasConstant.NCKD_CHANGETIME));
                         // 判断记录是否在当年范围内
-                        return changeTime.getYear() == beginYear.getYear();
+                        return  changeTime.getYear() <= beginYear.getYear();
                     })
                     .max(Comparator.comparing(record -> record.getDate(MasConstant.NCKD_CHANGETIME),
                             Comparator.nullsFirst(Comparator.naturalOrder())));
-
+            // 如果没有当年范围内的记录,则取所有记录中最新的那条
+            if (!latestRecord.isPresent()) {
+                latestRecord = records.stream()
+                        .max(Comparator.comparing(record -> record.getDate(MasConstant.NCKD_CHANGETIME),
+                                Comparator.nullsFirst(Comparator.naturalOrder())));
+            }
             if (latestRecord.isPresent()) {
                 DynamicObject currentRecord = latestRecord.get();
                 latestPartyPoshRecordMap.put(employeeId, currentRecord);
@@ -302,7 +307,8 @@ public class TenurePersonListListPlugin extends AbstractListPlugin implements Pl
                         //任职结束时间(下一段的变动时间)
                         Date nextChangeTime = nextPartyPoshRecord.getDate(MasConstant.NCKD_CHANGETIME);
                         if(nextChangeTime != null) {
-                            newSubCoHeadService.set(MasConstant.NCKD_ENDDATE, nextChangeTime);
+                            LocalDateTime localDateTime = DateUtil.minusDays(DateUtil.toLocalDateTime(changeTime), 1);
+                            newSubCoHeadService.set(MasConstant.NCKD_ENDDATE, DateUtil.toDate(localDateTime));
                         }else{
                             newSubCoHeadService.set(MasConstant.NCKD_ENDDATE, DateUtil.getMaxDateAsDate());
                         }