From 09e6dc3fb7266620fafb5e341808a8eb36e080a1 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期六, 13 十二月 2025 22:51:52 +0800
Subject: [PATCH] feat:增加企业微信消息提醒
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java | 99 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 98 insertions(+), 1 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
index 130c438..84af926 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -31,6 +31,7 @@
import com.ruoyi.system.service.ISysPostService;
import com.ruoyi.system.service.ISysRoleService;
import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.domain.vo.BranchUserQueryVO;
/**
* 鐢ㄦ埛淇℃伅
@@ -56,7 +57,6 @@
/**
* 鑾峰彇鐢ㄦ埛鍒楄〃
*/
- @PreAuthorize("@ss.hasPermi('system:user:list')")
@GetMapping("/list")
public TableDataInfo list(SysUser user)
{
@@ -253,4 +253,101 @@
{
return success(deptService.selectDeptTreeList(dept));
}
+
+ /**
+ * 鑾峰彇褰撳墠鐢ㄦ埛绠$悊鐨勫垎鍏徃涓嬬殑鎵�鏈夌敤鎴凤紙灏忕▼搴忕涓撶敤锛�
+ * 鏍规嵁褰撳墠鐢ㄦ埛鐨刼aOrderClass瀛楁鍖归厤鍒嗗叕鍙革紝杩斿洖杩欎簺鍒嗗叕鍙稿強鍏舵墍鏈夊瓙閮ㄩ棬鐨勭敤鎴�
+ */
+ @GetMapping("/branch/users")
+ public AjaxResult listBranchUsers()
+ {
+ // 鑾峰彇褰撳墠鐢ㄦ埛
+ SysUser currentUser = userService.selectUserById(getUserId());
+ if (currentUser == null) {
+ return error("鐢ㄦ埛涓嶅瓨鍦�");
+ }
+
+ // 鑾峰彇褰撳墠鐢ㄦ埛绠$悊鐨勫垎鍏徃ID鍒楄〃
+ String oaOrderClass = currentUser.getOaOrderClass();
+ List<Long> branchDeptIds = new java.util.ArrayList<>();
+
+ if (StringUtils.isNotEmpty(oaOrderClass)) {
+ // 鏍规嵁oaOrderClass鏌ヨ鍖归厤鐨勫垎鍏徃
+ String[] orderCodes = oaOrderClass.split(",");
+ SysDept queryDept = new SysDept();
+ queryDept.setParentId(100L); // 鍙煡璇㈠垎鍏徃
+ List<SysDept> allBranches = deptService.selectDeptList(queryDept);
+
+ for (SysDept branch : allBranches) {
+ for (String code : orderCodes) {
+ // 鍖归厤serviceOrderClass鎴杁ispatchOrderClass
+ if ((StringUtils.isNotEmpty(branch.getServiceOrderClass()) && branch.getServiceOrderClass().equals(code.trim()))
+ || (StringUtils.isNotEmpty(branch.getDispatchOrderClass()) && branch.getDispatchOrderClass().equals(code.trim()))) {
+ branchDeptIds.add(branch.getDeptId());
+ break;
+ }
+ }
+ }
+ }
+
+ // 濡傛灉娌℃湁鎵惧埌鍖归厤鐨勫垎鍏徃锛屼娇鐢ㄥ綋鍓嶇敤鎴锋墍鍦ㄩ儴闂�
+ if (branchDeptIds.isEmpty()) {
+ Long userDeptId = currentUser.getDeptId();
+ if (userDeptId != null) {
+ // 鏌ユ壘鐢ㄦ埛鎵�鍦ㄩ儴闂ㄧ殑鐖剁骇鍒嗗叕鍙�
+ SysDept userDept = deptService.selectDeptById(userDeptId);
+ if (userDept != null) {
+ // 鍚戜笂鏌ユ壘鐩村埌鎵惧埌parent_id=100鐨勫垎鍏徃
+ while (userDept != null && userDept.getParentId() != 100L) {
+ userDept = deptService.selectDeptById(userDept.getParentId());
+ }
+ if (userDept != null && userDept.getParentId() == 100L) {
+ branchDeptIds.add(userDept.getDeptId());
+ }
+ }
+ }
+ }
+
+ // 濡傛灉杩樻槸娌℃湁鎵惧埌锛岃繑鍥炵┖鍒楄〃
+ if (branchDeptIds.isEmpty()) {
+ return success(new java.util.ArrayList<>());
+ }
+
+ // 鏌ヨ杩欎簺鍒嗗叕鍙稿強鍏舵墍鏈夊瓙閮ㄩ棬鐨勭敤鎴�
+ List<SysUser> users = userService.selectUsersByBranchDeptIds(branchDeptIds);
+
+ return success(users);
+ }
+
+ /**
+ * 鏍规嵁鍒嗗叕鍙窱D鍒楄〃鑾峰彇鐢ㄦ埛(POST鏂瑰紡)
+ */
+ @PostMapping("/branch/users")
+ public AjaxResult listUsersByBranchDepts(@RequestBody BranchUserQueryVO queryVO)
+ {
+ List<Long> branchDeptIds = queryVO.getBranchDeptIds();
+
+ if (branchDeptIds == null || branchDeptIds.isEmpty()) {
+ return success(new java.util.ArrayList<>());
+ }
+
+ // 鏌ヨ杩欎簺鍒嗗叕鍙稿強鍏舵墍鏈夊瓙閮ㄩ棬鐨勭敤鎴�
+ List<SysUser> users = userService.selectUsersByBranchDeptIds(branchDeptIds);
+
+ return success(users);
+ }
+
+ /**
+ * 鏍规嵁oaUserId鏌ヨ鐢ㄦ埛淇℃伅
+ */
+ @GetMapping("/oa-user/{oaUserId}")
+ public AjaxResult getUserByOaUserId(@PathVariable Integer oaUserId)
+ {
+ SysUser user = userService.selectUserByOaUserId(oaUserId);
+ if (user != null) {
+ return success(user);
+ } else {
+ return error("鏈壘鍒板搴旂殑鐢ㄦ埛淇℃伅");
+ }
+ }
}
--
Gitblit v1.9.1