Browse Source

基层党员-指标月度趋势 接口修改,逻辑为:查询前12个月的数据

dev_shibei_match
zhangyongzhangyong 5 years ago
parent
commit
697eb945fb
  1. 6
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenan/ScreenAnGrassRootsPmTotalMonthlyDao.java
  2. 13
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/AnScreenServiceImpl.java
  3. 49
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnGrassRootsPmTotalMonthlyDao.xml

6
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenan/ScreenAnGrassRootsPmTotalMonthlyDao.java

@ -47,12 +47,12 @@ public interface ScreenAnGrassRootsPmTotalMonthlyDao {
* 基层党员-指标月度趋势 * 基层党员-指标月度趋势
* *
* @param agencyId * @param agencyId
* @param monthId * @param curDate
* @return java.util.List<com.epmet.evaluationindex.screen.dto.result.PmTotalTrendDTO> * @return java.util.List<com.epmet.evaluationindex.screen.dto.result.PmTotalTrendDTO>
* @author zhaoqifeng * @author zhaoqifeng
* @date 2020/10/9 15:12 * @date 2020/10/9 15:12
*/ */
List<PmTotalTrendDTO> selectPmTotalTrend(@Param("agencyId") String agencyId, @Param("monthId") String monthId); List<PmTotalTrendDTO> selectPmTotalTrend(@Param("agencyId") String agencyId, @Param("curDate") String curDate);
} }

13
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/AnScreenServiceImpl.java

@ -68,7 +68,10 @@ public class AnScreenServiceImpl implements AnScreenService {
@DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true) @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
public PmTotalTrendResultDTO pmTotalTrend(AnScreenTrendFormDTO formDTO) { public PmTotalTrendResultDTO pmTotalTrend(AnScreenTrendFormDTO formDTO) {
PmTotalTrendResultDTO resultDTO = new PmTotalTrendResultDTO(); PmTotalTrendResultDTO resultDTO = new PmTotalTrendResultDTO();
List<PmTotalTrendDTO> list = screenAnGrassRootsPmTotalMonthlyDao.selectPmTotalTrend(formDTO.getAgencyId(), formDTO.getMonthId()); String monthId = StringUtils.isNotBlank(formDTO.getMonthId()) ? formDTO.getMonthId() : DateUtils.format(new Date(), DateUtils.DATE_PATTERN_YYYYMM);
String curDate = monthId.substring(0, 4) + "-" + monthId.substring(4, 6) + "-" + "01";
// 查询近一年的指数值【包括本月】
List<PmTotalTrendDTO> list = screenAnGrassRootsPmTotalMonthlyDao.selectPmTotalTrend(formDTO.getAgencyId(), curDate);
List<String> xAxis = list.stream().map(item -> getMonth(item.getMonthId())).collect(Collectors.toList()); List<String> xAxis = list.stream().map(item -> getMonth(item.getMonthId())).collect(Collectors.toList());
List<Integer> groupMemberTotalList = list.stream().map(PmTotalTrendDTO::getGroupMemberTotal).collect(Collectors.toList()); List<Integer> groupMemberTotalList = list.stream().map(PmTotalTrendDTO::getGroupMemberTotal).collect(Collectors.toList());
List<Integer> topicTotalList = list.stream().map(PmTotalTrendDTO::getTopicTotal).collect(Collectors.toList()); List<Integer> topicTotalList = list.stream().map(PmTotalTrendDTO::getTopicTotal).collect(Collectors.toList());
@ -127,14 +130,6 @@ public class AnScreenServiceImpl implements AnScreenService {
public GrassRootsOrgTrendResultDTO grassRootsOrgTrend(AnScreenTrendFormDTO formDTO) { public GrassRootsOrgTrendResultDTO grassRootsOrgTrend(AnScreenTrendFormDTO formDTO) {
GrassRootsOrgTrendResultDTO resultDTO = new GrassRootsOrgTrendResultDTO(); GrassRootsOrgTrendResultDTO resultDTO = new GrassRootsOrgTrendResultDTO();
// 1. x轴
// List<String> xAxis = new ArrayList<>();
// if(StringUtils.isNotBlank(formDTO.getMonthId())){
// xAxis = partyMemberLeadServiceImpl.getXproEndMonth(formDTO.getMonthId());
// }else{
// xAxis = partyMemberLeadServiceImpl.getXPro();
// }
String monthId = StringUtils.isNotBlank(formDTO.getMonthId()) ? formDTO.getMonthId() : DateUtils.format(new Date(), DateUtils.DATE_PATTERN_YYYYMM); String monthId = StringUtils.isNotBlank(formDTO.getMonthId()) ? formDTO.getMonthId() : DateUtils.format(new Date(), DateUtils.DATE_PATTERN_YYYYMM);
String curDate = monthId.substring(0, 4) + "-" + monthId.substring(4, 6) + "-" + "01"; String curDate = monthId.substring(0, 4) + "-" + monthId.substring(4, 6) + "-" + "01";
// 查询近一年的指数值【包括本月】 // 查询近一年的指数值【包括本月】

49
epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnGrassRootsPmTotalMonthlyDao.xml

@ -15,20 +15,37 @@
</select> </select>
<select id="selectPmTotalTrend" resultType="com.epmet.evaluationindex.screen.dto.result.PmTotalTrendDTO"> <select id="selectPmTotalTrend" resultType="com.epmet.evaluationindex.screen.dto.result.PmTotalTrendDTO">
SELECT SELECT
MONTH_ID, d.`month` MONTH_ID,
GROUP_MEMBER_TOTAL, IFNULL(s.GROUP_MEMBER_TOTAL, 0) GROUP_MEMBER_TOTAL,
TOPIC_TOTAL, IFNULL(s.TOPIC_TOTAL, 0) TOPIC_TOTAL,
TOPIC_PARTI_USER_TOTAL, IFNULL(s.TOPIC_PARTI_USER_TOTAL, 0) TOPIC_PARTI_USER_TOTAL,
ISSUE_TOTAL IFNULL(s.ISSUE_TOTAL, 0) ISSUE_TOTAL
FROM FROM(
screen_an_grass_roots_pm_total_monthly SELECT DATE_FORMAT(#{curDate}, '%Y%m') AS `month`
WHERE UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 1 MONTH), '%Y%m') AS `month`
DEL_FLAG = '0' UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 2 MONTH), '%Y%m') AS `month`
AND ORG_ID = #{agencyId} UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 3 MONTH), '%Y%m') AS `month`
<if test="monthId != null and monthId.trim() != ''"> UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 4 MONTH), '%Y%m') AS `month`
AND MONTH_ID &lt;= #{monthId} UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 5 MONTH), '%Y%m') AS `month`
</if> UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 6 MONTH), '%Y%m') AS `month`
ORDER BY MONTH_ID ASC UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 7 MONTH), '%Y%m') AS `month`
LIMIT 12 UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 8 MONTH), '%Y%m') AS `month`
UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 9 MONTH), '%Y%m') AS `month`
UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 10 MONTH), '%Y%m') AS `month`
UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 11 MONTH), '%Y%m') AS `month`
) d LEFT JOIN (
SELECT
MONTH_ID,
GROUP_MEMBER_TOTAL,
TOPIC_TOTAL,
TOPIC_PARTI_USER_TOTAL,
ISSUE_TOTAL
FROM
screen_an_grass_roots_pm_total_monthly
WHERE
DEL_FLAG = '0'
AND ORG_ID = #{agencyId}
) s ON d.`month` = s.MONTH_ID
ORDER BY MONTH_ID
</select> </select>
</mapper> </mapper>

Loading…
Cancel
Save