SysDeptController.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. package com.ydtech.modules.admin.controller;
  2. import cn.hutool.core.collection.CollUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.ydtech.config.MasterPasswordConfig;
  5. import com.ydtech.constants.sys.SysPasswordEnum;
  6. import com.ydtech.core.page.HttpResult;
  7. import com.ydtech.core.page.PageRequest;
  8. import com.ydtech.modules.admin.model.SysDept;
  9. import com.ydtech.modules.admin.model.SysPassword;
  10. import com.ydtech.modules.admin.model.SysUser;
  11. import com.ydtech.modules.admin.model.vo.*;
  12. import com.ydtech.modules.admin.service.SysDeptService;
  13. import com.ydtech.modules.admin.service.SysPasswordService;
  14. import com.ydtech.modules.admin.utils.KztGetDeptUtils;
  15. import com.ydtech.modules.base.controller.BaseController;
  16. import com.ydtech.security.utils.PasswordUtils;
  17. import io.swagger.annotations.Api;
  18. import io.swagger.annotations.ApiOperation;
  19. import lombok.RequiredArgsConstructor;
  20. import lombok.extern.slf4j.Slf4j;
  21. import org.apache.commons.lang3.ObjectUtils;
  22. import org.apache.commons.lang3.StringUtils;
  23. import org.slf4j.Logger;
  24. import org.slf4j.LoggerFactory;
  25. import org.springframework.web.bind.annotation.*;
  26. import javax.servlet.http.HttpServletRequest;
  27. import java.util.ArrayList;
  28. import java.util.List;
  29. @Api(tags = "机构管理", value = "机构管理")
  30. @RestController
  31. @RequestMapping("/dept")
  32. @RequiredArgsConstructor
  33. @Slf4j
  34. public class SysDeptController extends BaseController {
  35. Logger logger = LoggerFactory.getLogger(getClass());
  36. private final SysDeptService sysDeptService;
  37. private final SysPasswordService sysPasswordService;
  38. private final MasterPasswordConfig masterPasswordConfig;
  39. // @PreAuthorize("hasAuthority('sys:dept:add')")
  40. @PostMapping(value = "/add")
  41. @ApiOperation("增加机构")
  42. public HttpResult<Boolean> add(@RequestBody SysDeptVo sysDeptVo) {
  43. sysDeptService.addDept(sysDeptVo);
  44. return HttpResult.ok();
  45. }
  46. @PostMapping(value = "/deleteDept")
  47. @ApiOperation("删除机构")
  48. public HttpResult<Object> delete(@RequestBody SysDeptRemoveVo sysDeptRemoveVo) {
  49. if (sysDeptRemoveVo.getPassword() == null) {
  50. return HttpResult.error("输入的密码不能为空");
  51. }
  52. SysPassword sysPassword = sysPasswordService.getOne(new LambdaQueryWrapper<SysPassword>().eq(SysPassword::getCode, SysPasswordEnum.DEPT.getCode()));
  53. // 判断机构删除密码是否为空
  54. if (PasswordUtils.matches(sysPassword.getSalt(), sysDeptRemoveVo.getPassword(), sysPassword.getPassword())) {
  55. sysDeptService.deleteDept(sysDeptRemoveVo);
  56. return HttpResult.ok();
  57. }
  58. return HttpResult.error("密码错误");
  59. }
  60. //@PreAuthorize("hasAuthority('sys:dept:view')")
  61. @ApiOperation(value = "获取树结构")
  62. @GetMapping(value = "/findTree")
  63. public HttpResult<List<SysDept>> findTree(String deptId,String managementSource) {
  64. BaseController baseController = new BaseController();
  65. // String deptId = baseController.getDeptId();
  66. LambdaQueryWrapper<SysDept> queryWrapper = new LambdaQueryWrapper<>();
  67. queryWrapper.eq(SysDept::getDelFlag, 0).eq(SysDept::getId, deptId);
  68. SysDept one = sysDeptService.getOne(queryWrapper);
  69. // String managementSource = one.getManagementSource();
  70. return HttpResult.ok(sysDeptService.findTree(deptId,managementSource));
  71. }
  72. @PostMapping("/queryTreeList")
  73. @ApiOperation(value = "查询机构树列表")
  74. public HttpResult<List<SysDept>> queryTreeList(@RequestBody SysDeptListVo sysDeptListVo) {
  75. List<SysDept> deptAll = new ArrayList<>();
  76. if(!StringUtils.isBlank(sysDeptListVo.getId()) || !StringUtils.isBlank(sysDeptListVo.getName())) {
  77. LambdaQueryWrapper<SysDept> queryWrapper = new LambdaQueryWrapper<>();
  78. queryWrapper.eq(SysDept::getDelFlag, 0)
  79. .eq(!StringUtils.isBlank(sysDeptListVo.getId()),SysDept::getId, sysDeptListVo.getId())
  80. .like(!StringUtils.isBlank(sysDeptListVo.getName()),SysDept::getName, sysDeptListVo.getName())
  81. .eq(!StringUtils.isBlank(sysDeptListVo.getName()),SysDept::getComlevel, "5");
  82. List<SysDept> depts = sysDeptService.list(queryWrapper);
  83. for (SysDept dept : depts) {
  84. List<SysDept> list = sysDeptService.findTree(dept.getId(),null);
  85. deptAll.addAll(list);
  86. }
  87. }else{
  88. List<SysDept> list = sysDeptService.findTree(null,null);
  89. deptAll.addAll(list);
  90. }
  91. // 递归组装前端需要的数据
  92. for (SysDept sysDept : deptAll) {
  93. sysDept.setName(sysDept.getName() + "--" + sysDept.getId());
  94. showEdit(sysDept);
  95. }
  96. return HttpResult.ok(deptAll);
  97. }
  98. public void showEdit(SysDept sysDept) {
  99. if (ObjectUtils.isNotEmpty(sysDept.getChildren())) {
  100. List<SysDept> childrenList = sysDept.getChildren();
  101. if (CollUtil.isNotEmpty(childrenList)){
  102. for (SysDept dept : childrenList) {
  103. dept.setName(dept.getName() + "--" + dept.getId());
  104. showEdit(dept);
  105. }
  106. }
  107. }
  108. }
  109. // @PreAuthorize("hasAuthority('sys:dept:edit')")
  110. @PostMapping(value = "/edit")
  111. public HttpResult edit(@RequestBody SysDept record) {
  112. SysDept byId = sysDeptService.getById(record.getId());
  113. if (record.getManagementSource() != null){
  114. if (!record.getManagementSource().equals(byId.getManagementSource())) {
  115. return HttpResult.error("机构已被设置来源无法修改");
  116. }
  117. }
  118. sysDeptService.updateDept(record);
  119. return HttpResult.ok();
  120. }
  121. // @PreAuthorize("hasAuthority('sys:dept:delete')")
  122. @PostMapping(value = "/delete")
  123. public HttpResult delete(@RequestBody List<SysDept> records) {
  124. System.out.println("" + records);
  125. return HttpResult.ok(sysDeptService.removeByIds(records));
  126. }
  127. //// @PreAuthorize("hasAuthority('sys:dept:view')")
  128. @PostMapping(value = "/findSubDept")
  129. public HttpResult findSubDept(@RequestBody PageRequest pageRequest) {
  130. return HttpResult.ok(sysDeptService.findSubDepts(pageRequest));
  131. }
  132. //// @PreAuthorize("hasAuthority('sys:dept:view')")
  133. @GetMapping(value = "/findMaxDeptId")
  134. public HttpResult findMaxDeptId(String deptId) {
  135. int i = 100;
  136. Object maxDeptId = new Object();
  137. maxDeptId = sysDeptService.findMaxDeptId(deptId);
  138. return HttpResult.ok(maxDeptId);
  139. }
  140. //// @PreAuthorize("hasAuthority('sys:dept:view')")
  141. @GetMapping(value = "/findMaxHouseId")
  142. public HttpResult findMaxHouseId(String deptId) {
  143. int i = 100;
  144. Object maxDeptId = new Object();
  145. maxDeptId = sysDeptService.findMaxHouseId(deptId);
  146. return HttpResult.ok(maxDeptId);
  147. }
  148. // // @PreAuthorize("hasAuthority('sys:dept:view')")
  149. @GetMapping(value = "/getDeptById")
  150. public HttpResult getDeptById(String id) {
  151. SysDept sysDept = sysDeptService.getById(id);
  152. logger.info(sysDept.toString());
  153. return HttpResult.ok(sysDept);
  154. }
  155. @ApiOperation(value = "获取机构树(不包含团队 dept_type=C)")
  156. @GetMapping(value = "/findCompanyTree")
  157. public HttpResult<List<SysDept>> findCompanyTree() {
  158. SysUser user = getUser();
  159. String deptId = user.getDeptId();
  160. return HttpResult.ok(sysDeptService.findCompanyTree(deptId));
  161. }
  162. @ApiOperation(value = "根据传入机构,查询归属所有团队")
  163. @GetMapping(value = "/findTeamList")
  164. public HttpResult findTeamList(String deptId) {
  165. return HttpResult.ok(sysDeptService.findTeamList(deptId));
  166. }
  167. /**
  168. * @version
  169. * @author: hxl
  170. * @Date: 2024/4/23 14:59
  171. * @Description: 获取所有的树结构
  172. */
  173. @ApiOperation(value = "获取所有的树结构")
  174. @GetMapping(value = "/findAllTree")
  175. public HttpResult<List<SysDept>> findAllTree(String deptId) {
  176. if(deptId==null || "".equals(deptId)){
  177. deptId="9";
  178. }else{
  179. //如果是平台下判断包含D的查询上级id
  180. if(deptId.contains("D")){
  181. SysDept dept = sysDeptService.getById(deptId);
  182. deptId =dept==null?"":dept.getParentId();
  183. }
  184. }
  185. LambdaQueryWrapper<SysDept> queryWrapper = new LambdaQueryWrapper<>();
  186. queryWrapper.eq(SysDept::getDelFlag, 0);
  187. return HttpResult.ok(sysDeptService.findTree(deptId,null));
  188. }
  189. @ApiOperation(value = "省市区门店列表查询 省级parentId=99 市县传值上级id,level传值省市县门店1,2,3,4")
  190. @GetMapping(value = "/queryListByParentId/{level}/{parentId}")
  191. public HttpResult<List<SysDept>> queryListByParentId(@PathVariable("level") String level, @PathVariable("parentId") String parentId) {
  192. if(parentId==null || "".equals(parentId)) {
  193. return HttpResult.error("parentId父级id不能为空");
  194. }
  195. if(level==null || "".equals(level)) {
  196. return HttpResult.error("level类型不能为空");
  197. }
  198. List<SysDept> sysDeptList = sysDeptService.queryListByParentId(level,parentId);
  199. return HttpResult.ok(sysDeptList);
  200. }
  201. /**
  202. * 工作室管理机构树
  203. * @return
  204. */
  205. @ApiOperation(value = "工作室管理机构树")
  206. @GetMapping(value = "/getSysDeptTree")
  207. public HttpResult<List<SysDeptTreeVo>> getSysDeptTree() {
  208. return HttpResult.ok(sysDeptService.getSysDeptTree());
  209. }
  210. /**
  211. * 合伙人管理机构树
  212. * @return
  213. */
  214. @ApiOperation(value = "合伙人管理机构树")
  215. @GetMapping(value = "/getPartnerDeptTree")
  216. public HttpResult<List<SysDeptTreeVo>> getPartnerDeptTree() {
  217. return HttpResult.ok(sysDeptService.getPartnerDeptTree());
  218. }
  219. /**
  220. * 数据权限机构数
  221. * @return
  222. */
  223. @ApiOperation(value = "数据权限机构数")
  224. @GetMapping(value = "/getDataDeptTree")
  225. public HttpResult<List<SysDept>> getDataDeptTree(HttpServletRequest httpServerRequest) {
  226. List<String> deptIds = new ArrayList<>();
  227. KztGetDeptUtils kztGetDeptUtils = new KztGetDeptUtils();
  228. KztGetDeptUtilsDto kztGetDeptUtilsDto = kztGetDeptUtils.KztGetDeptIds(httpServerRequest.getRequestURL().toString());
  229. if(ObjectUtils.isNotEmpty(kztGetDeptUtilsDto)){
  230. if("1".equals(kztGetDeptUtilsDto.getType())){
  231. deptIds = kztGetDeptUtilsDto.getIds();
  232. }
  233. }
  234. return HttpResult.ok(sysDeptService.getDataDeptTree(deptIds));
  235. }
  236. /**
  237. * 控制台用户数机构数
  238. * @return
  239. */
  240. @ApiOperation(value = "控制台用户数机构数")
  241. @PostMapping(value = "/getUserDeptTree")
  242. public HttpResult<KztUserDeptTreeDto> getUserDeptTree(@RequestBody SysDeptVo sysDeptVo) {
  243. return HttpResult.ok(sysDeptService.getUserDeptTree(sysDeptVo));
  244. }
  245. /**
  246. * @version
  247. * @author: hxl
  248. * @Date: 2024/9/26 18:08
  249. * @Description: 查询机构下的负责人
  250. */
  251. @GetMapping(value = "/getLeadListDeptId")
  252. public HttpResult getLeadListDeptId(String deptId) {
  253. List<SysUser> userList= sysDeptService.getLeadListDeptId(deptId);
  254. return HttpResult.ok(userList);
  255. }
  256. /**
  257. * @version
  258. * @author: hxl
  259. * @Date: 2024/9/26 18:08
  260. * @Description: 查询机构下的负责人
  261. */
  262. @PostMapping(value = "/saveLeadId")
  263. public HttpResult saveLeadId(@RequestBody DeptLeadVo deptLeadVo) {
  264. try{
  265. sysDeptService.saveLeadId(deptLeadVo);
  266. }catch(Exception e){
  267. return HttpResult.error("设置失败");
  268. }
  269. return HttpResult.ok();
  270. }
  271. }