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 monthId
* @param curDate
* @return java.util.List<com.epmet.evaluationindex.screen.dto.result.PmTotalTrendDTO>
* @author zhaoqifeng
* @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)
public PmTotalTrendResultDTO pmTotalTrend(AnScreenTrendFormDTO formDTO) {
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<Integer> groupMemberTotalList = list.stream().map(PmTotalTrendDTO::getGroupMemberTotal).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) {
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 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 id="selectPmTotalTrend" resultType="com.epmet.evaluationindex.screen.dto.result.PmTotalTrendDTO">
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}
<if test="monthId != null and monthId.trim() != ''">
AND MONTH_ID &lt;= #{monthId}
</if>
ORDER BY MONTH_ID ASC
LIMIT 12
d.`month` MONTH_ID,
IFNULL(s.GROUP_MEMBER_TOTAL, 0) GROUP_MEMBER_TOTAL,
IFNULL(s.TOPIC_TOTAL, 0) TOPIC_TOTAL,
IFNULL(s.TOPIC_PARTI_USER_TOTAL, 0) TOPIC_PARTI_USER_TOTAL,
IFNULL(s.ISSUE_TOTAL, 0) ISSUE_TOTAL
FROM(
SELECT DATE_FORMAT(#{curDate}, '%Y%m') AS `month`
UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 1 MONTH), '%Y%m') AS `month`
UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 2 MONTH), '%Y%m') AS `month`
UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 3 MONTH), '%Y%m') AS `month`
UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 4 MONTH), '%Y%m') AS `month`
UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 5 MONTH), '%Y%m') AS `month`
UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 6 MONTH), '%Y%m') AS `month`
UNION SELECT DATE_FORMAT((#{curDate} - INTERVAL 7 MONTH), '%Y%m') AS `month`
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>
</mapper>
</mapper>

Loading…
Cancel
Save