Переглянути джерело

Merge branch 'V0.0.5' of http://10.87.21.221:8000/jzyd_yyds/soc into V0.0.5

jiawuxian 1 рік тому
батько
коміт
4ec18499c2
20 змінених файлів з 166 додано та 105 видалено
  1. 3 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteUserService.java
  2. 5 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteUserFallbackFactory.java
  3. 1 0
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/constant/ErrorMsgConstants.java
  4. 8 2
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/panel/dto/PanelListDto.java
  5. 4 4
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/retrieval/vo/CoreMonitoringRetrievalTaskOneVo.java
  6. 15 17
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/service/impl/TMonitoringRetrievalPlanServiceImpl.java
  7. 27 24
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillPlanServiceImpl.java
  8. 2 2
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java
  9. 24 20
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingPlanServiceImpl.java
  10. 3 2
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java
  11. 24 18
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/impl/CoreIntroduceLetterServiceImpl.java
  12. 13 6
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/panel/service/impl/PanelServiceImpl.java
  13. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/retrieval/mapper/CoreMonitoringRetrievalTaskMapper.java
  14. 2 5
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/CoreSafetyTaskServiceImpl.java
  15. 1 1
      soc-modules/soc-modules-core/src/main/resources/mapper/retrieval/CoreMonitoringRetrievalTaskMapper.xml
  16. 6 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysUserController.java
  17. 2 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysUserService.java
  18. 5 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysOrgServiceImpl.java
  19. 19 3
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysUserServiceImpl.java
  20. 1 0
      soc-modules/soc-modules-system/src/main/resources/mapper/system/SysOrgMapper.xml

+ 3 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteUserService.java

@@ -90,4 +90,7 @@ public interface RemoteUserService {
      */
     @PostMapping("/user/checkuserpermission")
     List<Long> checkUserPermission(@RequestParam("menuIds") List<Long> menuIds,@RequestParam("userId") Long userId ,@RequestHeader(SecurityConstants.FROM_SOURCE)  String source);
+
+    @GetMapping("/user/selectUserRoleMenu")
+    List<Long> selectUserRoleMenu(@RequestParam("userId")Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }

+ 5 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteUserFallbackFactory.java

@@ -82,6 +82,11 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
             public List<Long> checkUserPermission(@RequestParam("menuIds") List<Long> menuIds,Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source) {
                 return new ArrayList<>();
             }
+
+            @Override
+            public List<Long> selectUserRoleMenu(Long userId, String fromSource) {
+                return null;
+            }
         };
     }
 }

+ 1 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/constant/ErrorMsgConstants.java

@@ -19,4 +19,5 @@ public class ErrorMsgConstants {
     public static final String QUERY_USER_ROLE_ERROR = "获取当前用户角色信息失败!";
     public static final String QUERY_SYS_CONFIG_ERROR = "获取参数配置信息失败!";
     public static final String QUERY_CONFIG_ERROR = "获取系统参数配置失败!";
+    public static final String QUERY_USER_PERMISSION_ERROR = "获取用户权限失败!";
 }

+ 8 - 2
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/panel/dto/PanelListDto.java

@@ -1,5 +1,6 @@
 package com.xunmei.common.core.domain.panel.dto;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Builder;
 import lombok.Data;
 
@@ -9,12 +10,17 @@ import java.util.List;
 @Data
 
 public class PanelListDto {
-
+    @ApiModelProperty(value = "当前用户id")
     private Long userId;
+    @ApiModelProperty(value = "当前用户机构id")
     private Long orgId;
+    @ApiModelProperty(value = "当前用户机构path")
     private String orgPath;
+    @ApiModelProperty(value = "当前用户角色id数组")
     private List<Long> roleIdList;
-    private List<Integer> statusList;
+    @ApiModelProperty(value = "当前用户菜单权限id")
+    private List<Long> permList;
+
     private Date startTime;
     private Date endTime;
 

+ 4 - 4
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/retrieval/vo/CoreMonitoringRetrievalTaskOneVo.java

@@ -43,28 +43,28 @@ public class CoreMonitoringRetrievalTaskOneVo {
     /**
      * 开始时间
      */
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy年MM月dd日", timezone = "GMT+8")
     @ApiModelProperty(value = "开始时间")
     private Date planStartTime;
 
     /**
      * 结束时间
      */
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy年MM月dd日", timezone = "GMT+8")
     @ApiModelProperty(value = "结束时间")
     private Date planEndTime;
 
     /**
      * 调阅开始时间
      */
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
     @ApiModelProperty(value = "调阅开始时间")
     private Date startTime;
 
     /**
      * 调阅结束时间
      */
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
     @ApiModelProperty(value = "调阅结束时间")
     private Date endTime;
 

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

@@ -147,6 +147,7 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
         list.add(plan);
         List<Long> collect = list.stream().map(TMonitoringRetrievalPlan::getId).collect(Collectors.toList());
         boolean isEdit = false;
+        //true禁止编辑,false可以编辑
         boolean isComplete = true;
         if (plan.getParentId() != null) {
             isEdit = true;
@@ -154,15 +155,12 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
         tMonitoringRetrievalPlanVO.setIsEdit(isEdit);
         List<String> status = new ArrayList<>();
         status.add("2");
-        //  status.add("3");
         List<CoreMonitoringRetrievalTask> coreMonitoringRetrievalTasks = iCoreMonitoringRetrievalTaskService.selectAllTaskByPlanId(collect, status);
-
-        if (CollectionUtils.isNotEmpty(coreMonitoringRetrievalTasks)&&plan.getPlanStatus()!=1) {
-            isComplete = false;
+        if (CollectionUtils.isNotEmpty(coreMonitoringRetrievalTasks)) {
+            isComplete = true;
         }
-        if (plan.getPlanStatus()==0){
-            isEdit=false;
-            isComplete=false;
+        if (plan.getPlanStatus() == 0) {
+            isComplete = false;
         }
         tMonitoringRetrievalPlanVO.setIsComplete(isComplete);
         return tMonitoringRetrievalPlanVO;
@@ -534,17 +532,17 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
                 coreMonitoringRetrievalTaskBuilderService.deleteAllTaskByPlanIds(collect);
             }*/
 
-                for (TMonitoringRetrievalPlan tMonitoringRetrievalPlan : list1) {
-                    if (!isComplete){
-                        tMonitoringRetrievalPlan.setPlanStatus(2);
-                    }
-                    tMonitoringRetrievalPlan.setIsDistribute("0");
-                    baseMapper.updateById(tMonitoringRetrievalPlan);
-                    //如果是无周期和全是未完成,删除计划
-                    if (plan.getPlanCycle().equals("0")||isComplete) {
-                        baseMapper.deleteById(tMonitoringRetrievalPlan.getId());
-                    }
+            for (TMonitoringRetrievalPlan tMonitoringRetrievalPlan : list1) {
+                if (!isComplete) {
+                    tMonitoringRetrievalPlan.setPlanStatus(2);
+                }
+                tMonitoringRetrievalPlan.setIsDistribute("0");
+                baseMapper.updateById(tMonitoringRetrievalPlan);
+                //如果是无周期和全是未完成,删除计划
+                if (plan.getPlanCycle().equals("0") || isComplete) {
+                    baseMapper.deleteById(tMonitoringRetrievalPlan.getId());
                 }
+            }
 
             if (!plan.getPlanCycle().equals("0")) {
                 switch (plan.getPlanCycle()) {

+ 27 - 24
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillPlanServiceImpl.java

@@ -26,6 +26,8 @@ import com.xunmei.common.core.domain.drill.vo.CoreDrillPlanDataVo;
 import com.xunmei.common.core.domain.drill.vo.CoreDrillPlanDetailVo;
 import com.xunmei.common.core.domain.drill.vo.CoreDrillPlanPageVo;
 import com.xunmei.common.core.domain.drill.vo.CoreDrillPlanRoleVo;
+import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingPlan;
+import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingPlanDataVo;
 import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.common.core.enums.drill.DrillDoStatus;
 import com.xunmei.common.core.enums.drill.DrillPlanCycleEnum;
@@ -35,6 +37,7 @@ import com.xunmei.common.core.enums.edu.EduTrainingPlanCycleEnum;
 import com.xunmei.common.core.enums.edu.EduTrainingPlanStatus;
 import com.xunmei.common.core.exception.SystemException;
 import com.xunmei.common.core.util.BeanHelper;
+import com.xunmei.common.core.utils.AssertUtil;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.redis.utils.RedisUtils;
@@ -692,22 +695,8 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
     @Transactional(rollbackFor = Exception.class)
     public void publishPlan(Long planId, Integer status) {
         final CoreDrillPlan plan = coreDrillPlanMapper.selectById(planId);
-        if (plan == null) {
-            throw new SystemException("计划不存在!");
-        }
-        if (ObjectUtil.equal(plan.getIssue(), 1)) {
-            throw new SystemException("计划已完成发布!");
-        }
-        List<CoreDrillPlan> planList = lambdaQuery()
-                .eq(CoreDrillPlan::getParentId, planId)
-                .select(CoreDrillPlan::getId).list();
-        if (planList.isEmpty()) {
-            planList = buildPlanData(plan, new ArrayList<>(), true, status);
-        } else {
-            planList.forEach(plan1 -> plan1.setPlanStatus(EduTrainingPlanStatus.USING.getCode()));
-            List<Long> collect = planList.stream().map(CoreDrillPlan::getId).collect(Collectors.toList());
-            coreDrillPlanMapper.updatePlanStatusByIdList(collect, EduTrainingPlanStatus.USING.getCode());
-        }
+        AssertUtil.isNotEmpty(plan, "计划不存在!");
+        AssertUtil.equal(plan.getIssue(), 0, "计划已完成下发!");
         //下发后修改为使用中
         plan.setPlanStatus(DrillPlanStatus.USING.getCode());
         plan.setIssue(1);
@@ -720,19 +709,32 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
             plan.setBuildTaskNow(0);
         }
         //事务提交后执行
-        List<CoreDrillPlan> finalPlanList = planList;
         TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
             @Override
             public void afterCommit() {
-                for (CoreDrillPlan drillPlan : finalPlanList) {
-                    CompletableFuture.runAsync(() -> {
-                        //如果不是省联社或者办事处,状态启用,并且是无周期或者立即生效
+
+                final CompletableFuture<List<CoreDrillPlan>> planListFuture = CompletableFuture.supplyAsync(() -> {
+                    List<CoreDrillPlan> planList = lambdaQuery()
+                            .eq(CoreDrillPlan::getParentId, planId)
+                            .select(CoreDrillPlan::getId).list();
+                    if (planList.isEmpty()) {
+                        planList = buildPlanData(plan, new ArrayList<>(), true, status);
+                    } else {
+                        planList.forEach(plan1 -> plan1.setPlanStatus(EduTrainingPlanStatus.USING.getCode()));
+                        List<Long> collect = planList.stream().map(CoreDrillPlan::getId).collect(Collectors.toList());
+                        coreDrillPlanMapper.updatePlanStatusByIdList(collect, EduTrainingPlanStatus.USING.getCode());
+                    }
+                    return planList;
+                }, threadPoolTaskExecutor);
+
+                planListFuture.thenAcceptAsync((result) -> {
+                    for (CoreDrillPlan drillPlan : result) {
                         if (checkCanBuildTaskNow(plan)) {
                             final CoreDrillPlanDataVo detailPlanData = getCoreDrillPlanDataVo(drillPlan.getId());
                             coreDrillTaskService.createTaskForNow(detailPlanData, plan.getPlanStartDate(), plan.getPlanEndDate());
                         }
-                    }, threadPoolTaskExecutor);
-                }
+                    }
+                }, threadPoolTaskExecutor);
             }
         });
 
@@ -777,10 +779,11 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
             // 删除所有任务数据
             coreDrillTaskService.delByStartTimeAndEndTimeAndPlanIdList(list, null, null);
             //删除所有子计划
-            coreDrillPlanMapper.delByIds(list);
+            //coreDrillPlanMapper.delByIds(list);
+            list.add(planId);
             //计划状态回到草稿状态
             update(new LambdaUpdateWrapper<CoreDrillPlan>()
-                    .eq(CoreDrillPlan::getId, planId)
+                    .in(CoreDrillPlan::getId, list)
                     .set(CoreDrillPlan::getIssue, 0)
                     .set(CoreDrillPlan::getWithdrawTime, new Date())
                     .set(CoreDrillPlan::getPlanStatus, DrillPlanStatus.DRAFT.getCode()));

+ 2 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java

@@ -1066,11 +1066,11 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
     public WebPanelResult selectWebIndexData(PanelListDto req) {
         final int count = coreDrillTaskMapper.selectCount(new LambdaQueryWrapper<CoreDrillTask>()
                 .eq(CoreDrillTask::getOrgId, req.getOrgId())
-                .eq(CoreDrillTask::getStatus,DrillDoStatus.WAIT_RECORDED.getCode())).intValue();
+                .in(CoreDrillTask::getStatus, Arrays.asList(DrillDoStatus.WAIT_RECORDED.getCode(),DrillDoStatus.WAIT_SUBMIT.getCode()))).intValue();
         return WebPanelResult
                 .builder()
                 .status(DrillDoStatus.WAIT_RECORDED.getCode())
-                .statusText(DrillDoStatus.WAIT_RECORDED.getName())
+                .statusText("待完成")
                 .taskType(PanelTypeEnums.DRILL.ordinal())
                 .taskTypeText(PanelTypeEnums.DRILL.getName())
                 .nums(count).build();

+ 24 - 20
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingPlanServiceImpl.java

@@ -707,16 +707,6 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         final CoreEduTrainingPlan plan = coreEduTrainingPlanMapper.selectById(planId);
         AssertUtil.isNotEmpty(plan, "计划不存在!");
         AssertUtil.equal(plan.getIssue(), 0, "计划已完成下发!");
-        List<CoreEduTrainingPlan> planList = lambdaQuery()
-                .eq(CoreEduTrainingPlan::getParentId, planId)
-                .select(CoreEduTrainingPlan::getId).list();
-        if (planList.isEmpty()) {
-            planList = buildPlanData(plan, new ArrayList<>(), true, status);
-        } else {
-            planList.forEach(plan1 -> plan1.setPlanStatus(EduTrainingPlanStatus.USING.getCode()));
-            List<Long> collect = planList.stream().map(CoreEduTrainingPlan::getId).collect(Collectors.toList());
-            coreEduTrainingPlanMapper.updatePlanStatusByIdList(collect, EduTrainingPlanStatus.USING.getCode());
-        }
         //下发后修改为使用中
         plan.setPlanStatus(EduTrainingPlanStatus.USING.getCode());
         plan.setIssue(1);
@@ -729,19 +719,32 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
             plan.setBuildTaskNow(0);
         }
         //事务提交后执行
-        List<CoreEduTrainingPlan> finalPlanList = planList;
         TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
             @Override
             public void afterCommit() {
-                for (CoreEduTrainingPlan trainingPlan : finalPlanList) {
-                    CompletableFuture.runAsync(() -> {
-                        //如果不是省联社或者办事处,状态启用,并且是无周期或者立即生效
+                final CompletableFuture<List<CoreEduTrainingPlan>> planListFuture = CompletableFuture.supplyAsync(() -> {
+                    List<CoreEduTrainingPlan> planList = lambdaQuery()
+                            .eq(CoreEduTrainingPlan::getParentId, planId)
+                            .select(CoreEduTrainingPlan::getId).list();
+                    if (planList.isEmpty()) {
+                        planList = buildPlanData(plan, new ArrayList<>(), true, status);
+                    } else {
+                        planList.forEach(plan1 -> plan1.setPlanStatus(EduTrainingPlanStatus.USING.getCode()));
+                        List<Long> collect = planList.stream().map(CoreEduTrainingPlan::getId).collect(Collectors.toList());
+                        coreEduTrainingPlanMapper.updatePlanStatusByIdList(collect, EduTrainingPlanStatus.USING.getCode());
+                    }
+                    return planList;
+                }, threadPoolTaskExecutor);
+
+                planListFuture.thenAcceptAsync((result) -> {
+                    for (CoreEduTrainingPlan plan : result) {
                         if (checkCanBuildTaskNow(plan)) {
-                            CoreEduTrainingPlanDataVo detailPlanData = getCoreEduTrainingPlanDataVo(trainingPlan.getId());
+                            CoreEduTrainingPlanDataVo detailPlanData = getCoreEduTrainingPlanDataVo(plan.getId());
                             coreEduTrainingTaskService.createTaskForNow(detailPlanData, plan.getStartDate(), plan.getEndDate());
                         }
-                    }, threadPoolTaskExecutor);
-                }
+                    }
+                }, threadPoolTaskExecutor);
+
             }
         });
 
@@ -869,15 +872,16 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
                         .in(CoreEduTrainingTask::getPlanId, list)
                         .eq(CoreEduTrainingTask::getStatus, EduTrainingDoStatus.DONE.getCode()))
                 .intValue();
-        //计划下没有已完成:删除所有任务数据和子计划,计划状态回到草稿状态。
+        //计划下没有已完成:计划下没有已完成:删除所有任务数据,计划状态回到草稿状态。
         if (ObjectUtil.notEqual(isExecute, 1)/* || EduTrainingPlanCycleEnum.NONE.getCode().equals(plan.getPlanCycle())*/) {
             // 删除所有任务数据
             coreEduTrainingTaskService.delByStartTimeAndEndTimeAndPlanIdList(list, null, null);
             //删除所有子计划
-            coreEduTrainingPlanMapper.delByIds(list);
+            //coreEduTrainingPlanMapper.delByIds(list);
+            list.add(planId);
             //计划状态回到草稿状态
             update(new LambdaUpdateWrapper<CoreEduTrainingPlan>()
-                    .eq(CoreEduTrainingPlan::getId, planId)
+                    .in(CoreEduTrainingPlan::getId, list)
                     .set(CoreEduTrainingPlan::getIssue, 0)
                     .set(CoreEduTrainingPlan::getWithdrawTime, new Date())
                     .set(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.DRAFT.getCode()));

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

@@ -900,11 +900,12 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
     public WebPanelResult selectWebIndexData(PanelListDto req) {
         final int count = coreEduTrainingTaskMapper.selectCount(new LambdaQueryWrapper<CoreEduTrainingTask>()
                 .eq(CoreEduTrainingTask::getOrgId, req.getOrgId())
-                .eq(CoreEduTrainingTask::getStatus, EduTrainingDoStatus.WAIT_RECORDED.getCode())).intValue();
+                .in(CoreEduTrainingTask::getStatus, Arrays.asList(EduTrainingDoStatus.WAIT_RECORDED.getCode(),
+                        EduTrainingDoStatus.WAIT_SUBMIT.getCode()))).intValue();
         return WebPanelResult
                 .builder()
                 .status(EduTrainingDoStatus.WAIT_RECORDED.getCode())
-                .statusText(EduTrainingDoStatus.WAIT_RECORDED.getName())
+                .statusText("待完成")
                 .taskType(PanelTypeEnums.EDU_TRAINING.ordinal())
                 .taskTypeText(PanelTypeEnums.EDU_TRAINING.getName())
                 .nums(count).build();

+ 24 - 18
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/impl/CoreIntroduceLetterServiceImpl.java

@@ -29,6 +29,7 @@ import com.xunmei.core.letter.mapper.CoreOutInRecordMapper;
 import com.xunmei.core.letter.service.ICoreIntroduceLetterService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.RemoteRoleService;
+import com.xunmei.system.api.RemoteUserService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.domain.SysRole;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
@@ -58,7 +59,8 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
 
     @Autowired
     private RemoteRoleService roleService;
-
+    @Autowired
+    private RemoteUserService userService;
     @Resource
     private RemoteOrgService orgService;
 
@@ -305,36 +307,40 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
 
     @Override
     public WebPanelResult selectWebIndexData(PanelListDto req) {
+        final WebPanelResult result = WebPanelResult
+                .builder().status(0).statusText(DictUtils.getDictLabel(DictConstants.OUT_IN_APPROVE_STATUS, 0))
+                .taskType(PanelTypeEnums.VISIT_APPROVE.ordinal()).taskTypeText(PanelTypeEnums.VISIT_APPROVE.getName())
+                .nums(0).build();
+
+        final List<Long> menu = userService.selectUserRoleMenu(req.getUserId(), SecurityConstants.INNER);
+        //web端出入审批按钮权限id
+        if (!menu.contains(1722551208603836417L)) {
+            result.setNums(0);
+            return result;
+        }
         final int count = approveLogMapper.selectCount(new LambdaQueryWrapper<CoreIntroduceLetterApproveLog>()
                         .eq(CoreIntroduceLetterApproveLog::getOrgId, req.getOrgId())
                         .eq(CoreIntroduceLetterApproveLog::getApproveStatus, 0))
                 .intValue();
-        return WebPanelResult
-                .builder()
-                .status(0)
-                .statusText(DictUtils.getDictLabel(DictConstants.OUT_IN_APPROVE_STATUS, 0))
-                .taskType(PanelTypeEnums.VISIT_APPROVE.ordinal())
-                .taskTypeText(PanelTypeEnums.VISIT_APPROVE.getName())
-                .nums(count).build();
+        result.setNums(count);
+        return result;
     }
 
     @Override
     public List<PanelListVo> selectToDoApproveListForAPP(PanelListDto panelListDto) {
-        List<PanelListVo> resultList=new ArrayList<>();
+        List<PanelListVo> resultList = new ArrayList<>();
         SysRole role = roleService.getRoleByName("网点负责人", SecurityConstants.INNER);
         // 没有角色
-        if(ObjectUtil.isEmpty( panelListDto.getRoleIdList()))
-        {
+        if (ObjectUtil.isEmpty(panelListDto.getRoleIdList())) {
             return resultList;
         }
         // 没有网点负责人角色
-        if(!panelListDto.getRoleIdList().stream().anyMatch(x->ObjectUtil.equal(x,role.getId())))
-        {
+        if (!panelListDto.getRoleIdList().stream().anyMatch(x -> ObjectUtil.equal(x, role.getId()))) {
             return resultList;
         }
-        CoreIntroduceLetterApproveRequestDto requestDto =new CoreIntroduceLetterApproveRequestDto();
+        CoreIntroduceLetterApproveRequestDto requestDto = new CoreIntroduceLetterApproveRequestDto();
         requestDto.setOrgId(panelListDto.getOrgId());
-        resultList=coreIntroduceLetterMapper.selectToDoApproveListForAPP(requestDto);
+        resultList = coreIntroduceLetterMapper.selectToDoApproveListForAPP(requestDto);
         resultList.forEach(item -> {
             item.setType(PanelTypeEnums.VISIT_APPROVE.getCode());
         });
@@ -408,7 +414,7 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
         oqw.ne(CoreIntroduceLetter::getStatus, 2).eq(CoreIntroduceLetter::getDeleted, 0);
         List<CoreIntroduceLetter> coreIntroduceLetters = coreIntroduceLetterMapper.selectList(oqw);
         List<CoreIntroduceLetter> overdueLettersList = new ArrayList<>();
-        List<CoreIntroduceLetterApproveLog> approveLogs=  new ArrayList<>();
+        List<CoreIntroduceLetterApproveLog> approveLogs = new ArrayList<>();
         if (ObjectUtil.isNotEmpty(coreIntroduceLetters)) {
             Date currentDate = DateUtil.beginOfDay(new Date());
 
@@ -417,7 +423,7 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
                 if (result > 0) {
                     x.setStatus(2);
                     overdueLettersList.add(x);
-                    CoreIntroduceLetterApproveLog approveLog=   new CoreIntroduceLetterApproveLog();
+                    CoreIntroduceLetterApproveLog approveLog = new CoreIntroduceLetterApproveLog();
                     approveLog.setLetterId(x.getId());
                     approveLog.setApproveStatus(3);
                     approveLogs.add(approveLog);
@@ -425,7 +431,7 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
             });
         }
         if (ObjectUtil.isNotEmpty(overdueLettersList)) {
-            approveLogs.forEach(x->{
+            approveLogs.forEach(x -> {
                 coreIntroduceLetterMapper.updateApproveLogStatus(x);
             });
             // 批量修改需要修改连接字符串添加 &allowMultiQueries=true

+ 13 - 6
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/panel/service/impl/PanelServiceImpl.java

@@ -38,6 +38,7 @@ import com.xunmei.core.safetyCheck.service.ICoreSafetyTaskService;
 import com.xunmei.core.thread.ThreadPoolConfig;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.RemoteRoleService;
+import com.xunmei.system.api.RemoteUserService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
 import com.xunmei.system.api.model.LoginUser;
@@ -77,7 +78,8 @@ public class PanelServiceImpl implements PanelService {
 
     @Autowired
     private IQuestionService questionService;
-
+    @Autowired
+    private RemoteUserService userService;
     @Autowired
     private RemoteRoleService roleService;
     @Autowired
@@ -156,7 +158,7 @@ public class PanelServiceImpl implements PanelService {
 
         CompletableFuture<Void> allQueries = CompletableFuture.allOf(
                 resumptionTaskFuture, protectionTaskFuture, monitorTaskFuture, evaluateTaskFuture,
-                safetyTaskFuture, drillTaskFuture, eduTrainingTaskFuture, recLitFuture,questionTaskFuture, letterOutInFuture
+                safetyTaskFuture, drillTaskFuture, eduTrainingTaskFuture, recLitFuture, questionTaskFuture, letterOutInFuture
         );
 
         allQueries.get(TIMEOUT, TimeUnit.SECONDS);
@@ -164,7 +166,7 @@ public class PanelServiceImpl implements PanelService {
         List<PanelListVo> resultList = Stream.of(
                         resumptionTaskFuture.join(), protectionTaskFuture.join(), monitorTaskFuture.join(), evaluateTaskFuture.join(),
                         safetyTaskFuture.join(), drillTaskFuture.join(), eduTrainingTaskFuture.join(), recLitFuture.join(),
-                        questionTaskFuture.join(),letterOutInFuture.join()
+                        questionTaskFuture.join(), letterOutInFuture.join()
                 )
                 .flatMap(Collection::stream)
                 .collect(Collectors.toList());
@@ -189,11 +191,16 @@ public class PanelServiceImpl implements PanelService {
     @Override
     public List<WebPanelResult> selectWebData() throws ExecutionException, InterruptedException, TimeoutException {
         List<Long> roles = RemoteCallHandlerExecutor.executeRemoteCall(
-                () -> roleService.getUserRoleId(SecurityUtils.getUserId(), SecurityConstants.FROM_SOURCE),
+                () -> roleService.getUserRoleId(SecurityUtils.getUserId(), SecurityConstants.INNER),
                 ErrorMsgConstants.QUERY_USER_ROLE_ERROR);
 
+        List<Long> permList = RemoteCallHandlerExecutor.executeRemoteCall(
+                () -> userService.selectUserRoleMenu(SecurityUtils.getUserId(), SecurityConstants.INNER),
+                ErrorMsgConstants.QUERY_USER_PERMISSION_ERROR);
+
         PanelListDto req = PanelAdapter.getMapperSelectParam(SecurityUtils.getLoginUser().getOrgId(),
                 roles, SecurityUtils.getUserId());
+        req.setPermList(permList);
         List<CompletableFuture<WebPanelResult>> list = new ArrayList<>();
         //教育培训
         CompletableFuture<WebPanelResult> eduTrainingTaskFuture = CompletableFuture.supplyAsync(() ->
@@ -261,7 +268,7 @@ public class PanelServiceImpl implements PanelService {
         final TableDataInfo<MessageAppPageVo> page = notificationService.selectAppPage(req);
         final List<MessageAppPageVo> rows = page.getRows();
         rows.sort(Comparator.comparing(MessageAppPageVo::getPublishTime).reversed());
-        hashMap.put("index1",rows );
+        hashMap.put("index1", rows);
     }
 
     private void getMaterials(Map<String, Object> hashMap) {
@@ -286,7 +293,7 @@ public class PanelServiceImpl implements PanelService {
                 final List<String> list = JSON.parseArray(json, String.class);
                 for (String str : list) {
                     final Map map = JSON.parseObject(str, Map.class);
-                    map.put("createTime",vo.getCreateTime());
+                    map.put("createTime", vo.getCreateTime());
 
                     fileLit.add(JSON.toJSONString(map));
                 }

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/retrieval/mapper/CoreMonitoringRetrievalTaskMapper.java

@@ -108,7 +108,7 @@ public interface CoreMonitoringRetrievalTaskMapper extends BaseMapper<CoreMonito
      * @param planId
      */
     void deleteAllTaskByPlanId(@Param("planId") Long planId);
-    void deleteTaskByStartTime(@Param("planId") Long planId,@Param("startTime") String startTime);
+    void deleteTaskByStartTime(@Param("planId") Long planId,@Param("endTime") String endTime);
 
     void deleteAllTaskByPlanIds(@Param("planIds") Long[] planIds);
 

+ 2 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/CoreSafetyTaskServiceImpl.java

@@ -214,17 +214,14 @@ public class CoreSafetyTaskServiceImpl extends ServiceImpl<CoreSafetyTaskMapper,
 
     @Override
     public WebPanelResult selectWebIndexData(PanelListDto req) {
-        final int count = coreSafetyTaskMapper.selectCount(new LambdaQueryWrapper<CoreSafetyTask>()
-                .eq(CoreSafetyTask::getCheckOrgId, req.getOrgId())
-                .eq(CoreSafetyTask::getStatus, 1))
-                .intValue();
+        final List<PanelListVo> taskList = selectCurUserTaskList(req);
         return WebPanelResult
                 .builder()
                 .status(1)
                 .statusText(DictUtils.getDictLabel(DictConstants.SAFETY_CHECK_STATUS,1))
                 .taskType(PanelTypeEnums.SAFETY_CHECK.ordinal())
                 .taskTypeText(PanelTypeEnums.SAFETY_CHECK.getName())
-                .nums(count).build();
+                .nums(taskList.size()).build();
     }
 
     @Override

+ 1 - 1
soc-modules/soc-modules-core/src/main/resources/mapper/retrieval/CoreMonitoringRetrievalTaskMapper.xml

@@ -586,7 +586,7 @@
         FROM
             core_monitoring_retrieval_task
         WHERE
-            plan_start_time > #{startTime}
+            plan_end_time > #{endTime}
           AND plan_id IN (
             SELECT
                 id

+ 6 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysUserController.java

@@ -613,6 +613,12 @@ public class SysUserController extends BaseController {
         return userService.checkUserPermission(menuIds, userId);
     }
 
+    @InnerAuth
+    @GetMapping("/selectUserRoleMenu")
+    List<Long> selectUserRoleMenu(Long userId){
+        return userService.selectUserRoleMenu(userId);
+    }
+
     /**
      * 导入
      */

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

@@ -245,4 +245,6 @@ public interface ISysUserService extends IService<SysUser> {
     List<SysUser> selectUserListData(SysUser user);
 
     List<Long> checkUserPermission(@RequestParam List<Long> menuIds,Long userId);
+
+    List<Long> selectUserRoleMenu(Long userId);
 }

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

@@ -146,6 +146,11 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
             BeanUtils.copyProperties(orgPhysicalDefenseConstructionExport1, orgPhysicalDefenseConstructionExport);
             orgPhysicalDefenseConstructionExport.setCity(sysOrg1.getShortName().indexOf("地区行社") == -1 ? sysOrg1.getShortName().substring(0, 2) : sysOrg1.getShortName().split("地区行社")[0]);
             Integer integer = baseMapper.selectNetworkNumberByPath(s.getPath());
+            Double avg = 0d;
+            if (integer != 0 || orgPhysicalDefenseConstructionExport1.getReachNumber() != 0) {
+                avg = (double) orgPhysicalDefenseConstructionExport1.getReachNumber() / integer * 100;
+            }
+            orgPhysicalDefenseConstructionExport.setReachRate(String.valueOf(Double.valueOf(String.format("%.2f", avg))) + "%");
             orgPhysicalDefenseConstructionExport.setNetworkNumber(integer);
             orgPhysicalDefenseConstructionExport.setOrgName(s.getShortName());
 

+ 19 - 3
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysUserServiceImpl.java

@@ -23,6 +23,7 @@ import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.domain.SysRole;
 import com.xunmei.system.api.domain.SysUser;
 import com.xunmei.system.domain.SysPost;
+import com.xunmei.system.domain.SysRoleMenu;
 import com.xunmei.system.domain.SysUserPost;
 import com.xunmei.system.domain.SysUserRole;
 import com.xunmei.system.domain.vo.SysUserListVo;
@@ -78,7 +79,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     private SysOrgMapper sysOrgMapper;
     @Autowired
     private ISysDictDataService iSysDictDataService;
-
+    @Autowired
+    SysRoleMenuMapper roleMenuMapper;
     /**
      * 根据条件分页查询用户列表
      *
@@ -606,7 +608,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                     BeanValidators.validateWithException(validator, user);
                     String salt = SecurityUtils.salt();
                     user.setSalt(salt);
-                    user.setPassword(SecurityUtils.encryptPassword(password,salt));
+                    user.setPassword(SecurityUtils.encryptPassword(password, salt));
                     user.setCreateBy(operName);
                     userMapper.insertUser(user);
                     successNum++;
@@ -746,10 +748,24 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     @Override
-    public List<Long> checkUserPermission(List<Long> menuIds,Long userId) {
+    public List<Long> checkUserPermission(List<Long> menuIds, Long userId) {
         if (CollectionUtil.isEmpty(menuIds)) {
             return new ArrayList<>();
         }
         return baseMapper.checkUserPermission(menuIds, userId);
     }
+
+
+
+    @Override
+    public List<Long> selectUserRoleMenu(Long userId) {
+        final List<SysUserRole> roleList = userRoleMapper.selectList(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
+        final List<Long> collect = roleList.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
+        return roleMenuMapper.selectList(new LambdaQueryWrapper<SysRoleMenu>()
+                .in(SysRoleMenu::getRoleId, collect))
+                .stream()
+                .map(SysRoleMenu::getMenuId)
+                .distinct()
+                .collect(Collectors.toList());
+    }
 }

+ 1 - 0
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysOrgMapper.xml

@@ -717,6 +717,7 @@ and
             sys_org_physical_defense_construction a
                 LEFT JOIN sys_org b ON a.org_id = b.id
         WHERE
+            b.type=4 AND
             b.path LIKE concat(#{orgPath}, '%')
     </select>