소스 검색

Merge remote-tracking branch 'origin/V0.0.2' into V0.0.2

jingyuanchao 2 년 전
부모
커밋
f44fd49def

+ 0 - 7
project_data/sql/0.0.2/soc/soc.sql

@@ -1262,13 +1262,6 @@ delete from sys_role_menu where menu_id in(1714247486990786561) ;
 INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (116, 1714247486990786561);
 INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (120, 1714247486990786561);
 
-INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (116, 2208);
-INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (116, 2209);
-INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (116, 2210);
-INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (116, 2211);
-INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (116, 2212);
-INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (116, 2213);
-
 delete from sys_role_menu where menu_id in(2208,2209,2210,2211,2212,2213,2196) ;
 
 INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (116, 2196);

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

@@ -5,6 +5,7 @@ import com.xunmei.common.core.constant.ServiceNameConstants;
 import com.xunmei.common.core.domain.R;
 import com.xunmei.common.core.domain.worktime.dto.WorkTimeDto;
 import com.xunmei.common.core.utils.Ymd;
+import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.system.api.domain.SysWorkTime;
 import com.xunmei.system.api.factory.RemoteWorkTimesFallbackFactory;
 import org.springframework.cloud.openfeign.FeignClient;
@@ -12,6 +13,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 @FeignClient(contextId = "remoteWorkTimeService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = RemoteWorkTimesFallbackFactory.class)
 public interface RemoteWorkTimeService {
@@ -31,4 +33,6 @@ public interface RemoteWorkTimeService {
     @PostMapping("/work/time/findWorkTimeByRange")
     List<SysWorkTime> findWorkTimeByRange(@RequestBody WorkTimeDto workTimeDto, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
+    @PostMapping("/work/time/checkWorkTime")
+    Integer checkWorkTime(@RequestBody Map<String,Object> searchData,  @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }

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

@@ -3,15 +3,18 @@ package com.xunmei.system.api.factory;
 import com.xunmei.common.core.domain.R;
 import com.xunmei.common.core.domain.worktime.dto.WorkTimeDto;
 import com.xunmei.common.core.utils.Ymd;
+import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.system.api.RemoteWorkTimeService;
 import com.xunmei.system.api.domain.SysWorkTime;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.PostMapping;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 @Component
 public class RemoteWorkTimesFallbackFactory implements FallbackFactory<RemoteWorkTimeService> {
@@ -19,7 +22,7 @@ public class RemoteWorkTimesFallbackFactory implements FallbackFactory<RemoteWor
 
     @Override
     public RemoteWorkTimeService create(Throwable throwable) {
-        log.error("用户服务调用失败:{}", throwable.getMessage());
+        log.error("作息服务调用失败:{}", throwable.getMessage());
         return new RemoteWorkTimeService() {
             @Override
             public R<List<Long>> findOrgIdsByYmd(String toYmd, String source) {
@@ -41,11 +44,17 @@ public class RemoteWorkTimesFallbackFactory implements FallbackFactory<RemoteWor
             public List<String> findWorkTimeByDateRangeAndOrgId(Date startTime, Date endTime, Long orgId) {
                 return null;
             }
-
             @Override
             public List<SysWorkTime> findWorkTimeByRange(WorkTimeDto workTimeDto,String source) {
                 return null;
             }
+
+            @Override
+            public Integer checkWorkTime(Map<String, Object> searchData, String source) {
+                return null;
+            }
+
+
         };
     }
 }

+ 97 - 9
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/service/impl/TMonitoringRetrievalPlanServiceImpl.java

@@ -162,6 +162,103 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
                     tm.setPlanStatus(1);
                     tm.setIsDistribute("1");
                     baseMapper.updateById(tm);
+                    if (tMonitoringRetrievalPlan.getOrgType().equals("3")) {
+                        if (!tMonitoringRetrievalPlan.getPlanCycle().equals(ZERO.toString()) &&
+                                tMonitoringRetrievalPlan.getImmediately().equals(Boolean.TRUE)) {
+                            tm.setStartTime(new Date());
+                            int amount = 0;
+                            LocalDate lastDayOfMonth;
+                            switch (tMonitoringRetrievalPlan.getPlanCycle()) {
+                                case "1":
+                                    amount = 1;
+                                    break;
+                                case "2":
+                                    amount = 7;
+                                    break;
+                                case "3":
+                                    LocalDate currentDate = LocalDate.now();
+                                    lastDayOfMonth = currentDate.withDayOfMonth(currentDate.lengthOfMonth());
+                                    amount = lastDayOfMonth.getDayOfMonth() - currentDate.getDayOfMonth();
+                                    break;
+                                case "4":
+                                    amount = getDayNum(3);
+                                    break;
+                                case "5":
+                                    amount = getDayNum(6);
+                                    break;
+                                case "6":
+                                    amount = getDayNum(12);
+                                    break;
+                            }
+                            Calendar cal = Calendar.getInstance();
+                            cal.setTime(new Date());
+                            cal.add(Calendar.DATE, amount);
+                            Date time = cal.getTime();
+                            tm.setEndTime(time);
+                            tMonitoringRetrievalPlans.add(tm);
+                        }
+                    }else {
+                        SysOrg sysOrg = new SysOrg();
+                        sysOrg.setPath(tm.getOrgPath());
+                        sysOrg.setType(Integer.valueOf(tMonitoringRetrievalPlan.getOrgType()));
+                        List<SysOrg> sysOrgs = remoteOrgService.listByParentIdAndType(sysOrg, SecurityConstants.INNER);
+                        for (SysOrg s : sysOrgs) {
+                            TMonitoringRetrievalPlan plan = new TMonitoringRetrievalPlan();
+                            BeanUtils.copyProperties(tMonitoringRetrievalPlan, plan);
+                            plan.setPlanName(tMonitoringRetrievalPlan.getPlanName());
+                            plan.setOrgId(s.getId());
+                            plan.setOrgName(s.getShortName());
+                            plan.setRoleId(tMonitoringRetrievalPlan.getRoleId());
+                            plan.setRoleName(tMonitoringRetrievalPlan.getRoleName());
+                            plan.setOrgPath(s.getPath());
+                            plan.setOrgType(tMonitoringRetrievalPlan.getOrgType());
+                            plan.setPlanCycle(tMonitoringRetrievalPlan.getPlanCycle());
+                            plan.setPlanFrequency(tMonitoringRetrievalPlan.getPlanFrequency());
+                            plan.setPlanStatus(ZERO);
+                            plan.setCreateBy(SecurityUtils.getUsername());
+                            plan.setUpdateTime(DateUtils.getNowDate());
+                            plan.setUpdateBy(SecurityUtils.getUsername());
+                            plan.setCreateTime(DateUtils.getNowDate());
+                            plan.setDescription(tMonitoringRetrievalPlan.getDescription());
+                            plan.setCreateType(1);
+                            plan.setParentId(tMonitoringRetrievalPlan.getId());
+                            plan.setIsDistribute("1");
+                            if (!tMonitoringRetrievalPlan.getPlanCycle().equals(ZERO.toString()) &&
+                                    tMonitoringRetrievalPlan.getImmediately().equals(Boolean.TRUE)) {
+                                plan.setStartTime(new Date());
+                                int amount = 0;
+                                LocalDate lastDayOfMonth;
+                                switch (tMonitoringRetrievalPlan.getPlanCycle()) {
+                                    case "1":
+                                        amount = 1;
+                                        break;
+                                    case "2":
+                                        amount = 7;
+                                        break;
+                                    case "3":
+                                        LocalDate currentDate = LocalDate.now();
+                                        lastDayOfMonth = currentDate.withDayOfMonth(currentDate.lengthOfMonth());
+                                        amount = lastDayOfMonth.getDayOfMonth() - currentDate.getDayOfMonth();
+                                        break;
+                                    case "4":
+                                        amount = getDayNum(3);
+                                        break;
+                                    case "5":
+                                        amount = getDayNum(6);
+                                        break;
+                                    case "6":
+                                        amount = getDayNum(12);
+                                        break;
+                                }
+                                Calendar cal = Calendar.getInstance();
+                                cal.setTime(new Date());
+                                cal.add(Calendar.DATE, amount);
+                                Date time = cal.getTime();
+                                plan.setEndTime(time);
+                            }
+                            tMonitoringRetrievalPlans.add(plan);
+                        }
+                    }
                 }
             } else {
                 //查询符合的机构,需求是先把行社加入
@@ -338,16 +435,7 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
                 }
                 tMonitoringRetrievalPlans.add(plan);
             }
-       /*     if ((tMonitoringRetrievalPlan.getImmediately().equals(Boolean.TRUE) || tMonitoringRetrievalPlan.getPlanCycle().equals(ZERO.toString())) && CollectionUtils.isNotEmpty(tMonitoringRetrievalPlans)) {
-                try {
-                    iCoreMonitoringRetrievalTaskService.noCycleTask(tMonitoringRetrievalPlans);
-                } catch (Exception e) {
-                    throw new ServiceException("下发任务异常,请联系管理员");
-                }
-            }*/
         }
-
-        SysOrg sysOrg1 = remoteOrgService.selectSysOrgById(SecurityUtils.getLoginUser().getOrgId(), SecurityConstants.INNER);
         if ((tMonitoringRetrievalPlan.getImmediately().equals(Boolean.TRUE) || tMonitoringRetrievalPlan.getPlanCycle().equals(ZERO.toString())) && CollectionUtils.isNotEmpty(tMonitoringRetrievalPlans)) {
             try {
                 iCoreMonitoringRetrievalTaskService.noCycleTask(tMonitoringRetrievalPlans);

+ 38 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/retrieval/service/impl/CoreMonitoringRetrievalTaskServiceImpl.java

@@ -27,6 +27,7 @@ import com.xunmei.common.core.enums.RetrievalTaskCycle;
 import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.Ymd;
+import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.access.domain.TMonitoringRetrievalPlan;
@@ -37,10 +38,12 @@ import com.xunmei.core.retrieval.mapper.CoreMonitoringRetrievalTaskMapper;
 import com.xunmei.core.retrieval.service.ICoreMonitoringRetrievalTaskService;
 import com.xunmei.system.api.RemoteDictDataService;
 import com.xunmei.system.api.RemoteOrgService;
+import com.xunmei.system.api.RemoteWorkTimeService;
 import com.xunmei.system.api.domain.SysDictData;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
 import com.xunmei.system.api.model.LoginUser;
+import io.swagger.models.auth.In;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
@@ -80,6 +83,8 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
     private CoreMonitoringTaskRegistrationMapper coreMonitoringTaskRegistrationMapper;
     @Autowired
     private RemoteOrgService remoteOrgService;
+    @Autowired
+    RemoteWorkTimeService workTimeService;
 
     @Override
     public TableDataInfo selectPage(RetrievalTaskPageDto request) {
@@ -409,7 +414,7 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
         //获取计划
         QueryWrapper<TMonitoringRetrievalPlan> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getPlanCycle, cycle);
-        queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getPlanStatus, 0);
+        queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getPlanStatus, 1);
         queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getIsDeleted, 0);
         queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getCreateType, 1);
         List<TMonitoringRetrievalPlan> plans = itMonitoringRetrievalPlanService.list(queryWrapper);
@@ -484,6 +489,25 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
             CoreMonitoringRetrievalTask task = this.buildCoreMonitoringRetrievalTask(batchNum, i, plan, sysOrg, dateRange1, ymd);
             taskList.add(task);
         }
+        //判断作息(无周期排开)
+        if(!plan.getPlanCycle().equals(RetrievalTaskCycle.NOCYCLE.getCode())){
+            boolean flag = checkWorkTime(dateRange.getStartTime(), dateRange.getEndTime(), sysOrg.getId());
+            if(flag){
+                for (int i = 1; i <= plan.getPlanFrequency(); i++) {
+                    DateRange dateRange1 = dateRanges.get(i);
+                    CoreMonitoringRetrievalTask task = this.buildCoreMonitoringRetrievalTask(batchNum, i, plan, sysOrg, dateRange1, ymd);
+                    taskList.add(task);
+                }
+            }else{
+                log.error("机构"+sysOrg.getName()+"在时间"+dateRange.getStartTime()+"-"+dateRange.getEndTime()+"没有作息,不生成监控调阅任务");
+            }
+        }else{
+            for (int i = 1; i <= plan.getPlanFrequency(); i++) {
+                DateRange dateRange1 = dateRanges.get(i);
+                CoreMonitoringRetrievalTask task = this.buildCoreMonitoringRetrievalTask(batchNum, i, plan, sysOrg, dateRange1, ymd);
+                taskList.add(task);
+            }
+        }
 
         return taskList;
 
@@ -558,4 +582,17 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
 
         return Stream.of(overTimeExceptionData, numsExceptionData).flatMap(Collection::stream).collect(Collectors.toList());
     }
+
+    private boolean checkWorkTime(Date workstartTime, Date workendTime,Long orgId){
+        Map<String,Object> map = new HashMap<>();
+        map.put("workstartTime",DateUtil.format(workstartTime,"yyyy-MM-dd"));
+        map.put("workendTime",DateUtil.format(workendTime,"yyyy-MM-dd"));
+        map.put("orgId",orgId);
+        Integer num = workTimeService.checkWorkTime(map,SecurityConstants.INNER);
+        if(num>0){
+            return true;
+        }else {
+            return  false;
+        }
+    }
 }

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

@@ -9,6 +9,7 @@ import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.log.annotation.Log;
 import com.xunmei.common.log.enums.BusinessType;
+import com.xunmei.common.security.annotation.InnerAuth;
 import com.xunmei.common.security.annotation.RequiresPermissions;
 import com.xunmei.system.api.domain.SysWorkTime;
 import com.xunmei.system.domain.SysWorkTimeSet;
@@ -155,5 +156,11 @@ public class SysWorkTimeController extends BaseController {
     List<SysWorkTime>findWorkTimeByRange(@RequestBody WorkTimeDto workTimeDto) {
         return sysWorkTimeService.findFutureWorkTime(workTimeDto);
     }
+    @ApiOperation(value = "检查时间范围内有无作息")
+    @InnerAuth
+    @PostMapping("/checkWorkTime")
+    Integer checkWorkTime(@RequestBody Map<String,Object> map){
+        return sysWorkTimeService.checkWorkTime(map);
+    }
 
 }

+ 2 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/mapper/SysWorkTimeMapper.java

@@ -87,4 +87,6 @@ public interface SysWorkTimeMapper extends BaseMapper<SysWorkTime> {
      * @return 结果
      */
      int deleteSysWorkTimeByIds(String[] ids);
+
+    int checkWorkTime(Map<String, Object> param);
 }

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

@@ -97,4 +97,6 @@ public interface ISysWorkTimeService extends IService<SysWorkTime> {
     List<String> findWorkTimeByDateRangeAndOrgId(Date startTime, Date endTime, Long orgId);
 
     List<SysWorkTime> findFutureWorkTime(WorkTimeDto workTimeDto);
+
+    int checkWorkTime(Map<String,Object> map);
 }

+ 5 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysWorkTimeServiceImpl.java

@@ -469,4 +469,9 @@ public class SysWorkTimeServiceImpl extends ServiceImpl<SysWorkTimeMapper, SysWo
                 .list();
 
     }
+
+    @Override
+    public int checkWorkTime(Map<String, Object> param) {
+        return sysWorkTimeMapper.checkWorkTime(param);
+    }
 }

+ 3 - 0
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysWorkTimeMapper.xml

@@ -168,6 +168,9 @@
         where org_id = #{orgId}
           and ymd_date &gt;= #{start} and  ymd_date &lt;= #{end}
     </select>
+    <select id="checkWorkTime" resultType="java.lang.Integer">
+        select count(*) from sys_work_time where ymd_date>=#{workstartTime} and #{workendTime} >=ymd_date and org_id=#{orgId} and is_enable=1
+    </select>
 
     <insert id="insertSysWorkTime" parameterType="com.xunmei.system.api.domain.SysWorkTime">
         insert into sys_work_time