|  |  | @ -20,16 +20,20 @@ package com.epmet.service.impl; | 
			
		
	
		
			
				
					|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
			
		
	
		
			
				
					|  |  |  | import com.baomidou.mybatisplus.core.metadata.IPage; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.rocketmq.messages.ProjectChangedMQMsg; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.constant.FieldConstant; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.constant.NumConstant; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.constant.StrConstant; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.distributedlock.DistributedLock; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.exception.EpmetErrorCode; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.exception.RenException; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.constant.FieldConstant; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.constant.NumConstant; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.page.PageData; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.scan.param.TextScanParamDTO; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.scan.param.TextTaskDTO; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.scan.result.SyncScanResult; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.security.user.LoginUserUtil; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.utils.ConvertUtils; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.utils.IpUtils; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.utils.Result; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.utils.ScanContentUtils; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.constant.ProjectConstant; | 
			
		
	
	
		
			
				
					|  |  | @ -39,25 +43,28 @@ import com.epmet.dao.ProjectSatisfactionStatisticsDao; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.dto.ProjectSatisfactionDetailDTO; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.dto.form.*; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.dto.result.*; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.entity.ProjectEntity; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.entity.ProjectSatisfactionDetailEntity; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.entity.ProjectSatisfactionStatisticsEntity; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.feign.EpmetMessageOpenFeignClient; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.feign.EpmetUserFeignClient; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.feign.GovIssueOpenFeignClient; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.redis.ProjectRedis; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.redis.ProjectSatisfactionDetailRedis; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.send.SendMqMsgUtil; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.service.ProjectSatisfactionDetailService; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.service.ProjectSatisfactionStatisticsService; | 
			
		
	
		
			
				
					|  |  |  | import lombok.extern.slf4j.Slf4j; | 
			
		
	
		
			
				
					|  |  |  | import org.apache.commons.lang3.StringUtils; | 
			
		
	
		
			
				
					|  |  |  | import org.redisson.api.RLock; | 
			
		
	
		
			
				
					|  |  |  | import org.springframework.beans.BeanUtils; | 
			
		
	
		
			
				
					|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
			
		
	
		
			
				
					|  |  |  | import org.springframework.beans.factory.annotation.Value; | 
			
		
	
		
			
				
					|  |  |  | import org.springframework.stereotype.Service; | 
			
		
	
		
			
				
					|  |  |  | import org.springframework.transaction.annotation.Transactional; | 
			
		
	
		
			
				
					|  |  |  | import org.springframework.util.CollectionUtils; | 
			
		
	
		
			
				
					|  |  |  | import org.springframework.web.context.request.RequestContextHolder; | 
			
		
	
		
			
				
					|  |  |  | import org.springframework.web.context.request.ServletRequestAttributes; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import javax.servlet.http.HttpServletRequest; | 
			
		
	
		
			
				
					|  |  |  | import java.util.*; | 
			
		
	
		
			
				
					|  |  |  | import java.util.stream.Collectors; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | @ -91,6 +98,10 @@ public class ProjectSatisfactionDetailServiceImpl extends BaseServiceImpl<Projec | 
			
		
	
		
			
				
					|  |  |  |     private GovIssueOpenFeignClient govIssueOpenFeignClient; | 
			
		
	
		
			
				
					|  |  |  |     @Autowired | 
			
		
	
		
			
				
					|  |  |  |     private ProjectSatisfactionStatisticsService projectSatisfactionStatisticsService; | 
			
		
	
		
			
				
					|  |  |  |     @Autowired | 
			
		
	
		
			
				
					|  |  |  |     private LoginUserUtil loginUserUtil; | 
			
		
	
		
			
				
					|  |  |  |     @Autowired | 
			
		
	
		
			
				
					|  |  |  |     private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |     public PageData<ProjectSatisfactionDetailDTO> page(Map<String, Object> params) { | 
			
		
	
	
		
			
				
					|  |  | @ -240,6 +251,21 @@ public class ProjectSatisfactionDetailServiceImpl extends BaseServiceImpl<Projec | 
			
		
	
		
			
				
					|  |  |  |         baseDao.insert(entity); | 
			
		
	
		
			
				
					|  |  |  |         // 更新
 | 
			
		
	
		
			
				
					|  |  |  |         statisticsDao.updateEvaluateData(formDTO.getProjectId(), formDTO.getSatisfaction()); | 
			
		
	
		
			
				
					|  |  |  |         //项目满意度评价-项目实时统计消息
 | 
			
		
	
		
			
				
					|  |  |  |         HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); | 
			
		
	
		
			
				
					|  |  |  |         ProjectChangedMQMsg msg = new ProjectChangedMQMsg(entity.getCustomerId(), | 
			
		
	
		
			
				
					|  |  |  |                 ProjectConstant.EVALUATE, | 
			
		
	
		
			
				
					|  |  |  |                 entity.getProjectId(), | 
			
		
	
		
			
				
					|  |  |  |                 formDTO.getUserId(), | 
			
		
	
		
			
				
					|  |  |  |                 new Date(), | 
			
		
	
		
			
				
					|  |  |  |                 StrConstant.EPMETY_STR, | 
			
		
	
		
			
				
					|  |  |  |                 IpUtils.getIpAddr(request), | 
			
		
	
		
			
				
					|  |  |  |                 loginUserUtil.getLoginUserApp(), | 
			
		
	
		
			
				
					|  |  |  |                 loginUserUtil.getLoginUserClient()); | 
			
		
	
		
			
				
					|  |  |  |         boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg); | 
			
		
	
		
			
				
					|  |  |  |         if (!msgResult) { | 
			
		
	
		
			
				
					|  |  |  |             log.error("项目实时统计消息发送失败"); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     /** | 
			
		
	
	
		
			
				
					|  |  | 
 |