Explorar o código

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

jingyuanchao hai 1 ano
pai
achega
c26109a8cb

+ 2 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/SysUser.java

@@ -258,6 +258,8 @@ public class SysUser extends BaseEntity {
     private Integer orgType;
     @TableField(exist = false)
     private String orgShortName;
+    @TableField(exist = false)
+    private List<Long> parentOrgIds;
     public boolean isAdmin() {
         return isAdmin(this.getId());
     }

+ 8 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/mapper/CoreSafetyTaskMapper.java

@@ -80,6 +80,14 @@ public interface CoreSafetyTaskMapper extends BaseMapper<CoreSafetyTask> {
      */
     List<AppTaskRegisterPointVo> selectPoint(@Param("planId") Long planId, @Param("taskId") Long taskId);
 
+    /**
+     * 查找来源于计划的任务检查内容信息
+     *
+     * @param taskId
+     * @return
+     */
+    List<AppTaskRegisterPointVo> selectPointByTask(@Param("taskId") Long taskId);
+
     List<TaskRegisterNfcVo> selectNfc(@Param("planId") Long planId, @Param("taskId") Long taskId, @Param("orgId") Long orgId);
 
     List<TaskRegisterNfcVo> selectNfcByTask( @Param("taskId") Long taskId);

+ 25 - 15
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/SafetyCheckRegisterSericeImpl.java

@@ -38,6 +38,7 @@ 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.SysUser;
 import com.xunmei.system.api.model.LoginUser;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -98,9 +99,9 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
             wrapper.eq(CoreSafetyTask::getOrgId, dto.getBeCheckedOrgId());
         }
         if (ObjectUtil.isNotNull(dto.getCheckOrgId())) {
-            wrapper.and(w->w.eq(CoreSafetyTask::getCheckOrgId, dto.getCheckOrgId())
+            wrapper.and(w -> w.eq(CoreSafetyTask::getCheckOrgId, dto.getCheckOrgId())
                     .or()
-                    .eq(CoreSafetyTask::getGrantUserId,SecurityUtils.getUserId()));
+                    .eq(CoreSafetyTask::getGrantUserId, SecurityUtils.getUserId()));
         }
         if (ObjectUtil.isNotNull(dto.getStatus())) {
             wrapper.eq(CoreSafetyTask::getStatus, dto.getStatus());
@@ -121,7 +122,7 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
         page.getRecords().forEach(vo -> {
             List<CoreSafetyTask> v = list.stream()
                     .filter(i -> ObjectUtil.equal(i.getPlanId(), vo.getPlanId()) && ObjectUtil.equal(vo.getCount(), i.getCount())
-                            && ObjectUtil.equal(vo.getTaskName(),i.getTitle())
+                            && ObjectUtil.equal(vo.getTaskName(), i.getTitle())
                             && ObjectUtil.equal(i.getPlanStartTime(), vo.getPlanStartTime()) && ObjectUtil.equal(i.getPlanEndTime(), vo.getPlanEndTime()))
                     .collect(Collectors.toList());
             List<Long> roleIds = planToRoles.stream().filter(p -> ObjectUtil.equal(p.getPlanId(), vo.getPlanId()))
@@ -229,7 +230,7 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
         List<AppTaskRegisterPointVo> points = new ArrayList<>();
         List<TaskRegisterNfcVo> nfcs = new ArrayList<>();
         if (ObjectUtil.equal(task.getStatus(), SafetyCheckTaskStatus.Completed.getValue()) || ObjectUtils.isNull(plan)) {
-            points = baseMapper.selectPoint(null, taskId);
+            points = baseMapper.selectPointByTask(taskId);
             nfcs = baseMapper.selectNfcByTask(taskId);
         } else {
             points = baseMapper.selectPoint(plan.getId(), taskId);
@@ -609,17 +610,26 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
 
         Long loginUserId = SecurityUtils.getUserId();
         if (ObjectUtil.isNotNull(dto.getUserId())) {
-            List<IdNameVo> roles = remoteUserService.getRoleInfoOfUser(dto.getUserId(), SecurityConstants.INNER);
-            if (CollectionUtil.isNotEmpty(roles)) {
-                LambdaQueryWrapper<CoreSafecheckPlanToRole> prWrapper = new LambdaQueryWrapper<>();
-                prWrapper.eq(CoreSafecheckPlanToRole::getPlanId, dto.getPlanId())
-                        .select(CoreSafecheckPlanToRole::getRoleId);
-                List<Long> planRoles = coreSafecheckPlanToRoleMapper.selectList(prWrapper).stream()
-                        .map(CoreSafecheckPlanToRole::getRoleId)
-                        .collect(Collectors.toList());
-
-                if (CollectionUtil.intersection(roles.stream().map(IdNameVo::getId).collect(Collectors.toList()), planRoles).size() > 0) {
-                    throw new ServiceException("用户已在检查角色中,无需授权");
+            SysUser user = remoteUserService.getUserById(dto.getUserId(), SecurityConstants.INNER);
+            if (ObjectUtil.isNull(user)) {
+                throw new ServiceException("用户不存在");
+            }
+
+            if (ObjectUtil.equal(user.getOrgId(), task.getCheckOrgId())) {
+                //同一个机构,才判断是否在角色内
+                List<IdNameVo> roles = remoteUserService.getRoleInfoOfUser(dto.getUserId(), SecurityConstants.INNER);
+                if (CollectionUtil.isNotEmpty(roles)) {
+                    LambdaQueryWrapper<CoreSafecheckPlanToRole> prWrapper = new LambdaQueryWrapper<>();
+                    prWrapper.eq(CoreSafecheckPlanToRole::getPlanId, dto.getPlanId())
+                            .select(CoreSafecheckPlanToRole::getRoleId);
+                    List<Long> planRoles = coreSafecheckPlanToRoleMapper.selectList(prWrapper).stream()
+                            .map(CoreSafecheckPlanToRole::getRoleId)
+                            .collect(Collectors.toList());
+
+                    if (CollectionUtil.intersection(roles.stream().map(IdNameVo::getId).collect(Collectors.toList()), planRoles).size() > 0) {
+
+                        throw new ServiceException("用户已在检查角色中,无需授权");
+                    }
                 }
             }
         }

+ 55 - 27
soc-modules/soc-modules-core/src/main/resources/mapper/safetycheck/CoreSafetyTaskMapper.xml

@@ -641,31 +641,37 @@
     </delete>
 
     <select id="selectPoint" resultType="com.xunmei.core.safetyCheck.vo.regsiter.AppTaskRegisterPointVo">
-        <if test="planId!=null">
-            (SELECT f.id as areaId,
-            f.name as areaName,
-            e.id as itemId,
-            e.name as itemName,
-            rd.id as pointDataId,
-            a.id as pointId,
-            a.name as pointName,
-            b.required as mustCheck,
-            if(rd.is_add is null, 0, rd.is_add) as isAdd,
-            if(rd.value is null, 0, rd.value) as status,
-            if(rd.remark is null, null, rd.remark) as remark,
-            rd.rectification_deadline as rectificationDeadline,
-            rd.submit_by,
-            rd.submit_time
-            FROM core_safecheck_plan_to_point b
-            LEFT JOIN core_safetycheck_rule_point a ON a.id = b.point_id
-            LEFT JOIN core_safecheck_plan c ON b.plan_id = c.id
-            LEFT JOIN core_safetycheck_rule_item e ON a.item_id = e.id
-            LEFT JOIN sys_area f ON a.area_id = f.id
-            LEFT JOIN core_safety_task_data rd ON rd.point_id = b.point_id and rd.task_id = #{taskId}
-            WHERE c.id = #{planId}
-            and a.deleted = 0)
-            union
-        </if>
+        (SELECT f.id as areaId,
+        f.name as areaName,
+        e.id as itemId,
+        e.name as itemName,
+        rd.id as pointDataId,
+        a.id as pointId,
+        a.name as pointName,
+        b.required as mustCheck,
+        if(rd.is_add is null, 0, rd.is_add) as isAdd,
+        if(rd.value is null, 0, rd.value) as status,
+        if(rd.remark is null, null, rd.remark) as remark,
+        rd.rectification_deadline as rectificationDeadline,
+        rd.submit_by,
+        rd.submit_time
+        FROM core_safecheck_plan_to_point b
+        LEFT JOIN core_safetycheck_rule_point a ON a.id = b.point_id
+        LEFT JOIN core_safecheck_plan c ON b.plan_id = c.id
+        LEFT JOIN core_safetycheck_rule_item e ON a.item_id = e.id
+        LEFT JOIN sys_area f ON a.area_id = f.id
+        LEFT JOIN core_safety_task_data rd ON rd.point_id = b.point_id and rd.task_id = #{taskId}
+        WHERE
+        <choose>
+            <when test="planId!=null">
+                c.id = #{planId}
+            </when>
+            <otherwise>
+                1=0
+            </otherwise>
+        </choose>
+        and a.deleted = 0)
+        union
         (SELECT f.id as areaId,
         f.name as areaName,
         e.id as itemId,
@@ -688,6 +694,28 @@
         and rd.is_add = 1
         and a.deleted = 0)
     </select>
+    <select id="selectPointByTask" resultType="com.xunmei.core.safetyCheck.vo.regsiter.AppTaskRegisterPointVo">
+        SELECT f.id as areaId,
+        f.name as areaName,
+        e.id as itemId,
+        e.name as itemName,
+        rd.id as pointDataId,
+        a.id as pointId,
+        a.name as pointName,
+        1 as mustCheck,
+        rd.is_add as isAdd,
+        rd.value as status,
+        rd.remark as remark,
+        rd.rectification_deadline as rectificationDeadline,
+        rd.submit_by,
+        rd.submit_time
+        FROM core_safety_task_data rd
+        LEFT JOIN core_safetycheck_rule_point a ON a.id = rd.point_id
+        LEFT JOIN core_safetycheck_rule_item e ON a.item_id = e.id
+        LEFT JOIN sys_area f ON a.area_id = f.id
+        WHERE rd.task_id = #{taskId}
+        and a.deleted = 0
+    </select>
 
     <select id="selectNfc" resultType="com.xunmei.core.safetyCheck.vo.regsiter.TaskRegisterNfcVo">
         SELECT dn.id                               as nfcDataId,
@@ -760,8 +788,8 @@
         select t.scan_method,
                n.area_name,
                n.collection_area_name,
-               n.code as nfc_code,
-               n.label_name as nfc_name,
+               n.code        as nfc_code,
+               n.label_name  as nfc_name,
                t.img,
                t.submit_time as execute_time
         from core_safety_task_data_nfc t

+ 8 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeptController.java

@@ -160,6 +160,14 @@ public class SysDeptController extends BaseController {
     }
 
     /**
+     * 获取本机构及下级机构,且包含(与本机构)同类型的上级机构
+     */
+    @GetMapping("/deptTree/depttreewithsametypeup")
+    public AjaxResult deptTreeWithSametypeUp() {
+        return success(deptService.deptTreeWithSametypeUp());
+    }
+
+    /**
      * 获取登录用户机构及下级机构树列表+路径上的上级机构
      */
     @GetMapping("/deptTree/wholetree/bytype")
@@ -189,7 +197,6 @@ public class SysDeptController extends BaseController {
         return success(deptService.orgWholePathTree(request));
     }
 
-
     /**
      * 获取缓存的行社及行社上级机构
      */

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

@@ -14,6 +14,7 @@ import com.xunmei.common.core.utils.StringUtils;
 import com.xunmei.common.core.vo.IdNameVo;
 import com.xunmei.common.core.web.controller.BaseController;
 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;
@@ -114,6 +115,16 @@ public class SysUserController extends BaseController {
         return ajax;
     }
 
+    /**
+     * 获取用户列表
+     */
+    @RequiresPermissions("system:user:list")
+    @GetMapping("/userselector/list")
+    public AjaxResult userSelectorList(SysUser user) {
+        TableDataInfo<SysUser> sysUserTableDataInfo = userService.userSelectorList(user);
+        return success(sysUserTableDataInfo);
+    }
+
     @RequiresPermissions("system:user:list")
     @GetMapping("/dictionlist")
     public R<List<SysUser>> list2(SysUser user) {

+ 6 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysDeptService.java

@@ -40,6 +40,12 @@ public interface ISysDeptService extends IService<SysDept> {
      */
     List<SysOrgVO> selectTreeByOrgType(Boolean includeUp,Boolean includeBangshichu, OrgTypeEnum orgType);
 
+    /**
+     * 获取本机构及下级机构,且上级机构若与本机构同类型,也获取
+     * @return
+     */
+    List<SysOrgVO> deptTreeWithSametypeUp();
+
     List<SysOrgVO> selectBusinessTreeList(SysOrgTreeRequestDto request);
 
     /**

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

@@ -26,6 +26,13 @@ public interface ISysUserService extends IService<SysUser> {
      */
     TableDataInfo<SysUser> selectUserList(SysUser user);
 
+    /**
+     * 用户选择窗口查询用户分页列表
+     * @param user
+     * @return
+     */
+    TableDataInfo<SysUser>  userSelectorList(SysUser user);
+
     List<SysUser> selectSyncUserList(SysUser user);
 
     /**

+ 43 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysDeptServiceImpl.java

@@ -164,6 +164,49 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
         return r;
     }
 
+    /**
+     * 获取本机构及下级机构,且上级机构若与本机构同类型,也获取
+     * @return
+     */
+    @Override
+    public List<SysOrgVO> deptTreeWithSametypeUp(){
+        Map<Long,SysOrgVO> cacheList = getOrgCache().stream().collect(Collectors.toMap(SysOrgVO::getId,vo->vo));
+        Long orgId= SecurityUtils.getLoginUser().getOrgId();
+        if(!cacheList.containsKey(orgId)){
+            return  new ArrayList<>();
+        }
+
+        SysOrgVO sysOrgVO =cacheList.get(orgId);
+        List<SysOrgVO> orgs=new ArrayList<>();
+        for (SysOrgVO org : cacheList.values()) {
+            String path = org.getPath();
+            if (StringUtils.isEmpty(path) || !path.startsWith(sysOrgVO.getPath())) {
+                continue;
+            }
+
+            if (StringUtils.isEmpty(org.getShortName())) {
+                org.setShortName(org.getName());
+            }
+            if (org.getSort() == null) {
+                org.setSort(100000);
+            }
+            orgs.add(org);
+        }
+        while(true){
+            if(!cacheList.containsKey(sysOrgVO.getParentId())){
+                break;
+            }
+            SysOrgVO parentVo=cacheList.get(sysOrgVO.getParentId());
+            if(ObjectUtil.notEqual(parentVo.getType(), sysOrgVO.getType()) ){
+                break;
+            }
+            orgs.add(parentVo);
+            sysOrgVO=parentVo;
+        }
+        SysOrg sysOrg = orgMapper.selectById(sysOrgVO.getId());
+        return generateTree(orgs, sysOrg);
+    }
+
     @Override
     public List<SysOrgVO> selectBusinessTreeList(SysOrgTreeRequestDto request) {
         SysOrg sysOrg = null;

+ 59 - 12
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysUserServiceImpl.java

@@ -1,10 +1,14 @@
 package com.xunmei.system.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.UserConstants;
+import com.xunmei.common.core.domain.OrgTreeReq;
+import com.xunmei.common.core.domain.OrgTreeResp;
+import com.xunmei.common.core.domain.R;
 import com.xunmei.common.core.domain.message.domain.CoreAnnouncementNotificationToRole;
 import com.xunmei.common.core.exception.ServiceException;
 import com.xunmei.common.core.util.BeanHelper;
@@ -97,14 +101,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
         //查询条件
         QueryWrapper<SysOrg> queryWrapper = new QueryWrapper<>();
-        SysOrg org = null;
-        if (null == user.getOrgId()) {
-            queryWrapper.eq("parent_id", -1);
-            org = sysOrgMapper.selectOne(queryWrapper);
-        } else {
-            org = sysOrgMapper.selectById(user.getOrgId());
+        if (user.getCheckSub()) {
+            SysOrg org = null;
+            if (null == user.getOrgId()) {
+                queryWrapper.eq("parent_id", -1);
+                org = sysOrgMapper.selectOne(queryWrapper);
+            } else {
+                org = sysOrgMapper.selectById(user.getOrgId());
+            }
+            user.setOrgPath(org.getPath());
         }
-        user.setOrgPath(org.getPath());
 
         //获取数据
         page = userMapper.getPage(page, user);
@@ -122,6 +128,47 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     /**
+     * 用户选择窗口查询用户分页列表
+     *
+     * @param user
+     * @return
+     */
+    @Override
+    public TableDataInfo<SysUser> userSelectorList(SysUser user) {
+        OrgTreeReq req = new OrgTreeReq();
+        req.setOrgId(user.getOrgId());
+        req.setCheckSub(user.getCheckSub());
+        if (user.getCheckSub()) {
+            OrgTreeResp r = orgService.getOrgTreeReq(req);
+//            if(ObjectUtil.isNotNull(r.getOrgId())){
+//                user.setOrgId(r.getOrgId());
+//            }
+
+            user.setOrgPath(r.getOrgPath());
+            user.setParentOrgIds(r.getOrgIdList());
+        }
+        user.setDeleted(0);
+        Page<SysUser> page;
+        //分页
+        if (user.getPageNum() != null && user.getPageSize() != null) {
+            page = new Page<>(user.getPageNum(), user.getPageSize());
+        } else {
+            page = new Page<>();
+        }
+        page = userMapper.getPage(page, user);
+        return TableDataInfo.build(page);
+//        user.setDeleted(0);
+//        Page<SysUser> page;
+//        //分页
+//        if (user.getPageNum() != null && user.getPageSize() != null) {
+//            page = new Page<>(user.getPageNum(), user.getPageSize());
+//        } else {
+//            page = new Page<>();
+//        }
+
+    }
+
+    /**
      * 查询同步进来的用户信息
      *
      * @param user 用户信息
@@ -134,12 +181,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     @Override
-    public List<SysUser>  selectUserListData(SysUser user) {
+    public List<SysUser> selectUserListData(SysUser user) {
         LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(SysUser::getDeleted,0);
-        wrapper.eq(SysUser::getIsLock,0);
-        wrapper.eq(SysUser::getLocked,0);
-        wrapper.eq(SysUser::getOrgId,SecurityUtils.getLoginUser().getOrgId());
+        wrapper.eq(SysUser::getDeleted, 0);
+        wrapper.eq(SysUser::getIsLock, 0);
+        wrapper.eq(SysUser::getLocked, 0);
+        wrapper.eq(SysUser::getOrgId, SecurityUtils.getLoginUser().getOrgId());
         return baseMapper.selectList(wrapper);
     }
 

+ 51 - 52
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -330,39 +330,39 @@
             <if test="username != null and username != ''">
                 user_name = #{username},
             </if>
-<!--            <if test="nickname != null and nickname != ''">-->
-<!--                nick_name = #{nickname},-->
-<!--            </if>-->
-<!--            <if test="email != null ">-->
-<!--                email = #{email},-->
-<!--            </if>-->
+            <!--            <if test="nickname != null and nickname != ''">-->
+            <!--                nick_name = #{nickname},-->
+            <!--            </if>-->
+            <!--            <if test="email != null ">-->
+            <!--                email = #{email},-->
+            <!--            </if>-->
             <if test="phone != null ">
                 phone = #{phone},
             </if>
             <if test="gender != null and gender != ''">
                 gender = #{gender},
             </if>
-<!--            <if test="avatar != null and avatar != ''">-->
-<!--                avatar = #{avatar},-->
-<!--            </if>-->
+            <!--            <if test="avatar != null and avatar != ''">-->
+            <!--                avatar = #{avatar},-->
+            <!--            </if>-->
             <if test="password != null and password != ''">
                 password = #{password},
             </if>
-<!--            <if test="status != null and status != ''">-->
-<!--                status = #{status},-->
-<!--            </if>-->
-<!--            <if test="loginIp != null and loginIp != ''">-->
-<!--                login_ip = #{loginIp},-->
-<!--            </if>-->
-<!--            <if test="loginDate != null">-->
-<!--                login_date = #{loginDate},-->
-<!--            </if>-->
+            <!--            <if test="status != null and status != ''">-->
+            <!--                status = #{status},-->
+            <!--            </if>-->
+            <!--            <if test="loginIp != null and loginIp != ''">-->
+            <!--                login_ip = #{loginIp},-->
+            <!--            </if>-->
+            <!--            <if test="loginDate != null">-->
+            <!--                login_date = #{loginDate},-->
+            <!--            </if>-->
             <if test="updateBy != null and updateBy != ''">
                 update_by = #{updateBy},
             </if>
-<!--            <if test="remark != null">-->
-<!--                remark = #{remark},-->
-<!--            </if>-->
+            <!--            <if test="remark != null">-->
+            <!--                remark = #{remark},-->
+            <!--            </if>-->
             update_time = sysdate()
         </set>
         where id = #{id}
@@ -452,14 +452,22 @@
         FROM
         sys_user u
         LEFT JOIN sys_org o ON u.original_org_id = o.id
-        LEFT JOIN ( SELECT user_id FROM sys_user_role uo LEFT JOIN sys_role ro ON uo.role_id = ro.id WHERE ro.role_name LIKE '%安全保卫管理人员' ) h ON h.user_id = u.id
+        LEFT JOIN ( SELECT user_id FROM sys_user_role uo LEFT JOIN sys_role ro ON uo.role_id = ro.id WHERE ro.role_name
+        LIKE '%安全保卫管理人员' ) h ON h.user_id = u.id
         LEFT JOIN sys_user_role sro on u.id=sro.user_id
         LEFT JOIN sys_role sr on sro.role_id=sr.id
         where 1=1
         and u.deleted =0
         <choose>
             <when test="info.checkSub">
-                AND o.path like concat('%', #{info.orgPath}, '%')
+                AND (o.path like concat('%', #{info.orgPath}, '%')
+                <if test="info.parentOrgIds!=null and info.parentOrgIds.size()>0">
+                    or o.id in
+                    <foreach collection="info.parentOrgIds" separator="," open="(" close=")" item="orgId">
+                        #{orgId}
+                    </foreach>
+                </if>
+                )
             </when>
             <otherwise>
                 AND o.id = #{info.orgId}
@@ -497,16 +505,11 @@
         ORDER BY t.org_id DESC
     </select>
     <select id="selectrolesByOrgId" resultType="com.xunmei.system.api.domain.SysRole">
-        SELECT
-            r.*
-        FROM
-            sys_role r
-                LEFT JOIN sys_org o ON r.org_type = o.type
-        WHERE
-            1 = 1
-          AND o.id =#{orgId}
-
-
+        SELECT r.*
+        FROM sys_role r
+                 LEFT JOIN sys_org o ON r.org_type = o.type
+        WHERE 1 = 1
+          AND o.id = #{orgId}
     </select>
     <select id="getList" resultMap="SysUserResult">
         SELECT
@@ -550,7 +553,8 @@
         FROM
         sys_user u
         LEFT JOIN sys_org o ON u.original_org_id = o.id
-        LEFT JOIN ( SELECT user_id FROM sys_user_role uo LEFT JOIN sys_role ro ON uo.role_id = ro.id WHERE ro.role_name LIKE '%安全保卫管理人员' ) h ON h.user_id = u.id
+        LEFT JOIN ( SELECT user_id FROM sys_user_role uo LEFT JOIN sys_role ro ON uo.role_id = ro.id WHERE ro.role_name
+        LIKE '%安全保卫管理人员' ) h ON h.user_id = u.id
         LEFT JOIN sys_user_role sro on u.id=sro.user_id
         LEFT JOIN sys_role sr on sro.role_id=sr.id
         where 1=1
@@ -581,11 +585,10 @@
             AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{info.params.endTime},'%y%m%d')
         </if>
         ORDER BY u.update_time DESC
-
     </select>
     <select id="selectAllUser" resultType="com.xunmei.system.api.domain.SysUser">
-        select  * from
-            sys_user where  deleted=0 and is_lock =0 and locked=0
+        select * from
+        sys_user where deleted=0 and is_lock =0 and locked=0
         <if test="userName != null and userName != ''">
             AND name like concat('%', #{userName}, '%')
         </if>
@@ -598,22 +601,19 @@
         </foreach>
     </select>
     <select id="selectUserListByRoleAndOrg" resultType="com.xunmei.system.api.domain.SysUser">
-        SELECT DISTINCT
-            a.*
-        FROM
-            sys_user a
-                LEFT JOIN sys_org b ON a.org_id = b.id
-                LEFT JOIN sys_user_role c ON c.user_id = a.id
-                LEFT JOIN sys_role d ON d.id = c.role_id
-        WHERE
-            a.deleted = 0
+        SELECT DISTINCT a.*
+        FROM sys_user a
+                 LEFT JOIN sys_org b ON a.org_id = b.id
+                 LEFT JOIN sys_user_role c ON c.user_id = a.id
+                 LEFT JOIN sys_role d ON d.id = c.role_id
+        WHERE a.deleted = 0
           AND d.del_flag = 0
           AND b.id = #{sysRoleOrgDTO.orgId}
-          AND d.id IN (	SELECT role_id FROM core_resumption_plan_to_role WHERE plan_id=#{sysRoleOrgDTO.planId})
+          AND d.id IN (SELECT role_id FROM core_resumption_plan_to_role WHERE plan_id = #{sysRoleOrgDTO.planId})
     </select>
     <select id="select" resultType="com.xunmei.system.util.UserExport">
         SELECT
-        #         h.user_id AS is_manager,
+        # h.user_id AS is_manager,
         GROUP_CONCAT(sr.role_name) role_names,
         CONCAT(',',GROUP_CONCAT( sr.id ),',') as roleIds,
         u.id,
@@ -655,7 +655,8 @@
         FROM
         sys_user u
         LEFT JOIN sys_org o ON u.original_org_id = o.id
-        LEFT JOIN ( SELECT user_id FROM sys_user_role uo LEFT JOIN sys_role ro ON uo.role_id = ro.id WHERE ro.role_name LIKE '%安全保卫管理人员' ) h ON h.user_id = u.id
+        LEFT JOIN ( SELECT user_id FROM sys_user_role uo LEFT JOIN sys_role ro ON uo.role_id = ro.id WHERE ro.role_name
+        LIKE '%安全保卫管理人员' ) h ON h.user_id = u.id
         LEFT JOIN sys_user_role sro on u.id=sro.user_id
         LEFT JOIN sys_role sr on sro.role_id=sr.id
         where 1=1
@@ -695,13 +696,11 @@
             AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{info.params.endTime},'%y%m%d')
         </if>
         group by u.id
-
     </select>
     <select id="selectCountByNames" resultType="java.lang.String">
-        select u.name from sys_user u where u.deleted=0 and  u.name in
+        select u.name from sys_user u where u.deleted=0 and u.name in
         <foreach collection="names" item="name" open="(" separator="," close=")">
             #{name}
         </foreach>
     </select>
-
 </mapper>