Jelajahi Sumber

修改作息变更事件监听代码

jingyuanchao 2 tahun lalu
induk
melakukan
fb0941b20a

+ 4 - 1
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteWorkTimeService.java

@@ -28,6 +28,9 @@ public interface RemoteWorkTimeService {
 
 
     @PostMapping("/work/time/findFutureWorkTime")
-    List<SysWorkTime> findFutureWorkTime(@RequestBody List<Long> orgId, @RequestParam(value = "time") String time, @RequestHeader(SecurityConstants.INNER) String source);
+    List<SysWorkTime> findFutureWorkTime(@RequestBody List<Long> orgId,
+                                         @RequestParam(value = "startTime") String startTime,
+                                         @RequestParam(value = "ednTime") String ednTime,
+                                         @RequestHeader(SecurityConstants.INNER) String source);
 
 }

+ 1 - 1
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteWorkTimesFallbackFactory.java

@@ -42,7 +42,7 @@ public class RemoteWorkTimesFallbackFactory implements FallbackFactory<RemoteWor
             }
 
             @Override
-            public List<SysWorkTime> findFutureWorkTime(List<Long> orgId, String time, String source) {
+            public List<SysWorkTime> findFutureWorkTime(List<Long> orgId, String startTime,String endTime, String source) {
                 return null;
             }
         };

+ 21 - 10
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java

@@ -751,29 +751,32 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
     @Override
     public void taskChangeForTimeWorkChange(WorkTimeChangeEvent event) {
         String date = LocalDate.now().format(DateTimeFormatter.ofPattern(Constants.DAILY_FORMAT));
-        List<SysWorkTime> futureWorkTime = workTimeService.findFutureWorkTime(event.getOrgIds(), date, SecurityConstants.INNER);
+        Date now = new Date();
         for (EduTrainingPlanCycleEnum value : EduTrainingPlanCycleEnum.values()) {
             switch (value) {
                 case DAILY:
-                    List<SysWorkTime> timeList = futureWorkTime.stream()
-                            .filter(time -> ObjectUtil.equal(time.getYmdDate(), date))
-                            .collect(Collectors.toList());
-                    dealTimeWorkChangeForDaily(event, date, timeList);
+                    List<SysWorkTime> dailyFutureWorkTime = getStartAndEndTime(now, EduTrainingPlanCycleEnum.DAILY.getCode(), event);
+                    dealTimeWorkChangeForDaily(event, date, dailyFutureWorkTime);
                     break;
                 case WEEKLY:
-                    dealTimeWorkChangeForWeekly(event, date, futureWorkTime);
+                    List<SysWorkTime> weeklyFutureWorkTime = getStartAndEndTime(now, EduTrainingPlanCycleEnum.WEEKLY.getCode(), event);
+                    dealTimeWorkChangeForWeekly(event, date, weeklyFutureWorkTime);
                     break;
                 case MONTHLY:
-                    dealTimeWorkChangeForMonthly(event, date, futureWorkTime);
+                    List<SysWorkTime> monthlyFutureWorkTime = getStartAndEndTime(now, EduTrainingPlanCycleEnum.MONTHLY.getCode(), event);
+                    dealTimeWorkChangeForMonthly(event, date, monthlyFutureWorkTime);
                     break;
                 case QUARTERLY:
-                    dealTimeWorkChangeForQuarterly(event, date, futureWorkTime);
+                    List<SysWorkTime> quarterlyFutureWorkTime = getStartAndEndTime(now, EduTrainingPlanCycleEnum.QUARTERLY.getCode(), event);
+                    dealTimeWorkChangeForQuarterly(event, date, quarterlyFutureWorkTime);
                     break;
                 case HALF_YEARLY:
-                    dealTimeWorkChangeForHalfYearly(event, date, futureWorkTime);
+                    List<SysWorkTime> halfYearlyFutureWorkTime = getStartAndEndTime(now, EduTrainingPlanCycleEnum.HALF_YEARLY.getCode(), event);
+                    dealTimeWorkChangeForHalfYearly(event, date, halfYearlyFutureWorkTime);
                     break;
                 case YEARLY:
-                    dealTimeWorkChangeForYearly(event, date, futureWorkTime);
+                    List<SysWorkTime> yearlyFutureWorkTime = getStartAndEndTime(now, EduTrainingPlanCycleEnum.YEARLY.getCode(), event);
+                    dealTimeWorkChangeForYearly(event, date, yearlyFutureWorkTime);
                     break;
                 default:
                     break;
@@ -1036,6 +1039,14 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
         //此list中Plan对象仅id与planCycle字段有值,
         buildTaskByPlan(planList, today);
     }
+
+
+    private List<SysWorkTime> getStartAndEndTime(Date now, Integer cycle, WorkTimeChangeEvent event) {
+        DateRange range = DateUtils.getStartAndEnd(now, cycle);
+        String startTime = DateUtil.format(range.getStartTime(), Constants.DAILY_FORMAT);
+        String endTime = DateUtil.format(range.getEndTime(), Constants.DAILY_FORMAT);
+        return workTimeService.findFutureWorkTime(event.getOrgIds(), startTime, endTime, SecurityConstants.INNER);
+    }
 }
 
 

+ 2 - 2
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysWorkTimeController.java

@@ -147,8 +147,8 @@ public class SysWorkTimeController extends BaseController {
     @ApiOperation(value = "查询未来作息时间")
     @InnerAuth
     @PostMapping("/work/time/findFutureWorkTime")
-    List<SysWorkTime> findFutureWorkTime(@RequestBody List<Long> orgId,String time){
-       return sysWorkTimeService.findFutureWorkTime(orgId,time);
+    List<SysWorkTime> findFutureWorkTime(@RequestBody List<Long> orgId,String startTime,String ednTime){
+        return sysWorkTimeService.findFutureWorkTime(orgId,startTime,ednTime);
     }
 
 }

+ 1 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysWorkTimeService.java

@@ -95,5 +95,5 @@ public interface ISysWorkTimeService extends IService<SysWorkTime> {
 
     List<String> findWorkTimeByDateRangeAndOrgId(Date startTime, Date endTime, Long orgId);
 
-    List<SysWorkTime> findFutureWorkTime(List<Long> orgId, String time);
+    List<SysWorkTime> findFutureWorkTime(List<Long> orgId,String startTime,String ednTime);
 }

+ 3 - 2
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysWorkTimeServiceImpl.java

@@ -454,9 +454,10 @@ public class SysWorkTimeServiceImpl extends ServiceImpl<SysWorkTimeMapper, SysWo
     }
 
     @Override
-    public List<SysWorkTime> findFutureWorkTime(List<Long> orgId, String time) {
+    public List<SysWorkTime> findFutureWorkTime(List<Long> orgId,String startTime,String ednTime) {
         return lambdaQuery()
-                .ge(SysWorkTime::getYmdDate, time)
+                .ge(SysWorkTime::getYmdDate, startTime)
+                .le(SysWorkTime::getYmdDate, ednTime)
                 .in(SysWorkTime::getOrgId, orgId)
                 .select(SysWorkTime::getId, SysWorkTime::getIsEnable, SysWorkTime::getYmdDate, SysWorkTime::getOrgId)
                 .list();