diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java index 207cd8e8df..eb2b9d269a 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java @@ -3,6 +3,7 @@ package com.epmet.dto.extract.form; import lombok.Data; import java.io.Serializable; +import java.math.BigDecimal; /** * @Author zxc @@ -27,4 +28,9 @@ public class GridIssueCountResultDTO implements Serializable { * 网格ID */ private String gridId; + + /** + * 网格议题转项目率 + */ + private BigDecimal issueToProjectRatio; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java index 42e671c2b7..b993336497 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java @@ -67,13 +67,13 @@ public interface FactOriginIssueMainDailyDao extends BaseDao selectIssueTotal(@Param("customerId") String customerId,@Param("monthId") String monthId); /** - * @Description 查询俩月的网格议题总数 + * @Description 查询议题转项目总数 * @param customerId * @param monthId * @author zxc * @date 2020/9/18 10:20 上午 */ - List selectIssueTotalTwoMonthPlus(@Param("customerId")String customerId,@Param("monthId") String monthId,@Param("minusMonthId") String minusMonthId); + List selectIssueTotalShiftProject(@Param("customerId")String customerId, @Param("monthId") String monthId); /** * @Description 网格总项目数 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java index 4a9fbb143e..c372f5bdbc 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java @@ -113,9 +113,9 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { // 网格的发文数量 List publishCountList = articlePublishedGridDailyService.selectArticlePublishCount(customerId, monthId); // 网格议题转项目率 - List gridIssueTotalList = issueExtractService.selectIssueTotalTwoMonth(customerId, monthId, DateUtils.minusMonthId(monthId)); - List gridProjectTotalList = issueExtractService.selectGridProjectCount(customerId, monthId, ExtractConstant.SHIFT_PROJECT); - List gridIssueShiftProjectRatio = getGridIssueShiftProjectRatio(gridIssueTotalList, gridProjectTotalList); + List gridIssueTotalShiftProjectList = issueExtractService.selectIssueTotalShiftProject(customerId, monthId); + List gridIssueTotalList = issueExtractService.selectIssueTotal(customerId, monthId); + List gridIssueShiftProjectRatio = getGridIssueShiftProjectRatio(gridIssueTotalShiftProjectList, gridIssueTotalList); // 建群党员数 List partyCreateGroupCountList = groupExtractService.selectPartyCreateGroupCount(customerId, monthId); //结合目前产品,数据来源:话题评论、议题表决 @@ -313,9 +313,10 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { List gridProjectTotalList = issueExtractService.selectGridProjectCount(customerId, monthId, ExtractConstant.SHIFT_PROJECT); log.info("网格总项目数{}", JSON.toJSONString(gridProjectTotalList)); //网格议题转项目率 - List gridIssueCountList = issueExtractService.selectIssueTotalTwoMonth(customerId, monthId, DateUtils.minusMonthId(monthId)); + List gridIssueCountList = issueExtractService.selectIssueTotalShiftProject(customerId, monthId); log.info("网格近两个月的议题{}", JSON.toJSONString(gridIssueCountList)); - List gridIssueShiftProjectRatio = getGridIssueShiftProjectRatio(gridIssueCountList, gridProjectTotalList); + + List gridIssueShiftProjectRatio = getGridIssueShiftProjectRatio(gridIssueCountList, gridIssueTotalList); log.info("网格议题转项目率{}", JSON.toJSONString(gridIssueShiftProjectRatio)); //网格自治项目数 从议题创建到项目关闭,包括处理人,自始至终没有出过议题所属网格 List projectAutoNoMyList = projectLogService.selectProjectAutoNoMy(customerId, monthId); @@ -391,15 +392,23 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { } }); } - // 2. 网格总项目数,网格议题转项目率 + // 2.网格议题转项目率 if (!CollectionUtils.isEmpty(gridIssueShiftProjectRatio)){ gridIssueShiftProjectRatio.forEach(projectTotal -> { if (r.getGridId().equals(projectTotal.getGridId())){ - r.setProjectTotal(projectTotal.getProjectTotal()); r.setIssueToProjectRatio(projectTotal.getIssueToProjectRatio()); } }); } + // 网格总项目数 + if (!CollectionUtils.isEmpty(gridProjectTotalList)){ + gridProjectTotalList.forEach(projectTotal -> { + if (r.getGridId().equals(projectTotal.getGridId())) { + r.setProjectTotal(projectTotal.getProjectTotal()); + } + }); + } + // 3. 网格办结项目数 if (!CollectionUtils.isEmpty(gridProjectClosedTotalList)){ gridProjectClosedTotalList.forEach(closed -> { @@ -539,22 +548,22 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { /** * @Description - * @param gridIssueTotalList - * @param gridProjectTotalList + * @param gridIssueTotalList 网格下已转项目的议题 + * @param gridIssueAllTotalList 网格下所有议题 * @author zxc * @date 2020/9/19 2:53 下午 */ - public List getGridIssueShiftProjectRatio(List gridIssueTotalList,List gridProjectTotalList){ - if (!CollectionUtils.isEmpty(gridIssueTotalList) && !CollectionUtils.isEmpty(gridProjectTotalList)) { - gridProjectTotalList.forEach(project -> { + public List getGridIssueShiftProjectRatio(List gridIssueTotalList,List gridIssueAllTotalList){ + if (!CollectionUtils.isEmpty(gridIssueTotalList) && !CollectionUtils.isEmpty(gridIssueAllTotalList)) { + gridIssueAllTotalList.forEach(allIssue -> { gridIssueTotalList.forEach(issue -> { - if (project.getGridId().equals(issue.getGridId())) { - project.setIssueToProjectRatio(getRound(new BigDecimal(project.getProjectTotal()).divide(new BigDecimal(issue.getIssueTotal()),NumConstant.EIGHT,BigDecimal.ROUND_HALF_UP).multiply(NumConstant.ONE_HUNDRED_DECIMAL))); + if (allIssue.getGridId().equals(issue.getGridId())) { + allIssue.setIssueToProjectRatio(getRound(new BigDecimal(allIssue.getIssueTotal()).divide(new BigDecimal(issue.getIssueTotal()),NumConstant.EIGHT,BigDecimal.ROUND_HALF_UP).multiply(NumConstant.ONE_HUNDRED_DECIMAL))); } }); }); } - return gridProjectTotalList; + return gridIssueAllTotalList; } /** diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/IssueExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/IssueExtractService.java index 2ee29acd93..85caea8cc5 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/IssueExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/IssueExtractService.java @@ -47,7 +47,7 @@ public interface IssueExtractService { * @author zxc * @date 2020/9/18 10:20 上午 */ - List selectIssueTotalTwoMonth(String customerId, String monthId, String minusMonthId); + List selectIssueTotalShiftProject(String customerId, String monthId); /** * @Description 网格总项目数 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/IssueExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/IssueExtractServiceImpl.java index b7b4532f4f..e8730541d8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/IssueExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/IssueExtractServiceImpl.java @@ -268,8 +268,8 @@ public class IssueExtractServiceImpl implements IssueExtractService { * @date 2020/9/18 10:20 上午 */ @Override - public List selectIssueTotalTwoMonth(String customerId, String monthId, String minusMonthId) { - return issueMainDailyDao.selectIssueTotalTwoMonthPlus(customerId, monthId, minusMonthId); + public List selectIssueTotalShiftProject(String customerId, String monthId) { + return issueMainDailyDao.selectIssueTotalShiftProject(customerId, monthId); } /** diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml index 9c42712164..6ee2643f68 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml @@ -164,18 +164,17 @@ )t - - SELECT - COUNT( ID ) AS issueTotal, - GRID_ID - FROM - fact_origin_issue_main_daily - WHERE - DEL_FLAG = 0 - AND CUSTOMER_ID = #{customerId} - AND (MONTH_ID = #{monthId} OR MONTH_ID = #{minusMonthId}) - GROUP BY GRID_ID + GRID_ID, + COUNT(ISSUE_ID) AS issueTotal + FROM fact_origin_issue_log_daily + WHERE DEL_FLAG = '0' + AND MONTH_ID = #{monthId} + AND CUSTOMER_ID = #{customerId} + AND ACTION_CODE = 'shift_project' + GROUP BY GRID_ID diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index b850b196a1..ca52276790 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -940,6 +940,18 @@ public class IssueServiceImpl extends BaseServiceImpl imp */ @Override public void shiftProjectV2(ShiftProjectFormDTO formDTO) { + //1:查询议题数据 + IssueEntity entity = baseDao.selectById(formDTO.getIssueId()); + if (null == entity) { + throw new RenException(IssueConstant.SELECT_EXCEPTION); + } + if (IssueConstant.ISSUE_SHIFT_PROJECT.equals(entity.getIssueStatus())) { + throw new RenException(IssueConstant.ISSUE_SHIFT_PROJECT_EXCEPTION); + } + if (!IssueConstant.ISSUE_VOTING.equals(entity.getIssueStatus())) { + throw new RenException(IssueConstant.ISSUE_VOTING_EXCEPTION); + } + formDTO.setIssueDTO(ConvertUtils.sourceToTarget(entity, IssueDTO.class)); //获取议题分类 List categoryList = issueCategoryService.getCategoryByIssue(formDTO.getIssueId()); @@ -965,18 +977,6 @@ public class IssueServiceImpl extends BaseServiceImpl imp } //因需要保证议题表中的转项目时间与创建项目时间一致 因此先新增项目数据再更新议题数据 - //1:查询议题数据 - IssueEntity entity = baseDao.selectById(formDTO.getIssueId()); - if (null == entity) { - throw new RenException(IssueConstant.SELECT_EXCEPTION); - } - if (IssueConstant.ISSUE_SHIFT_PROJECT.equals(entity.getIssueStatus())) { - throw new RenException(IssueConstant.ISSUE_SHIFT_PROJECT_EXCEPTION); - } - if (!IssueConstant.ISSUE_VOTING.equals(entity.getIssueStatus())) { - throw new RenException(IssueConstant.ISSUE_VOTING_EXCEPTION); - } - formDTO.setIssueDTO(ConvertUtils.sourceToTarget(entity, IssueDTO.class)); //2:调用resi-group查询话题创建人数据(目前议题来源只有来自话题),为了到项目服务初始数据以及发送消息使用 Result resultTopicDTO = resiGroupFeignClient.getTopicById(entity.getSourceId());