Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r35718 -r35730 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 35718) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 35730) @@ -54,7 +54,6 @@ import com.forgon.directory.model.OrgUnit; import com.forgon.directory.service.OrgUnitManager; import com.forgon.directory.vo.LoginUserData; -import com.forgon.disinfectsystem.adverseeventrecord.service.AdverseEventRecordManager; import com.forgon.disinfectsystem.basedatamanager.goodsstock.service.GoodsStockManager; import com.forgon.disinfectsystem.basedatamanager.supplier.service.SupplierManager; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; @@ -213,19 +212,13 @@ private OperationManager operationManager; - private AdverseEventRecordManager adverseEventRecordManager; private PushRecordManager pushRecordManager; public void setPushRecordManager(PushRecordManager pushRecordManager) { this.pushRecordManager = pushRecordManager; } - public void setAdverseEventRecordManager( - AdverseEventRecordManager adverseEventRecordManager) { - this.adverseEventRecordManager = adverseEventRecordManager; - } - public void setOperationManager(OperationManager operationManager) { this.operationManager = operationManager; } @@ -1002,10 +995,10 @@ return; } - //每种提醒方式对应的提醒人员名单map,key为提醒方式,value为人员ID列表 - Map> noticeTypeUserIDListMap = new HashMap>(); + //每个用户需要的提醒方式 + Map> userIDNoticeTypesMap = new HashMap>(); //用户名称map - Map userFullNameMap = new HashMap(); + Map userNameMap = new HashMap(); String departGroupSql = " and dg.prepareRecycleType='预回收' " + " and (dg.departCodes like '" + application.getDepartCoding() + ";%'" @@ -1030,19 +1023,18 @@ if(!DatabaseUtil.isPoIdValid(userId) || StringUtils.isBlank(name) || StringUtils.isBlank(warningWays)){ continue; } - userFullNameMap.put(userId, name); + userNameMap.put(userId, name); String[] warningWayArr = StringTools.split(warningWays, ';'); if(warningWayArr != null && warningWayArr.length > 0){ for (String warningWay : warningWayArr) { - List warningUserIDs = noticeTypeUserIDListMap.get(warningWay); - if(warningUserIDs == null){ - warningUserIDs = new ArrayList(); + List noticeTypeList = userIDNoticeTypesMap.get(userId); + if(noticeTypeList == null){ + noticeTypeList = new ArrayList(); } - if(warningUserIDs.contains(userId)){ - continue; + if(!noticeTypeList.contains(warningWay)){ + noticeTypeList.add(warningWay); + userIDNoticeTypesMap.put(userId, noticeTypeList); } - warningUserIDs.add(userId); - noticeTypeUserIDListMap.put(warningWay, warningUserIDs); } } } @@ -1052,48 +1044,33 @@ DatabaseUtil.closeResultSetAndStatement(rs); } - if(MapUtils.isEmpty(noticeTypeUserIDListMap)){ + if(MapUtils.isEmpty(userIDNoticeTypesMap)){ return; } //提醒内容:根据特殊感染类型与手术间组装出对应的特殊类型 ZSRY-47 PDA端【预回收】页面新增提醒功能 - String remindContent = application.getRemindContent(); + String remindMessage = application.getRemindContent(); - for (String noticeType : noticeTypeUserIDListMap.keySet()) { - List userIdList = noticeTypeUserIDListMap.get(noticeType); - //用户id转用户名称 - List userNameList = getUserNameListByID(userIdList, userFullNameMap); - List noticeTypeList = new ArrayList(); - noticeTypeList.add(noticeType); - if(CollectionUtils.isEmpty(userNameList) || CollectionUtils.isEmpty(noticeTypeList)){ + //提醒用户工号 + List userNameList = new ArrayList(); + //提醒用户对应的提醒方式 + Map> userNameToNoticeTypeListMap = new HashMap>(); + for (Long userId : userIDNoticeTypesMap.keySet()) { + String userName = userNameMap.get(userId); + List noticeTypes = userIDNoticeTypesMap.get(userId); + if(StringUtils.isBlank(userName) || CollectionUtils.isEmpty(noticeTypes)){ continue; } - pushRecordManager.save(InvoicePlan.class.getSimpleName(), application.getId(), userNameList, remindContent, noticeTypeList); + userNameList.add(userName); + userNameToNoticeTypeListMap.put(userName, noticeTypes); } + if(MapUtils.isNotEmpty(userNameToNoticeTypeListMap)){ + pushRecordManager.save(InvoicePlan.class.getSimpleName(), application.getId(), userNameList, remindMessage, userNameToNoticeTypeListMap); + } } } /** - * 用户id转用户名称 - * @param userIdList - * @param userFullNameMap - * @return - */ - private List getUserNameListByID(List userIdList, Map userFullNameMap){ - List userNameList = new ArrayList(); - if(CollectionUtils.isEmpty(userIdList) || MapUtils.isEmpty(userFullNameMap)){ - return userNameList; - } - for (Long userId : userIdList) { - if(DatabaseUtil.isPoIdValid(userId)){ - String userName = userFullNameMap.get(userId); - userNameList.add(userName); - } - } - return userNameList; - } - - /** * 根据包定义,要么生成包实例,要么产生装配任务 * @param application * @param tousseIdAndMap 要生成装配任务的包定义id与申请项的map