| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -17,6 +17,7 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					package com.epmet.service.impl; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.alibaba.fastjson.JSON; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.baomidou.mybatisplus.core.metadata.IPage; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -48,6 +49,8 @@ import com.epmet.feign.*; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.redis.ProjectRedis; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.service.*; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.apache.commons.lang3.StringUtils; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.apache.logging.log4j.LogManager; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.apache.logging.log4j.Logger; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.springframework.beans.factory.annotation.Autowired; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.springframework.beans.factory.annotation.Value; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.springframework.stereotype.Service; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -65,7 +68,7 @@ import java.util.stream.Collectors; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@Service | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntity> implements ProjectService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						private Logger logger = LogManager.getLogger(ProjectServiceImpl.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						@Autowired | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						private ProjectRedis projectRedis; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						@Autowired | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -86,6 +89,8 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						private ProjectRelatedPersonnelService projectRelatedPersonnelService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						@Autowired | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						private EpmetUserOpenFeignClient epmetUserOpenFeignClient; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						@Autowired | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						@Value("${openapi.scan.server.url}") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						private String scanApiUrl; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						@Value("${openapi.scan.method.textSyncScan}") | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -382,6 +387,8 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							//通知
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							List<UserMessageFormDTO> msgList = new ArrayList<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							//2020.10.26  添加项目结案发送微信订阅消息操作  sun
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							List<WxSubscribeMessageFormDTO> wxmpMsgList = new ArrayList<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							//通知项目相关人员
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							List<ProjectRelatedPersonnelDTO> personnelList = projectRelatedPersonnelService.getPersonnelListByProjectId(fromDTO.getProjectId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							personnelList.forEach(p -> { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -394,6 +401,14 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								messageFormDTO.setMessageContent(String.format(UserMessageConstant.PROJECT_CLOSED_MSG, projectEntity.getTitle(), fromDTO.getPublicReply())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								messageFormDTO.setReadFlag(Constant.UNREAD); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								msgList.add(messageFormDTO); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								WxSubscribeMessageFormDTO msg = new WxSubscribeMessageFormDTO(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								msg.setCustomerId(projectEntity.getCustomerId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								msg.setClientType(AppClientConstant.APP_GOV); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								msg.setUserId(p.getUserId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								msg.setBehaviorType("项目消息"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								msg.setMessageContent(String.format(UserMessageConstant.PROJECT_CLOSED_MSG, projectEntity.getTitle(), fromDTO.getPublicReply())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								msg.setMessageTime(new Date()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								wxmpMsgList.add(msg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							}); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							//通知项目关联的部门人员
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							List<String> staffList = projectStaffService.getStaffsByProjectId(fromDTO.getProjectId()); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -408,8 +423,21 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								messageFormDTO.setMessageContent(String.format(UserMessageConstant.PROJECT_CLOSED_MSG, projectEntity.getTitle(), fromDTO.getPublicReply())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								messageFormDTO.setReadFlag(Constant.UNREAD); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								msgList.add(messageFormDTO); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								WxSubscribeMessageFormDTO msg = new WxSubscribeMessageFormDTO(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								msg.setCustomerId(projectEntity.getCustomerId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								msg.setClientType(AppClientConstant.APP_GOV); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								msg.setUserId(s); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								msg.setBehaviorType("项目消息"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								msg.setMessageContent(String.format(UserMessageConstant.PROJECT_CLOSED_MSG, projectEntity.getTitle(), fromDTO.getPublicReply())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								msg.setMessageTime(new Date()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								wxmpMsgList.add(msg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							}); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							messageFeignClient.saveUserMessageList(msgList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							//发送微信订阅消息  sun
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Result result = epmetMessageOpenFeignClient.sendWxSubscribeMessage(wxmpMsgList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if (!result.success()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								logger.error("项目结案成功,发送微信订阅消息失败" + JSON.toJSONString(result)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						@Override | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -477,6 +505,21 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							messageFormDTO.setReadFlag(Constant.UNREAD); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							msgList.add(messageFormDTO); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							messageFeignClient.saveUserMessageList(msgList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							//2020.10.26  添加项目退回给勾选人推送微信订阅消息 sun
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							List<WxSubscribeMessageFormDTO> wxmpMsgList = new ArrayList<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							WxSubscribeMessageFormDTO msg = new WxSubscribeMessageFormDTO(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							msg.setCustomerId(projectEntity.getCustomerId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							msg.setClientType(AppClientConstant.APP_GOV); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							msg.setUserId(projectStaffDTO.getStaffId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							msg.setBehaviorType("项目消息"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							msg.setMessageContent(String.format(UserMessageConstant.PROJECT_RESOLVED_MSG, projectEntity.getTitle())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							msg.setMessageTime(new Date()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							wxmpMsgList.add(msg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							//发送微信订阅消息  sun
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Result result = epmetMessageOpenFeignClient.sendWxSubscribeMessage(wxmpMsgList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if (!result.success()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								logger.error("项目退回成功,发送微信订阅消息失败" + JSON.toJSONString(result)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						@Override | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |