diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java index 04aee97f..b5e2e9f6 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java @@ -478,16 +478,16 @@ public class DepositoryServiceImpl implements DepositoryService { List depositoryIdList = new ArrayList<>(); // 获取所有仓库 List depositoryAll = depositoryMapper.findDepositoryAll(); - Integer totalVal = depositoryAll.size(); + int totalVal = depositoryAll.size(); // 定义分页数量 double size = 10.0; // 定义线程数 - Integer threadSize = (int) Math.ceil(totalVal / size); + int threadSize = (int) Math.ceil(totalVal / size); // 定义开启线程数目 - Integer openThreadSize = 0; + int openThreadSize = 0; // 开启对应数量的线程 ExecutorService exs = new ThreadPoolExecutor(threadSize, threadSize, 100, TimeUnit.SECONDS, new LinkedBlockingQueue<>(threadSize)); diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java index b165a401..d2d359ab 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java @@ -1806,20 +1806,43 @@ public class QyWxOperationService { if (!flag) { for (Long mtId : materialTypeIdList ) { - // 获取当前仓库的管理员列表 - List userIdByDid = roleMapper.findUserIdByMtId(mtId); // 获取当前管理员的企业微信userId List qywxUserIdList = new ArrayList<>(); - for (Integer userId : userIdByDid - ) { - // 获取对应管理员信息 - UserByPort userByPort = LinkInterfaceUtil.FindUserById(userId, userKey, token); - String user = userByPort.getWorkwechat(); - if (user == null || "".equals(user)) { - user = userByPort.getWechat(); + + // 用于查询对应的管理员权限 + Map paramForUserManager = new HashMap<>(); + paramForUserManager.put("mtid", mtId); + + List roleAndMaterialTypeByCondition = roleMapper.findRoleAndMaterialTypeByCondition(paramForUserManager); + for (RoleAndMaterialType roleAndMaterialType : roleAndMaterialTypeByCondition) { + int classes = roleAndMaterialType.getClasses(); + Integer userId = roleAndMaterialType.getUid(); + if (classes == 1) { + // 如果是对人设置的权限 + UserByPort userByPort = LinkInterfaceUtil.FindUserById(userId, userKey, token); + String user = userByPort.getWorkwechat(); + if (user == null || "".equals(user)) { + user = userByPort.getWechat(); + } + qywxUserIdList.add(user); + } else { + // 如果是对岗位 + + // 定义用于获取当前岗位下的人的参数map + Map paramForGetUserByPost = new HashMap<>(); + paramForGetUserByPost.put("position", userId); + List userByPortList = LinkInterfaceUtil.FindUserByMap(paramForGetUserByPost, userKey, token); + for (UserByPort userByPort : userByPortList) { + // 获取企业微信id或微信id + String userByPortWorkwechat = userByPort.getWorkwechat(); + if (userByPortWorkwechat == null || "".equals(userByPortWorkwechat)) { + userByPortWorkwechat = userByPort.getWechat(); + } + qywxUserIdList.add(userByPortWorkwechat); + } } - qywxUserIdList.add(user); } + if (qywxUserIdList.size() > 0) { // 用于设置仓库管理员流程 Approval_template_approver approval_template_approver_depository_manager = new Approval_template_approver(); @@ -1833,20 +1856,44 @@ public class QyWxOperationService { for (Integer depositoryId : depositoryIdList ) { - // 获取当前仓库的管理员列表 - List userIdByDid = roleMapper.findUserIdByDid(depositoryId); // 获取当前管理员的企业微信userId List qywxUserIdList = new ArrayList<>(); - for (Integer userId : userIdByDid - ) { - // 获取对应管理员信息 - UserByPort userByPort = LinkInterfaceUtil.FindUserById(userId, userKey, token); - String user = userByPort.getWorkwechat(); - if (user == null || "".equals(user)) { - user = userByPort.getWechat(); + + // 用于查询对应的管理员权限 + Map paramForUserManager = new HashMap<>(); + paramForUserManager.put("depositoryId", depositoryId); + + List roleAndDepositoryByCondition = roleMapper.findRoleAndDepositoryByCondition(paramForUserManager); + for (RoleAndDepository roleAndDepository : roleAndDepositoryByCondition) { + int classes = roleAndDepository.getClasses(); + Integer userId = roleAndDepository.getUserId(); + if (classes == 1) { + // 如果是对人设置的权限 + UserByPort userByPort = LinkInterfaceUtil.FindUserById(userId, userKey, token); + String user = userByPort.getWorkwechat(); + if (user == null || "".equals(user)) { + user = userByPort.getWechat(); + } + qywxUserIdList.add(user); + } else { + // 如果是对岗位 + + // 定义用于获取当前岗位下的人的参数map + Map paramForGetUserByPost = new HashMap<>(); + paramForGetUserByPost.put("position", userId); + List userByPortList = LinkInterfaceUtil.FindUserByMap(paramForGetUserByPost, userKey, token); + for (UserByPort userByPort : userByPortList) { + + // 获取企业微信id或微信id + String userByPortWorkwechat = userByPort.getWorkwechat(); + if (userByPortWorkwechat == null || "".equals(userByPortWorkwechat)) { + userByPortWorkwechat = userByPort.getWechat(); + } + qywxUserIdList.add(userByPortWorkwechat); + } } - qywxUserIdList.add(user); } + if (qywxUserIdList.size() > 0) { // 用于设置仓库管理员流程 Approval_template_approver approval_template_approver_depository_manager = new Approval_template_approver();