diff --git a/epmet-auth/deploy/docker-compose-dev.yml b/epmet-auth/deploy/docker-compose-dev.yml index e76069a10f..568dbc652d 100644 --- a/epmet-auth/deploy/docker-compose-dev.yml +++ b/epmet-auth/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-auth-server: container_name: epmet-auth-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-auth:0.3.23 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-auth:0.3.25 ports: - "8081:8081" network_mode: host # 使用现有网络 diff --git a/epmet-auth/pom.xml b/epmet-auth/pom.xml index 25c493667a..3c591c3076 100644 --- a/epmet-auth/pom.xml +++ b/epmet-auth/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.23 + 0.3.25 com.epmet epmet-cloud diff --git a/epmet-auth/src/main/java/com/epmet/controller/GovLoginController.java b/epmet-auth/src/main/java/com/epmet/controller/GovLoginController.java index 61386ac6c9..1eb86003bd 100644 --- a/epmet-auth/src/main/java/com/epmet/controller/GovLoginController.java +++ b/epmet-auth/src/main/java/com/epmet/controller/GovLoginController.java @@ -4,10 +4,7 @@ import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.dto.form.GovWxmpEnteOrgFormDTO; -import com.epmet.dto.form.GovWxmpFormDTO; -import com.epmet.dto.form.SendSmsCodeFormDTO; -import com.epmet.dto.form.StaffOrgsFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.StaffOrgsResultDTO; import com.epmet.dto.result.UserTokenResultDTO; import com.epmet.service.GovLoginService; @@ -98,5 +95,17 @@ public class GovLoginController { govLoginService.loginOut(tokenDto); return new Result(); } + + /** + * 更新缓存的角色列表 + * @param form + * @return + */ + @PostMapping("/updatecachedroles") + public Result updateCachedRoles(@RequestBody UpdateCachedRolesFormDTO form) { + ValidatorUtils.validateEntity(form); + govLoginService.updateCachedRoles(form.getStaffId(), form.getOrgId(), form.getRoleIds()); + return new Result(); + } } diff --git a/epmet-auth/src/main/java/com/epmet/dto/form/UpdateCachedRolesFormDTO.java b/epmet-auth/src/main/java/com/epmet/dto/form/UpdateCachedRolesFormDTO.java new file mode 100644 index 0000000000..80559c4ec5 --- /dev/null +++ b/epmet-auth/src/main/java/com/epmet/dto/form/UpdateCachedRolesFormDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.List; + +@Data +public class UpdateCachedRolesFormDTO { + + @NotBlank(message = "客户ID不能为空") + private String staffId; + + @NotBlank(message = "机关ID不能为空") + private String orgId; + + private List roleIds; + +} diff --git a/epmet-auth/src/main/java/com/epmet/service/GovLoginService.java b/epmet-auth/src/main/java/com/epmet/service/GovLoginService.java index 37b78533b5..a07565cf50 100644 --- a/epmet-auth/src/main/java/com/epmet/service/GovLoginService.java +++ b/epmet-auth/src/main/java/com/epmet/service/GovLoginService.java @@ -61,4 +61,11 @@ public interface GovLoginService { * @Date 2020/4/21 22:08 **/ void loginOut(TokenDto tokenDto); + + /** + * 更新缓存中的角色列表 + * @param staffId + * @param roleIds + */ + void updateCachedRoles(String staffId, String orgId, List roleIds); } diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java index 7e11ab328e..bbb71f448b 100644 --- a/epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java +++ b/epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java @@ -2,6 +2,7 @@ package com.epmet.service.impl; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import com.epmet.common.token.constant.LoginConstant; +import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.ExceptionUtils; @@ -290,6 +291,17 @@ public class GovLoginServiceImpl implements GovLoginService { cpUserDetailRedis.logout(tokenDto.getApp() , tokenDto.getClient() , tokenDto.getUserId()); } + @Override + public void updateCachedRoles(String staffId, String orgId, List roleIds) { + GovTokenDto userDetails = cpUserDetailRedis.get(AppClientConstant.APP_GOV, AppClientConstant.CLIENT_WXMP, staffId, GovTokenDto.class); + if (userDetails == null) { + return; + } + List roles = queryGovStaffRoles(staffId, orgId); + userDetails.setRoleList(roles); + cpUserDetailRedis.set(userDetails, jwtTokenProperties.getExpire()); + } + //保存登录日志 private Result saveStaffLoginRecord(GovWxmpEnteOrgFormDTO formDTO, String staffId, String openId) { StaffLoginAgencyRecordFormDTO staffLoginAgencyRecordFormDTO = new StaffLoginAgencyRecordFormDTO(); diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/publicity/dto/result/FactTagAgencyDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/publicity/dto/result/FactTagAgencyDTO.java index 1d91a3287a..35cbbc0390 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/publicity/dto/result/FactTagAgencyDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/publicity/dto/result/FactTagAgencyDTO.java @@ -47,7 +47,7 @@ public class FactTagAgencyDTO implements Serializable { /** * 固定值:文章数量 */ - private String type="文章数量"; + private String type="阅读次数"; /** * 机关Id diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSubAgencyResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSubAgencyResultDTO.java index 87dd107010..3b599a64ff 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSubAgencyResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSubAgencyResultDTO.java @@ -1,5 +1,6 @@ package com.epmet.topic.dto.result; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; @@ -32,4 +33,10 @@ public class TopicSubAgencyResultDTO implements Serializable { * 机关Id */ private String agencyId; + + /** + * 排序 + */ + @JsonIgnore + private Integer sort; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSubGridResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSubGridResultDTO.java index 64cad1615c..d319e2c128 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSubGridResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSubGridResultDTO.java @@ -1,5 +1,6 @@ package com.epmet.topic.dto.result; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; @@ -32,4 +33,10 @@ public class TopicSubGridResultDTO implements Serializable { * 网格Id */ private String gridId; + + /** + * 排序 + */ + @JsonIgnore + private Integer sort; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSummaryInfoResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSummaryInfoResultDTO.java index 3112df3356..71b096ca0f 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSummaryInfoResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSummaryInfoResultDTO.java @@ -16,15 +16,15 @@ public class TopicSummaryInfoResultDTO implements Serializable { /** * 名称 */ - private String name; + private String name = ""; /** * 值 */ - private Integer value; + private Integer value = 0; /** * 百分比 */ - private String ratio; + private String ratio = "0.0%"; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSummaryResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSummaryResultDTO.java index 6f14a45fd5..c59017335b 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSummaryResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSummaryResultDTO.java @@ -16,27 +16,27 @@ public class TopicSummaryResultDTO implements Serializable { /** * 话题总数 */ - private Integer topicTotalCount; + private Integer topicTotalCount = 0; /** * 讨论中话题数量 */ - private Integer talkingTotalCount; + private Integer talkingTotalCount = 0; /** * 已关闭话题数量 */ - private Integer closedTotalCount; + private Integer closedTotalCount = 0; /** * 已屏蔽话题数量 */ - private Integer shieldedTotalCount; + private Integer shieldedTotalCount = 0; /** * 话题已转议题数量 */ - private Integer shiftedTotalCount; + private Integer shiftedTotalCount = 0; /** * 数据更新至 时间 diff --git a/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml b/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml index 8f4a3b3254..2258dd43cf 100644 --- a/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml +++ b/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: data-report-server: container_name: data-report-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/data-report-server:0.3.5 + image: 192.168.1.130:10080/epmet-cloud-dev/data-report-server:0.3.8 ports: - "8109:8109" network_mode: host # 使用现有网络 diff --git a/epmet-module/data-report/data-report-server/pom.xml b/epmet-module/data-report/data-report-server/pom.xml index a818e16cf5..a03e16e222 100644 --- a/epmet-module/data-report/data-report-server/pom.xml +++ b/epmet-module/data-report/data-report-server/pom.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - 0.3.5 + 0.3.8 data-report-server diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/issue/IssueDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/issue/IssueDao.java index f8f3058673..abf2c4d350 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/issue/IssueDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/issue/IssueDao.java @@ -18,27 +18,30 @@ public interface IssueDao { * @author zhaoqifeng * @date 2020/6/22 15:19 * @param agencyId + * @param dateId * @return com.epmet.issue.dto.result.IssueDataDTO */ - IssueDataDTO selectAgencyInfo(@Param("agencyId") String agencyId); + IssueDataDTO selectAgencyInfo(@Param("agencyId") String agencyId, @Param("dateId") String dateId); /** * 获取下级机关统计信息 * @author zhaoqifeng * @date 2020/6/22 15:20 * @param agencyId + * @param dateId * @return java.util.List */ - List selectSubAgencyList(@Param("agencyId") String agencyId); + List selectSubAgencyList(@Param("agencyId") String agencyId, @Param("dateId") String dateId); /** * 获取机关下网格统计信息 * @author zhaoqifeng * @date 2020/6/22 15:21 * @param agencyId + * @param dateId * @return java.util.List */ - List selectGridList(@Param("agencyId") String agencyId); + List selectGridList(@Param("agencyId") String agencyId, @Param("dateId") String dateId); /** * 获取当前机关日增量 diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/impl/GroupServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/impl/GroupServiceImpl.java index 80a5624e3b..1c72f584fc 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/impl/GroupServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/impl/GroupServiceImpl.java @@ -15,7 +15,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; +import java.util.stream.Collectors; /** * @Author zxc @@ -60,7 +62,8 @@ public class GroupServiceImpl implements GroupService { } }); }); - return result; + //倒序 + return result.stream().sorted(Comparator.comparing(GroupSubAgencyResultDTO::getValue).reversed()).collect(Collectors.toList()); } return new ArrayList<>(); } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/impl/IssueServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/impl/IssueServiceImpl.java index 207a7f9c30..d44576202e 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/impl/IssueServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/impl/IssueServiceImpl.java @@ -35,11 +35,13 @@ public class IssueServiceImpl implements IssueService { @Override public IssueSummaryInfoResultDTO getSummaryInfo(TokenDto tokenDto) { IssueSummaryInfoResultDTO result = new IssueSummaryInfoResultDTO(); + //获取当前日期前一天 + Date date = DateUtils.getBeforeDay(new Date()); + //获取日期维度 + String dateId = DateUtils.format(date, DateUtils.DATE_PATTERN_YYYYMMDD); String agencyId = getAgencyId(tokenDto); - IssueDataDTO data = issueDao.selectAgencyInfo(agencyId); + IssueDataDTO data = issueDao.selectAgencyInfo(agencyId, dateId); if (null == data) { - //获取当前日期前一天 - Date date = DateUtils.getBeforeDay(new Date()); result.setAgencyId(agencyId); result.setDateName(DateUtils.format(date, "yyyy.MM.dd")); result.setIssueTotal(NumConstant.ZERO); @@ -67,7 +69,11 @@ public class IssueServiceImpl implements IssueService { public List getSummaryPie(TokenDto tokenDto) { List list = new ArrayList<>(); String agencyId = getAgencyId(tokenDto); - IssueDataDTO data = issueDao.selectAgencyInfo(agencyId); + //获取当前日期前一天 + Date date = DateUtils.getBeforeDay(new Date()); + //获取日期维度 + String dateId = DateUtils.format(date, DateUtils.DATE_PATTERN_YYYYMMDD); + IssueDataDTO data = issueDao.selectAgencyInfo(agencyId, dateId); if (null == data) { IssueSummaryPieResultDTO voting = new IssueSummaryPieResultDTO(); voting.setName(IssueConstant.VOTING_NAME); @@ -108,7 +114,11 @@ public class IssueServiceImpl implements IssueService { public List getSubAgency(TokenDto tokenDto) { List list = new ArrayList<>(); String agencyId = getAgencyId(tokenDto); - List dataList = issueDao.selectSubAgencyList(agencyId); + //获取当前日期前一天 + Date date = DateUtils.getBeforeDay(new Date()); + //获取日期维度 + String dateId = DateUtils.format(date, DateUtils.DATE_PATTERN_YYYYMMDD); + List dataList = issueDao.selectSubAgencyList(agencyId, dateId); if(null != dataList) { dataList.forEach(data -> { IssueSubAgencyResultDTO voting = new IssueSubAgencyResultDTO(); @@ -138,7 +148,11 @@ public class IssueServiceImpl implements IssueService { public List getSubGrid(TokenDto tokenDto) { List list = new ArrayList<>(); String agencyId = getAgencyId(tokenDto); - List dataList = issueDao.selectGridList(agencyId); + //获取当前日期前一天 + Date date = DateUtils.getBeforeDay(new Date()); + //获取日期维度 + String dateId = DateUtils.format(date, DateUtils.DATE_PATTERN_YYYYMMDD); + List dataList = issueDao.selectGridList(agencyId, dateId); if(null != dataList) { dataList.forEach(data -> { IssueSubGridResultDTO voting = new IssueSubGridResultDTO(); diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java index 0859bd2632..3b81c15cfa 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java @@ -14,9 +14,9 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; +import java.text.DecimalFormat; +import java.time.LocalDate; +import java.util.*; import java.util.stream.Collectors; /** @@ -41,6 +41,7 @@ public class TopicServiceImpl implements TopicService { TopicSummaryResultDTO result = new TopicSummaryResultDTO(); String agencyId = this.getLoginUserDetails(tokenDto); List topicStatus = topicDao.getTopicStatus(agencyId); + result.setDeadline(LocalDate.now().minusDays(NumConstant.ONE).toString()); if (topicStatus.size() != NumConstant.ZERO){ topicStatus.forEach(topic -> { if (topic.getTopicStatus().equals(TopicConstant.DISCUSSING)){ @@ -52,11 +53,11 @@ public class TopicServiceImpl implements TopicService { } }); result.setTopicTotalCount(topicStatus.stream().collect(Collectors.summingInt(TopicStatusResultDTO::getTopicCount))); - } - TopicShiftedCountResultDTO shiftedCount = topicDao.getShiftedCount(agencyId); - if (shiftedCount != null){ - result.setShiftedTotalCount(shiftedCount.getShiftedIssueCount()); - result.setDeadline(shiftedCount.getDeadline()); + TopicShiftedCountResultDTO shiftedCount = topicDao.getShiftedCount(agencyId); + if (shiftedCount != null){ + result.setShiftedTotalCount(shiftedCount.getShiftedIssueCount()); + result.setDeadline(shiftedCount.getDeadline()); + } } return result; } @@ -94,6 +95,7 @@ public class TopicServiceImpl implements TopicService { public List topicSubGrid(TokenDto tokenDto) { String agencyId = this.getLoginUserDetails(tokenDto); List result = new ArrayList<>(); + List resultAll = new ArrayList<>(); List subGridIdList = topicDao.getSubGridIdList(agencyId); if (subGridIdList.size() != NumConstant.ZERO){ List gridAllTopicInfoLastDay = topicDao.getGridAllTopicInfoLastDay(); @@ -110,7 +112,17 @@ public class TopicServiceImpl implements TopicService { } }); }); - return result; + Map> collect = result.stream().collect(Collectors.groupingBy(TopicSubGridResultDTO::getGridId)); + Set>> entries = collect.entrySet(); + entries.forEach(entry -> { + List value = entry.getValue(); + Integer sort = value.stream().collect(Collectors.summingInt(TopicSubGridResultDTO::getValue)); + value.forEach(v -> { + v.setSort(sort); + resultAll.add(v); + }); + }); + return resultAll.stream().sorted(Comparator.comparing(TopicSubGridResultDTO::getSort).reversed()).collect(Collectors.toList()); } return new ArrayList<>(); } @@ -124,6 +136,7 @@ public class TopicServiceImpl implements TopicService { public List topicSubAgency(TokenDto tokenDto) { String agencyId = this.getLoginUserDetails(tokenDto); List result = new ArrayList<>(); + List resultAll = new ArrayList<>(); List subAgencyIdList = topicDao.getSubAgencyIdList(agencyId); //存在下级机关 if (subAgencyIdList.size() != NumConstant.ZERO){ @@ -142,7 +155,17 @@ public class TopicServiceImpl implements TopicService { } }); }); - return result; + Map> collect = result.stream().collect(Collectors.groupingBy(TopicSubAgencyResultDTO::getAgencyId)); + Set>> entries = collect.entrySet(); + entries.forEach(entry -> { + List value = entry.getValue(); + Integer sort = value.stream().collect(Collectors.summingInt(TopicSubAgencyResultDTO::getValue)); + value.forEach(v -> { + v.setSort(sort); + resultAll.add(v); + }); + }); + return resultAll.stream().sorted(Comparator.comparing(TopicSubAgencyResultDTO::getSort).reversed()).collect(Collectors.toList()); } //不存在 return new ArrayList<>(); @@ -158,14 +181,17 @@ public class TopicServiceImpl implements TopicService { String agencyId = this.getLoginUserDetails(tokenDto); List topicSummaryInfo = topicDao.topicSummaryInfo(agencyId); TopicShiftedCountResultDTO shiftedCount = topicDao.getShiftedCount(agencyId); - Integer collect = topicSummaryInfo.stream().collect(Collectors.summingInt(TopicSummaryInfoResultDTO::getValue)); - String ratio; - ratio = collect == NumConstant.ZERO ? NumConstant.ZERO + TopicConstant.RATIO : ((float)shiftedCount.getShiftedIssueCount() / (float)collect) * NumConstant.ONE_HUNDRED + TopicConstant.RATIO; - TopicSummaryInfoResultDTO result = new TopicSummaryInfoResultDTO(); - result.setName(TopicConstant.SHIFTED); - result.setRatio(ratio); - result.setValue(shiftedCount.getShiftedIssueCount()); - topicSummaryInfo.add(result); + if (topicSummaryInfo.size() != NumConstant.ZERO && shiftedCount != null) { + Integer collect = topicSummaryInfo.stream().collect(Collectors.summingInt(TopicSummaryInfoResultDTO::getValue)); + DecimalFormat decimalFormat = new DecimalFormat(".00"); + String ratio; + ratio = collect == NumConstant.ZERO ? NumConstant.ZERO + TopicConstant.RATIO : decimalFormat.format(((float) shiftedCount.getShiftedIssueCount() / (float) collect) * NumConstant.ONE_HUNDRED) + TopicConstant.RATIO; + TopicSummaryInfoResultDTO result = new TopicSummaryInfoResultDTO(); + result.setName(TopicConstant.SHIFTED); + result.setRatio(ratio); + result.setValue(shiftedCount.getShiftedIssueCount()); + topicSummaryInfo.add(result); + } return topicSummaryInfo; } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/impl/UserAnalysisServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/impl/UserAnalysisServiceImpl.java index 9e02c60af2..a001f3847d 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/impl/UserAnalysisServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/impl/UserAnalysisServiceImpl.java @@ -26,11 +26,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.text.DecimalFormat; +import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Collections; import java.util.Comparator; import java.util.List; -import java.util.stream.Collectors; /** * 组织能力用户相关接口 @@ -47,7 +47,6 @@ public class UserAnalysisServiceImpl implements UserAnalysisService { private EpmetUserOpenFeignClient epmetUserOpenFeignClient; @Autowired private UserAnalysisDao userAnalysisDao; - DecimalFormat decimalFormat = new DecimalFormat("0.00"); /** * @return java.lang.String * @param @@ -69,6 +68,7 @@ public class UserAnalysisServiceImpl implements UserAnalysisService { throw new RenException(UserAnalysisConstant.QUERY_USER_AGENCY_FAILED); } } + logger.info(String.format("用户%s的所属机关id为%s",loginUserDetailsFormDTO.getUserId(),result.getData().getAgencyId())); return result.getData().getAgencyId(); } /** @@ -92,9 +92,9 @@ public class UserAnalysisServiceImpl implements UserAnalysisService { if(null!=userSummaryInfoResultDTO){ userSummaryInfoResultDTO.setCurrentDate(DateUtils.getxAxisDatePattern(userSummaryInfoResultDTO.getCurrentDate(),".")); //提取出工具类 - String partyMemberProStr=decimalFormat.format(userSummaryInfoResultDTO.getPartymemberProportionValue()); + String partyMemberProStr=userSummaryInfoResultDTO.getPartymemberProportionValue().setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString(); userSummaryInfoResultDTO.setPartymemberProportion(partyMemberProStr.concat("%")); - String warmProStr=decimalFormat.format(userSummaryInfoResultDTO.getWarmHeartedProportionValue()); + String warmProStr=userSummaryInfoResultDTO.getWarmHeartedProportionValue().setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString(); userSummaryInfoResultDTO.setWarmHeartedProportion(warmProStr.concat("%")); } logger.info(String.format("查询用户汇总信息返参%s",JSON.toJSONString(userSummaryInfoResultDTO))); @@ -169,10 +169,23 @@ public class UserAnalysisServiceImpl implements UserAnalysisService { logger.error(String.format("各机关注册用户数缺少记录:date_id=%s,agencyId=%s",formDTO.getDateId(),dimInitResultDto.getAgencyId())); } } + logger.info("排序前"); + for(UserSubAgencyResultDTO m:dimList){ + logger.info("机关名:"+m.getName()+",总数="+m.getTotal()); + } //返回集合按照total降序排序 - List returnList = dimList.stream().sorted(Comparator.comparing(UserSubAgencyResultDTO::getTotal)) - .collect(Collectors.toList()); - return returnList; + Collections.sort(dimList, new Comparator() { + @Override + public int compare(UserSubAgencyResultDTO o1, UserSubAgencyResultDTO o2) { + int i=o2.getTotal()-o1.getTotal();//降序 + return i; + } + }); + logger.info("排序后"); + for(UserSubAgencyResultDTO m:dimList){ + logger.info("机关名:"+m.getName()+",总数="+m.getTotal()); + } + return dimList; } private List initUserSubAgencyResultDTO(String myAgencyId) { @@ -273,10 +286,23 @@ public class UserAnalysisServiceImpl implements UserAnalysisService { logger.error(String.format("直属网格注册用户数缺少记录:date_id=%s,gridId=%s",formDTO.getDateId(),dimInitResultDto.getGridId())); } } + logger.info("排序前"); + for(UserSubGridResultDTO m:dimList){ + logger.info("网格名:"+m.getName()+",总数="+m.getTotal()); + } //返回集合按照total降序排序 - List returnList = dimList.stream().sorted(Comparator.comparing(UserSubGridResultDTO::getTotal)) - .collect(Collectors.toList()); - return returnList; + Collections.sort(dimList, new Comparator() { + @Override + public int compare(UserSubGridResultDTO o1, UserSubGridResultDTO o2) { + int i=o2.getTotal()-o1.getTotal();//降序 + return i; + } + }); + logger.info("排序后"); + for(UserSubGridResultDTO m:dimList){ + logger.info("网格名:"+m.getName()+",总数="+m.getTotal()); + } + return dimList; } private List initUserSubGridResultDTO(String myAgencyId) { @@ -399,7 +425,7 @@ public class UserAnalysisServiceImpl implements UserAnalysisService { for(UserIncrTrendResDTO userIncrTrendResDTO:list){ String date=""; if(UserAnalysisConstant.DAY_TYPE.equals(formDTO.getType())){ - date=DateUtils.getxAxisDatePattern(userIncrTrendResDTO.getDateIdOrMonthId(),"."); + date=DateUtils.getxAxisDatePattern(userIncrTrendResDTO.getDateIdOrMonthId(),"/"); }else if(UserAnalysisConstant.MONTH_TYPE.equals(formDTO.getType())){ date=DateUtils.getxAxisDatePattern(userIncrTrendResDTO.getDateIdOrMonthId(),"/"); } diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml index 607fc0819c..008dc0175f 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml @@ -28,6 +28,7 @@ WHERE del_flag = '0' AND pid = #{agencyId} + AND agency_dim_type = 'all' @@ -42,8 +43,7 @@ AND da.del_flag = '0' WHERE fgad.del_flag = '0' - GROUP BY fgad.agency_id - ORDER BY fgad.date_id desc + AND fgad.date_id = (SELECT MAX(date_id) FROM fact_group_agency_daily WHERE del_flag = '0') @@ -59,6 +59,8 @@ WHERE fggd.del_flag = '0' AND fggd.agency_id = #{agencyId} + AND fggd.date_id = (SELECT MAX(date_id) FROM fact_group_grid_daily WHERE del_flag = '0') + ORDER BY value DESC @@ -89,7 +91,7 @@ del_flag = '0' AND agency_id = #{agencyId} ORDER BY - month_id DESC + month_id DESC, value DESC LIMIT 12 diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml index 468f4c7a89..49333cc3e4 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml @@ -12,12 +12,13 @@ SHIFT_PROJECT_PERCENT, CLOSED_TOTAL, CLOSED_PERCENT, - MAX(DATE_ID) AS DATE_ID, - DATE_FORMAT(MAX(DATE_ID), '%Y.%m.%d') AS DATE_NAME + DATE_ID, + DATE_FORMAT(DATE_ID, '%Y.%m.%d') AS DATE_NAME FROM fact_issue_agency_daily fiad WHERE DEL_FLAG = '0' AND AGENCY_ID = #{agencyId} + AND DATE_ID = #{dateId} @@ -45,13 +47,14 @@ VOTING_TOTAL, SHIFT_PROJECT_TOTAL, CLOSED_TOTAL, - MAX(DATE_ID) AS DATE_ID + DATE_ID AS DATE_ID FROM fact_issue_grid_daily figd INNER JOIN dim_grid dg ON figd.GRID_ID = dg.ID WHERE figd.DEL_FLAG = '0' AND figd.AGENCY_ID = #{agencyId} + AND figd.DATE_ID = #{dateId} GROUP BY GRID_ID ORDER BY figd.ISSUE_TOTAL DESC diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml index cd536caa30..c7d032eb43 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml @@ -24,7 +24,7 @@ where agency_id = #{agencyId} AND month_id = #{monthId} GROUP BY TAG_ID - ORDER BY value DESC + ORDER BY value DESC ,tagId ASC LIMIT #{pageSize} @@ -39,7 +39,7 @@ where agency_id = #{agencyId} AND quarter_id = #{quarterId} GROUP BY TAG_ID - ORDER BY value DESC + ORDER BY value DESC ,tagId ASC LIMIT #{pageSize} @@ -54,7 +54,7 @@ where agency_id = #{agencyId} AND year_id = #{yearId} GROUP BY tag_id - ORDER BY value DESC + ORDER BY value DESC ,tagId ASC LIMIT #{pageSize} @@ -69,7 +69,7 @@ where agency_id = #{agencyId} AND month_id = #{monthId} GROUP BY TAG_ID - ORDER BY value DESC + ORDER BY value DESC ,tagId ASC LIMIT #{pageSize} @@ -84,7 +84,7 @@ where agency_id = #{agencyId} AND quarter_id = #{quarterId} GROUP BY TAG_ID - ORDER BY value DESC + ORDER BY value DESC ,tagId ASC LIMIT #{pageSize} @@ -99,7 +99,7 @@ where agency_id = #{agencyId} AND year_id = #{yearId} GROUP BY tag_id - ORDER BY value DESC + ORDER BY value DESC ,tagId ASC LIMIT #{pageSize} @@ -118,6 +118,7 @@ AND pub.PID =#{agencyId} AND pub.month_id=#{monthId} GROUP BY pub.agency_id + ORDER BY value DESC,agencyId ASC @@ -136,6 +137,7 @@ AND pub.PID =#{agencyId} AND pub.quarter_id=#{quarterId} GROUP BY pub.agency_id + ORDER BY value DESC,agencyId ASC @@ -153,6 +155,7 @@ AND pub.PID =#{agencyId} AND pub.year_id=#{yearId} GROUP BY pub.agency_id + ORDER BY value DESC,agencyId ASC @@ -170,6 +173,7 @@ AND pub.agency_id =#{agencyId} AND pub.month_id=#{monthId} GROUP BY pub.department_id + ORDER BY value DESC,departmentId ASC @@ -188,6 +192,7 @@ AND pub.agency_id =#{agencyId} AND pub.quarter_id=#{quarterId} GROUP BY pub.department_id + ORDER BY value DESC,departmentId ASC @@ -205,6 +210,7 @@ AND pub.agency_id =#{agencyId} AND pub.year_id=#{yearId} GROUP BY pub.department_id + ORDER BY value DESC,departmentId ASC @@ -222,6 +228,7 @@ AND pub.agency_id = #{agencyId} AND pub.month_id=#{monthId} GROUP BY pub.grid_id + ORDER BY value DESC,gridId ASC @@ -240,6 +247,7 @@ AND pub.agency_id = #{agencyId} AND pub.quarter_id=#{quarterId} GROUP BY pub.grid_id + ORDER BY value DESC,gridId ASC @@ -257,6 +265,7 @@ AND pub.agency_id = #{agencyId} AND pub.year_id = #{yearId} GROUP BY pub.grid_id + ORDER BY value DESC,gridId ASC \ No newline at end of file diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/topic/TopicDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/topic/TopicDao.xml index 69386bd324..00f845829a 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/topic/TopicDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/topic/TopicDao.xml @@ -41,7 +41,7 @@ WHEN topic_status_id = 'hidden' THEN '已屏蔽' WHEN topic_status_id = 'closed' THEN '已关闭' ELSE '无' END) AS name, - CONCAT(topic_proportion * 100,'%') AS ratio + CONCAT(ROUND(topic_proportion * 100,2),'%') AS ratio FROM fact_topic_status_agency_daily WHERE diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/IssueConstant.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/IssueConstant.java index 338b35e1a1..c611d4b97e 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/IssueConstant.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/IssueConstant.java @@ -21,9 +21,9 @@ public interface IssueConstant { /** *已解决 */ - String RESLOVED = "resloved"; + String RESOLVED = "resolved"; /** *未解决 */ - String UNRESLOVED = "unresloved"; + String UNRESOLVED = "unresolved"; } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java index 6289bd7d88..832ae37701 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java @@ -131,6 +131,14 @@ public interface DataStatisticalOpenFeignClient { @PostMapping("/data/stats/statsproject/gridprojectstats") Result gridProjectStats(); + /** + * 初始化所有维度 + * + * @return + */ + @PostMapping("/data/stats/dim/all/init") + Result initAllDims(); + /** * @Description 执行用户统计 * @param diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java index 3205a10b5a..4c0a00d154 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java @@ -136,6 +136,11 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "gridProjectStats"); } + @Override + public Result initAllDims() { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "initAllDims"); + } + /** * @Description 执行用户统计 * @param diff --git a/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml b/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml index 738ce59964..9f622320e1 100644 --- a/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml +++ b/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: data-statistical-server: container_name: data-statistical-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/data-statistical-server:0.3.3 + image: 192.168.1.130:10080/epmet-cloud-dev/data-statistical-server:0.3.7 ports: - "8108:8108" network_mode: host # 使用现有网络 diff --git a/epmet-module/data-statistical/data-statistical-server/pom.xml b/epmet-module/data-statistical/data-statistical-server/pom.xml index ece13a9d61..3cb1ed3e57 100644 --- a/epmet-module/data-statistical/data-statistical-server/pom.xml +++ b/epmet-module/data-statistical/data-statistical-server/pom.xml @@ -2,7 +2,7 @@ - 0.3.3 + 0.3.7 data-statistical com.epmet diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DimController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DimController.java index b901c3463e..3318ef39a0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DimController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DimController.java @@ -1,6 +1,5 @@ package com.epmet.controller; -import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.AgencySubDeptTreeDto; import com.epmet.dto.AgencySubTreeDto; @@ -46,69 +45,60 @@ public class DimController { * @return */ @PostMapping("/all/init") - public Result initAll() { + public Result initAllDims() { try { dimDateService.initDimDate(); logger.info("初始化按日维度成功"); } catch (Exception e) { - String errorStackTrace = ExceptionUtils.getErrorStackTrace(e); - logger.error(String.format("初始化按日维度失败:%s", errorStackTrace)); + logger.error("初始化按日维度失败:", e); } try { statsDimService.initGridDim(); logger.info("初始化网格维度成功"); } catch (Exception e) { - String errorStackTrace = ExceptionUtils.getErrorStackTrace(e); - logger.error(String.format("初始化网格维度失败:%s", errorStackTrace)); + logger.error("初始化网格维度失败:", e); } try { statsDimService.initAgencyDim(); logger.info("初始化机关维度成功"); } catch (Exception e) { - String errorStackTrace = ExceptionUtils.getErrorStackTrace(e); - logger.error(String.format("初始化机关维度失败:%s", errorStackTrace)); + logger.error("初始化机关维度失败:", e); } try { statsDimService.initCustomerDim(); logger.info("初始化客户维度成功"); } catch (Exception e) { - String errorStackTrace = ExceptionUtils.getErrorStackTrace(e); - logger.error(String.format("初始化客户维度失败:%s", errorStackTrace)); + logger.error("初始化客户维度失败:", e); } try { statsDimService.initDepartmentDim(); logger.info("初始化部门维度成功"); } catch (Exception e) { - String errorStackTrace = ExceptionUtils.getErrorStackTrace(e); - logger.error(String.format("初始化部门维度失败:%s", errorStackTrace)); + logger.error("初始化部门维度失败:", e); } try { dimMonthService.initMonthDim(); logger.info("初始化按月维度成功"); } catch (Exception e) { - String errorStackTrace = ExceptionUtils.getErrorStackTrace(e); - logger.error(String.format("初始化按月维度失败:%s", errorStackTrace)); + logger.error("初始化按月维度失败:", e); } try { quarterService.initQuarterDim(); logger.info("初始化季度维度成功"); } catch (Exception e) { - String errorStackTrace = ExceptionUtils.getErrorStackTrace(e); - logger.error(String.format("初始化季度维度失败:%s", errorStackTrace)); + logger.error("初始化季度维度失败:", e); } try { dimYearService.initYearDim(); logger.info("初始化年度维度成功"); } catch (Exception e) { - String errorStackTrace = ExceptionUtils.getErrorStackTrace(e); - logger.error(String.format("初始化年度维度失败:%s", errorStackTrace)); + logger.error("初始化年度维度失败:", e); } try { dimWeekService.initWeekDim(); logger.info("初始化按周维度成功"); } catch (Exception e) { - String errorStackTrace = ExceptionUtils.getErrorStackTrace(e); - logger.error(String.format("初始化按周维度失败:%s", errorStackTrace)); + logger.error("初始化按周维度失败:", e); } return new Result(); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsIssueController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsIssueController.java index 850c3b7a75..b78ca89680 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsIssueController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsIssueController.java @@ -1,12 +1,17 @@ package com.epmet.controller; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.service.StatsIssueService; +import lombok.Data; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.io.Serializable; + /** * @author zhaoqifeng * @dscription @@ -30,4 +35,14 @@ public class StatsIssueController { statsIssueService.agencyGridIssueStats(); return new Result(); } + @Data + private static class StatsDate implements Serializable { + private static final long serialVersionUID = 149723067011918433L; + private String date; + } + @PostMapping("date") + public Result agencyGridIssueStatsOfDate(@RequestBody StatsDate statsDate) { + statsIssueService.agencyGridIssueStatsOfDate(DateUtils.parse(statsDate.getDate(), DateUtils.DATE_PATTERN)); + return new Result(); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/StatsIssueDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/StatsIssueDao.java index 98d2e0e96d..87cd7c6879 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/StatsIssueDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/StatsIssueDao.java @@ -18,11 +18,12 @@ public interface StatsIssueDao extends BaseDao { * 获取当前日期组织下议题统计结果 * * @param customerId + * @param date * @return java.util.List * @author zhaoqifeng * @date 2020/6/17 14:13 */ - List selectAgencyIssueTotal(@Param("customerId") String customerId); + List selectAgencyIssueTotal(@Param("customerId") String customerId, @Param("date") String date); /** * 获取当前日期组织下议题增量 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java index c6b8a8bee0..4ffeb599c9 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java @@ -18,9 +18,10 @@ public interface IssueService { * @author zhaoqifeng * @date 2020/6/17 16:04 * @param customerId + * @param date * @return java.util.List */ - List getAgencyIssueTotal(String customerId); + List getAgencyIssueTotal(String customerId, String date); /** * 获取当前日期组织下议题增量 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java index 9cef7c5340..443c9ddc41 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java @@ -26,8 +26,8 @@ public class IssueServiceImpl implements IssueService { private StatsIssueDao statsIssueDao; @Override - public List getAgencyIssueTotal(String customerId) { - List list = statsIssueDao.selectAgencyIssueTotal(customerId); + public List getAgencyIssueTotal(String customerId, String date) { + List list = statsIssueDao.selectAgencyIssueTotal(customerId, date); list.forEach(dto -> { String[] pIds = dto.getPIds().split(":"); dto.setPId(pIds[pIds.length - 2]); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsIssueService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsIssueService.java index 5d0e6b4292..7faf406333 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsIssueService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsIssueService.java @@ -17,6 +17,15 @@ public interface StatsIssueService { */ void agencyGridIssueStats(); + /** + * 指定日期议题统计 + * @author zhaoqifeng + * @date 2020/6/28 11:01 + * @param date + * @return void + */ + void agencyGridIssueStatsOfDate(Date date); + /** * 机关下议题日统计 * @author zhaoqifeng diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsIssueServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsIssueServiceImpl.java index ab38ff305a..8fc548d4c2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsIssueServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsIssueServiceImpl.java @@ -21,7 +21,6 @@ import com.epmet.service.stats.*; import com.epmet.util.DimIdGenerator; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -72,7 +71,29 @@ public class StatsIssueServiceImpl implements StatsIssueService { try { customerStats(customerId, date); } catch(Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "agencyGridIssueStats", DateUtils.format(date), e.getMessage())); + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "agencyGridIssueStats", customerId, DateUtils.format(date)), + e); + } + } + } + } while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); + } + + @Override + public void agencyGridIssueStatsOfDate(Date date) { + int pageNo = 1; + int pageSize = 100; + List customerIdList = null; + do { + //获取当前日期前一天 + customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); + if (!CollectionUtils.isEmpty(customerIdList)) { + for (String customerId : customerIdList) { + //遍历统计每一个客户数据 + try { + customerStats(customerId, date); + } catch(Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "agencyGridIssueStats", DateUtils.format(date)), e); } } } @@ -109,7 +130,7 @@ public class StatsIssueServiceImpl implements StatsIssueService { //获取当前客户下所有机关 List agencyList = dimAgencyService.getDimAgencyList(dimAgencyDTO); //获取机关下议题各种状态的数目统计 - List issueAgencyTotalList = issueService.getAgencyIssueTotal(customerId); + List issueAgencyTotalList = issueService.getAgencyIssueTotal(customerId, dateString); //获取机关下议题各种状态的数目增量 List issueAgencyIncList = issueService.getAgencyIssueInc(customerId, dateString); //获取机关下已关闭议题统计 @@ -129,10 +150,10 @@ public class StatsIssueServiceImpl implements StatsIssueService { entity.setPid(agency.getPid()); String pIds; - if (null == agency.getPids() || agency.getPids().isEmpty()) { - pIds = agency.getPid().concat(":").concat(agency.getId()); + if (NumConstant.ZERO_STR.equals(agency.getPid())) { + pIds = agency.getPid(); } else { - pIds = ("0").concat(":").concat(agency.getPids()).concat(":").concat(agency.getId()); + pIds = agency.getPids().concat(":").concat(agency.getId()); } //总量统计 saveTotal(issueAgencyTotalList, agency, entity, pIds); @@ -172,7 +193,7 @@ public class StatsIssueServiceImpl implements StatsIssueService { //获取当前客户下所有机关 List agencyList = dimAgencyService.getDimAgencyList(dimAgencyDTO); //获取机关下议题各种状态的数目统计 - List issueAgencyTotalList = issueService.getAgencyIssueTotal(customerId); + List issueAgencyTotalList = issueService.getAgencyIssueTotal(customerId, dateString); //获取机关下已关闭议题统计 List issueAgencyClosedTotalList = issueService.getAgencyClosedIssueTotal(customerId, dateString); //已结案项目统计 @@ -185,10 +206,10 @@ public class StatsIssueServiceImpl implements StatsIssueService { FactIssueAgencyMonthlyEntity monthly = initIssueAgencyMonthly(dimId); String pIds; - if (null == agency.getPids() || agency.getPids().isEmpty()) { - pIds = agency.getPid().concat(":").concat(agency.getId()); + if (NumConstant.ZERO_STR.equals(agency.getPid())) { + pIds = agency.getPid(); } else { - pIds = ("0").concat(":").concat(agency.getPids()).concat(":").concat(agency.getId()); + pIds = agency.getPids().concat(":").concat(agency.getId()); } //总量统计 saveTotal(issueAgencyTotalList, agency, daily, pIds); @@ -269,8 +290,8 @@ public class StatsIssueServiceImpl implements StatsIssueService { })).collect(Collectors.toList()); Map> totalMap = totalList.stream().collect(Collectors.groupingBy(IssueProjectDTO::getStatus)); - List resolveList = totalMap.get(IssueConstant.RESLOVED); - List unResolveList = totalMap.get(IssueConstant.UNRESLOVED); + List resolveList = totalMap.get(IssueConstant.RESOLVED); + List unResolveList = totalMap.get(IssueConstant.UNRESOLVED); if (null != resolveList) { resolveMap = resolveList.stream().collect(Collectors.groupingBy(IssueProjectDTO:: getGridId, Collectors.counting())); } @@ -289,8 +310,8 @@ public class StatsIssueServiceImpl implements StatsIssueService { })).collect(Collectors.toList()); Map> incMap = incList.stream().collect(Collectors.groupingBy(IssueProjectDTO::getStatus)); - List resolveIncList = incMap.get(IssueConstant.RESLOVED); - List unResolveIncList = incMap.get(IssueConstant.UNRESLOVED); + List resolveIncList = incMap.get(IssueConstant.RESOLVED); + List unResolveIncList = incMap.get(IssueConstant.UNRESOLVED); if (null != resolveIncList) { resolveIncMap = resolveIncList.stream().collect(Collectors.groupingBy(IssueProjectDTO:: getGridId, Collectors.counting())); } @@ -363,8 +384,8 @@ public class StatsIssueServiceImpl implements StatsIssueService { })).collect(Collectors.toList()); Map> totalMap = totalList.stream().collect(Collectors.groupingBy(IssueProjectDTO::getStatus)); - List resolveList = totalMap.get(IssueConstant.RESLOVED); - List unResolveList = totalMap.get(IssueConstant.UNRESLOVED); + List resolveList = totalMap.get(IssueConstant.RESOLVED); + List unResolveList = totalMap.get(IssueConstant.UNRESOLVED); if (null != resolveList) { resolveMap = resolveList.stream().collect(Collectors.groupingBy(IssueProjectDTO:: getGridId, Collectors.counting())); } @@ -482,10 +503,10 @@ public class StatsIssueServiceImpl implements StatsIssueService { for (IssueGridDTO dto : list) { if (grid.getId().equals(dto.getGridId())) { - if (IssueConstant.RESLOVED.equals(dto.getStatus())) { + if (IssueConstant.RESOLVED.equals(dto.getStatus())) { //表决中议题数量 resolvedInc = dto.getCount(); - } else if (IssueConstant.UNRESLOVED.equals(dto.getStatus())) { + } else if (IssueConstant.UNRESOLVED.equals(dto.getStatus())) { //已转项目议题数量 unresolvedInc = dto.getCount(); } @@ -513,10 +534,10 @@ public class StatsIssueServiceImpl implements StatsIssueService { for (IssueGridDTO dto : list) { if (grid.getId().equals(dto.getGridId())) { - if (IssueConstant.RESLOVED.equals(dto.getStatus())) { + if (IssueConstant.RESOLVED.equals(dto.getStatus())) { //已解决议题数量 resolvedCount = dto.getCount(); - } else if (IssueConstant.UNRESLOVED.equals(dto.getStatus())) { + } else if (IssueConstant.UNRESOLVED.equals(dto.getStatus())) { //未解决议题数量 unresolvedCount = dto.getCount(); } @@ -550,6 +571,8 @@ public class StatsIssueServiceImpl implements StatsIssueService { int shiftInc = NumConstant.ZERO; //已关闭增量 int closedInc = NumConstant.ZERO; + //议题增量 + int issueInc = NumConstant.ZERO; for (IssueGridDTO dto : list) { if (grid.getId().equals(dto.getGridId())) { if (IssueConstant.VOTING.equals(dto.getStatus())) { @@ -558,17 +581,16 @@ public class StatsIssueServiceImpl implements StatsIssueService { } else if (IssueConstant.SHIFT_PROJECT.equals(dto.getStatus())) { //已转项目议题数量 shiftInc = dto.getCount(); - } else { + } else if(IssueConstant.CLOSED.equals(dto.getStatus())) { //已关闭议题数量 closedInc = dto.getCount(); } } } - int issueInc = votingInc + shiftInc + closedInc; entity.setVotingIncr(votingInc); entity.setShiftProjectIncr(shiftInc); entity.setClosedIncr(closedInc); - entity.setIssueIncr(issueInc); + entity.setIssueIncr(votingInc); } /** @@ -638,10 +660,10 @@ public class StatsIssueServiceImpl implements StatsIssueService { for (ProjectAgencyDTO project : list) { if (agency.getId().equals(project.getAgencyId()) || project.getPIds().contains(pIds)) { - if (IssueConstant.RESLOVED.equals(project.getStatus())) { + if (IssueConstant.RESOLVED.equals(project.getStatus())) { //已解决数量 resolvedCount = resolvedCount + project.getCount(); - } else if (IssueConstant.SHIFT_PROJECT.equals(project.getStatus())) { + } else if (IssueConstant.UNRESOLVED.equals(project.getStatus())) { //未解决数量 unresolvedCount = unresolvedCount + project.getCount(); } @@ -672,10 +694,10 @@ public class StatsIssueServiceImpl implements StatsIssueService { for (ProjectAgencyDTO project : list) { if (agency.getId().equals(project.getAgencyId()) || project.getPIds().contains(pIds)) { - if (IssueConstant.RESLOVED.equals(project.getStatus())) { + if (IssueConstant.RESOLVED.equals(project.getStatus())) { //已解决数量 resolvedCount = resolvedCount + project.getCount(); - } else if (IssueConstant.SHIFT_PROJECT.equals(project.getStatus())) { + } else if (IssueConstant.UNRESOLVED.equals(project.getStatus())) { //未解决数量 unresolvedCount = unresolvedCount + project.getCount(); } @@ -712,6 +734,8 @@ public class StatsIssueServiceImpl implements StatsIssueService { int shiftInc = NumConstant.ZERO; //已关闭增量 int closedInc = NumConstant.ZERO; + //议题增量 + int issueInc = NumConstant.ZERO; for (IssueAgencyDTO issueAgency : list) { if (agency.getId().equals(issueAgency.getAgencyId()) || issueAgency.getPIds().contains(pIds)) { if (IssueConstant.VOTING.equals(issueAgency.getStatus())) { @@ -720,17 +744,16 @@ public class StatsIssueServiceImpl implements StatsIssueService { } else if (IssueConstant.SHIFT_PROJECT.equals(issueAgency.getStatus())) { //已转项目议题数量 shiftInc = shiftInc + issueAgency.getCount(); - } else { + } else if(IssueConstant.CLOSED.equals(issueAgency.getStatus())) { //已关闭议题数量 closedInc = closedInc + issueAgency.getCount(); } } } - int issueInc = votingInc + shiftInc + closedInc; entity.setVotingIncr(votingInc); entity.setShiftProjectIncr(shiftInc); entity.setClosedIncr(closedInc); - entity.setIssueIncr(issueInc); + entity.setIssueIncr(votingInc); } /** @@ -802,10 +825,10 @@ public class StatsIssueServiceImpl implements StatsIssueService { for (IssueAgencyDTO issueAgency : list) { if (agency.getId().equals(issueAgency.getAgencyId()) || issueAgency.getPIds().contains(pIds)) { - if (IssueConstant.RESLOVED.equals(issueAgency.getStatus())) { + if (IssueConstant.RESOLVED.equals(issueAgency.getStatus())) { //表决中议题数量 resolvedCount = resolvedCount + issueAgency.getCount(); - } else if (IssueConstant.UNRESLOVED.equals(issueAgency.getStatus())) { + } else if (IssueConstant.UNRESOLVED.equals(issueAgency.getStatus())) { //已转项目议题数量 unresolvedCount = unresolvedCount + issueAgency.getCount(); } @@ -841,10 +864,10 @@ public class StatsIssueServiceImpl implements StatsIssueService { for (IssueAgencyDTO issueAgency : list) { if (agency.getId().equals(issueAgency.getAgencyId()) || issueAgency.getPIds().contains(pIds)) { - if (IssueConstant.RESLOVED.equals(issueAgency.getStatus())) { + if (IssueConstant.RESOLVED.equals(issueAgency.getStatus())) { //表决中议题数量 resolvedInc = resolvedInc + issueAgency.getCount(); - } else if (IssueConstant.UNRESLOVED.equals(issueAgency.getStatus())) { + } else if (IssueConstant.UNRESOLVED.equals(issueAgency.getStatus())) { //已转项目议题数量 unresolvedInc = unresolvedInc + issueAgency.getCount(); } @@ -854,7 +877,6 @@ public class StatsIssueServiceImpl implements StatsIssueService { entity.setClosedUnresolvedIncr(unresolvedInc); } - /** * 初始化数据 * diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsProjectServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsProjectServiceImpl.java index 0c4793e565..75748d696b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsProjectServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsProjectServiceImpl.java @@ -117,7 +117,7 @@ public class StatsProjectServiceImpl implements StatsProjectService { log.info("StatsProjectServiceImpl.customerAgencyStats-开始执行机关日统计方法,方法名:agencyDateProjectStats,客户Id:" + customerId); agencyDateProjectStats(customerId, dimId, dimAgencyList, projectList, processList); } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "agencyDateProjectStats", customerId, dimId.getDateId(), e.getMessage())); + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "agencyDateProjectStats", customerId, dimId.getDateId()), e); } //5.2:执行机关月数据统计 @@ -126,7 +126,7 @@ public class StatsProjectServiceImpl implements StatsProjectService { log.info("StatsProjectServiceImpl.customerAgencyStats-开始执行机关月统计方法,方法名:agencyMonthProjectStats,客户Id:" + customerId); agencyMonthProjectStats(customerId, dimId, dimAgencyList); } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "agencyMonthProjectStats", customerId, dimId.getMonthId(), e.getMessage())); + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "agencyMonthProjectStats", customerId, dimId.getMonthId()), e); } //} } @@ -246,7 +246,7 @@ public class StatsProjectServiceImpl implements StatsProjectService { agencyDailyEntity.setUnresolvedRatio(new BigDecimal(numberFormat.format((float) unResolvedTotal.intValue() / (float) closedTotal.intValue()))); } agencyDailyEntity.setProjectIncr(projectIncr.intValue()); - agencyDailyEntity.setPendingIncr(projectIncr.intValue() - closedIncr.intValue()); + agencyDailyEntity.setPendingIncr(projectIncr.intValue()); agencyDailyEntity.setClosedIncr(closedIncr.intValue()); agencyDailyEntity.setResolvedIncr(resolvedIncr.intValue()); agencyDailyEntity.setUnresolvedIncr(unResolvedIncr.intValue()); @@ -409,7 +409,7 @@ public class StatsProjectServiceImpl implements StatsProjectService { log.info("StatsProjectServiceImpl.customerGridStats-开始执行机关日统计方法,方法名:gridDateProjectStats,客户Id:" + customerId); gridDateProjectStats(customerId, dimId, dimGridList, projectList, processList); } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "gridDateProjectStats", customerId, dimId.getDateId(), e.getMessage())); + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "gridDateProjectStats", customerId, dimId.getDateId()), e); } //5.2:执行网格月数据统计 @@ -418,7 +418,7 @@ public class StatsProjectServiceImpl implements StatsProjectService { log.info("StatsProjectServiceImpl.customerGridStats-开始执行机关月统计方法,方法名:gridMonthProjectStats,客户Id:" + customerId); gridMonthProjectStats(customerId, dimId, dimGridList); } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "gridMonthProjectStats", customerId, dimId.getMonthId(), e.getMessage())); + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "gridMonthProjectStats", customerId, dimId.getMonthId()), e); } //} } @@ -539,7 +539,7 @@ public class StatsProjectServiceImpl implements StatsProjectService { gridDailyEntity.setUnresolvedRatio(new BigDecimal(numberFormat.format((float) unResolvedTotal.intValue() / (float) closedTotal.intValue()))); } gridDailyEntity.setProjectIncr(projectIncr.intValue()); - gridDailyEntity.setPendingIncr(projectIncr.intValue() - closedIncr.intValue()); + gridDailyEntity.setPendingIncr(projectIncr.intValue()); gridDailyEntity.setClosedIncr(closedIncr.intValue()); gridDailyEntity.setResolvedIncr(resolvedIncr.intValue()); gridDailyEntity.setUnresolvedIncr(unResolvedIncr.intValue()); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsPublicityServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsPublicityServiceImpl.java index 72b5ce2b1b..eabcec07ad 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsPublicityServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsPublicityServiceImpl.java @@ -163,7 +163,7 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { try { statsTagUsedDaily(finalStatsDate, dimIdBean, customerId); } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagUsedDailyStatsjob", customerId, dimIdBean.getDateId(), e.getMessage())); + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagUsedDailyStatsjob", customerId, dimIdBean.getDateId()), e); } } } @@ -191,7 +191,7 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { try { statsTagUsedMonthly(dimIdBean.getMonthId(), customerId); } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "按月统计标签被使用次数", customerId, dimIdBean.getMonthId(), e.getMessage())); + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "按月统计标签被使用次数", customerId, dimIdBean.getMonthId()), e); } } } @@ -220,7 +220,7 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { try { statsTagViewedDaily(statsDate, dimIdBean, customerId); } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagViewedDailyStatsjob", customerId, dimIdBean.getDateId(), e.getMessage())); + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagViewedDailyStatsjob", customerId, dimIdBean.getDateId()), e); } } } @@ -248,7 +248,7 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { try { statsTagViewedMonthly(dimIdBean.getMonthId(), customerId); } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagViewedMonthlyStatsjob", customerId, dimIdBean.getDateId(), e.getMessage())); + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagViewedMonthlyStatsjob", customerId, dimIdBean.getDateId()), e); } } } @@ -273,22 +273,18 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); if (!CollectionUtils.isEmpty(customerIdList)) { for (String customerId : customerIdList) { - executorService.submit(() -> { - try { - log.debug("start === statsTagUsedQuarterly "); - statsTagUsedQuarterly(dimIdBean.getQuarterId(), customerId); - } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagUsedQuarterly", customerId, dimIdBean.getQuarterId(), e.getMessage())); - } - }); - executorService.submit(() -> { - try { - log.debug("start === statsTagUsedQuarterly "); - statsTagUsedYearly(dimIdBean.getYearId(), customerId); - } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagUsedYearly", customerId, dimIdBean.getYearId(), e.getMessage())); - } - }); + try { + log.debug("start === statsTagUsedQuarterly "); + statsTagUsedQuarterly(dimIdBean.getQuarterId(), customerId); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagUsedQuarterly", customerId, dimIdBean.getQuarterId()), e); + } + try { + log.debug("start === statsTagUsedQuarterly "); + statsTagUsedYearly(dimIdBean.getYearId(), customerId); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagUsedYearly", customerId, dimIdBean.getYearId()), e); + } } } } while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); @@ -312,24 +308,20 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); if (!CollectionUtils.isEmpty(customerIdList)) { for (String customerId : customerIdList) { - executorService.submit(() -> { - try { - log.debug("start === statsTagViewedQuarterly "); - statsTagViewedQuarterly(dimIdBean.getQuarterId(), customerId); - } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagViewedQuarterly", customerId, dimIdBean.getQuarterId(), e.getMessage())); - } - }); - executorService.submit(() -> { - try { - log.debug("start === statsTagViewedYearly "); - statsTagViewedYearly(dimIdBean.getYearId(), customerId); - - - } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagViewedQuarterly", customerId, dimIdBean.getYearId(), e.getMessage())); - } - }); + try { + log.debug("start === statsTagViewedQuarterly "); + statsTagViewedQuarterly(dimIdBean.getQuarterId(), customerId); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagViewedQuarterly", customerId, dimIdBean.getQuarterId()), e); + } + try { + log.debug("start === statsTagViewedYearly "); + statsTagViewedYearly(dimIdBean.getYearId(), customerId); + + + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagViewedQuarterly", customerId, dimIdBean.getYearId()), e); + } } } } while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); @@ -366,7 +358,7 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { } boolean b = factArticlePublishedDepartmentDailyService.deleteAndInsertBatch(customerId, dimIdBean.getDateId(), departmentDailyEntityMap.values()); } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsPublishedDepartmentDaily", customerId, statsDate, e.getMessage())); + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsPublishedDepartmentDaily", customerId, statsDate), e); } } @@ -389,7 +381,7 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { summary.setArticleTotalCount(summaryDTO.getArticleTotalCount()); summary.setArticlePublishedCount(summaryDTO.getArticlePublishedCount()); summary.setPublishedCount(summaryDTO.getPublishedCount()); - result.put(summaryDTO.getPublisherId(), summaryDTO); + result.put(summaryDTO.getAgencyId(), summaryDTO); } else { publishedSummaryDTO.setArticlePublishedCount(publishedSummaryDTO.getArticlePublishedCount() + summaryDTO.getArticlePublishedCount()); publishedSummaryDTO.setArticleTotalCount(publishedSummaryDTO.getArticleTotalCount() + summaryDTO.getArticlePublishedCount()); @@ -435,7 +427,7 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { boolean b = factArticlePublishedGridDailyService.deleteAndInsertBatch(customerId, dimIdBean.getDateId(), gridDailyEntityMap.values()); } catch (Exception e) { e.printStackTrace(); - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsPublishedGridDaily", customerId, statsDate, e.getMessage())); + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsPublishedGridDaily", customerId, statsDate), e); } @@ -451,6 +443,7 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { try { //转换为 需要插入的Entity Map agencyDailyEntityMap = convertAgencyDailyEntity(agencyDTOList, dimIdBean); + //获取当天的业务数据 List publishedArticleCount = articleService.getAllAgencyPublishedCount(customerId, statsDate); Map haveDataAgencyDailyMap = new HashMap<>(); @@ -465,9 +458,10 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { gridDailyEntities.setArticleTotalCount(summaryDTO.getArticleTotalCount()); gridDailyEntities.setArticlePublishedCount(summaryDTO.getArticlePublishedCount()); gridDailyEntities.setPublishedCount(summaryDTO.getPublishedCount()); + + haveDataAgencyDailyMap.put(summaryDTO.getAgencyId(), gridDailyEntities); - //同一个机关下数据累加 - //buildAgencySummaryData(agencySummaryMap, summaryDTO); + //构建机关自己的数据 FactArticlePublishedAgencyDailyEntity selfDaily = ConvertUtils.sourceToTarget(dimIdBean, FactArticlePublishedAgencyDailyEntity.class); selfDaily.setCustomerId(gridDailyEntities.getCustomerId()); @@ -479,6 +473,20 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { haveDataAgencyDailySelfMap.put(selfDaily.getAgencyId(), selfDaily); } } + if (!CollectionUtils.isEmpty(agencySummaryMap)) { + //同一个机关下数据累加 + for (Map.Entry entry : agencySummaryMap.entrySet()) { + String agencyId = entry.getKey(); + ArticleGridPublishedSummaryDTO summary = entry.getValue(); + FactArticlePublishedAgencyDailyEntity dimAgencyEntity = agencyDailyEntityMap.get(agencyId); + if (dimAgencyEntity == null) { + continue; + } + dimAgencyEntity.setArticleTotalCount(dimAgencyEntity.getArticlePublishedCount() + summary.getArticleTotalCount()); + dimAgencyEntity.setArticlePublishedCount(dimAgencyEntity.getPublishedCount() + summary.getArticlePublishedCount()); + dimAgencyEntity.setPublishedCount(dimAgencyEntity.getPublishedCount() + summary.getPublishedCount()); + } + } //数据向上级机关添加 if (!CollectionUtils.isEmpty(haveDataAgencyDailyMap)) { for (Map.Entry entry : haveDataAgencyDailyMap.entrySet()) { @@ -500,7 +508,7 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { boolean b = factArticlePublishedAgencyDailyService.deleteAndInsertBatch(customerId, dimIdBean.getDateId(), agencyDailyEntityMap.values()); } catch (Exception e) { e.printStackTrace(); - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsPublishedAgencyDaily", customerId, statsDate, e.getMessage())); + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsPublishedAgencyDaily", customerId, statsDate), e); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimMonthServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimMonthServiceImpl.java index d732bb5c47..19eea4c1fc 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimMonthServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimMonthServiceImpl.java @@ -118,16 +118,16 @@ public class DimMonthServiceImpl extends BaseServiceImpl #{date} GROUP BY ORG_ID, ISSUE_STATUS SELECT - pro.project_id, - pro.operation, - DATE_FORMAT(pro.created_time, "%Y-%m-%d"), + pro.project_id AS "projectId", + pro.operation AS "operation", + DATE_FORMAT(pro.created_time, "%Y-%m-%d") AS "createdTime", p.agency_id FROM project_process pro diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactTagUsedAgencyDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactTagUsedAgencyDailyDao.xml index b99b5e409b..6a18c289ce 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactTagUsedAgencyDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactTagUsedAgencyDailyDao.xml @@ -13,7 +13,7 @@ AGENCY_ID, TAG_ID, TAG_NAME, - COUNT( USED_COUNT ) USED_COUNT, + SUM( USED_COUNT ) USED_COUNT, MONTH_ID, QUARTER_ID, YEAR_ID diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactTagUsedDepartmentDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactTagUsedDepartmentDailyDao.xml index 8e8fb7e9b3..1f802a277e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactTagUsedDepartmentDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactTagUsedDepartmentDailyDao.xml @@ -14,7 +14,7 @@ DEPARTMENT_ID, TAG_ID, TAG_NAME, - COUNT( USED_COUNT ) USED_COUNT, + SUM( USED_COUNT ) USED_COUNT, MONTH_ID, QUARTER_ID, YEAR_ID diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactTagUsedGridDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactTagUsedGridDailyDao.xml index 1970dc22a7..adb493b15e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactTagUsedGridDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactTagUsedGridDailyDao.xml @@ -12,7 +12,7 @@ GRID_ID, TAG_ID, TAG_NAME, - COUNT( USED_COUNT ) USED_COUNT, + SUM( USED_COUNT ) USED_COUNT, MONTH_ID, QUARTER_ID, YEAR_ID diff --git a/epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-dev.yml index d30743101a..e20714082d 100644 --- a/epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-job-server: container_name: epmet-job-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-job-server:0.3.10 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-job-server:0.3.11 ports: - "8084:8084" network_mode: host # 使用现有网络 diff --git a/epmet-module/epmet-job/epmet-job-server/pom.xml b/epmet-module/epmet-job/epmet-job-server/pom.xml index 46a64a1a4d..6301d4acec 100644 --- a/epmet-module/epmet-job/epmet-job-server/pom.xml +++ b/epmet-module/epmet-job/epmet-job-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.10 + 0.3.11 com.epmet epmet-job diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/DimInitService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/DimInitService.java new file mode 100644 index 0000000000..6d3f493620 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/DimInitService.java @@ -0,0 +1,9 @@ +package com.epmet.service; + +import com.epmet.commons.tools.utils.Result; + +public interface DimInitService { + + Result initAllDims(); + +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/DimInitServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/DimInitServiceImpl.java new file mode 100644 index 0000000000..38bdc54135 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/DimInitServiceImpl.java @@ -0,0 +1,19 @@ +package com.epmet.service.impl; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.feign.DataStatisticalOpenFeignClient; +import com.epmet.service.DimInitService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class DimInitServiceImpl implements DimInitService { + + @Autowired + private DataStatisticalOpenFeignClient statsFeignClient; + + @Override + public Result initAllDims() { + return statsFeignClient.initAllDims(); + } +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/DimInitTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/DimInitTask.java new file mode 100644 index 0000000000..1fa78dd52c --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/DimInitTask.java @@ -0,0 +1,31 @@ +package com.epmet.task; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.service.DimInitService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/6/23 14:36 + */ +@Slf4j +@Component("dimInitTask") +public class DimInitTask implements ITask { + + @Autowired + private DimInitService dimInitService; + + @Override + public void run(String params) { + log.debug("DimInitTask定时任务正在执行,参数为:{}", params); + Result result = dimInitService.initAllDims(); + if (result.success()){ + log.debug("DimInitTask定时任务正在执行定时任务执行成功"); + }else { + log.debug("DimInitTask定时任务正在执行定时任务执行失败:" + result.getMsg()); + } + } +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagViewedQuarterlyAndYearlyhlyStatsTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagViewedQuarterlyAndYearlyhlyStatsTask.java index 15f52608bd..cb03b1a6aa 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagViewedQuarterlyAndYearlyhlyStatsTask.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagViewedQuarterlyAndYearlyhlyStatsTask.java @@ -21,7 +21,7 @@ public class PublicityTagViewedQuarterlyAndYearlyhlyStatsTask implements ITask { @Override public void run(String params) { logger.debug("publicityTagViewedMonthlyStatsTask定时任务正在执行,参数为:{}", params); - Result result = statsPublicityTaskService.tagViewedMonthlyStatsjob(); + Result result = statsPublicityTaskService.tagUsedQuarterlyStatsjob(); if (result.success()) { logger.debug("publicityTagViewedMonthlyStatsTask定时任务正在执行定时任务执行成功"); } else { diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UpdateCachedRolesFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UpdateCachedRolesFormDTO.java new file mode 100644 index 0000000000..80559c4ec5 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UpdateCachedRolesFormDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.List; + +@Data +public class UpdateCachedRolesFormDTO { + + @NotBlank(message = "客户ID不能为空") + private String staffId; + + @NotBlank(message = "机关ID不能为空") + private String orgId; + + private List roleIds; + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LoginUserDetailsResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LoginUserDetailsResultDTO.java index 30acef4ea8..1174f0fb34 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LoginUserDetailsResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LoginUserDetailsResultDTO.java @@ -1,7 +1,9 @@ package com.epmet.dto.result; +import com.epmet.commons.tools.security.dto.GovTokenDto; import lombok.Data; +import java.util.List; import java.util.Set; @Data @@ -25,7 +27,8 @@ public class LoginUserDetailsResultDTO { /** * 角色列表 */ - private Set roleIdList; + //private Set roleIdList; + private List roleList; /** * 部门id列表 diff --git a/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml b/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml index 4ed23e2498..26c2930a6a 100644 --- a/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml +++ b/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-user-server: container_name: epmet-user-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-user-server:0.3.61 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-user-server:0.3.64 ports: - "8087:8087" network_mode: host # 不会创建新的网络 diff --git a/epmet-user/epmet-user-server/pom.xml b/epmet-user/epmet-user-server/pom.xml index 153d33f2e2..549e4b72db 100644 --- a/epmet-user/epmet-user-server/pom.xml +++ b/epmet-user/epmet-user-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.61 + 0.3.64 com.epmet epmet-user diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/AuthFeignClient.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/AuthFeignClient.java new file mode 100644 index 0000000000..dd1ed9ec46 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/AuthFeignClient.java @@ -0,0 +1,23 @@ +package com.epmet.feign; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.UpdateCachedRolesFormDTO; +import com.epmet.feign.fallback.AuthFeignClientCallback; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@FeignClient(name = ServiceConstant.EPMET_AUTH_SERVER, fallback = AuthFeignClientCallback.class, url = "localhost:8081") +//@FeignClient(name = ServiceConstant.EPMET_AUTH_SERVER, fallback = AuthFeignClientCallback.class) +public interface AuthFeignClient { + + /** + * 更新缓存的角色列表 + * @param form + * @return + */ + @PostMapping("/auth/gov/updatecachedroles") + Result updateCachedRoles(@RequestBody UpdateCachedRolesFormDTO form); + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/fallback/AuthFeignClientCallback.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/fallback/AuthFeignClientCallback.java new file mode 100644 index 0000000000..af013a458b --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/fallback/AuthFeignClientCallback.java @@ -0,0 +1,17 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.utils.ModuleUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.UpdateCachedRolesFormDTO; +import com.epmet.feign.AuthFeignClient; +import org.springframework.stereotype.Component; + +@Component +public class AuthFeignClientCallback implements AuthFeignClient { + + @Override + public Result updateCachedRoles(UpdateCachedRolesFormDTO form) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_AUTH_SERVER, "updateCachedRoles", form); + } +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java index be1796082c..48b2f5a45f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java @@ -24,8 +24,10 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.CpUserDetailRedis; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.CustomerStaffConstant; import com.epmet.constant.UserConstant; @@ -39,6 +41,7 @@ import com.epmet.entity.CustomerStaffEntity; import com.epmet.entity.GovStaffRoleEntity; import com.epmet.entity.StaffRoleEntity; import com.epmet.entity.UserEntity; +import com.epmet.feign.AuthFeignClient; import com.epmet.redis.CustomerStaffRedis; import com.epmet.service.CustomerStaffService; import com.epmet.service.GovStaffRoleService; @@ -52,10 +55,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -78,6 +78,10 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl page(Map params) { @@ -328,6 +332,23 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl