zouxuan 5 年 前
コミット
20ecaad56a

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/page/EmployeeQueryInfo.java

@@ -10,7 +10,7 @@ import io.swagger.annotations.ApiModelProperty;
 public class EmployeeQueryInfo extends QueryInfo {
 
     @ApiModelProperty(value = "部门ID",required = true)
-    private Long organId;
+    private String organId;
 
     @ApiModelProperty(value = "角色ID",required = false)
     private Long roleId;
@@ -18,11 +18,11 @@ public class EmployeeQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "用户名或电话",required = false)
     private Long userNameOrPhone;
 
-    public Long getOrganId() {
+    public String getOrganId() {
         return organId;
     }
 
-    public void setOrganId(Long organId) {
+    public void setOrganId(String organId) {
         this.organId = organId;
     }
 

+ 0 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java

@@ -125,8 +125,6 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 		if(user == null){
 			throw new Exception("获取用户信息失败");
 		}
-
-		queryInfo.setOrganId(user.getOrganId().longValue());
 		PageInfo<EmployeeDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
@@ -137,7 +135,6 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 			pageInfo.setTotal(count);
 			params.put("offset", pageInfo.getOffset());
 			dataList = employeeDao.queryEmployByOrganId(params);
-
 		}
 		if (count == 0) {
 			dataList = new ArrayList<>();

+ 25 - 17
mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml

@@ -178,30 +178,38 @@
         </collection>
     </resultMap>
     <select id="queryEmployByOrganId" resultMap="EmployeeDto">
-        SELECT e.user_id_,su.real_name_,su.gender_,su.phone_,su.user_type_,e.job_nature_,su.lock_flag_,
-        e.entry_date_,e.demission_date_,o.name_ organ_name_list_,o.id_ organ_id_list_,sr.role_name_,sr.id_ role_id_
-        FROM (SELECT * FROM employee WHERE FIND_IN_SET(#{organId},organ_id_list_) <include refid="global.limit"/>) e
-        LEFT JOIN sys_user su ON su.id_ = e.user_id_
-        LEFT JOIN sys_user_role sur ON sur.user_id_ = e.user_id_
+        SELECT ue.*,o.name_ organ_name_list_,o.id_ organ_id_list_,sr.role_name_,sr.id_ role_id_
+        FROM (SELECT e.user_id_,su.real_name_,su.gender_,su.phone_,su.user_type_,e.job_nature_,su.lock_flag_,
+        e.entry_date_,e.demission_date_,e.organ_id_list_ organ_id_,e.create_time_
+        FROM employee e LEFT JOIN sys_user su ON e.user_id_ = su.id_
+        <where>
+            <if test="organId != null">
+                FIND_IN_SET(su.organ_id_,#{organId})
+            </if>
+        </where> <include refid="global.limit"/>) ue
+        LEFT JOIN sys_user_role sur ON sur.user_id_ = ue.user_id_
         LEFT JOIN sys_role sr ON sr.id_ = sur.role_id_
-        LEFT JOIN organization o ON FIND_IN_SET(o.id_,e.organ_id_list_)
-        WHERE su.user_type_ LIKE '%SYSTEM%'
+        LEFT JOIN organization o ON FIND_IN_SET(o.id_,ue.organ_id_)
+        WHERE ue.user_type_ LIKE '%SYSTEM%'
         <if test="search != null">
-            AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
+            AND (ue.real_name_ LIKE CONCAT('%',#{search},'%') OR ue.phone_ LIKE CONCAT('%',#{search},'%'))
         </if>
-        ORDER BY e.create_time_ DESC
+        ORDER BY ue.create_time_ DESC
     </select>
 
     <select id="queryEmployByOrganIdCount" resultType="int">
-        SELECT COUNT(e.user_id_)
-        FROM employee e
-        LEFT JOIN sys_user su ON su.id_ = e.user_id_
-        WHERE su.user_type_ LIKE '%SYSTEM%'
+        SELECT COUNT(ue.user_id_)
+        FROM (SELECT e.user_id_,su.real_name_,su.gender_,su.phone_,su.user_type_,e.job_nature_,su.lock_flag_,
+        e.entry_date_,e.demission_date_,e.organ_id_list_,e.create_time_
+        FROM employee e LEFT JOIN sys_user su ON e.user_id_ = su.id_
+        <where>
+            <if test="organId != null">
+                FIND_IN_SET(su.organ_id_,#{organId})
+            </if>
+        </where>) ue
+        WHERE ue.user_type_ LIKE '%SYSTEM%'
         <if test="search != null">
-            AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
-        </if>
-        <if test="organId != null">
-            AND FIND_IN_SET(#{organId},e.organ_id_list_)
+            AND (ue.real_name_ LIKE CONCAT('%',#{search},'%') OR ue.phone_ LIKE CONCAT('%',#{search},'%'))
         </if>
     </select>
 </mapper>

+ 15 - 0
mec-web/src/main/java/com/ym/mec/web/controller/EmployeeController.java

@@ -1,5 +1,7 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.enums.EmployeeOperateEnum;
 import com.ym.mec.biz.dal.page.EmployeeQueryInfo;
@@ -7,6 +9,7 @@ import com.ym.mec.biz.service.EmployeeService;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
@@ -24,11 +27,23 @@ public class EmployeeController extends BaseController {
 
     @Autowired
     private EmployeeService employeeService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "根据部门获取下面的员工")
     @GetMapping("/queryEmployByOrganId")
     @PreAuthorize("@pcs.hasPermissions('employee/queryEmployByOrganId')")
     public Object queryEmployByOrganId(EmployeeQueryInfo queryInfo) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        if(!sysUser.getIsSuperAdmin()){
+            if(StringUtils.isEmpty(queryInfo.getOrganId())){
+                Employee employee = employeeService.get(sysUser.getId());
+                queryInfo.setOrganId(employee.getOrganIdList());
+            }
+        }
         return succeed(employeeService.queryEmployByOrganId(queryInfo));
     }