Преглед изворни кода

Merge remote-tracking branch 'origin/V0.1.1_alarm' into V0.1.1_alarm

jingyuanchao пре 11 месеци
родитељ
комит
4f7102f0ce

+ 12 - 0
project_data/sql/0.1.1/soc/soc.sql

@@ -1419,4 +1419,16 @@ update  sys_device  set device_brand = '1849277638232182790' WHERE device_brand
 -- 处理设备品牌为空字符串的
 update  sys_device  set device_brand = null WHERE device_brand ='';
 
+delete from sys_config where config_key = 'TOKEN_LARGESCREEN_EXPIRETIME';
+INSERT INTO `sys_config`(config_name,config_key,config_value,config_type,create_by,create_time,update_by,update_time,remark)
+VALUES ('终端token过期时间(单位:分钟)', 'TOKEN_LARGESCREEN_EXPIRETIME', '1500', 'Y', null, null, '', null, null);
+
+delete from sys_config where config_key = 'TOKEN_WEB_EXPIRETIME';
+INSERT INTO `sys_config`(config_name,config_key,config_value,config_type,create_by,create_time,update_by,update_time,remark)
+VALUES ('web token过期时间(单位:分钟)', 'TOKEN_WEB_EXPIRETIME', '1500', 'Y', null, null, '', null, null);
+
+delete from sys_config where config_key = 'TOKEN_APP_EXPIRETIME';
+INSERT INTO `sys_config`(config_name,config_key,config_value,config_type,create_by,create_time,update_by,update_time,remark)
+VALUES ('app token过期时间(单位:分钟)', 'TOKEN_APP_EXPIRETIME', '1500', 'Y', null, null, '', null, null);
+
 -- 升级脚本执行完成

+ 2 - 1
soc-auth/src/main/java/com/xunmei/auth/controller/TokenController.java

@@ -67,9 +67,10 @@ public class TokenController {
                 //登录重放问题处理,待前端完成放开
                 //loginService.checkLogin(form.getAuthCode());
             }
+
             LoginUser userInfo = loginService.loginByPassword(form.getUsername(), form.getPassword(), Constants.LOGIN_TYPE_0);
             // 获取登录token
-            return R.ok(tokenService.createToken(userInfo));
+            return R.ok(tokenService.createTokenNew(userInfo,form.getDeviceFrom()));
         } catch (Exception e) {
             return R.fail(e.getMessage());
         }

+ 3 - 0
soc-auth/src/main/java/com/xunmei/auth/form/LoginBody.java

@@ -20,4 +20,7 @@ public class LoginBody {
     @ApiModelProperty(value = "随机码", required = true)
     private String authCode;
 
+    @ApiModelProperty(value = "登录终端 0大屏 1app 2web", required = false)
+    private Integer deviceFrom;
+
 }

+ 15 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/constant/SystemParameterConstant.java

@@ -189,4 +189,19 @@ public class SystemParameterConstant {
      */
     public static final String ALARM_LOSE_DURATION = "ALARM_LOSE_DURATION";
 
+    /**
+     *  终端token过期时间(单位:分钟)
+     */
+    public static final String TOKEN_LARGESCREEN_EXPIRETIME = "TOKEN_LARGESCREEN_EXPIRETIME";
+
+    /**
+     *  WEB token过期时间(单位:分钟)
+     */
+    public static final String TOKEN_WEB_EXPIRETIME = "TOKEN_WEB_EXPIRETIME";
+
+    /**
+     *  APP token过期时间(单位:分钟)
+     */
+    public static final String TOKEN_APP_EXPIRETIME = "TOKEN_APP_EXPIRETIME";
+
 }

+ 86 - 0
soc-common/soc-common-security/src/main/java/com/xunmei/common/security/service/TokenService.java

@@ -1,7 +1,9 @@
 package com.xunmei.common.security.service;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.xunmei.common.core.constant.CacheConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.constant.SystemParameterConstant;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.JwtUtils;
 import com.xunmei.common.core.utils.ServletUtils;
@@ -10,11 +12,14 @@ import com.xunmei.common.core.utils.ip.IpUtils;
 import com.xunmei.common.core.utils.uuid.IdUtils;
 import com.xunmei.common.redis.utils.RedisUtils;
 import com.xunmei.common.security.utils.SecurityUtils;
+import com.xunmei.system.api.RemoteConfigService;
 import com.xunmei.system.api.RemoteUserService;
+import com.xunmei.system.api.domain.SysConfig;
 import com.xunmei.system.api.model.LoginUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.time.Duration;
 import java.util.Date;
@@ -43,6 +48,9 @@ public class TokenService {
 
     private final static Long MILLIS_MINUTE_TEN = CacheConstants.REFRESH_TIME * MILLIS_MINUTE;
 
+    @Resource
+    RemoteConfigService remoteConfigService;
+
     /**
      * 创建令牌
      */
@@ -78,6 +86,66 @@ public class TokenService {
     }
 
     /**
+     * 创建令牌
+     */
+    public Map<String, Object> createTokenNew(LoginUser loginUser, Integer loginFrom) {
+        Long userId = loginUser.getSysUser().getId();
+
+        String userName = loginUser.getSysUser().getName();
+        if(StringUtils.isEmpty(loginUser.getToken())){
+            String token = userId + "_" + IdUtils.fastUUID();
+            loginUser.setToken(token);
+        }
+
+        loginUser.setUserid(userId);
+        loginUser.setUsername(userName);
+        loginUser.setOrgId(loginUser.getSysUser().getOrgId());
+        loginUser.setName(loginUser.getSysUser().getName());
+        loginUser.setIpaddr(IpUtils.getIpAddr());
+
+        long configExpireTime = expireTime;
+        if(loginFrom != null){
+            if(loginFrom == 0){
+                //大屏
+                final SysConfig config = remoteConfigService.findSysConfigByCode(SystemParameterConstant.TOKEN_LARGESCREEN_EXPIRETIME, SecurityConstants.INNER);
+                if (ObjectUtil.isNotEmpty(config)){
+                    configExpireTime = Long.parseLong(config.getConfigValue());
+                }
+            }
+            else if(loginFrom == 1){
+                //app
+                final SysConfig config = remoteConfigService.findSysConfigByCode(SystemParameterConstant.TOKEN_APP_EXPIRETIME, SecurityConstants.INNER);
+                if (ObjectUtil.isNotEmpty(config)){
+                    configExpireTime = Long.parseLong(config.getConfigValue());
+                }
+            }else if(loginFrom == 2){
+                //app
+                final SysConfig config = remoteConfigService.findSysConfigByCode(SystemParameterConstant.TOKEN_WEB_EXPIRETIME, SecurityConstants.INNER);
+                if (ObjectUtil.isNotEmpty(config)){
+                    configExpireTime = Long.parseLong(config.getConfigValue());
+                }
+            }
+        }
+
+
+        refreshTokenNew(loginUser,configExpireTime);
+
+        // Jwt存储信息
+        Map<String, Object> claimsMap = new HashMap<String, Object>();
+        claimsMap.put(SecurityConstants.USER_KEY, loginUser.getToken());
+        claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
+        claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
+        claimsMap.put(SecurityConstants.DETAILS_MASTER_USER_ID, loginUser.getMasterUserId());
+        claimsMap.put(SecurityConstants.DETAILS_MASTERUSERNAME, loginUser.getMasterUserName());
+
+        // 接口返回信息
+        Map<String, Object> rspMap = new HashMap<String, Object>();
+        rspMap.put("access_token", JwtUtils.createToken(claimsMap));
+        rspMap.put("expires_in", configExpireTime);
+        return rspMap;
+    }
+
+    /**
      * 获取用户身份信息
      *
      * @return 用户信息
@@ -167,6 +235,24 @@ public class TokenService {
         // redisService.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
     }
 
+    /**
+     * 刷新令牌有效期
+     *
+     * @param loginUser 登录信息
+     */
+    public void refreshTokenNew(LoginUser loginUser,long configExpireTime) {
+        loginUser.setLoginTime(System.currentTimeMillis());
+        loginUser.setExpireTime(loginUser.getLoginTime() + configExpireTime * MILLIS_MINUTE);
+        // 根据uuid将loginUser缓存
+        String userKey = getTokenKey(loginUser.getToken());
+        remoteUserService.userLoginInfo(loginUser.getUserid(), DateUtils.getNowDate(), loginUser.getIpaddr(), SecurityConstants.INNER);
+        //登陆后删除之前的token
+        RedisUtils.deleteByPrefix(userKey);
+        RedisUtils.setCacheObject(userKey, loginUser, Duration.ofMinutes(configExpireTime));
+        //redisService.deleteByPrefix(userKey);
+        // redisService.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
+    }
+
     private String getTokenKey(String token) {
         return ACCESS_TOKEN + token;
     }

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

@@ -29,6 +29,7 @@ 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.reminder.domain.CoreReminderSchedule;
 import com.xunmei.common.core.domain.reminder.vo.CoreReminderConfigurationFullVo;
 import com.xunmei.common.core.enums.BusinessPlanType;
@@ -39,6 +40,7 @@ import com.xunmei.common.core.enums.drill.DrillPlanCycleEnum;
 import com.xunmei.common.core.enums.drill.DrillPlanStatus;
 import com.xunmei.common.core.enums.edu.EduTrainingDoStatus;
 import com.xunmei.common.core.enums.edu.EduTrainingPlanCycleEnum;
+import com.xunmei.common.core.enums.edu.EduTrainingPlanStatus;
 import com.xunmei.common.core.exception.ServiceException;
 import com.xunmei.common.core.thread.ThreadPoolConfig;
 import com.xunmei.common.core.util.BeanHelper;
@@ -695,29 +697,101 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
                 final List<CoreDrillPlan> sLsPlanList = getPlanList(orgId, 1, 1);
                 return sLsPlanList.stream().map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(toList());
             case 2:
-                //办事处
-                SysOrg topOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectTopOrg(SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
-                final List<CoreDrillPlan> lsPlanList = getPlanList(topOrg.getId(), 1, 1);
+                //办事处查询 办事处自己下发、以及省联社下发且在该办事处下有参与机构的任务
+                //1、由办事处机构获取到省联社机构,并获取到计划数据
+                //2、由办事处计划获取到下辖行社机构,并获取到由省联社下发到行社的计划数据
+                //3、对比第一步和第二步的计划,两种相同的任务名称交集才是该办事处需要看到的省联社下发计划
+                //4、办事处自己下发的任务
+
+//                SysOrg topOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectTopOrg(SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+//                final List<CoreDrillPlan> lsPlanList = getPlanList(topOrg.getId(), 1, 1);
+
+                //1、由办事处机构获取到省联社机构,并获取到计划数据
+                List<SysOrgVO> parentOrgList= RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.getSelfAndAllParentOrgs(orgId), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+                SysOrgVO slsOrgVo = parentOrgList.stream().filter(x -> ObjectUtil.equal(x.getType(), 1)).findFirst().orElse(null);
+                List<CoreDrillPlan> lsPlanList =new ArrayList<>();
+                if(ObjectUtil.isNotNull(slsOrgVo))
+                {
+                    lsPlanList = getPlanList(slsOrgVo.getId(), 1, 1);
+                }
+                //2、由办事处计划获取到下辖行社机构,并获取到由省联社下发到行社的计划数据
+                List<SysOrg> hsOrgList= RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectChildHs(orgId,SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+                List<CoreDrillPlan> bscHsPlanList = getPlanList(hsOrgList.stream().map(x->x.getId()).collect(toList()), 0,0);
+                //3、对比第一步和第二步的计划,两种相同的任务名称交集才是该办事处需要看到的省联社下发计划
+                lsPlanList=lsPlanList.stream().filter(ls->bscHsPlanList.stream().anyMatch(hs->ls.getPlanName().equals(hs.getPlanName()))).collect(toList());
+
+                //4、办事处自己下发的任务
                 final List<CoreDrillPlan> bscPlanList = getPlanList(orgId, 1, 1);
                 return Stream.of(lsPlanList, bscPlanList).flatMap(Collection::stream).map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(toList());
             case 3:
                 //行社
-                final List<CoreDrillPlan> hsPlanList = getPlanList(orgId, 0, 0);
+                final List<CoreDrillPlan> hsPlanList = getPlanList(orgId, null, null);
                 return hsPlanList.stream().map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(toList());
+            case 4:
+                //网点
+                List<SysOrgVO> parentOrgList1= RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.getSelfAndAllParentOrgs(orgId), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+                SysOrgVO hsOrgVo = parentOrgList1.stream().filter(x -> ObjectUtil.equal(x.getType(), 3)).findFirst().orElse(null);
+                Long tempOrgId=orgId;
+                if(ObjectUtil.isNotNull(hsOrgVo))
+                {
+                    tempOrgId=hsOrgVo.getId();
+                }
+                final List<CoreDrillPlan> wdhsPlanList = getPlanList(tempOrgId, null, null);
+                return wdhsPlanList.stream().map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(Collectors.toList());
             default:
                 return new ArrayList<>();
         }
     }
 
     private List<CoreDrillPlan> getPlanList(Long orgId, Integer standard, Integer issue) {
-        return coreDrillPlanMapper.selectList(new LambdaQueryWrapper<CoreDrillPlan>()
-                .eq(CoreDrillPlan::getBelongOrgId, orgId)
-                .eq(CoreDrillPlan::getStandard, standard)
-                .eq(CoreDrillPlan::getIssue, issue)
+        LambdaQueryWrapper<CoreDrillPlan> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(CoreDrillPlan::getBelongOrgId, orgId)
                 .eq(CoreDrillPlan::getDeleted, 0)
-                .eq(CoreDrillPlan::getPlanStatus, DrillPlanStatus.USING.getCode())
-                .select(CoreDrillPlan::getId, CoreDrillPlan::getPlanName)
-        );
+                .eq(CoreDrillPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode());
+        if(ObjectUtil.isNotNull(standard))
+        {
+            queryWrapper.eq(CoreDrillPlan::getStandard, standard);
+        }
+        if(ObjectUtil.isNotNull(issue))
+        {
+            queryWrapper.eq(CoreDrillPlan::getIssue, issue);
+        }
+        return coreDrillPlanMapper.selectList(queryWrapper.select(CoreDrillPlan::getId, CoreDrillPlan::getPlanName));
+
+//        return coreDrillPlanMapper.selectList(new LambdaQueryWrapper<CoreDrillPlan>()
+//                .eq(CoreDrillPlan::getBelongOrgId, orgId)
+//                .eq(CoreDrillPlan::getStandard, standard)
+//                .eq(CoreDrillPlan::getIssue, issue)
+//                .eq(CoreDrillPlan::getDeleted, 0)
+//                .eq(CoreDrillPlan::getPlanStatus, DrillPlanStatus.USING.getCode())
+//                .select(CoreDrillPlan::getId, CoreDrillPlan::getPlanName)
+//        );
+    }
+
+    private List<CoreDrillPlan> getPlanList(List<Long> orgIds, Integer standard, Integer issue) {
+
+        LambdaQueryWrapper<CoreDrillPlan> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(CoreDrillPlan::getBelongOrgId, orgIds)
+                .eq(CoreDrillPlan::getDeleted, 0)
+                .eq(CoreDrillPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode());
+        if(ObjectUtil.isNotNull(standard))
+        {
+            queryWrapper.eq(CoreDrillPlan::getStandard, standard);
+        }
+        if(ObjectUtil.isNotNull(issue))
+        {
+            queryWrapper.eq(CoreDrillPlan::getIssue, issue);
+        }
+        return coreDrillPlanMapper.selectList(queryWrapper.select(CoreDrillPlan::getId, CoreDrillPlan::getPlanName));
+
+//        return coreDrillPlanMapper.selectList(new LambdaQueryWrapper<CoreDrillPlan>()
+//                .in(CoreDrillPlan::getBelongOrgId, orgIds)
+//                .eq(CoreDrillPlan::getStandard, standard)
+//                .eq(CoreDrillPlan::getIssue, issue)
+//                .eq(CoreDrillPlan::getDeleted, 0)
+//                .eq(CoreDrillPlan::getPlanStatus, DrillPlanStatus.USING.getCode())
+//                .select(CoreDrillPlan::getId, CoreDrillPlan::getPlanName)
+//        );
     }
 
     private List<CoreDrillPlan> buildPlanData(CoreDrillPlan plan, int status) {

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

@@ -19,6 +19,7 @@ import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.DateRange;
 import com.xunmei.common.core.domain.IdName;
 import com.xunmei.common.core.domain.compensate.dto.CompensateDto;
+import com.xunmei.common.core.domain.drill.domain.CoreDrillPlan;
 import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingPlan;
 import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingPlanToExecOrg;
 import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingPlanToRole;
@@ -819,28 +820,93 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
                 return sLsPlanList.stream().map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(Collectors.toList());
             case 2:
                 //办事处
-                SysOrg topOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectTopOrg(SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
-                final List<CoreEduTrainingPlan> lsPlanList = getPlanList(topOrg.getId(), 1, 1);
+//                SysOrg topOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectTopOrg(SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+//                List<SysOrgVO> parentOrgList= RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.getSelfAndAllParentOrgs(orgId), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+//                SysOrgVO slsOrgVo = parentOrgList.stream().filter(x -> ObjectUtil.equal(x.getType(), 1)).findFirst().orElse(null);
+//                List<CoreEduTrainingPlan> lsPlanList =new ArrayList<>();
+//                if(ObjectUtil.isNotNull(slsOrgVo) )
+//                {
+//                    lsPlanList = getPlanList(slsOrgVo.getId(), 1, 1);
+//                }
+
+                //1、由办事处机构获取到省联社机构,并获取到计划数据
+                List<SysOrgVO> parentOrgList= RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.getSelfAndAllParentOrgs(orgId), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+                SysOrgVO slsOrgVo = parentOrgList.stream().filter(x -> ObjectUtil.equal(x.getType(), 1)).findFirst().orElse(null);
+                List<CoreEduTrainingPlan> lsPlanList =new ArrayList<>();
+                if(ObjectUtil.isNotNull(slsOrgVo))
+                {
+                    lsPlanList = getPlanList(slsOrgVo.getId(), 1, 1);
+                }
+                //2、由办事处计划获取到下辖行社机构,并获取到由省联社下发到行社的计划数据
+                List<SysOrg> hsOrgList= RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectChildHs(orgId,SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+                List<CoreEduTrainingPlan> bscHsPlanList = getPlanList(hsOrgList.stream().map(x->x.getId()).collect(toList()), 0,0);
+                //3、对比第一步和第二步的计划,两种相同的任务名称交集才是该办事处需要看到的省联社下发计划
+                lsPlanList=lsPlanList.stream().filter(ls->bscHsPlanList.stream().anyMatch(hs->ls.getPlanName().equals(hs.getPlanName()))).collect(toList());
+
+                //4、办事处自己下发的任务
+
                 final List<CoreEduTrainingPlan> bscPlanList = getPlanList(orgId, 1, 1);
                 return Stream.of(lsPlanList, bscPlanList).flatMap(Collection::stream).map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(Collectors.toList());
             case 3:
                 //行社
-                final List<CoreEduTrainingPlan> hsPlanList = getPlanList(orgId, 0, 0);
+                final List<CoreEduTrainingPlan> hsPlanList = getPlanList(orgId, null, null);
                 return hsPlanList.stream().map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(Collectors.toList());
+            case 4:
+                //网点
+                List<SysOrgVO> parentOrgList1= RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.getSelfAndAllParentOrgs(orgId), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+                SysOrgVO hsOrgVo = parentOrgList1.stream().filter(x -> ObjectUtil.equal(x.getType(), 3)).findFirst().orElse(null);
+                Long tempOrgId=orgId;
+                if(ObjectUtil.isNotNull(hsOrgVo))
+                {
+                    tempOrgId=hsOrgVo.getId();
+                }
+                final List<CoreEduTrainingPlan> wdhsPlanList = getPlanList(tempOrgId, null, null);
+                return wdhsPlanList.stream().map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(Collectors.toList());
             default:
                 return new ArrayList<>();
         }
     }
 
     private List<CoreEduTrainingPlan> getPlanList(Long orgId, Integer standard, Integer issue) {
-        return coreEduTrainingPlanMapper.selectList(new LambdaQueryWrapper<CoreEduTrainingPlan>()
-                .eq(CoreEduTrainingPlan::getBelongOrgId, orgId)
-                .eq(CoreEduTrainingPlan::getStandard, standard)
-                .eq(CoreEduTrainingPlan::getIssue, issue)
+         LambdaQueryWrapper<CoreEduTrainingPlan> queryWrapper = new LambdaQueryWrapper<>();
+         queryWrapper.eq(CoreEduTrainingPlan::getBelongOrgId, orgId)
+                .eq(CoreEduTrainingPlan::getDeleted, 0)
+                .eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode());
+         if(ObjectUtil.isNotNull(standard))
+         {
+             queryWrapper.eq(CoreEduTrainingPlan::getStandard, standard);
+         }
+        if(ObjectUtil.isNotNull(issue))
+        {
+            queryWrapper.eq(CoreEduTrainingPlan::getIssue, issue);
+        }
+        return coreEduTrainingPlanMapper.selectList(queryWrapper.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanName));
+
+    }
+
+
+    private List<CoreEduTrainingPlan> getPlanList(List<Long> orgIds, Integer standard, Integer issue) {
+        LambdaQueryWrapper<CoreEduTrainingPlan> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(CoreEduTrainingPlan::getBelongOrgId, orgIds)
                 .eq(CoreEduTrainingPlan::getDeleted, 0)
-                .eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode())
-                .select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanName)
-        );
+                .eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode());
+        if(ObjectUtil.isNotNull(standard))
+        {
+            queryWrapper.eq(CoreEduTrainingPlan::getStandard, standard);
+        }
+        if(ObjectUtil.isNotNull(issue))
+        {
+            queryWrapper.eq(CoreEduTrainingPlan::getIssue, issue);
+        }
+        return coreEduTrainingPlanMapper.selectList(queryWrapper.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanName));
+//        return coreEduTrainingPlanMapper.selectList(new LambdaQueryWrapper<CoreEduTrainingPlan>()
+//                .in(CoreEduTrainingPlan::getBelongOrgId, orgIds)
+//                .eq(CoreEduTrainingPlan::getStandard, standard)
+//                .eq(CoreEduTrainingPlan::getIssue, issue)
+//                .eq(CoreEduTrainingPlan::getDeleted, 0)
+//                .eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode())
+//                .select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanName)
+//        );
     }
 
     @Override

+ 2 - 1
soc-modules/soc-modules-core/src/main/resources/mapper/safetycheck/CoreSafetyTaskMapper.xml

@@ -948,7 +948,8 @@
             and t.title like concat('%', #{task.title}, '%')
         </if>
         <if test="task.roleId != null  and task.roleId != ''">
-            and csptr.role_id =#{task.roleId}
+<!--            and csptr.role_id =#{task.roleId}-->
+            and (csptr.role_id =#{task.roleId} or t.role_id = #{task.roleId})
         </if>
         <if test="task.planStartTime != null ">
             and DATE_FORMAT(t.plan_start_time, '%Y-%m-%d') = DATE_FORMAT(#{task.planStartTime}, '%Y-%m-%d')

+ 3 - 3
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/mapper/SysOrgMapper.java

@@ -146,11 +146,11 @@ public interface SysOrgMapper extends BaseMapper<SysOrg> {
 
     Integer getSafe(@Param("orgPath") String orgPath, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
 
-    Integer getHeadSafeCheckNumber(String orgPath);
+    Integer getHeadSafeCheckNumber(@Param("orgId") Long orgId,@Param("year") int year);
 
-    Integer getHeadSafeCheckNetworkNumber(String orgPath);
+    Integer getHeadSafeCheckNetworkNumber(@Param("orgId") Long orgId,@Param("year") int year);
 
-    Map getDangerNumber(String orgPath);
+    Map getDangerNumber(@Param("orgId") Long orgId,@Param("year") int year);
 
     Integer getSafeHeadToNetwork(@Param("type") Integer type, @Param("level") Integer level, @Param("orgPath") String orgPath);
 

+ 6 - 4
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysOrgServiceImpl.java

@@ -19,6 +19,7 @@ import com.xunmei.common.core.domain.OrgTreeReq;
 import com.xunmei.common.core.domain.OrgTreeResp;
 import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.common.core.exception.ServiceException;
+import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.bean.BeanUtils;
 import com.xunmei.common.core.web.page.TableDataInfo;
@@ -534,14 +535,15 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
             Integer jointHeadToNetwork1 = baseMapper.getJointHeadToNetwork(2, 2, s.getPath());
             securityWorkExport.setJointNetworkToPeople(jointHeadToNetwork1);
             //总行安全检查
-            //组织开展次数
-            Integer headSafeCheckNumber = baseMapper.getHeadSafeCheckNumber(s.getPath());
+            //组织开展次数 省联社下发的,行社做的“行社全面安全检查”登记的任务
+            DateHelper dateHelper = new DateHelper(new Date());
+            Integer headSafeCheckNumber = baseMapper.getHeadSafeCheckNumber(s.getId(),dateHelper.getYear());
             securityWorkExport.setHeadSafeCheckNumber(headSafeCheckNumber);
             //检查网点数量
-            Integer headSafeCheckNetworkNumber = baseMapper.getHeadSafeCheckNetworkNumber(s.getPath());
+            Integer headSafeCheckNetworkNumber = baseMapper.getHeadSafeCheckNetworkNumber(s.getId(),dateHelper.getYear());
             securityWorkExport.setHeadSafeCheckNetworkNumber(headSafeCheckNetworkNumber);
             //隐患
-            Map dangerNumber = baseMapper.getDangerNumber(s.getPath());
+            Map dangerNumber = baseMapper.getDangerNumber(s.getId(),dateHelper.getYear());
             securityWorkExport.setFoundDangerNumber(Integer.valueOf(dangerNumber.get("foundDangerNumber").toString()));
             securityWorkExport.setRectificationDangerNumber(Integer.valueOf(dangerNumber.get("rectificationDangerNumber").toString()));
             securityWorkExport.setNoRectificationDangerNumber(Integer.valueOf(dangerNumber.get("noRectificationDangerNumber").toString()));

+ 30 - 18
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysOrgMapper.xml

@@ -1124,6 +1124,7 @@ and
           AND b.deleted = 0
           and b.is_lock = 0
           AND c.check_type =3
+          AND a.`status` =3
           and a.org_path LIKE concat(#{orgPath}, '%')
           AND a.start_time BETWEEN #{startTime} and #{endTime}
     </select>
@@ -1132,11 +1133,11 @@ and
             COUNT( a.id )
         FROM
             core_edu_training_task a
-                LEFT JOIN core_edu_training_plan b ON a.plan_id = b.id
+                LEFT JOIN sys_org c ON a.org_id = c.id
         WHERE
-            b.exec_org_type = 3
-          AND b.deleted =0
-        and a.org_path    like concat(concat('%',#{orgPath}),'%')
+          c.type =3
+          AND a.`status`=2
+          and a.org_path    like concat(concat('%',#{orgPath}),'%')
           AND a.training_start_date_time BETWEEN #{startTime} and #{endTime}
     </select>
     <select id="getEduUser" resultType="java.lang.Integer">
@@ -1153,8 +1154,10 @@ and
             COUNT(a.id)
         FROM
             core_drill_task a
-                LEFT JOIN core_drill_plan b ON a.plan_id = b.id
-        WHERE b.exec_org_type=3
+              --  LEFT JOIN core_drill_plan b ON a.plan_id = b.id
+            LEFT JOIN sys_org c ON a.org_id = c.id
+        WHERE c.type=3
+          AND a.`status`=2
           and a.org_path    like concat(concat('%',#{orgPath}),'%')
           AND a.drill_start_time BETWEEN #{startTime} and #{endTime}
     </select>
@@ -1176,6 +1179,7 @@ and
             core_drill_task a
                 LEFT JOIN core_drill_plan b ON a.plan_id = b.id
         WHERE b.exec_org_type=4
+          and a.`status`=2
           and a.org_path    like concat(concat('%',#{orgPath}),'%')
           AND a.drill_start_time BETWEEN #{startTime} and #{endTime}
     </select>
@@ -1294,13 +1298,16 @@ and
     </select>
     <select id="getHeadSafeCheckNumber" resultType="java.lang.Integer">
         SELECT
-            COUNT( a.id )
+        count(a.id)
         FROM
-            core_safety_task a
-                LEFT JOIN core_safecheck_plan b ON a.plan_id = b.id
+        core_safety_task a
+        LEFT JOIN core_safecheck_plan b ON a.plan_id = b.id
         WHERE
-            b.check_type = 1
-          AND a.org_path LIKE concat(#{orgPath}, '%')
+        b.check_type = 4
+        AND b.plan_create_org_id != b.plan_of_org_id
+        AND a.`status` =3
+        AND a.ymd_year =#{year}
+        AND a.check_org_id =#{orgId}
     </select>
     <select id="getHeadSafeCheckNetworkNumber" resultType="java.lang.Integer">
         SELECT
@@ -1308,13 +1315,16 @@ and
         FROM
             core_safety_task a
                 LEFT JOIN core_safecheck_plan b ON a.plan_id = b.id
-                LEFT JOIN sys_org c ON c.id = a.org_id
+--                LEFT JOIN sys_org c ON c.id = a.org_id
         WHERE
-            b.check_type = 1
-            AND c.deleted = 0
-            and c.is_lock = 0
+            b.check_type = 4
+            AND b.plan_create_org_id != b.plan_of_org_id
+            AND a.`status` =3
+--            AND c.deleted = 0
+--            and c.is_lock = 0
 --           AND c.type = 4
-          AND a.org_path LIKE concat(#{orgPath}, '%')
+            AND a.ymd_year =#{year}
+            AND a.check_org_id =#{orgId}
     </select>
     <select id="getDangerNumber" resultType="java.util.Map">
         SELECT
@@ -1334,8 +1344,10 @@ and
                 LEFT JOIN core_safecheck_plan c ON c.id = b.plan_id
         WHERE
             src_type = 2
-          AND c.check_type = 1
-          AND b.org_path LIKE concat(#{orgPath}, '%')
+          AND c.check_type = 4
+          AND c.plan_create_org_id != c.plan_of_org_id
+          AND b.ymd_year =#{year}
+          AND b.check_org_id =#{orgId}
     </select>
     <select id="selectSysOrgByPathAndType" resultType="com.xunmei.system.api.domain.SysOrg">
         SELECT