Pārlūkot izejas kodu

修改公告通知功能

ouyang 1 gadu atpakaļ
vecāks
revīzija
cd3af82b7f

+ 27 - 7
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/retrieval/service/impl/CoreMonitoringRetrievalTaskBuilderServiceImpl.java

@@ -8,11 +8,14 @@ import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xunmei.common.core.constant.Constants;
 import com.xunmei.common.core.constant.ErrorMsgConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.DateRange;
 import com.xunmei.common.core.domain.retrieval.domain.CoreMonitoringRetrievalTask;
 import com.xunmei.common.core.domain.retrieval.vo.*;
+import com.xunmei.common.core.domain.worktime.domain.SysWorkTime;
+import com.xunmei.common.core.domain.worktime.dto.WorkTimeDto;
 import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.common.core.enums.RetrievalTaskCycle;
 import com.xunmei.common.core.enums.edu.EduTrainingPlanCycleEnum;
@@ -20,6 +23,7 @@ import com.xunmei.common.core.event.WorkTimeChangeEvent;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.Ymd;
 import com.xunmei.common.security.utils.SecurityUtils;
+import com.xunmei.core.TaskCreatingServiceImplBase;
 import com.xunmei.core.access.domain.TMonitoringRetrievalPlan;
 import com.xunmei.core.access.mapper.CoreMonitoringTaskRegistrationMapper;
 import com.xunmei.core.access.service.ITMonitoringRetrievalPlanService;
@@ -407,14 +411,18 @@ public class CoreMonitoringRetrievalTaskBuilderServiceImpl extends ServiceImpl<C
             //周期任务获取计划时间
             dateRange = DateUtils.getStartAndEnd(dateTime, EduTrainingPlanCycleEnum.toCommonEnum(Integer.parseInt(plan.getPlanCycle())));
         }
-        Map<Integer, DateRange> dateRanges = DateUtils.splitDateRange(dateRange.getStartTime(), dateRange.getEndTime(), plan.getPlanFrequency().intValue());
+        List<SysOrg> orgList = new ArrayList<>();
+        orgList.add(sysOrg);
+        final List<SysWorkTime> workTimeList = getWorkTimeList(orgList, dateRange.getStartTime(), dateRange.getEndTime());
+        //Map<Integer, DateRange> dateRanges = DateUtils.splitDateRange(dateRange.getStartTime(), dateRange.getEndTime(), plan.getPlanFrequency().intValue());
+        Map<Short, DateRange> dateRanges = TaskCreatingServiceImplBase.splitTaskTime((short)plan.getPlanFrequency().intValue(), EduTrainingPlanCycleEnum.toCommonEnum(Integer.parseInt(plan.getPlanCycle())), dateRange.getStartTime(), dateRange.getEndTime(), workTimeList);
         //判断作息(无周期排开)
 //        if (!plan.getPlanCycle().equals(RetrievalTaskCycle.NOCYCLE.getCode().toString())) {
-        int idx = 1;
+/*        int idx = 1;
         Map<Integer, DateRange> workingDateRanges = new HashMap<>();
 
 
-        for (Map.Entry<Integer, DateRange> entry : dateRanges.entrySet()) {
+        for (Map.Entry<Short, DateRange> entry : dateRanges.entrySet()) {
             DateRange dateRange1 = entry.getValue();
             boolean flag = true;
             if (ObjectUtil.equal(sysOrg.getType(), OrgTypeEnum.YINGYE_WANGDIAN.getCode())) {
@@ -425,13 +433,13 @@ public class CoreMonitoringRetrievalTaskBuilderServiceImpl extends ServiceImpl<C
                 workingDateRanges.put(idx, dateRange1);
                 idx++;
             }
-        }
+        }*/
 
-        for (Map.Entry<Integer, DateRange> entry : workingDateRanges.entrySet()) {
-            Integer key = entry.getKey();
+        for (Map.Entry<Short, DateRange> entry : dateRanges.entrySet()) {
+            Integer key = entry.getKey().intValue();
             DateRange dateRange1 = entry.getValue();
             CoreMonitoringRetrievalTask task = this.buildCoreMonitoringRetrievalTask(batchNum, key, plan, sysOrg,
-                    dateRange1, ymd, workingDateRanges.size());
+                    dateRange1, ymd, dateRanges.size());
             taskList.add(task);
         }
         return taskList;
@@ -748,6 +756,18 @@ public class CoreMonitoringRetrievalTaskBuilderServiceImpl extends ServiceImpl<C
         }
     }
 
+    private List<SysWorkTime> getWorkTimeList(List<SysOrg> orgList, Date start, Date end) {
+        List<Long> orgIdList = orgList.stream().map(SysOrg::getId).collect(Collectors.toList());
+        String startTime = DateUtil.format(start, Constants.DAILY_FORMAT);
+        String endTime = DateUtil.format(end, Constants.DAILY_FORMAT);
+        WorkTimeDto workTimeDto = new WorkTimeDto();
+        workTimeDto.setOrgIdList(orgIdList);
+        workTimeDto.setStartTime(startTime);
+        workTimeDto.setEndTime(endTime);
+        return RemoteCallHandlerExecutor.executeRemoteCall(() ->
+                        workTimeService.findWorkTimeByRange(workTimeDto, SecurityConstants.FROM_SOURCE).getData(),
+                ErrorMsgConstants.QUERY_ORG_WORK_TIME_ERROR);
+    }
 //    private List<SysWorkTime> selectWorkTimeList(Date now, CycleCommonEnum cycle, WorkTimeChangeEvent event) {
 //        DateRange range = DateUtils.getStartAndEnd(now, cycle);
 //        String startTime = DateUtil.format(range.getStartTime(), Constants.DAILY_FORMAT);