Browse Source

权限问题、测试问题修改

liujh 3 years ago
parent
commit
3e8ca48598

+ 7 - 0
zd-api/zd-api-system/src/main/java/com/zd/system/api/RemoteUserService.java

@@ -174,4 +174,11 @@ public interface RemoteUserService {
 
 
     @DeleteMapping("/user/{userIds}")
     @DeleteMapping("/user/{userIds}")
     AjaxResult remove(@PathVariable("userIds") Long[] userIds);
     AjaxResult remove(@PathVariable("userIds") Long[] userIds);
+
+    /**
+     * 获取当前登录用户所属学校以及院系id集合
+     * @return
+     */
+    @GetMapping("/user/getLogingUserDeptids")
+    R<List<Long>> getLogingUserDeptids();
 }
 }

+ 13 - 0
zd-api/zd-api-system/src/main/java/com/zd/system/api/domain/SysUser.java

@@ -272,6 +272,11 @@ public class SysUser extends BaseEntity {
     @ApiModelProperty(value = "管理实验室数量")
     @ApiModelProperty(value = "管理实验室数量")
     private Integer manageSubCount;
     private Integer manageSubCount;
 
 
+    /**
+     * 部门集合
+     * */
+    private List<Long> deptIds;
+
     private boolean include = false;
     private boolean include = false;
 
 
     private List<Object> permitMenus = new ArrayList<>();
     private List<Object> permitMenus = new ArrayList<>();
@@ -698,4 +703,12 @@ public class SysUser extends BaseEntity {
     public void setSafeUserId(String safeUserId) {
     public void setSafeUserId(String safeUserId) {
         this.safeUserId = safeUserId;
         this.safeUserId = safeUserId;
     }
     }
+
+    public List<Long> getDeptIds() {
+        return deptIds;
+    }
+
+    public void setDeptIds(List<Long> deptIds) {
+        this.deptIds = deptIds;
+    }
 }
 }

+ 12 - 0
zd-api/zd-api-system/src/main/java/com/zd/system/api/factory/RemoteUserFallbackFactory.java

@@ -158,6 +158,18 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
             public AjaxResult remove(Long[] userIds) {
             public AjaxResult remove(Long[] userIds) {
                 return AjaxResult.error("用户账号信息删除失败:"+throwable.getMessage());
                 return AjaxResult.error("用户账号信息删除失败:"+throwable.getMessage());
             }
             }
+
+            /**
+             * 获取当前登录用户所属学校以及院系id集合
+             *
+             * @return
+             */
+            @Override
+            public R<List<Long>> getLogingUserDeptids() {
+                return R.fail("获取登录用户所属学校及院系失败:" + throwable.getMessage());
+            }
+
+
         };
         };
     }
     }
 }
 }

+ 1 - 6
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/impl/QpFlowDetailServiceImpl.java

@@ -80,22 +80,17 @@ public class QpFlowDetailServiceImpl implements IQpFlowDetailService
     public int insertQpFlowDetail(QpFlowDetailVO qpFlow)
     public int insertQpFlowDetail(QpFlowDetailVO qpFlow)
     {
     {
         //设置其他公共字段
         //设置其他公共字段
-        //SaveUtil.setCommonAttr(qpFlowDetail);
+        //SaveUtil.setCommonAttr(qpFlow);
 
 
 
 
         List<QpFlowDetail> list = qpFlow.getFlowDetailList();
         List<QpFlowDetail> list = qpFlow.getFlowDetailList();
         if(list!=null && list.size()>0){
         if(list!=null && list.size()>0){
             for (QpFlowDetail detail:list) {
             for (QpFlowDetail detail:list) {
-
-                /*detail.setDeptId(detail.getDeptId());
-                detail.setDeptName(detail.getDeptName());*/
                 detail.setCreateTime(new Date());
                 detail.setCreateTime(new Date());
                 detail.setUserType(2L);//实验中心
                 detail.setUserType(2L);//实验中心
 
 
                 QpFlowDetailVO fd= new QpFlowDetailVO();
                 QpFlowDetailVO fd= new QpFlowDetailVO();
-                fd.setUserType(detail.getUserType());
                 fd.setUserId(detail.getUserId());
                 fd.setUserId(detail.getUserId());
-                fd.setFlowType(detail.getFlowType());
                 List<QpFlowDetailVO> fdlist = qpFlowDetailMapper.selectQpFlowDetailList(fd);
                 List<QpFlowDetailVO> fdlist = qpFlowDetailMapper.selectQpFlowDetailList(fd);
                 if(fdlist.size()==0){
                 if(fdlist.size()==0){
                     qpFlowDetailMapper.insertQpFlowDetail(detail);
                     qpFlowDetailMapper.insertQpFlowDetail(detail);

+ 3 - 2
zd-modules/zd-airbottle/src/main/resources/mapper/airbottle/QpBottleStorageMapper.xml

@@ -296,7 +296,8 @@
         FROM
         FROM
         qp_bottle_storage qs
         qp_bottle_storage qs
         INNER JOIN qp_task qt ON qt.id=qs.task_id
         INNER JOIN qp_task qt ON qt.id=qs.task_id
-        INNER JOIN lab_subject_layout ls on ls.id=qt.location_id
+        INNER JOIN lab_subject su on su.id = qt.location_id
+        INNER JOIN lab_subject_layout ls on ls.id=su.layout_id
         WHERE
         WHERE
         DATE_FORMAT( qs.create_time, '%Y-%m' )> DATE_FORMAT( date_sub( curdate(), INTERVAL 12 MONTH ), '%Y-%m' )
         DATE_FORMAT( qs.create_time, '%Y-%m' )> DATE_FORMAT( date_sub( curdate(), INTERVAL 12 MONTH ), '%Y-%m' )
         AND qs.air_status=0
         AND qs.air_status=0
@@ -305,7 +306,7 @@
         </if>
         </if>
         GROUP BY
         GROUP BY
         ls.id
         ls.id
-        ) t ORDER BY t.in_num
+        ) t ORDER BY t.in_num desc
     </select>
     </select>
 
 
     <insert id="insertQpBottleStorage" parameterType="com.zd.airbottle.domain.QpBottleStorage" useGeneratedKeys="true"
     <insert id="insertQpBottleStorage" parameterType="com.zd.airbottle.domain.QpBottleStorage" useGeneratedKeys="true"

+ 5 - 5
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabCheckRecordController.java

@@ -18,11 +18,9 @@ import com.zd.laboratory.domain.*;
 import com.zd.laboratory.domain.vo.LabCheckRecordDetailsVO;
 import com.zd.laboratory.domain.vo.LabCheckRecordDetailsVO;
 import com.zd.laboratory.domain.vo.LabCheckRecordVO;
 import com.zd.laboratory.domain.vo.LabCheckRecordVO;
 import com.zd.laboratory.domain.vo.LabSecurityApplyVO;
 import com.zd.laboratory.domain.vo.LabSecurityApplyVO;
-import com.zd.laboratory.domain.vo.LabSubjectVO;
 import com.zd.laboratory.service.*;
 import com.zd.laboratory.service.*;
 import com.zd.system.api.RemoteUserService;
 import com.zd.system.api.RemoteUserService;
 import com.zd.system.api.domain.SysUser;
 import com.zd.system.api.domain.SysUser;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -467,13 +465,15 @@ public class LabCheckRecordController extends BaseController {
         LabSubject labSubject = new LabSubject();
         LabSubject labSubject = new LabSubject();
         labSubject.setAdminId(sysUser.getUserId());
         labSubject.setAdminId(sysUser.getUserId());
 
 
-        //即使检查者 又是管理员
+        //既是检查者 又是管理员
          if(1==sysUser.getIsCheck() && labSubjectService.isadmin(labSubject)){
          if(1==sysUser.getIsCheck() && labSubjectService.isadmin(labSubject)){
              map.put("remark",sysUser.getUserId());
              map.put("remark",sysUser.getUserId());
          }
          }
 
 
-         //按部门查询(数据逻辑过滤)
-        map.put("deptId", sysUser.getDept().getDeptId());
+        //按学校(数据逻辑过滤)
+        R<List<Long>> listdeptids = remoteUserService.getLogingUserDeptids();
+        List<Long> deptIds= listdeptids.getData();
+        map.put("deptIds", deptIds);
 
 
          // TODO 白老师证号特殊处理
          // TODO 白老师证号特殊处理
         if(sysUser.getUserId() == 92612){
         if(sysUser.getUserId() == 92612){

+ 8 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabSubjectController.java

@@ -26,6 +26,7 @@ import com.zd.laboratory.mqtt.service.impl.CommonSend;
 import com.zd.laboratory.service.ILabHazardSubjectRelationService;
 import com.zd.laboratory.service.ILabHazardSubjectRelationService;
 import com.zd.laboratory.service.ILabQpSubjectRelationService;
 import com.zd.laboratory.service.ILabQpSubjectRelationService;
 import com.zd.laboratory.service.ILabSubjectService;
 import com.zd.laboratory.service.ILabSubjectService;
+import com.zd.system.api.RemoteUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
@@ -62,6 +63,9 @@ public class LabSubjectController extends BaseController {
     @Autowired
     @Autowired
     private ILabQpSubjectRelationService labQpSubjectRelationService;
     private ILabQpSubjectRelationService labQpSubjectRelationService;
 
 
+    @Autowired
+    private RemoteUserService remoteUserService;
+
     /**
     /**
      * 查询实验室列表
      * 查询实验室列表
      */
      */
@@ -109,6 +113,10 @@ public class LabSubjectController extends BaseController {
 
 
     @GetMapping("/list/listAdmin")
     @GetMapping("/list/listAdmin")
     public List<LabSubject> listAdmin(LabSubject labSubject) {
     public List<LabSubject> listAdmin(LabSubject labSubject) {
+        //获取当前登录用户所属学校和学院的deptid
+        R<List<Long>> listdeptids = remoteUserService.getLogingUserDeptids();
+        List<Long> deptIds= listdeptids.getData();
+        labSubject.setDeptIds(deptIds);
         List<LabSubject> list = labSubjectService.selectLabSubjectListByadminidNotnull(labSubject);
         List<LabSubject> list = labSubjectService.selectLabSubjectListByadminidNotnull(labSubject);
         return list;
         return list;
     }
     }

+ 5 - 1
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabSubject.java

@@ -197,7 +197,7 @@ public class LabSubject extends BaseEntity implements QCInterface {
 
 
     private Integer bottleTotal;//实验室气瓶总数
     private Integer bottleTotal;//实验室气瓶总数
     private Integer bottleUserTotal;//实验室单人气瓶总数
     private Integer bottleUserTotal;//实验室单人气瓶总数
-
+    private List<Long> deptIds;
     /**
     /**
      * type = 5 实验室信息和安全检查二维码
      * type = 5 实验室信息和安全检查二维码
      * @param code = 实验室id + - + 实验室房间号
      * @param code = 实验室id + - + 实验室房间号
@@ -502,4 +502,8 @@ public class LabSubject extends BaseEntity implements QCInterface {
     public Integer getBottleUserTotal() {        return bottleUserTotal;    }
     public Integer getBottleUserTotal() {        return bottleUserTotal;    }
 
 
     public void setBottleUserTotal(Integer bottleUserTotal) {        this.bottleUserTotal = bottleUserTotal;    }
     public void setBottleUserTotal(Integer bottleUserTotal) {        this.bottleUserTotal = bottleUserTotal;    }
+
+    public List<Long> getDeptIds() {        return deptIds;    }
+
+    public void setDeptIds(List<Long> deptIds) {        this.deptIds = deptIds;    }
 }
 }

+ 4 - 0
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabCheckRecordMapper.xml

@@ -311,6 +311,10 @@
         l.room
         l.room
         from lab_subject_layout l INNER JOIN lab_subject s on l.id= s.layout_id
         from lab_subject_layout l INNER JOIN lab_subject s on l.id= s.layout_id
         where  l.is_subject=1
         where  l.is_subject=1
+        <if test="deptIds != null and deptIds.size()>0"> <!-- 部门集合id-->
+            and s.dept_id in
+            <foreach item="item" collection="deptIds" separator="," open="(" close=")" index="">'${item}'</foreach>
+        </if>
         <if test="deptId != null and deptId !=''"> <!-- 部门id-->
         <if test="deptId != null and deptId !=''"> <!-- 部门id-->
             and ( s.dept_id in (SELECT dt.dept_id FROM sys_dept dt WHERE find_in_set(#{deptId} ,ancestors )) or s.dept_id = #{deptId} )
             and ( s.dept_id in (SELECT dt.dept_id FROM sys_dept dt WHERE find_in_set(#{deptId} ,ancestors )) or s.dept_id = #{deptId} )
         </if>
         </if>

+ 4 - 0
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabSubjectMapper.xml

@@ -257,6 +257,10 @@
     <select id="selectLabSubjectListByadminidNotnull" parameterType="com.zd.laboratory.domain.LabSubject" resultMap="LabSubjectResult">
     <select id="selectLabSubjectListByadminidNotnull" parameterType="com.zd.laboratory.domain.LabSubject" resultMap="LabSubjectResult">
         <include refid="selectLabSubjectVo"/>
         <include refid="selectLabSubjectVo"/>
             where admin_id != -1
             where admin_id != -1
+        <if test="deptIds != null and deptIds.size()>0"> <!-- 部门集合id-->
+            and s.dept_id in
+            <foreach item="item" collection="deptIds" separator="," open="(" close=")" index="">'${item}'</foreach>
+        </if>
             <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
             <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
             <if test="floorId != null "> and floor_id = #{floorId}</if>
             <if test="floorId != null "> and floor_id = #{floorId}</if>
             <if test="room != null  and room != ''"> and room = #{room}</if>
             <if test="room != null  and room != ''"> and room = #{room}</if>

+ 14 - 19
zd-modules/zd-modules-system/src/main/java/com/zd/system/controller/SysUserController.java

@@ -550,25 +550,9 @@ public class SysUserController extends BaseController {
     public List<SysUser> selectUserListByNotWhite(String nickName) {
     public List<SysUser> selectUserListByNotWhite(String nickName) {
         if(StrUtil.isBlank(nickName)) return Collections.EMPTY_LIST;
         if(StrUtil.isBlank(nickName)) return Collections.EMPTY_LIST;
         SysUser user = new SysUser();
         SysUser user = new SysUser();
-
-        //获取当前登录用户信息
-        Long userId = SecurityUtils.getUserId();
-        SysUser sysUser = userService.selectUserById(userId);
-
-        /*SysDept sysDept = deptService.selectDeptById(sysUser.getDept().getDeptId());
-        Long deptId =null;
-        //查询登录用户所属的院校
-        if("0".equals(sysDept.getAncestors())){
-            deptId=sysDept.getDeptId();
-        }else{
-            deptId=Long.valueOf(sysDept.getAncestors().split(",")[1]);
-        }
-        List<SysDept> deptList = deptService.selectChildrenDeptListById(deptId);
-        List<Long> postIds= new ArrayList<>();
-        for (int i=0;i<deptList.size();i++){
-            postIds.add(deptList.get(i).getDeptId()) ;
-        }*/
-
+        //当前登录用户所属院校部门集合
+        List<Long> deptIds = userService.getLogingUserDeptids();
+        user.setDeptIds(deptIds);
         user.setUserType("11");//用户身份 11教职工 22学生
         user.setUserType("11");//用户身份 11教职工 22学生
         user.setNickName(nickName);
         user.setNickName(nickName);
         List<SysUser> list = userService.selectUserListByNotWhite(user);
         List<SysUser> list = userService.selectUserListByNotWhite(user);
@@ -680,4 +664,15 @@ public class SysUserController extends BaseController {
         List<SysUser> list = userService.getSafeUserList(user);
         List<SysUser> list = userService.getSafeUserList(user);
         return AjaxResult.success(list);
         return AjaxResult.success(list);
     }
     }
+
+    /**
+     * 获取当前登录用户所属学校以及下级部门id集合
+     */
+    @ApiOperation("获取当前登录用户所属学校以及下级部门id集合")
+    @GetMapping("/getLogingUserDeptids")
+    public AjaxResult getLogingUserDeptids() {
+        List<Long> collect = userService.getLogingUserDeptids();
+        return AjaxResult.success(collect);
+
+    }
 }
 }

+ 6 - 0
zd-modules/zd-modules-system/src/main/java/com/zd/system/service/ISysUserService.java

@@ -335,4 +335,10 @@ public interface ISysUserService {
      * @return 用户信息集合信息
      * @return 用户信息集合信息
      */
      */
     public List<SysUser> getSafeUserList(SysUser user);
     public List<SysUser> getSafeUserList(SysUser user);
+
+    /***
+     * 获取当前登录用户所属院校部门集合
+     * @return
+     */
+    public List<Long> getLogingUserDeptids();
 }
 }

+ 30 - 3
zd-modules/zd-modules-system/src/main/java/com/zd/system/service/impl/SysUserServiceImpl.java

@@ -1,7 +1,6 @@
 package com.zd.system.service.impl;
 package com.zd.system.service.impl;
 
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.zd.common.core.constant.UserConstants;
 import com.zd.common.core.constant.UserConstants;
 import com.zd.common.core.domain.per.PerPrefix;
 import com.zd.common.core.domain.per.PerPrefix;
 import com.zd.common.core.exception.ServiceException;
 import com.zd.common.core.exception.ServiceException;
@@ -15,14 +14,12 @@ import com.zd.system.mapper.*;
 import com.zd.system.service.ISysConfigService;
 import com.zd.system.service.ISysConfigService;
 import com.zd.system.service.ISysPermitMenuService;
 import com.zd.system.service.ISysPermitMenuService;
 import com.zd.system.service.ISysUserService;
 import com.zd.system.service.ISysUserService;
-import jdk.nashorn.internal.scripts.JS;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
-import sun.rmi.transport.ObjectTable;
 
 
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.*;
@@ -1136,4 +1133,34 @@ public class SysUserServiceImpl implements ISysUserService {
     public List<SysUser> getSafeUserList(SysUser user) {
     public List<SysUser> getSafeUserList(SysUser user) {
         return userMapper.getSafeUserList(user);
         return userMapper.getSafeUserList(user);
     }
     }
+
+    /***
+     * 获取当前登录用户所属院校部门集合
+     * @return
+     */
+    @Override
+    public List<Long> getLogingUserDeptids() {
+        //获取当前登录用户信息
+        Long userId = SecurityUtils.getUserId();
+        SysUser sysUser = userMapper.selectUserById(userId);
+
+        SysDept sysDept = deptMapper.selectDeptById(sysUser.getDept().getDeptId());
+        Long deptId =null;
+        List<Long> deptids = new ArrayList<>();
+
+        //查询登录用户所属的院校
+        if("0".equals(sysDept.getAncestors())){
+            deptId=sysDept.getDeptId();
+        }else{
+            deptId=Long.valueOf(sysDept.getAncestors().split(",")[1]);
+        }
+        deptids.add(deptId);//追加院校部门id
+
+        //查询该院校下的所有有效的子部门
+        List<SysDept> deptList = deptMapper.selectChildrenDeptListById(deptId);
+        for (SysDept dept:deptList ) {
+            deptids.add(dept.getDeptId());
+        }
+        return deptids;
+    }
 }
 }

+ 3 - 3
zd-modules/zd-modules-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -776,9 +776,9 @@
             AND u.user_id IN
             AND u.user_id IN
             <foreach item="item" collection="ids" separator="," open="(" close=")" index="">'${item}'</foreach>
             <foreach item="item" collection="ids" separator="," open="(" close=")" index="">'${item}'</foreach>
         </if>
         </if>
-        <if test="ids!=null and ids.size > 0">
-            AND u.user_id IN
-            <foreach item="item" collection="ids" separator="," open="(" close=")" index="">'${item}'</foreach>
+        <if test="deptIds !=null and  deptIds.size >0" >
+            AND u.dept_id IN
+            <foreach item="item" collection="deptIds" separator="," open="(" close=")" index="">'${item}'</foreach>
         </if>
         </if>
         <if test="major != null and major != ''">
         <if test="major != null and major != ''">
             AND u.major like concat('%', #{major}, '%')
             AND u.major like concat('%', #{major}, '%')