Browse Source

Merge branch 'wxz_gmd_sort' into develop

dev_shibei_match
wxz 4 years ago
parent
commit
9cdfb7bac1
  1. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java
  2. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/FactGridMemberStatisticsDailyDao.xml
  3. 70
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml
  4. 7
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenGovernRankDataDao.xml
  5. 16
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenOrgRankDataDao.xml
  6. 4
      epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-prod.yml
  7. 17
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/mq/ProjectChangedCustomListener.java
  8. 3
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginExtractServiceImpl.java
  9. 22
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java

@ -170,7 +170,7 @@ public enum RequirePermissionEnum {
* 更多-日志记录 * 更多-日志记录
*/ */
MORE_PATROL_RECORD_LIST("more_patrol_record_list","更多:日志记录:巡查记录:列表","巡查记录列表"), MORE_PATROL_RECORD_LIST("more_patrol_record_list","更多:日志记录:巡查记录:列表","巡查记录列表"),
MORE_SYSTEM_LOG_LIST("MORE_SYSTEM_LOG_LIST","更多:日志记录:系统日志:列表","系统日志列表"), MORE_SYSTEM_LOG_LIST("more_system_log_list","更多:日志记录:系统日志:列表","系统日志列表"),
MORE_GRID_MEMBER_STATS_ANALYSIS("more_grid_member_stats_analysis", "更多:网格员数据分析", "更多:网格员数据分析"), MORE_GRID_MEMBER_STATS_ANALYSIS("more_grid_member_stats_analysis", "更多:网格员数据分析", "更多:网格员数据分析"),

2
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/FactGridMemberStatisticsDailyDao.xml

@ -98,7 +98,7 @@
and del_flag = 0 and del_flag = 0
</where> </where>
group by member.staff_id, member.grid_id group by member.staff_id, member.grid_id
order by ${sort} desc order by ${sort} desc, convert(member.staff_name using gbk) asc, member.GRID_ID asc
</select> </select>
<select id="getGridMemberIssueProjectStats" <select id="getGridMemberIssueProjectStats"

70
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml

@ -53,48 +53,56 @@
<select id="selectStaffPatrolList" resultType="com.epmet.dataaggre.dto.epmetuser.result.StaffListResultDTO"> <select id="selectStaffPatrolList" resultType="com.epmet.dataaggre.dto.epmetuser.result.StaffListResultDTO">
SELECT SELECT
d.latest_patrol_status AS status,
t.*
FROM(
SELECT
ssp.grid_id AS gridId, ssp.grid_id AS gridId,
ssp.staff_id AS staffId, ssp.staff_id AS staffId,
cs.real_name AS staffName, cs.real_name AS staffName,
cs.gender AS gender, cs.gender AS gender,
IFNULL(MAX(ssp.latest_patrol_time), '') AS patrolStartTime, IFNULL(MAX(ssp.latest_patrol_time), '') AS patrolStartTime,
IFNULL(SUM(ssp.patrol_total), 0) AS patrolTotal, IFNULL(SUM(ssp.patrol_total), 0) AS patrolTotal,
ssp.latest_patrol_status AS STATUS, MAX(DATE_ID) dateId,
IFNULL(SUM(ssp.report_project_count), 0) AS reportProjectCount, IFNULL(SUM(ssp.report_project_count), 0) AS reportProjectCount,
IFNULL(SUM(ssp.total_time), 0) AS timeNum IFNULL(SUM(ssp.total_time), 0) AS timeNum
FROM FROM
stats_staff_patrol_record_daily ssp stats_staff_patrol_record_daily ssp
LEFT JOIN customer_staff cs ON ssp.staff_id = cs.user_id LEFT JOIN customer_staff cs ON ssp.staff_id = cs.user_id
WHERE WHERE
ssp.del_flag = '0' ssp.del_flag = '0'
AND ssp.date_id >= #{patrolStartTime} AND ssp.date_id >= #{patrolStartTime}
<if test="staffName!= null and staffName != ''"> <if test="staffName!= null and staffName != ''">
AND cs.real_name = #{staffName} AND cs.real_name = #{staffName}
</if> </if>
<if test="gridIds != null and gridIds.size() > 0"> <if test="gridIds != null and gridIds.size() > 0">
<foreach collection="gridIds" item="gridId" open="AND (" separator=" OR " close=" )" > <foreach collection="gridIds" item="gridId" open="AND (" separator=" OR " close=" )" >
ssp.grid_id = #{gridId} ssp.grid_id = #{gridId}
</foreach> </foreach>
</if> </if>
GROUP BY ssp.grid_id, ssp.staff_id GROUP BY ssp.grid_id, ssp.staff_id
<if test="sortCode!= null and sortCode != ''"> <if test="sortCode!= null and sortCode != ''">
<choose> <choose>
<when test="sortCode == 'patrolTotal' "> <when test="sortCode == 'patrolTotal' ">
ORDER BY SUM(ssp.patrol_total) DESC ORDER BY SUM(ssp.patrol_total) DESC
</when> </when>
<when test="sortCode == 'latestPatrolledTime' "> <when test="sortCode == 'latestPatrolledTime' ">
ORDER BY MAX(ssp.latest_patrol_time) DESC ORDER BY MAX(ssp.latest_patrol_time) DESC
</when> </when>
<when test="sortCode == 'reportProjectCount' "> <when test="sortCode == 'reportProjectCount' ">
ORDER BY SUM(ssp.report_project_count) DESC ORDER BY SUM(ssp.report_project_count) DESC
</when> </when>
<otherwise> <otherwise>
ORDER BY SUM(ssp.total_time) DESC ORDER BY SUM(ssp.total_time) DESC
</otherwise> </otherwise>
</choose> </choose>
</if> </if>
LIMIT LIMIT
#{pageNo}, #{pageSize} #{pageNo}, #{pageSize}
) t
INNER JOIN stats_staff_patrol_record_daily d ON t.dateId = d.date_id
AND t.gridId = d.grid_id
AND t.staffId = d.staff_id
</select> </select>
<select id="selectPersonalPatrolList" resultType="com.epmet.dataaggre.dto.epmetuser.result.StaffListResultDTO"> <select id="selectPersonalPatrolList" resultType="com.epmet.dataaggre.dto.epmetuser.result.StaffListResultDTO">

7
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenGovernRankDataDao.xml

@ -23,7 +23,7 @@
AND rankData.PARENT_ID = #{agencyId} AND rankData.PARENT_ID = #{agencyId}
AND rankData.MONTH_ID = #{monthId} AND rankData.MONTH_ID = #{monthId}
ORDER BY ORDER BY
(rankData.RESPONSE_RATIO + rankData.RESOLVED_RATIO + rankData.GOVERN_RATIO + rankData.SATISFACTION_RATIO) DESC,rankData.RESPONSE_RATIO DESC,rankData.RESOLVED_RATIO DESC,rankData.GOVERN_RATIO DESC,rankData.SATISFACTION_RATIO DESC rankData.RESPONSE_RATIO DESC
</select> </select>
<!-- 基层治理-治理能力榜单 多客户版,调用此sql --> <!-- 基层治理-治理能力榜单 多客户版,调用此sql -->
@ -79,10 +79,7 @@
AND rankData.MONTH_ID =#{monthId} AND rankData.MONTH_ID =#{monthId}
) )
ORDER BY ORDER BY
RESPONSE_RATIO DESC, RESPONSE_RATIO DESC
RESOLVED_RATIO DESC,
GOVERN_RATIO DESC,
SATISFACTION_RATIO DESC
</select> </select>
</mapper> </mapper>

16
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenOrgRankDataDao.xml

@ -26,13 +26,7 @@
AND rankData.ALL_PARENT_IDS LIKE CONCAT('%',#{agencyId},'%') AND rankData.ALL_PARENT_IDS LIKE CONCAT('%',#{agencyId},'%')
AND rankData.MONTH_ID = #{monthId} AND rankData.MONTH_ID = #{monthId}
ORDER BY ORDER BY
(rankData.PARTY_TOTAL + rankData.GROUP_TOTAL + rankData.ISSUE_TOTAL + rankData.PROJECT_TOTAL + rankData.CLOSE_PROJECT_RATIO + rankData.SATISFACTION_RATIO) DESC, rankData.PARTY_TOTAL DESC
rankData.PARTY_TOTAL DESC,
rankData.GROUP_TOTAL DESC,
rankData.ISSUE_TOTAL DESC,
rankData.PROJECT_TOTAL DESC,
rankData.CLOSE_PROJECT_RATIO DESC,
rankData.SATISFACTION_RATIO DESC
</select> </select>
@ -62,12 +56,6 @@
and scg.AREA_CODE like CONCAT('%',#{areaCode},'%') and scg.AREA_CODE like CONCAT('%',#{areaCode},'%')
AND rankData.MONTH_ID = #{monthId} AND rankData.MONTH_ID = #{monthId}
ORDER BY ORDER BY
(rankData.PARTY_TOTAL + rankData.GROUP_TOTAL + rankData.ISSUE_TOTAL + rankData.PROJECT_TOTAL + rankData.CLOSE_PROJECT_RATIO + rankData.SATISFACTION_RATIO) DESC, rankData.PARTY_TOTAL DESC
rankData.PARTY_TOTAL DESC,
rankData.GROUP_TOTAL DESC,
rankData.ISSUE_TOTAL DESC,
rankData.PROJECT_TOTAL DESC,
rankData.CLOSE_PROJECT_RATIO DESC,
rankData.SATISFACTION_RATIO DESC
</select> </select>
</mapper> </mapper>

4
epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-prod.yml

@ -9,10 +9,10 @@ services:
volumes: volumes:
- "/opt/epmet-cloud-logs/prod:/logs" - "/opt/epmet-cloud-logs/prod:/logs"
environment: environment:
RUN_INSTRUCT: "java -Xms256m -Xmx1024m -jar ./data-stats.jar" RUN_INSTRUCT: "java -Xms256m -Xmx1524m -jar ./data-stats.jar"
restart: "unless-stopped" restart: "unless-stopped"
deploy: deploy:
resources: resources:
limits: limits:
cpus: '0.1' cpus: '0.1'
memory: 1100M memory: 1600M

17
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/mq/ProjectChangedCustomListener.java

@ -2,6 +2,7 @@ package com.epmet.mq;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.epmet.commons.rocketmq.messages.ProjectChangedMQMsg; import com.epmet.commons.rocketmq.messages.ProjectChangedMQMsg;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.distributedlock.DistributedLock; import com.epmet.commons.tools.distributedlock.DistributedLock;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.SpringContextUtils; import com.epmet.commons.tools.utils.SpringContextUtils;
@ -9,6 +10,8 @@ import com.epmet.dto.extract.form.ExtractOriginFormDTO;
import com.epmet.service.evaluationindex.extract.todata.FactOriginExtractService; import com.epmet.service.evaluationindex.extract.todata.FactOriginExtractService;
import com.epmet.service.evaluationindex.extract.toscreen.ScreenExtractService; import com.epmet.service.evaluationindex.extract.toscreen.ScreenExtractService;
import com.epmet.util.DimIdGenerator; import com.epmet.util.DimIdGenerator;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
@ -38,13 +41,25 @@ import java.util.stream.Collectors;
public class ProjectChangedCustomListener implements MessageListenerConcurrently { public class ProjectChangedCustomListener implements MessageListenerConcurrently {
private Logger logger = LoggerFactory.getLogger(getClass()); private Logger logger = LoggerFactory.getLogger(getClass());
/**
* 控制通知类型消息的消费频率
*/
private static final Cache<String, String> customerIdCache = CacheBuilder.newBuilder().maximumSize(NumConstant.ONE_HUNDRED)
.expireAfterWrite(NumConstant.THIRTY,TimeUnit.SECONDS).build();
@Override @Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) { public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
try { try {
List<String> customerIds = msgs.stream().map(messageExt -> new String(messageExt.getBody())).distinct().collect(Collectors.toList()); List<String> customerIds = msgs.stream().map(messageExt -> new String(messageExt.getBody())).distinct().collect(Collectors.toList());
customerIds.forEach(this::consumeMessage); for (String customerId : customerIds) {
//获取缓存 如果不存在缓存中 则执行消费 并放入缓存中
String ifPresent = customerIdCache.getIfPresent(customerId);
if (StringUtils.isBlank(ifPresent)){
consumeMessage(customerId);
customerIdCache.put(customerId,customerId);
}
}
} catch (Exception e) { } catch (Exception e) {
//失败不重发 //失败不重发
logger.error("consumeMessage fail,msg:{}",e.getMessage()); logger.error("consumeMessage fail,msg:{}",e.getMessage());

3
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginExtractServiceImpl.java

@ -303,9 +303,8 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService {
@Override @Override
public Future<?> submitProjectRelationData(ExtractOriginFormDTO param, List<String> finalDaysBetween) { public Future<?> submitProjectRelationData(ExtractOriginFormDTO param, List<String> finalDaysBetween) {
Future<?> submit = threadPool.submit(() -> { Future<?> submit = threadPool.submit(() -> {
ExtractOriginFormDTO paramNew = null; ExtractOriginFormDTO paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class);
if (CollectionUtils.isEmpty(finalDaysBetween)) { if (CollectionUtils.isEmpty(finalDaysBetween)) {
paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class);
try { try {
projectExtractService.saveOriginProjectDaily(paramNew); projectExtractService.saveOriginProjectDaily(paramNew);
} catch (Exception e) { } catch (Exception e) {

22
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java

@ -1756,7 +1756,17 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
@Override @Override
@Transactional @Transactional
public FirstTopicShiftedToIssueApplicationResultDTO shiftIssueV2(ResiTopicTurnIssueFromDTO topicTurnIssueFromDTO) { public FirstTopicShiftedToIssueApplicationResultDTO shiftIssueV2(ResiTopicTurnIssueFromDTO topicTurnIssueFromDTO) {
//首先校验 话题是否存在 是否已被转为议题
ResiTopicAndGroupResultDTO group = baseDao.getGroupInfoByTopicId(topicTurnIssueFromDTO.getTopicId());
if(null == group) {
throw new RenException(ModuleConstant.FAILURE_TO_TURN_ISSUE);
}
TopicInfoFormDTO topicId = new TopicInfoFormDTO();
topicId.setTopicId(topicTurnIssueFromDTO.getTopicId());
Integer issueCount = govIssueFeignClient.checkTopicShiftIssue(topicId).getData();
if (issueCount != NumConstant.ZERO){
throw new RenException(ModuleConstant.ALREADY_SHIFT_ISSUE);
}
//话题转议题审核:标题、建议 //话题转议题审核:标题、建议
String issueTitle = topicTurnIssueFromDTO.getIssueTitle(); String issueTitle = topicTurnIssueFromDTO.getIssueTitle();
@ -1788,16 +1798,6 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
//1.统一时间(群组服务 -> 议题服务) //1.统一时间(群组服务 -> 议题服务)
Date now = new Date(); Date now = new Date();
//2.调用gov-org获取数据权限 //2.调用gov-org获取数据权限
ResiTopicAndGroupResultDTO group = baseDao.getGroupInfoByTopicId(topicTurnIssueFromDTO.getTopicId());
if(null == group) {
throw new RenException(ModuleConstant.FAILURE_TO_TURN_ISSUE);
}
TopicInfoFormDTO topicId = new TopicInfoFormDTO();
topicId.setTopicId(topicTurnIssueFromDTO.getTopicId());
Integer issueCount = govIssueFeignClient.checkTopicShiftIssue(topicId).getData();
if (issueCount != NumConstant.ZERO){
throw new RenException(ModuleConstant.ALREADY_SHIFT_ISSUE);
}
CommonGridIdFormDTO dataFilterParam = new CommonGridIdFormDTO(); CommonGridIdFormDTO dataFilterParam = new CommonGridIdFormDTO();
dataFilterParam.setUserId(topicTurnIssueFromDTO.getUserId()); dataFilterParam.setUserId(topicTurnIssueFromDTO.getUserId());
dataFilterParam.setGridId(group.getGridId()); dataFilterParam.setGridId(group.getGridId());

Loading…
Cancel
Save