|
|
@ -402,7 +402,7 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 关闭议题、议题转项目时给话题创建人和议题发起人发送消息 |
|
|
|
* @Description 关闭议题时给话题创建人和议题发起人发送消息 |
|
|
|
* @author sun |
|
|
|
*/ |
|
|
|
private Result saveUserMessageList(ResiTopicDTO topicDTO, String messageContent, IssueEntity entity) { |
|
|
@ -480,20 +480,28 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp |
|
|
|
} |
|
|
|
formDTO.setIssueDTO(ConvertUtils.sourceToTarget(entity, IssueDTO.class)); |
|
|
|
|
|
|
|
//2:调用gov-project服务,新增项目各业务表初始数据
|
|
|
|
//2:调用resi-group查询话题创建人数据(目前议题来源只有来自话题),为了到项目服务初始数据以及发送消息使用
|
|
|
|
Result<ResiTopicDTO> resultTopicDTO = resiGroupFeignClient.getTopicById(entity.getSourceId()); |
|
|
|
if (!resultTopicDTO.success() || null == resultTopicDTO.getData()) { |
|
|
|
throw new RenException(IssueConstant.SELECT_TOPIC_EXCEPTION); |
|
|
|
} |
|
|
|
ResiTopicDTO topicDTO = resultTopicDTO.getData(); |
|
|
|
formDTO.setTopicDTO(topicDTO); |
|
|
|
|
|
|
|
//3:调用gov-project服务,新增项目各业务表初始数据
|
|
|
|
Result<IssueProjectResultDTO> resultDTO = govProjectFeignClient.issueShiftProject(formDTO); |
|
|
|
if (!resultDTO.success() || null == resultDTO.getData()) { |
|
|
|
throw new RenException(IssueConstant.GOV_PRJECT_EXCEPTION); |
|
|
|
} |
|
|
|
IssueProjectResultDTO issueProjectResultDTO = resultDTO.getData(); |
|
|
|
|
|
|
|
//3:更新议题相关业务表数据
|
|
|
|
//3.1:更新议题表数据
|
|
|
|
//4:更新议题相关业务表数据
|
|
|
|
//4.1:更新议题表数据
|
|
|
|
entity.setIssueStatus(IssueConstant.ISSUE_SHIFT_PROJECT); |
|
|
|
entity.setShiftedTime(issueProjectResultDTO.getShiftedTime()); |
|
|
|
baseDao.updateById(entity); |
|
|
|
|
|
|
|
//3.2:议题处理进展表新增数据
|
|
|
|
//4.2:议题处理进展表新增数据
|
|
|
|
IssueProcessEntity processEntity = new IssueProcessEntity(); |
|
|
|
processEntity.setIssueId(entity.getId()); |
|
|
|
processEntity.setIssueStatus(IssueConstant.ISSUE_SHIFT_PROJECT); |
|
|
@ -502,30 +510,63 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp |
|
|
|
processEntity.setOrgName(issueProjectResultDTO.getOrgName()); |
|
|
|
issueProcessDao.insert(processEntity); |
|
|
|
|
|
|
|
//3.3:议题项目关系表新增数据
|
|
|
|
//4.3:议题项目关系表新增数据
|
|
|
|
IssueProjectRelationEntity relationEntity = new IssueProjectRelationEntity(); |
|
|
|
relationEntity.setIssueId(entity.getId()); |
|
|
|
relationEntity.setProjectId(issueProjectResultDTO.getProjectId()); |
|
|
|
issueProjectRelationDao.insert(relationEntity); |
|
|
|
|
|
|
|
//4:调用epmet-message服务,给居民端话题创建人和议题发起人发送消息
|
|
|
|
//4.1:调用resi-group查询话题创建人数据(目前议题来源只有来自话题)
|
|
|
|
Result<ResiTopicDTO> resultTopicDTO = resiGroupFeignClient.getTopicById(entity.getSourceId()); |
|
|
|
if (!resultTopicDTO.success() || null == resultTopicDTO.getData()) { |
|
|
|
throw new RenException(IssueConstant.SELECT_TOPIC_EXCEPTION); |
|
|
|
} |
|
|
|
ResiTopicDTO topicDTO = resultTopicDTO.getData(); |
|
|
|
//4.2:创建消息模板
|
|
|
|
String messageContent = String.format(UserMessageConstant.ISSUE_SHIFT_PROJECT_MSG, topicDTO.getTopicContent(), issueProjectResultDTO.getOrgName()); |
|
|
|
//4.3:调用服务,发送消息
|
|
|
|
if (!saveUserMessageList(topicDTO, messageContent, entity).success()) { |
|
|
|
//5:调用epmet-message服务,给居民端话题创建人、议题发起人以及政府端工作人员发送消息
|
|
|
|
if (!shiftProjectMessage(issueProjectResultDTO, formDTO, entity).success()) { |
|
|
|
throw new RenException(IssueConstant.SAVE_MSG_EXCEPTION); |
|
|
|
} |
|
|
|
|
|
|
|
//5:缓存中网格下表决中的议题总数减1
|
|
|
|
//6:缓存中网格下表决中的议题总数减1
|
|
|
|
govIssueRedis.subtractWorkGrassrootsIssueRedDotValue(entity.getGridId()); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 议题转项目时给话题创建人、议题发起人、勾选的工作人员分别推送消息 |
|
|
|
* @author sun |
|
|
|
*/ |
|
|
|
private Result shiftProjectMessage(IssueProjectResultDTO issueProjectResultDTO, ShiftProjectFormDTO formDTO, IssueEntity entity) { |
|
|
|
|
|
|
|
List<UserMessageFormDTO> msgList = new ArrayList<>(); |
|
|
|
//1:创建话题发起人、议题发表人消息对象
|
|
|
|
UserMessageFormDTO msgDTO = new UserMessageFormDTO(); |
|
|
|
msgDTO.setCustomerId(entity.getCustomerId()); |
|
|
|
msgDTO.setGridId(entity.getGridId()); |
|
|
|
msgDTO.setApp(AppClientConstant.APP_RESI); |
|
|
|
msgDTO.setTitle(UserMessageConstant.ISSUE_TITLE); |
|
|
|
String topicIssueMessage = String.format(UserMessageConstant.ISSUE_SHIFT_PROJECT_MSG, formDTO.getTopicDTO().getTopicContent(), issueProjectResultDTO.getOrgName()); |
|
|
|
msgDTO.setMessageContent(topicIssueMessage); |
|
|
|
msgDTO.setReadFlag(ReadFlagConstant.UN_READ); |
|
|
|
UserMessageFormDTO msgIssue = ConvertUtils.sourceToTarget(msgDTO,UserMessageFormDTO.class); |
|
|
|
msgDTO.setUserId(formDTO.getTopicDTO().getCreatedBy()); |
|
|
|
msgList.add(msgDTO); |
|
|
|
msgIssue.setUserId(entity.getCreatedBy()); |
|
|
|
msgList.add(msgIssue); |
|
|
|
//2:创建项目工作人员消息对象
|
|
|
|
String projectStaffMessage = String.format(UserMessageConstant.PROJECT_RESLOVED_MSG, entity.getIssueTitle()); |
|
|
|
//所选人员如果即在部门下又在网格下则只发一条消息
|
|
|
|
Map<String,String> map = new HashMap<>(); |
|
|
|
formDTO.getStaffList().forEach(staff->{ |
|
|
|
if(!map.containsKey(staff.getStaffId())){ |
|
|
|
UserMessageFormDTO msg = new UserMessageFormDTO(); |
|
|
|
msg.setCustomerId(entity.getCustomerId()); |
|
|
|
msg.setGridId("*"); |
|
|
|
msg.setApp(AppClientConstant.APP_GOV); |
|
|
|
msg.setTitle(UserMessageConstant.PROJECT_TITLE); |
|
|
|
msg.setMessageContent(projectStaffMessage); |
|
|
|
msg.setReadFlag(ReadFlagConstant.UN_READ); |
|
|
|
msg.setUserId(staff.getStaffId()); |
|
|
|
msgList.add(msg); |
|
|
|
map.put(staff.getStaffId(),staff.getStaffId()); |
|
|
|
} |
|
|
|
}); |
|
|
|
return messageFeignClient.saveUserMessageList(msgList); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Description |
|
|
|
* @param issueListForm |
|
|
|