diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java index 1558df9b36..57630deaaf 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java @@ -628,4 +628,12 @@ public class RedisKeys { return rootPrefix.concat("resi:").concat("export").concat(":template:changed").concat(customerId); } + /** + * desc:临时方案 + * @param userId + * @return + */ + public static String getOrgTreeCacheKey(String userId) { + return rootPrefix.concat("ic:temp:orgtree").concat("userId"); + } } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/GrassRootsGovernController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/GrassRootsGovernController.java index f3c2a545c5..42dc88cd77 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/GrassRootsGovernController.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/GrassRootsGovernController.java @@ -97,4 +97,17 @@ public class GrassRootsGovernController { return new Result>().ok(grassRootsGovernService.governCapacityRank(param)); } + /** + * @Description 治理能力榜单查询 screen_govern_rank_data + * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321627 + * @param param + * @return + * @author wangc + * @date 2020.08.20 17:46 + **/ + @PostMapping("governcapacityrank-origin") + public Result> governCapacityRankOrigin(@RequestBody AgencyAndNumFormDTO param){ + ValidatorUtils.validateEntity(param,AgencyFormDTO.CommonAgencyIdGroup.class); + return new Result>().ok(grassRootsGovernService.governCapacityRankOrigin(param)); + } } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenGovernRankDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenGovernRankDataDao.java index 405144008a..c95897f2af 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenGovernRankDataDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenGovernRankDataDao.java @@ -50,4 +50,7 @@ public interface ScreenGovernRankDataDao{ * @date 2021/2/26 上午9:22 */ List selectGovernCapacityRatioNew(@Param("monthId") String monthId,@Param("orgIds") List orgIds); + + List selectGovernCapacityRatioBak(@Param("monthId") String monthId,@Param("agencyId") String agencyId); + List selectGovernCapacityRatioNewBak(@Param("monthId") String monthId,@Param("orgIds") List orgIds); } \ No newline at end of file diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/GrassRootsGovernService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/GrassRootsGovernService.java index fecde12a9f..bcfb7e7d51 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/GrassRootsGovernService.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/GrassRootsGovernService.java @@ -65,6 +65,12 @@ public interface GrassRootsGovernService { **/ List governCapacityRank(AgencyAndNumFormDTO param); + /** + * 治理能力榜单查询 screen_govern_rank_data + * @param param + * @return + */ + List governCapacityRankOrigin(AgencyAndNumFormDTO param); /** * @Description 6、公众参与-柱状折线图 * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=322434 diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassRootsGovernServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassRootsGovernServiceImpl.java index 18978f6e23..385671f129 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassRootsGovernServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassRootsGovernServiceImpl.java @@ -293,6 +293,62 @@ public class GrassRootsGovernServiceImpl implements GrassRootsGovernService { return result; } + /** + * 治理能力榜单查询 screen_govern_rank_data + * @param param + * @return + */ + @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true) + @Override + public List governCapacityRankOrigin(AgencyAndNumFormDTO param) { + List orderList = new ArrayList<>(); + if (null == param.getTopNum() || NumConstant.ZERO == param.getTopNum()) { + param.setTopNum(NumConstant.TEN); + } + String monthId = dateUtils.getCurrentMonthId(); + + if (StringUtils.isNotEmpty(param.getAreaCode())){ + List nextAgencyIds = screenCustomerAgencyService.getNextAgencyIds(param.getAreaCode(), param.getAgencyId()); + if (CollectionUtils.isEmpty(nextAgencyIds)){ + return new ArrayList<>(); + } + PageHelper.startPage(NumConstant.ONE,param.getTopNum()); + orderList = screenGovernRankDataDao.selectGovernCapacityRatioNewBak(monthId,nextAgencyIds); + int time = NumConstant.TWELVE; + while(CollectionUtils.isEmpty(orderList) && time > NumConstant.ONE){ + time--; + monthId = dateUtils.getPreviousMonthIdByDest(null, monthId); + PageHelper.startPage(NumConstant.ONE,param.getTopNum()); + orderList = screenGovernRankDataDao.selectGovernCapacityRatioNewBak(monthId,nextAgencyIds); + } + }else { + PageHelper.startPage(NumConstant.ONE,param.getTopNum()); + orderList = screenGovernRankDataDao.selectGovernCapacityRatioBak(monthId, param.getAgencyId()); + int time = NumConstant.TWELVE; + while (CollectionUtils.isEmpty(orderList) && time > NumConstant.ONE) { + time++; + monthId = dateUtils.getPreviousMonthIdByDest(null, monthId); + PageHelper.startPage(NumConstant.ONE, param.getTopNum()); + orderList = screenGovernRankDataDao.selectGovernCapacityRatioBak(monthId, param.getAgencyId()); + } + } + if(null == orderList || orderList.isEmpty()) { + return new ArrayList<>(); + } + List result = new LinkedList<>(); + orderList.forEach(o -> { + GovernCapacityRankResultDTO rank = new GovernCapacityRankResultDTO(); + rank.setAgencyName(o.getAgencyName()); + rank.setGovernRatio(convertPercentStr(o.getGovernRatio(),NumConstant.ONE)); + rank.setResolvedRatio(convertPercentStr(o.getResolvedRatio(),NumConstant.ONE)); + rank.setResponseRatio(convertPercentStr(o.getResponseRatio(),NumConstant.ONE)); + rank.setSatisfactionRatio(convertPercentStr(o.getSatisfactionRatio(),NumConstant.ONE)); + rank.setParentAgencyName(o.getParentAgencyName()); + rank.setMonthId(o.getMonthId()); + result.add(rank); + }); + return result; + } /** * @Description 6、公众参与-柱状折线图 * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=322434 diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenGovernRankDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenGovernRankDataDao.xml index 1568e078b5..6f040d326b 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenGovernRankDataDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenGovernRankDataDao.xml @@ -82,4 +82,82 @@ RESPONSE_RATIO DESC + + + + + \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java index 183b6f81f5..704b9b66b6 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java @@ -20,6 +20,8 @@ package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.RedisKeys; +import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; @@ -53,6 +55,8 @@ import java.util.Set; @RestController @RequestMapping("customeragency") public class CustomerAgencyController { + @Autowired + private RedisUtils redisUtils; @Autowired private CustomerAgencyService customerAgencyService; @@ -366,7 +370,17 @@ public class CustomerAgencyController { */ @PostMapping("agencygridtree") public Result getOrgTreeData(@LoginUser TokenDto tokenDTO) { - return new Result().ok(customerAgencyService.getOrgTreeData(tokenDTO.getUserId())); + //tokenDTO.setUserId("dffe71e021a61b900f9025f4f07f6955"); + String orgTreeCacheKey = RedisKeys.getOrgTreeCacheKey(tokenDTO.getUserId()); + Object o = redisUtils.get(orgTreeCacheKey); + AgencyTreeResultDTO result = null; + if (o == null){ + result = customerAgencyService.getOrgTreeData(tokenDTO.getUserId()); + redisUtils.set(orgTreeCacheKey,result,RedisUtils.MINUTE_THIRTY_EXPIRE); + }else { + result = (AgencyTreeResultDTO) o; + } + return new Result().ok(result); } }