From 40703638dcd49ba21c43406ed28e59b89c79144c Mon Sep 17 00:00:00 2001 From: erdanergou Date: Sat, 6 May 2023 17:00:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=BA=93=E5=AE=A1=E6=89=B9=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DepositoryRecordServiceImpl.java | 330 +++++++++--------- .../service/impl/QyWxOperationService.java | 116 ++++-- 2 files changed, 260 insertions(+), 186 deletions(-) diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java index c56ea715..9ebaa6ba 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java @@ -224,7 +224,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { * @return */ @Override - public Integer insertApplicationOutRecord(Map map, UserByPort userToken,String userKey,String token) { + public Integer insertApplicationOutRecord(Map map, UserByPort userToken, String userKey, String token) { String placeId = ""; Object temp = map.get("placeId"); String depositoryId = (String) map.get("depositoryId"); @@ -263,7 +263,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { Depository depositoryRecordById = depositoryMapper.findDepositoryById(materialById.getDepositoryId()); dname = depositoryRecordById.getDname(); } - Administration company = LinkInterfaceUtil.getCompany(userToken.getMaindeparment(), userKey,token); + Administration company = LinkInterfaceUtil.getCompany(userToken.getMaindeparment(), userKey, token); String code = createCode(dname, "outOrderNumber", "out", company.getName()); map.put("code", code); map.put("pass", 3); @@ -332,34 +332,34 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { Integer integer = depositoryRecordMapper.deleteApplicationOutRecordByIds(list); // 开启一个线程去删除redis中的数据 - HandlesOtherFunctionalThreadPool.execute(() -> { - for (ApplicationOutRecord recordP : recordPList - ) { - // 获取该用户在redis中的订单记录 - String key = "user:" + recordP.getApplicantId(); - - List recordMinList = depositoryRecordMapper.findApplicationOutRecordMinByParent(recordP.getId()); - for (ApplicationOutRecordMin recordMin : recordMinList - ) { - // 获取当前用户所有订单 - String minRecord = (String) redisPool.getRedisTemplateByDb(15).opsForHash().get(key, "minRecord"); - - String redisMinRecordKey = "minRecord:" + recordMin.getId(); - minRecord = minRecord.replace(redisMinRecordKey + ",", ""); - if (minRecord.length() == 2) { - // [] - // 如果当前用户已经没有剩余订单,则删除 - redisPool.getRedisTemplateByDb(15).delete(key); - } else { - redisPool.getRedisTemplateByDb(15).opsForHash().put(key, "minRecord", minRecord); - } - redisPool.getRedisTemplateByDb(15).delete(redisMinRecordKey); - } - String redisMainRecordKey = "record:" + recordP.getId(); // 设置redis中主订单键值 - redisPool.getRedisTemplateByDb(15).delete(redisMainRecordKey); - } - - }); + HandlesOtherFunctionalThreadPool.execute(() -> { + for (ApplicationOutRecord recordP : recordPList + ) { + // 获取该用户在redis中的订单记录 + String key = "user:" + recordP.getApplicantId(); + + List recordMinList = depositoryRecordMapper.findApplicationOutRecordMinByParent(recordP.getId()); + for (ApplicationOutRecordMin recordMin : recordMinList + ) { + // 获取当前用户所有订单 + String minRecord = (String) redisPool.getRedisTemplateByDb(15).opsForHash().get(key, "minRecord"); + + String redisMinRecordKey = "minRecord:" + recordMin.getId(); + minRecord = minRecord.replace(redisMinRecordKey + ",", ""); + if (minRecord.length() == 2) { + // [] + // 如果当前用户已经没有剩余订单,则删除 + redisPool.getRedisTemplateByDb(15).delete(key); + } else { + redisPool.getRedisTemplateByDb(15).opsForHash().put(key, "minRecord", minRecord); + } + redisPool.getRedisTemplateByDb(15).delete(redisMinRecordKey); + } + String redisMainRecordKey = "record:" + recordP.getId(); // 设置redis中主订单键值 + redisPool.getRedisTemplateByDb(15).delete(redisMainRecordKey); + } + + }); // 开启一个线程用于删除 HandlesOtherFunctionalThreadPool.execute(() -> depositoryRecordMapper.deleteApplicationOutRecordMinByIds(list)); @@ -985,7 +985,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { */ @Transactional(rollbackFor = Exception.class) @Override - public RestResponse completeApplicationOutMinRecord(Map param, UserByPort userByPort, String userAgent,String userKey,String token) { + public RestResponse completeApplicationOutMinRecord(Map param, UserByPort userByPort, String userAgent, String userKey, String token) { // 最终返回值 RestResponse restResponse = new RestResponse(); @@ -1096,30 +1096,30 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { restResponse.setStatusInfo(new StatusInfo("出库成功", "出库成功")); // 进行子订单的相关处理 - updateApplicationMinOutInfo(id, applicationOutMinById, record, trueOut, userByPort, placeId, userAgent,userKey,token); + updateApplicationMinOutInfo(id, applicationOutMinById, record, trueOut, userByPort, placeId, userAgent, userKey, token); // 更新入库批次中的物料数量 - HandlesOtherFunctionalThreadPool.execute(() -> { - // 获取出库物料id - Integer mid1 = inventory.getId(); - // 获取当前物料对应的生产日期 - List materialAndProducedDateByMid = materialMapper.findMaterialAndProducedDateByMid(mid1); - if (materialAndProducedDateByMid.size() > 0) { - // 获取距今生产日期远的(即生产日期最早的) - for (MaterialAndProducedDate materialAndProducedDate : - materialAndProducedDateByMid) { - if (materialAndProducedDate.getInventory() > quantity) { - // 设置使用的数量 - materialAndProducedDate.setExpendnum(materialAndProducedDate.getExpendnum() + (int) quantity); - // 设置剩余的数量 - materialAndProducedDate.setInventory(materialAndProducedDate.getInventory() - (int) quantity); - materialMapper.updateMaterialAndProducedDate(materialAndProducedDate); - // 跳出循环 - break; - } - } - } - }); + HandlesOtherFunctionalThreadPool.execute(() -> { + // 获取出库物料id + Integer mid1 = inventory.getId(); + // 获取当前物料对应的生产日期 + List materialAndProducedDateByMid = materialMapper.findMaterialAndProducedDateByMid(mid1); + if (materialAndProducedDateByMid.size() > 0) { + // 获取距今生产日期远的(即生产日期最早的) + for (MaterialAndProducedDate materialAndProducedDate : + materialAndProducedDateByMid) { + if (materialAndProducedDate.getInventory() > quantity) { + // 设置使用的数量 + materialAndProducedDate.setExpendnum(materialAndProducedDate.getExpendnum() + (int) quantity); + // 设置剩余的数量 + materialAndProducedDate.setInventory(materialAndProducedDate.getInventory() - (int) quantity); + materialMapper.updateMaterialAndProducedDate(materialAndProducedDate); + // 跳出循环 + break; + } + } + } + }); } else { restResponse.setStatus(508); restResponse.setData(""); @@ -1181,7 +1181,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { } // 进行子订单的相关处理 - updateApplicationMinOutInfo(id, applicationOutMinById, record, trueOut, userByPort, placeId, userAgent,userKey,token); + updateApplicationMinOutInfo(id, applicationOutMinById, record, trueOut, userByPort, placeId, userAgent, userKey, token); restResponse.setStatus(200); @@ -1239,7 +1239,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { splitUnitMapper.updateSplitInventory(splitInventory); } - updateApplicationMinOutInfo(id, applicationOutMinById, record, trueOut, userByPort, placeId, userAgent,userKey,token); + updateApplicationMinOutInfo(id, applicationOutMinById, record, trueOut, userByPort, placeId, userAgent, userKey, token); } else { // 如果当前拆单没有父级 @@ -1314,7 +1314,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { } - updateApplicationMinOutInfo(id, applicationOutMinById, record, trueOut, userByPort, placeId, userAgent,userKey,token); + updateApplicationMinOutInfo(id, applicationOutMinById, record, trueOut, userByPort, placeId, userAgent, userKey, token); restResponse.setStatus(200); restResponse.setData(""); @@ -1399,7 +1399,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { transferMaterial(map); } - updateApplicationMinOutInfo(id, applicationOutMinById, record, trueOut, userByPort, placeId, userAgent,userKey,token); + updateApplicationMinOutInfo(id, applicationOutMinById, record, trueOut, userByPort, placeId, userAgent, userKey, token); restResponse.setStatus(200); restResponse.setData(""); @@ -1474,7 +1474,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { transferMaterial(map); } - updateApplicationMinOutInfo(id, applicationOutMinById, record, trueOut, userByPort, placeId, userAgent,userKey,token); + updateApplicationMinOutInfo(id, applicationOutMinById, record, trueOut, userByPort, placeId, userAgent, userKey, token); restResponse.setStatus(200); restResponse.setData(""); @@ -1756,7 +1756,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { */ @Transactional(rollbackFor = Exception.class) @Override - public Integer updateOutMinRecordInfo(Map map, UserByPort userToken, String userAgent,String userKey,String token) { + public Integer updateOutMinRecordInfo(Map map, UserByPort userToken, String userAgent, String userKey, String token) { Integer result = 0; Integer id = ObjectFormatUtil.toInteger(map.get("id")); @@ -1865,10 +1865,10 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { // 强行完成出库 // 获取当前出库人员 - UserByPort userByPort = LinkInterfaceUtil.FindUserById(outRecordMin.getCheckId(), userKey,token); + UserByPort userByPort = LinkInterfaceUtil.FindUserById(outRecordMin.getCheckId(), userKey, token); outRecord.setPass(1); - updateApplicationMinOutInfo(id, outRecordMin, outRecord, (double) (quantity), userByPort, placeById.getId(), userAgent,userKey,token); + updateApplicationMinOutInfo(id, outRecordMin, outRecord, (double) (quantity), userByPort, placeById.getId(), userAgent, userKey, token); } @@ -1884,7 +1884,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { for (RoleAndMaterialType mt : materialTypeIdForIn ) { // 获取管理员数据 - UserByPort userByPort = LinkInterfaceUtil.FindUserById(mt.getUid(), userKey,token); + UserByPort userByPort = LinkInterfaceUtil.FindUserById(mt.getUid(), userKey, token); String workwechat = userByPort.getWorkwechat(); if (workwechat == null || "".equals(workwechat)) { workwechat = userByPort.getWechat(); @@ -1897,7 +1897,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { for (RoleAndDepository mt : materialTypeIdForIn ) { // 获取管理员数据 - UserByPort userByPort = LinkInterfaceUtil.FindUserById(mt.getUserId(), userKey,token); + UserByPort userByPort = LinkInterfaceUtil.FindUserById(mt.getUserId(), userKey, token); String workwechat = userByPort.getWorkwechat(); if (workwechat == null || "".equals(workwechat)) { workwechat = userByPort.getWechat(); @@ -1908,14 +1908,14 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { List integerList = new ArrayList<>(); integerList.add(ObjectFormatUtil.toInteger(applicationInId)); - JSONObject jsonObject = qyWxOperationService.sendApprovalTemplateIn(userAgent, userToken, integerList, sb.toString(),userKey,token); + JSONObject jsonObject = qyWxOperationService.sendApprovalTemplateIn(userAgent, userToken, integerList, sb.toString(), userKey, token); String sp_no = jsonObject.getString("sp_no"); Map QyWxApprovalMap = new HashMap<>(); QyWxApprovalMap.put("sp_no", sp_no); QyWxApprovalMap.put("mainId", integerList.toString()); - redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_"+sp_no, QyWxApprovalMap); + redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_" + sp_no, QyWxApprovalMap); // 设置过期为7天 - redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_"+sp_no, 7, TimeUnit.DAYS); + redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_" + sp_no, 7, TimeUnit.DAYS); } @@ -2015,7 +2015,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { * @param userAgent user-agent */ @Transactional(rollbackFor = Exception.class) - void updateApplicationMinOutInfo(Integer id, ApplicationOutRecordMin applicationOutMinById, ApplicationOutRecord record, Double trueOut, UserByPort userByPort, Integer placeId, String userAgent,String userKey,String token) { + void updateApplicationMinOutInfo(Integer id, ApplicationOutRecordMin applicationOutMinById, ApplicationOutRecord record, Double trueOut, UserByPort userByPort, Integer placeId, String userAgent, String userKey, String token) { String redisMinRecordKey = "minRecord:" + id; // 设置redis中子订单键值 // 修改当前已经出库的数量 applicationOutMinById.setTrueOut((int) ((trueOut * 100) + applicationOutMinById.getTrueOut())); @@ -2077,9 +2077,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { // 获取主订单单号 StringBuilder code = new StringBuilder(record.getCode()); // 获取申请用户信息 - UserByPort applicantUser = LinkInterfaceUtil.FindUserById(record.getApplicantId(), userKey,token); + UserByPort applicantUser = LinkInterfaceUtil.FindUserById(record.getApplicantId(), userKey, token); // 获取申请用户行政组织 - Administration company = LinkInterfaceUtil.getCompany(applicantUser.getMaindeparment(), userKey,token); + Administration company = LinkInterfaceUtil.getCompany(applicantUser.getMaindeparment(), userKey, token); // 获取部门名称简写 String conpanyName = WordUtil.getPinYinHeadChar(company.getName()); // 获取仓库名称简写 @@ -2137,7 +2137,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { continue; } Integer uid = ObjectFormatUtil.toInteger(s); - UserByPort depositoryManager = LinkInterfaceUtil.FindUserById(uid, userKey,token); + UserByPort depositoryManager = LinkInterfaceUtil.FindUserById(uid, userKey, token); String workwechat = depositoryManager.getWorkwechat(); if (workwechat == null || "".equals(workwechat)) { workwechat = userByPort.getWechat(); @@ -2145,7 +2145,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { // depositoryManagerByQyWx.append(workwechat+","); } depositoryManagerByQyWx.append("PangFuZhen,"); - JSONObject jsonObject = qyWxOperationService.sendCcMessageToUsers(depositoryManagerByQyWx.toString(), record.getId(), userAgent,userKey,token); + JSONObject jsonObject = qyWxOperationService.sendCcMessageToUsers(depositoryManagerByQyWx.toString(), record.getId(), userAgent, userKey, token); // 删除redis中本订单 redisPool.getRedisTemplateByDb(15).delete("record:" + record.getId()); @@ -2286,7 +2286,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { StringBuilder QyWxUid = new StringBuilder(); for (Integer integer : userIdByDid) { // 获取仓库管理员信息 - UserByPort manager = LinkInterfaceUtil.FindUserById(integer, null,null); + UserByPort manager = LinkInterfaceUtil.FindUserById(integer, null, null); // 仓库管理员订单信息 Map userRecord = new HashMap<>(); // 用户当前子订单 @@ -2312,9 +2312,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { // 添加子订单到redis中 redisPool.getRedisTemplateByDb(15).opsForHash().putAll(minRecordKey, minRecord); // 开启线程向仓库管理员发送消息 - SendQyWxMessageThreadPool.execute(() -> { - JSONObject jsonObject = qyWxOperationService.sendNotificationToDepositoryManager(QyWxUid.toString(), applicationOutRecordMin.getId(), userAgent,userKey,token); - }); + SendQyWxMessageThreadPool.execute(() -> { + JSONObject jsonObject = qyWxOperationService.sendNotificationToDepositoryManager(QyWxUid.toString(), applicationOutRecordMin.getId(), userAgent, userKey, token); + }); } else { // 如果是通过仓库 @@ -2338,7 +2338,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { StringBuilder QyWxUid = new StringBuilder(); for (Integer integer : userIdByDid) { // 获取仓库管理员信息 - UserByPort manager = LinkInterfaceUtil.FindUserById(integer, null,null); + UserByPort manager = LinkInterfaceUtil.FindUserById(integer, null, null); // 仓库管理员订单信息 Map userRecord = new HashMap<>(); // 用户当前子订单 @@ -2366,7 +2366,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { // 开启线程向仓库管理员发送消息 SendQyWxMessageThreadPool.execute(() -> { - JSONObject jsonObject = qyWxOperationService.sendNotificationToDepositoryManager(QyWxUid.toString(), applicationOutRecordMin.getId(), userAgent,userKey,token); + JSONObject jsonObject = qyWxOperationService.sendNotificationToDepositoryManager(QyWxUid.toString(), applicationOutRecordMin.getId(), userAgent, userKey, token); }); } @@ -2399,10 +2399,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { } } // 将当前redis中存储的spno删除 - redisPool.getRedisTemplateByDb(14).delete("wms_QyWxMessage_"+spNo); + redisPool.getRedisTemplateByDb(14).delete("wms_QyWxMessage_" + spNo); } - } - else { + } else { // 如果是部门负责人 String departmentheadTime = recordP.getDepartmentheadTime(); @@ -2423,14 +2422,12 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { Depository depositoryById = depositoryMapper.findDepositoryById(recordP.getDepositoryId()); // 获取当前仓库所属的部门 String adminorg = depositoryById.getAdminorg(); - List departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(ObjectFormatUtil.toInteger(adminorg),null,null); - for (UserByPort departmentHead:departmentHeadByUser - ) { + List departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(ObjectFormatUtil.toInteger(adminorg), null, null); + for (UserByPort departmentHead : departmentHeadByUser + ) { depositoryManager.append(departmentHead.getId()).append(","); } - - - }else{ + } else { map.put("state", "待仓储中心负责人审核"); // 获取仓储中心负责人标签的用户userId List qyWxLabelUserList = QyWxConfig.getQyWxLabelUserList(userAgent); @@ -2440,15 +2437,16 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { depositoryManager.append(user.getId()).append(","); } } - - map.put("depositoryManager", depositoryManager.toString()); + if (recordP.getDepositoryManager() == null) { + map.put("depositoryManager", depositoryManager.toString()); + } } else { // 如果点击的是驳回 updateInventoryForOutRefused(recordP); map.put("pass", 2); map.put("departmentheadPass", 2); map.put("state", "部门负责人审核未通过"); - redisPool.getRedisTemplateByDb(14).delete("wms_QyWxMessage_"+spNo); + redisPool.getRedisTemplateByDb(14).delete("wms_QyWxMessage_" + spNo); } } @@ -2660,7 +2658,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { } } } - redisPool.getRedisTemplateByDb(14).delete("wms_QyWxMessage_"+spNo); + redisPool.getRedisTemplateByDb(14).delete("wms_QyWxMessage_" + spNo); } @@ -2672,7 +2670,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { */ @Override @Transactional(rollbackFor = Exception.class) - public Integer transferApply(Map map, UserByPort userByPort,String userKey,String token) { + public Integer transferApply(Map map, UserByPort userByPort, String userKey, String token) { Integer mid = ObjectFormatUtil.toInteger(map.get("mid")); double quantity = Double.parseDouble((String) map.get("quantity")); Inventory material = materialMapper.findInventoryById(mid); @@ -2706,7 +2704,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { map.put("transferId", transferId); // 获取当前转移物料仓库 Depository depositoryRecordById = depositoryMapper.findDepositoryById(material.getDepositoryId()); - Administration company = LinkInterfaceUtil.getCompany(userByPort.getMaindeparment(), userKey,token); + Administration company = LinkInterfaceUtil.getCompany(userByPort.getMaindeparment(), userKey, token); // 生成出库订单 map.put("code", createCode(depositoryRecordById.getDname(), "outOrderNumber", "out", company.getName())); Object placeId = map.get("fromPlaceId"); @@ -2717,7 +2715,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { Object parentId = map.get("parentId"); if (parentId == null) { // 插入主表 - map.put("flagForOpenDepository",2); + map.put("flagForOpenDepository", 2); depositoryRecordMapper.insertApplicationOutRecord(map); Object id = map.get("id"); // 清除主键 @@ -2767,14 +2765,14 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { */ @Override @Transactional(rollbackFor = Exception.class) - public Integer review(Map map, Integer userid, UserByPort userToken, String userAgent,String userKey,String token) { + public Integer review(Map map, Integer userid, UserByPort userToken, String userAgent, String userKey, String token) { Object id = map.get("id"); // 主订单编号 ApplicationOutRecord record = depositoryRecordMapper.findApplicationOutRecordPById(ObjectFormatUtil.toInteger(id)); map.remove("id"); List minByParent = depositoryRecordMapper.findApplicationOutRecordMinByParent(record.getId()); // 获取申请用户 - UserByPort applicantUser = LinkInterfaceUtil.FindUserById(record.getApplicantId(), userKey,token); + UserByPort applicantUser = LinkInterfaceUtil.FindUserById(record.getApplicantId(), userKey, token); // 用于标志该仓库是否为前置仓下的仓库 boolean flagForHasOtherDepository = true; //默认是前置仓下的仓库 // 获取当前出库是否为开放出库 @@ -2818,31 +2816,31 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { StringBuilder depositoryManager = new StringBuilder(); // 用于存储下节点审批人的企业微信id StringBuilder QyWxUid = new StringBuilder(); - if(flagForOpenDepository == 2){ + if (flagForOpenDepository == 2) { // 如果是开放仓库 - map.put("state","待部门负责人审核"); + map.put("state", "待部门负责人审核"); // 获取当前选中的仓库 Depository depositoryById = depositoryMapper.findDepositoryById(record.getDepositoryId()); // 获取当前仓库所属的部门 String adminorg = depositoryById.getAdminorg(); - List departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(ObjectFormatUtil.toInteger(adminorg),null,null); - for (UserByPort departmentHead:departmentHeadByUser + List departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(ObjectFormatUtil.toInteger(adminorg), null, null); + for (UserByPort departmentHead : departmentHeadByUser ) { depositoryManager.append(departmentHead.getId()).append(","); String workwechat = departmentHead.getWorkwechat(); - if(workwechat == null || "".equals(workwechat)){ + if (workwechat == null || "".equals(workwechat)) { workwechat = departmentHead.getWechat(); } QyWxUid.append(workwechat).append(","); } - }else{ + } else { // 如果是正常仓库 // 获取仓储中心负责人 - List departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(361,userKey,token); + List departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(361, userKey, token); for (UserByPort userByPort : departmentHeadByUser) { depositoryManager.append(userByPort.getId()).append(","); @@ -2855,12 +2853,28 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { } QyWxUid.append("PangFuZhen,"); - map.put("depositoryManager", depositoryManager.toString()); + if (record.getDepositoryManager() == null) { + map.put("depositoryManager", depositoryManager.toString()); + } else { + String[] depositoryManagerS = record.getDepositoryManager().split(","); + for (String depositorymanager : depositoryManagerS + ) { + if ("".equals(depositorymanager)) { + continue; + } + UserByPort depositoryManage = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(depositorymanager), userKey, token); + String departmentHeadWorkwechat = depositoryManage.getWorkwechat(); + if (departmentHeadWorkwechat == null || "".equals(departmentHeadWorkwechat)) { + departmentHeadWorkwechat = depositoryManage.getWechat(); + } + QyWxUid.append(departmentHeadWorkwechat).append(","); + } + } // 向仓储中心负责人发送新的消息 SendQyWxMessageThreadPool.execute(() -> { - JSONObject jsonObject = qyWxOperationService.sendQyWxToApplicationOutMessage(QyWxUid.toString(), ObjectFormatUtil.toInteger(id), false, userAgent,userKey,token); + JSONObject jsonObject = qyWxOperationService.sendQyWxToApplicationOutMessage(QyWxUid.toString(), ObjectFormatUtil.toInteger(id), false, userAgent, userKey, token); // 将当前返回结果保存到redis中 Map QyWxMessageMap = new HashMap<>(); QyWxMessageMap.put("MsgId", jsonObject.getString("msgid")); @@ -2883,13 +2897,13 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { // 开启线程更改其他用户卡片模板样式 String finalResult = result; - SendQyWxMessageThreadPool.execute(() -> { - // 获取responseCode(key为申请人number) - //获取申请人信息 - String key = "user:" + applicantUser.getNumber() + ":QyWxOutId:" + id; - String responseCode = (String) redisPool.getRedisTemplateByDb(15).opsForHash().get(key, "responseCode"); - qyWxOperationService.updateButtonTemplateCardToUnEnable(responseCode, userToken.getName(), finalResult, userAgent); - }); + SendQyWxMessageThreadPool.execute(() -> { + // 获取responseCode(key为申请人number) + //获取申请人信息 + String key = "user:" + applicantUser.getNumber() + ":QyWxOutId:" + id; + String responseCode = (String) redisPool.getRedisTemplateByDb(15).opsForHash().get(key, "responseCode"); + qyWxOperationService.updateButtonTemplateCardToUnEnable(responseCode, userToken.getName(), finalResult, userAgent); + }); // 开启流程通知其他人忽略审批流程 SendQyWxMessageThreadPool.execute(() -> { @@ -2900,7 +2914,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { if ("".equals(s)) { continue; } - UserByPort userByPort = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(s), userKey,token); + UserByPort userByPort = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(s), userKey, token); String workwechat = userByPort.getWorkwechat(); if (workwechat == null || "".equals(workwechat)) { workwechat = userByPort.getWechat(); @@ -2909,10 +2923,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { } String s = QyWxUid.toString(); s = "PangFuZhen,"; - qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(id), s, userAgent, 1,userKey,token); + qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(id), s, userAgent, 1, userKey, token); }); - } - else { + } else { String result = ""; // 开启线程更改其他用户卡片模板样式 String simpleTime = DateUtil.getSimpleTime(new Date()); @@ -2999,7 +3012,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { StringBuilder QyWxUid = new StringBuilder(); for (Integer integer : userIdByDid) { // 获取仓库管理员信息 - UserByPort manager = LinkInterfaceUtil.FindUserById(integer, userKey,token); + UserByPort manager = LinkInterfaceUtil.FindUserById(integer, userKey, token); // 仓库管理员订单信息 Map userRecord = new HashMap<>(); // 用户当前子订单 @@ -3026,10 +3039,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { redisPool.getRedisTemplateByDb(15).opsForHash().putAll(minRecordKey, minRecord); // 开启线程向仓库管理员发送消息 SendQyWxMessageThreadPool.execute(() -> { - JSONObject jsonObject = qyWxOperationService.sendNotificationToDepositoryManager(QyWxUid.toString(), applicationOutRecordMin.getId(), userAgent,userKey,token); + JSONObject jsonObject = qyWxOperationService.sendNotificationToDepositoryManager(QyWxUid.toString(), applicationOutRecordMin.getId(), userAgent, userKey, token); }); - } - else { + } else { // 如果是通过仓库 @@ -3052,7 +3064,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { StringBuilder QyWxUid = new StringBuilder(); for (Integer integer : userIdByDid) { // 获取仓库管理员信息 - UserByPort manager = LinkInterfaceUtil.FindUserById(integer, userKey,token); + UserByPort manager = LinkInterfaceUtil.FindUserById(integer, userKey, token); // 仓库管理员订单信息 Map userRecord = new HashMap<>(); // 用户当前子订单 @@ -3079,7 +3091,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { redisPool.getRedisTemplateByDb(15).opsForHash().putAll(minRecordKey, minRecord); // 开启线程向仓库管理员发送消息 SendQyWxMessageThreadPool.execute(() -> { - JSONObject jsonObject = qyWxOperationService.sendNotificationToDepositoryManager(QyWxUid.toString(), applicationOutRecordMin.getId(), userAgent,userKey,token); + JSONObject jsonObject = qyWxOperationService.sendNotificationToDepositoryManager(QyWxUid.toString(), applicationOutRecordMin.getId(), userAgent, userKey, token); }); } } @@ -3094,7 +3106,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { if ("".equals(s)) { continue; } - UserByPort userByPort = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(s), userKey,token); + UserByPort userByPort = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(s), userKey, token); String workwechat = userByPort.getWorkwechat(); if (workwechat == null || "".equals(workwechat)) { workwechat = userByPort.getWechat(); @@ -3103,7 +3115,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { } String s = QyWxUid.toString(); s = "PangFuZhen,"; - qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(id), s, userAgent, 1,userKey,token); + qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(id), s, userAgent, 1, userKey, token); }); // 将主订单插入到redis中 @@ -3118,8 +3130,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { map.put("departmentheadPass", 1); } - } - else { + } else { updateInventoryForOutRefused(record); result = "驳回"; map.put("pass", 2); @@ -3134,14 +3145,14 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { } // 开启线程更改其他用户卡片模板样式 String finalResult = result; - SendQyWxMessageThreadPool.execute(() -> { - // 获取responseCode(key为申请人number) - //获取部门负责人信息 - UserByPort departHead = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(record.getDepartmenthead()), userKey,token); - String key = "user:" + departHead.getNumber() + ":QyWxOutId:" + id; - String responseCode = (String) redisPool.getRedisTemplateByDb(15).opsForHash().get(key, "responseCode"); - qyWxOperationService.updateButtonTemplateCardToUnEnable(responseCode, userToken.getName(), finalResult, userAgent); - }); + SendQyWxMessageThreadPool.execute(() -> { + // 获取responseCode(key为申请人number) + //获取部门负责人信息 + UserByPort departHead = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(record.getDepartmenthead()), userKey, token); + String key = "user:" + departHead.getNumber() + ":QyWxOutId:" + id; + String responseCode = (String) redisPool.getRedisTemplateByDb(15).opsForHash().get(key, "responseCode"); + qyWxOperationService.updateButtonTemplateCardToUnEnable(responseCode, userToken.getName(), finalResult, userAgent); + }); } map.put("id", id); return depositoryRecordMapper.updateApplicationOutRecord(map); @@ -3299,7 +3310,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { map.put("departmentheadPass", 1); map.put("state", "待仓储中心负责人审核"); // 获取仓储中心负责人 - List departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(361,null,null); + List departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(361, null, null); StringBuilder depositoryManager = new StringBuilder(); StringBuilder QyWxUid = new StringBuilder(); // for (int i = 0; i < departmentHeadByUser.size(); i++) { @@ -3313,7 +3324,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { QyWxUid.append("PangFuZhen" + ","); map.put("depositoryManager", depositoryManager.toString()); // 向仓储中心负责人发送新的消息 - JSONObject jsonObject = qyWxOperationService.sendQyWxToApplicationOutMessage(QyWxUid.toString(), ObjectFormatUtil.toInteger(outId), false, userAgent,userKey,token); + JSONObject jsonObject = qyWxOperationService.sendQyWxToApplicationOutMessage(QyWxUid.toString(), ObjectFormatUtil.toInteger(outId), false, userAgent, userKey, token); // 将当前返回结果保存到redis中 Map QyWxMessageMap = new HashMap<>(); QyWxMessageMap.put("MsgId", jsonObject.getString("msgid")); @@ -3386,7 +3397,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { StringBuilder QyWxUid = new StringBuilder(); for (Integer integer : userIdByDid) { // 获取仓库管理员信息 - UserByPort manager = LinkInterfaceUtil.FindUserById(integer, userKey,token); + UserByPort manager = LinkInterfaceUtil.FindUserById(integer, userKey, token); // 仓库管理员订单信息 Map userRecord = new HashMap<>(); // 用户当前子订单 @@ -3413,7 +3424,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { redisPool.getRedisTemplateByDb(15).opsForHash().putAll(minRecordKey, minRecord); // 开启线程向仓库管理员发送消息 SendQyWxMessageThreadPool.execute(() -> { - JSONObject jsonObject = qyWxOperationService.sendNotificationToDepositoryManager(QyWxUid.toString(), applicationOutRecordMin.getId(), userAgent,userKey,token); + JSONObject jsonObject = qyWxOperationService.sendNotificationToDepositoryManager(QyWxUid.toString(), applicationOutRecordMin.getId(), userAgent, userKey, token); }); } @@ -3875,7 +3886,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { * @return */ @Override - public List findApplicationInRecordPByCondition(Map map, UserByPort userToken,String userKey,String token) { + public List findApplicationInRecordPByCondition(Map map, UserByPort userToken, String userKey, String token) { Integer size = 10, page = 1; if (map.containsKey("size")) { size = ObjectFormatUtil.toInteger(map.get("size")); @@ -3893,7 +3904,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { List result = new ArrayList<>(); for (ApplicationInRecord applicationInRecord : list) { - UserByPort userByPortById = LinkInterfaceUtil.FindUserById(applicationInRecord.getApplicantId(), userKey,token); + UserByPort userByPortById = LinkInterfaceUtil.FindUserById(applicationInRecord.getApplicantId(), userKey, token); String time = DateUtil.TimeStampToDateTime(Long.valueOf(applicationInRecord.getApplicantTime())); applicationInRecord.setApplicantName(userByPortById.getName()); applicationInRecord.setApplicantTime(time); @@ -3920,7 +3931,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { * @return */ @Override - public List findApplicationInRecordPByUser(UserByPort userByPort, Map map,String userKey,String token) { + public List findApplicationInRecordPByUser(UserByPort userByPort, Map map, String userKey, String token) { Integer size = 10, page = 1; if (map.containsKey("size")) { size = ObjectFormatUtil.toInteger(map.get("size")); @@ -3947,7 +3958,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { List list = depositoryRecordMapper.findApplicationInRecordPByUser(map); List result = new ArrayList<>(); for (ApplicationInRecord applicationInRecord : list) { - UserByPort userByPortById = LinkInterfaceUtil.FindUserById(applicationInRecord.getApplicantId(), userKey,token); + UserByPort userByPortById = LinkInterfaceUtil.FindUserById(applicationInRecord.getApplicantId(), userKey, token); String time = DateUtil.TimeStampToDateTime(Long.valueOf(applicationInRecord.getApplicantTime())); applicationInRecord.setApplicantName(userByPortById.getName()); applicationInRecord.setApplicantTime(time); @@ -3989,7 +4000,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { * @return */ @Override - public List findApplicationOutRecordPByUser(UserByPort userByPort, Map map,String userKey,String token) { + public List findApplicationOutRecordPByUser(UserByPort userByPort, Map map, String userKey, String token) { if (map.containsKey("applyTime")) { String applyTime = (String) map.get("applyTime"); map.put("applicantTime", DateUtil.DateTimeByDayToTimeStamp(applyTime)); @@ -4017,7 +4028,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { List list = depositoryRecordMapper.findApplicationOutRecordPByUser(map); List result = new ArrayList<>(); for (ApplicationOutRecord record : list) { - UserByPort userByPortById = LinkInterfaceUtil.FindUserById(record.getApplicantId(), userKey,token); + UserByPort userByPortById = LinkInterfaceUtil.FindUserById(record.getApplicantId(), userKey, token); String time = DateUtil.TimeStampToDateTime(Long.valueOf(record.getApplicantTime())); record.setApplicantName(userByPortById.getName()); record.setApplicantTime(time); @@ -4070,7 +4081,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { * @return */ @Override - public List findApplicationOutRecordPByCondition(Map map, UserByPort userToken,String userKey,String token) { + public List findApplicationOutRecordPByCondition(Map map, UserByPort userToken, String userKey, String token) { Integer size = 10, page = 1; if (map.containsKey("size")) { size = ObjectFormatUtil.toInteger(map.get("size")); @@ -4087,7 +4098,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { List list = depositoryRecordMapper.findApplicationOutRecordPByCondition(map); List result = new ArrayList<>(); for (ApplicationOutRecord recordP : list) { - UserByPort userByPortById = LinkInterfaceUtil.FindUserById(recordP.getApplicantId(), userKey,token); + UserByPort userByPortById = LinkInterfaceUtil.FindUserById(recordP.getApplicantId(), userKey, token); String time = DateUtil.TimeStampToDateTime(Long.valueOf(recordP.getApplicantTime())); recordP.setApplicantName(userByPortById.getName()); recordP.setApplicantTime(time); @@ -4175,7 +4186,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { * @return 我的任务 */ @Override - public List findMyTaskOut(Map map, String userKey,String token) { + public List findMyTaskOut(Map map, String userKey, String token) { Integer size = 10, page = 1; if (map.containsKey("size")) { size = ObjectFormatUtil.toInteger(map.get("size")); @@ -4186,7 +4197,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { map.put("begin", (page - 1) * size); } List myTaskOut = depositoryRecordMapper.findMyTaskOut(map); - return simplePackOut(myTaskOut, userKey,token); + return simplePackOut(myTaskOut, userKey, token); } /** @@ -4196,7 +4207,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { * @return 我的任务 */ @Override - public List findMyTaskIn(Map map, String userKey,String token) { + public List findMyTaskIn(Map map, String userKey, String token) { Integer size = 10, page = 1; if (map.containsKey("size")) { size = ObjectFormatUtil.toInteger(map.get("size")); @@ -4207,7 +4218,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { map.put("begin", (page - 1) * size); } List myTaskIn = depositoryRecordMapper.findMyTaskIn(map); - return simplePackIn(myTaskIn, userKey,token); + return simplePackIn(myTaskIn, userKey, token); } /** @@ -4379,7 +4390,6 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { } - /** * 根据条件获取月份中的仓库库存数 * @@ -4740,11 +4750,11 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { * @param list SimpleDepositoryRecord集合 * @return 包装好的集合 */ - private List simplePackOut(List list, String userKey,String token) { + private List simplePackOut(List list, String userKey, String token) { List result = new ArrayList<>(list.size()); for (SimpleApplicationOutRecord record : list) { SimpleApplicationOutOrInRecordP d = new SimpleApplicationOutOrInRecordP(record); - UserByPort userByPort = LinkInterfaceUtil.FindUserById(record.getApplicantId(), userKey,token); + UserByPort userByPort = LinkInterfaceUtil.FindUserById(record.getApplicantId(), userKey, token); d.setApplyRemark(d.getApplyRemark() == null ? "" : d.getApplyRemark()); d.setApplicantName(userByPort.getName()); result.add(d); @@ -4752,11 +4762,11 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { return result; } - private List simplePackIn(List list,String userKey,String token) { + private List simplePackIn(List list, String userKey, String token) { List result = new ArrayList<>(list.size()); for (SimpleApplicationInRecord record : list) { SimpleApplicationOutOrInRecordP d = new SimpleApplicationOutOrInRecordP(record); - UserByPort userByPort = LinkInterfaceUtil.FindUserById(record.getApplicantId(), userKey,token); + UserByPort userByPort = LinkInterfaceUtil.FindUserById(record.getApplicantId(), userKey, token); d.setApplyRemark(d.getApplyRemark() == null ? "" : d.getApplyRemark()); d.setApplicantName(userByPort.getName()); result.add(d); @@ -4770,25 +4780,25 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { * @param list DepositoryRecord集合 * @return 包装好的集合 */ - private List pack(List list,String userKey,String token) { + private List pack(List list, String userKey, String token) { List result = new ArrayList<>(list.size()); for (DepositoryRecord record : list) { - result.add(singlePack(record, userKey,token)); + result.add(singlePack(record, userKey, token)); } return result; } - private DepositoryRecordP singlePack(DepositoryRecord record,String userKey,String token) { + private DepositoryRecordP singlePack(DepositoryRecord record, String userKey, String token) { DepositoryRecordP d = new DepositoryRecordP(record); - UserByPort getApplicantUser = LinkInterfaceUtil.FindUserById(record.getApplicantId(), userKey,token); + UserByPort getApplicantUser = LinkInterfaceUtil.FindUserById(record.getApplicantId(), userKey, token); d.setApplicantName(getApplicantUser.getName()); d.setDepositoryName(depositoryMapper.findDepositoryNameById(record.getDepositoryId())); if (record.getReviewerId() != null) { - UserByPort reviewerUser = LinkInterfaceUtil.FindUserById(record.getReviewerId(), userKey,token); + UserByPort reviewerUser = LinkInterfaceUtil.FindUserById(record.getReviewerId(), userKey, token); d.setReviewerName(reviewerUser.getName()); } if (record.getCheckerId() != null) { - UserByPort checkerUser = LinkInterfaceUtil.FindUserById(record.getCheckerId(), userKey,token); + UserByPort checkerUser = LinkInterfaceUtil.FindUserById(record.getCheckerId(), userKey, token); d.setCheckerName(checkerUser.getName()); } return d; 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 d9a35f10..dbb46215 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 @@ -1917,9 +1917,13 @@ public class QyWxOperationService { List userIdList = new ArrayList<>(); - List departmentHeadForUserToken = PublicConfig.findDepartmentHeadByUser(userToken.getMaindeparment(),userKey,token ); - for (UserByPort departmentHead : departmentHeadForUserToken - ) { + String[] departmentHeadS = mainRecord.getDepartmenthead().split(","); + for (String department:departmentHeadS + ) { + if("".equals(department)){ + continue; + } + UserByPort departmentHead = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(department), userKey, token); String departmentHeadWorkwechat = departmentHead.getWorkwechat(); if (departmentHeadWorkwechat == null || "".equals(departmentHeadWorkwechat)) { departmentHeadWorkwechat = departmentHead.getWechat(); @@ -1927,6 +1931,7 @@ public class QyWxOperationService { userIdList.add(departmentHeadWorkwechat); } + // 获取当前登录用户部门与企业微信部门对照 JSONObject userPortByQyWx = PublicConfig.getUserPortByQyWx(userToken.getMaindeparment()); String portName = userPortByQyWx.getString("name"); @@ -2029,6 +2034,11 @@ public class QyWxOperationService { // 定义仓库Id列表 List depositoryIdList = new ArrayList<>(); + List materialTypeIdList = new ArrayList<>(); + + + // 设置标志位,用于标志是否全为办公用品库或消防用品库 + boolean flag = true; for (ApplicationOutRecordMin recordMin : minRecordList) { // 获取明细信息 @@ -2040,10 +2050,21 @@ public class QyWxOperationService { Depository depositoryById = depositoryMapper.findDepositoryById(depositoryId); + if (!depositoryById.getDname().contains("前置仓")) { + // 如果不是前置仓下的仓库 + flag = false; + } + + if (!depositoryIdList.contains(depositoryId)) { // 如果当前仓库列表中不存在该仓库id depositoryIdList.add(depositoryId); } + Long materialTypeId = materialById.getMaterialTypeId(); + if (!materialTypeIdList.contains(materialTypeId)) { + // 如果当前仓库列表中不存在该仓库id + materialTypeIdList.add(materialTypeId); + } Map detail_list = new HashMap<>(); // 定义明细种的控件列表 @@ -2223,44 +2244,87 @@ public class QyWxOperationService { + String[] depositoryManagerS = mainRecord.getDepartmenthead().split(","); + List depositoryManagerWorkWechats = new ArrayList<>(); + for (String depositorymanager:depositoryManagerS + ) { + if("".equals(depositorymanager)){ + continue; + } + UserByPort depositoryManage = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(depositorymanager), userKey, token); + String departmentHeadWorkwechat = depositoryManage.getWorkwechat(); + if (departmentHeadWorkwechat == null || "".equals(departmentHeadWorkwechat)) { + departmentHeadWorkwechat = depositoryManage.getWechat(); + } + depositoryManagerWorkWechats.add(departmentHeadWorkwechat); + } + - // 获取仓储中心负责人标签的用户userId - List qyWxLabelUserList = QyWxConfig.getQyWxLabelUserList(userAgent); // 用于设置仓储中心负责人流程 Approval_template_approver approval_template_approver_Label = new Approval_template_approver(); approval_template_approver_Label.setAttr(1); - approval_template_approver_Label.setUserid(qyWxLabelUserList); + approval_template_approver_Label.setUserid(depositoryManagerWorkWechats); approval_template_approver_list.add(approval_template_approver_Label); - for (Integer depositoryId : depositoryIdList - ) { - // 获取当前仓库的管理员列表 - List userIdByDid = roleMapper.findUserIdByDid(depositoryId); - // 获取当前管理员的企业微信userId - List qywxUserIdList = new ArrayList<>(); - for (Integer userId : userIdByDid + if(!flag){ + for (Long mtId:materialTypeIdList ) { - // 获取对应管理员信息 - UserByPort userByPort = LinkInterfaceUtil.FindUserById(userId, userKey,token); - String user = userByPort.getWorkwechat(); - if (user == null || "".equals(user)) { - user = userByPort.getWechat(); + // 获取当前仓库的管理员列表 + 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(); + } + qywxUserIdList.add(user); } - qywxUserIdList.add(user); - } - if (qywxUserIdList.size() > 0) { - // 用于设置仓库管理员流程 - Approval_template_approver approval_template_approver_depository_manager = new Approval_template_approver(); - approval_template_approver_depository_manager.setAttr(1); - approval_template_approver_depository_manager.setUserid(qywxUserIdList); + if (qywxUserIdList.size() > 0) { + // 用于设置仓库管理员流程 + Approval_template_approver approval_template_approver_depository_manager = new Approval_template_approver(); + approval_template_approver_depository_manager.setAttr(1); + approval_template_approver_depository_manager.setUserid(qywxUserIdList); - approval_template_approver_list.add(approval_template_approver_depository_manager); + approval_template_approver_list.add(approval_template_approver_depository_manager); + } } + } + else{ + 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(); + } + qywxUserIdList.add(user); + } + if (qywxUserIdList.size() > 0) { + // 用于设置仓库管理员流程 + Approval_template_approver approval_template_approver_depository_manager = new Approval_template_approver(); + approval_template_approver_depository_manager.setAttr(1); + approval_template_approver_depository_manager.setUserid(qywxUserIdList); + approval_template_approver_list.add(approval_template_approver_depository_manager); + } + + } }