EmployeeController.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. package com.ym.mec.web.controller;
  2. import com.ym.mec.biz.dal.dao.TeacherDao;
  3. import com.ym.mec.common.exception.BizException;
  4. import io.swagger.annotations.Api;
  5. import io.swagger.annotations.ApiOperation;
  6. import java.util.Date;
  7. import java.util.List;
  8. import java.util.stream.Collectors;
  9. import org.apache.commons.lang3.StringUtils;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.security.access.prepost.PreAuthorize;
  12. import org.springframework.web.bind.annotation.GetMapping;
  13. import org.springframework.web.bind.annotation.PostMapping;
  14. import org.springframework.web.bind.annotation.RequestBody;
  15. import org.springframework.web.bind.annotation.RequestMapping;
  16. import org.springframework.web.bind.annotation.RestController;
  17. import com.ym.mec.auth.api.client.SysUserFeignService;
  18. import com.ym.mec.auth.api.entity.SysUser;
  19. import com.ym.mec.biz.dal.dao.EmployeeDao;
  20. import com.ym.mec.biz.dal.dto.EmployeeLevelDto;
  21. import com.ym.mec.biz.dal.dto.SysEmployeePositionDto;
  22. import com.ym.mec.biz.dal.entity.Employee;
  23. import com.ym.mec.biz.dal.enums.EmployeeOperateEnum;
  24. import com.ym.mec.biz.dal.page.EmployeeQueryInfo;
  25. import com.ym.mec.biz.service.EmployeeService;
  26. import com.ym.mec.biz.service.OrganizationService;
  27. import com.ym.mec.biz.service.StudentManageService;
  28. import com.ym.mec.biz.service.SysEmployeePositionService;
  29. import com.ym.mec.common.controller.BaseController;
  30. import com.ym.mec.common.entity.HttpResponseResult;
  31. /**
  32. * @Author Joburgess
  33. * @Date 2019/9/17
  34. */
  35. @RequestMapping("employee")
  36. @Api(tags = "员工管理")
  37. @RestController
  38. public class EmployeeController extends BaseController {
  39. @Autowired
  40. private EmployeeService employeeService;
  41. @Autowired
  42. private SysUserFeignService sysUserFeignService;
  43. @Autowired
  44. private TeacherDao teacherDao;
  45. @Autowired
  46. private StudentManageService studentManageService;
  47. @Autowired
  48. private OrganizationService organizationService;
  49. @Autowired
  50. private EmployeeDao employeeDao;
  51. @Autowired
  52. private SysEmployeePositionService sysEmployeePositionService;
  53. @ApiOperation(value = "根据部门获取下面的员工")
  54. @GetMapping("/queryEmployByOrganId")
  55. @PreAuthorize("@pcs.hasPermissions('employee/queryEmployByOrganId')")
  56. public Object queryEmployByOrganId(EmployeeQueryInfo queryInfo) throws Exception {
  57. queryInfo.setOrganId(organizationService.getEmployeeOrgan(queryInfo.getOrganId()));
  58. return succeed(employeeService.queryEmployByOrganId(queryInfo));
  59. }
  60. @ApiOperation(value = "获取平台的员工")
  61. @GetMapping("/queryPlatformEmploy")
  62. @PreAuthorize("@pcs.hasPermissions('employee/queryPlatformEmploy')")
  63. public Object queryPlatformEmploy(EmployeeQueryInfo queryInfo) throws Exception {
  64. SysUser sysUser = sysUserFeignService.queryUserInfo();
  65. if (sysUser == null) {
  66. return failed("用户信息获取失败");
  67. }
  68. queryInfo.setOrganId(null);
  69. queryInfo.setTenantId(-1);
  70. return succeed(employeeService.queryEmployByOrganId(queryInfo));
  71. }
  72. @ApiOperation(value = "员工操作")
  73. @PostMapping("/employeeOperate")
  74. @PreAuthorize("@pcs.hasPermissions('employee/employeeOperate')")
  75. public Object employeeOperate(Integer employeeId, EmployeeOperateEnum operate){
  76. employeeService.employeeOperate(employeeId,operate);
  77. return succeed();
  78. }
  79. @ApiOperation(value = "当前用户是否有课程组教务老师关联")
  80. @PostMapping("/hasCourseGroupRelation")
  81. @PreAuthorize("@pcs.hasPermissions('employee/hasCourseGroupRelation')")
  82. public Object hasCourseGroupRelation(Integer employeeId){
  83. return succeed(employeeService.hasCourseGroupRelation(employeeId));
  84. }
  85. @ApiOperation(value = "修改指定的教务老师关联")
  86. @PostMapping("/updateEducationTeacherId")
  87. @PreAuthorize("@pcs.hasPermissions('employee/updateEducationTeacherId')")
  88. public Object updateEducationTeacherId(Integer currentUserId,Integer targetUserId){
  89. employeeService.updateEducationTeacherId(currentUserId,targetUserId);
  90. return succeed();
  91. }
  92. @ApiOperation(value = "新增员工")
  93. @PostMapping("/add")
  94. @PreAuthorize("@pcs.hasPermissions('employee/add')")
  95. public Object add(@RequestBody Employee employee) throws Exception {
  96. employeeService.add(employee);
  97. return succeed();
  98. }
  99. @ApiOperation(value = "修改员工")
  100. @PostMapping("/update")
  101. @PreAuthorize("@pcs.hasPermissions('employee/update')")
  102. public Object update(@RequestBody Employee employee) {
  103. employee.setUpdateTime(new Date());
  104. employeeService.updateEmployee(employee);
  105. return succeed();
  106. }
  107. @ApiOperation(value = "修改员工")
  108. @PostMapping("/simpleUpdate")
  109. @PreAuthorize("@pcs.hasPermissions('employee/simpleUpdate')")
  110. public Object simpleUpdate(@RequestBody Employee employee) {
  111. employeeService.simpleUpdate(employee);
  112. return succeed();
  113. }
  114. @ApiOperation(value = "修改用户")
  115. @PostMapping("/updateUser")
  116. public Object update(SysUser sysUser) {
  117. SysUser user = sysUserFeignService.queryUserInfo();
  118. if (user != null) {
  119. Date date = new Date();
  120. sysUser.setId(user.getId());
  121. sysUser.setUpdateTime(date);
  122. studentManageService.updateUser(sysUser);
  123. return succeed();
  124. }
  125. return failed("获取用户失败");
  126. }
  127. @ApiOperation(value = "获取所有员工")
  128. @GetMapping("/findAll")
  129. @PreAuthorize("@pcs.hasPermissions('employee/findAll')")
  130. public Object findAll() {
  131. return succeed(employeeService.findAll(null));
  132. }
  133. @ApiOperation(value = "获取用户信息")
  134. @GetMapping("/queryUserInfo")
  135. public Object apiQueryUserInfo() {
  136. SysUser sysUser = sysUserFeignService.queryUserInfo();
  137. if(sysUser != null && sysUser.getId() != null){
  138. Employee employee = employeeService.get(sysUser.getId());
  139. sysUser.setOrganName(organizationService.getOrganName(employee.getOrganIdList()));
  140. sysUser.setRoles(employeeDao.queryUserRole(sysUser.getId()));
  141. sysUser.setContactAddress(employee.getContactAddress());
  142. sysUser.setPostalCode(employee.getPostalCode());
  143. sysUser.setDeptId(employee.getDeptId());
  144. sysUser.setDeptIds(employee.getDeptIds());
  145. sysUser.setPostIds(employee.getPostIds());
  146. sysUser.setBankCard(employee.getBankCard());
  147. sysUser.setOpenBankAddress(employee.getOpenBankAddress());
  148. sysUser.setPostDeptIds(employee.getPostDeptIds());
  149. List<SysEmployeePositionDto> sysEmployeePositionDtoList = sysEmployeePositionService.queryByUserId(sysUser.getId());
  150. if(sysEmployeePositionDtoList != null && sysEmployeePositionDtoList.size() > 0){
  151. sysUser.setPositionName(sysEmployeePositionDtoList.stream().map(SysEmployeePositionDto :: getPositionName).collect(Collectors.joining(",")));
  152. }
  153. return succeed(sysUser);
  154. }
  155. return failed("获取用户信息失败");
  156. }
  157. /*@ApiOperation(value = "获取教务人员")
  158. @GetMapping("/findEducationUsers")
  159. public HttpResponseResult findEducationUsers(Integer userId, Integer organId){
  160. SysUser sysUser;
  161. if(userId == null){
  162. sysUser = sysUserFeignService.queryUserInfo();
  163. if (sysUser == null) {
  164. return failed("用户信息获取失败");
  165. }
  166. }else {
  167. sysUser = sysUserFeignService.queryUserById(userId);
  168. }
  169. String organIds = new String();
  170. if(Objects.isNull(organId)){
  171. Employee employee = employeeService.get(sysUser.getId());
  172. if (StringUtils.isEmpty(organIds)) {
  173. organIds = employee.getOrganIdList();
  174. }
  175. }else{
  176. organIds = organId.toString();
  177. }
  178. return succeed(employeeService.findByRole("4,5",organIds));
  179. }
  180. @ApiOperation(value = "获取对应角色的员工")
  181. @GetMapping("/findUserByRole")
  182. public HttpResponseResult findEducationUsers(Integer userId, Integer organId, EmployeeRoleEnum employeeRole){
  183. SysUser sysUser;
  184. if(userId == null){
  185. sysUser = sysUserFeignService.queryUserInfo();
  186. if (sysUser == null) {
  187. return failed("用户信息获取失败");
  188. }
  189. }else {
  190. sysUser = sysUserFeignService.queryUserById(userId);
  191. }
  192. String organIds = new String();
  193. if(Objects.isNull(organId)){
  194. Employee employee = employeeService.get(sysUser.getId());
  195. if (StringUtils.isEmpty(organIds)) {
  196. organIds = employee.getOrganIdList();
  197. }
  198. }else{
  199. organIds = organId.toString();
  200. }
  201. HashMap<String, Object> map = new HashMap<>();
  202. if(employeeRole == null){
  203. map.put("TEAM_TEACHER",employeeService.findByRole("5",organIds));
  204. map.put("TRANSACTION",employeeService.findByRole("58",organIds));
  205. map.put("EDUCATION",employeeService.findByRole("4",organIds));
  206. }else if(employeeRole == EmployeeRoleEnum.TEAM_TEACHER){
  207. map.put("TEAM_TEACHER",employeeService.findByRole("5",organIds));
  208. }else if(employeeRole == EmployeeRoleEnum.TRANSACTION){
  209. map.put("TRANSACTION",employeeService.findByRole("58",organIds));
  210. }else {
  211. map.put("EDUCATION",employeeService.findByRole("4",organIds));
  212. }
  213. return succeed(map);
  214. }
  215. @ApiOperation(value = "获取对应角色的员工")
  216. @GetMapping("/queryEmployeeByRole")
  217. public HttpResponseResult queryEmployeeByRole(Integer organId, String roleId){
  218. SysUser sysUser = sysUserFeignService.queryUserInfo();
  219. if (sysUser == null) {
  220. return failed(HttpStatus.FORBIDDEN,"请登录");
  221. }
  222. String organIds = new String();
  223. if(Objects.isNull(organId)){
  224. Employee employee = employeeService.get(sysUser.getId());
  225. if (StringUtils.isEmpty(organIds)) {
  226. organIds = employee.getOrganIdList();
  227. }
  228. }else{
  229. organIds = organId.toString();
  230. }
  231. return succeed(employeeService.findByRole(roleId, organIds));
  232. }
  233. @ApiOperation(value = "获取教务老师")
  234. @GetMapping("/findEducationTeacher")
  235. public HttpResponseResult findEducationTeacher(Integer userId){
  236. SysUser sysUser;
  237. if(userId == null){
  238. sysUser = sysUserFeignService.queryUserInfo();
  239. if (sysUser == null) {
  240. return failed("用户信息获取失败");
  241. }
  242. }else {
  243. sysUser = sysUserFeignService.queryUserById(userId);
  244. }
  245. String organIds = new String();
  246. Employee employee = employeeService.get(sysUser.getId());
  247. if (StringUtils.isEmpty(organIds)) {
  248. organIds = employee.getOrganIdList();
  249. }
  250. return succeed(employeeService.findByRole("4",organIds));
  251. }
  252. @ApiOperation(value = "获取维修技师")
  253. @GetMapping("/findTechnician")
  254. @PreAuthorize("@pcs.hasPermissions('employee/findTechnician')")
  255. public HttpResponseResult findTechnician(String organIds){
  256. SysUser sysUser = sysUserFeignService.queryUserInfo();
  257. if (sysUser == null) {
  258. return failed("用户信息获取失败");
  259. }
  260. if(StringUtils.isEmpty(organIds)){
  261. Employee employee = employeeService.get(sysUser.getId());
  262. if (StringUtils.isEmpty(organIds)) {
  263. organIds=employee.getOrganIdList();
  264. }
  265. }
  266. return succeed(employeeService.findByRole("37",organIds));
  267. }
  268. @ApiOperation(value = "获取所有维修技师(包含离职和冻结的)")
  269. @GetMapping("/findAllTechnician")
  270. @PreAuthorize("@pcs.hasPermissions('employee/findAllTechnician')")
  271. public HttpResponseResult<List<SimpleUserDto>> findAllTechnician(){
  272. SysUser sysUser = sysUserFeignService.queryUserInfo();
  273. String organIds = new String();
  274. if (sysUser == null) {
  275. return failed("用户信息获取失败");
  276. }
  277. Employee employee = employeeService.get(sysUser.getId());
  278. if (StringUtils.isEmpty(organIds)) {
  279. organIds=employee.getOrganIdList();
  280. }
  281. return succeed(employeeService.findAllByRole("37",organIds));
  282. }*/
  283. @ApiOperation(value = "获取所选用户离职所需交接信息")
  284. @GetMapping("/levelDetail")
  285. @PreAuthorize("@pcs.hasPermissions('employee/levelDetail')")
  286. public HttpResponseResult levelDetail(Integer userId){
  287. SysUser sysUser = sysUserFeignService.queryUserInfo();
  288. if (sysUser == null) {
  289. return failed("用户信息获取失败");
  290. }
  291. return succeed(employeeService.levelDetail(userId));
  292. }
  293. @ApiOperation(value = "员工离职交接")
  294. @PostMapping("/level")
  295. @PreAuthorize("@pcs.hasPermissions('employee/level')")
  296. public HttpResponseResult level(@RequestBody List<EmployeeLevelDto> employeeLevelDtos){
  297. employeeService.level(employeeLevelDtos);
  298. return succeed();
  299. }
  300. }