Browse Source

LinkedList

master
sunyuchao 4 years ago
parent
commit
59418ae427
  1. 28
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java
  2. 21
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/FactAgencyProjectMonthResultDTO.java
  3. 12
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/FactAgencyProjectResultDTO.java
  4. 4
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectTotalFormDTO.java
  5. 4
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectMonthIncrResultDTO.java
  6. 5
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java
  7. 7
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java
  8. 7
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java
  9. 10
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
  10. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java
  11. 27
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java
  12. 14
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml

28
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java

@ -11,6 +11,7 @@ package com.epmet.commons.tools.utils;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.form.TimeListResultDTO;
import com.google.common.collect.Maps;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
@ -917,4 +918,31 @@ public class DateUtils {
return new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD).format(time);
}
/**
* @Author sun
* @Description 获取dateId对应上一个月过去12个月的monthId
* dateId yyyymmdd
* 20211201 -> 202012-202111的值
**/
public static LinkedHashMap<String,String> getXproSub(String dateId){
java.time.format.DateTimeFormatter fmt = java.time.format.DateTimeFormatter.ofPattern("yyyyMM");
LinkedHashMap<String,String> xAxis = new LinkedHashMap<>();
Calendar cal=Calendar.getInstance();
cal.setTime(DateUtils.parseDate(dateId, DateUtils.DATE_PATTERN_YYYYMMDD));
TimeZone tz = cal.getTimeZone();
ZoneId zid = tz == null ? ZoneId.systemDefault() : tz.toZoneId();
java.time.LocalDate today = java.time.LocalDateTime.ofInstant(cal.toInstant(), zid).toLocalDate();
//java.time.LocalDate today = java.time.LocalDate.now();
for(int i = NumConstant.TWELVE;i > NumConstant.ZERO; i--){
java.time.LocalDate localDate = today.minusMonths(i);
String s = localDate.getMonth().getValue() + "月";
xAxis.put(localDate.format(fmt),s);
}
LinkedHashMap<String, String> result = Maps.newLinkedHashMap();
xAxis.entrySet().stream().sorted(Map.Entry.comparingByKey())
.forEachOrdered((e -> result.put(e.getKey(),e.getValue())));
return result;
}
}

21
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/FactAgencyProjectMonthResultDTO.java

@ -0,0 +1,21 @@
package com.epmet.dataaggre.dto.datastats.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 项目月数据-接口返参
* @Auth sun
*/
@Data
public class FactAgencyProjectMonthResultDTO implements Serializable {
private static final long serialVersionUID = 466974582608407121L;
//组织Id
private String agencyId;
//月维度Id
private String monthId;
//当月项目总数 【当前组织及下级前一月新增项目数】
private Integer projectIncr = 0;
}

12
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/FactAgencyProjectResultDTO.java

@ -19,17 +19,17 @@ public class FactAgencyProjectResultDTO implements Serializable {
private String agencyId;
//组织名称
private String dateId;
//问题解决总数
//月维度Id
private String monthId;
//党群自治占比
//项目总数
private Integer projectTotal = 0;
//网格自治占比
//处理中项目数
private Integer pendingTotal = 0;
//社区解决占比
//处理中项目占比
private String pendingRatio = "0%";
//区直部门解决占比
//已结案中项目数
private Integer closedTotal = 0;
//街道解决占比
//已结案中项目占比
private String closedRatio = "0%";
}

4
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectTotalFormDTO.java

@ -36,5 +36,9 @@ public class ProjectTotalFormDTO implements Serializable {
private String yeDateId;
//较dateId上月的monthId值
private String monthId;
//查询数据起始月份Id
private String startMonth;
//查询数据结束月份Id
private String endMonth;
}

4
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectMonthIncrResultDTO.java

@ -13,8 +13,8 @@ public class ProjectMonthIncrResultDTO implements Serializable {
private static final long serialVersionUID = 6188316867855643263L;
//横坐标值
private String value;
private Integer value;
//横坐标
private Integer type;
private String type;
}

5
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java

@ -17,6 +17,7 @@ import com.epmet.dataaggre.service.govproject.GovProjectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.LinkedList;
import java.util.List;
/**
@ -75,9 +76,9 @@ public class GovProjectController {
* @author sun
*/
@PostMapping("projectmonthincr")
public Result<List<ProjectMonthIncrResultDTO>> projectMonthIncr(@RequestBody ProjectTotalFormDTO formDTO) {
public Result<LinkedList<ProjectMonthIncrResultDTO>> projectMonthIncr(@RequestBody ProjectTotalFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, ProjectTotalFormDTO.Monthincr.class);
return new Result<List<ProjectMonthIncrResultDTO>>().ok(govProjectService.projectMonthIncr(formDTO));
return new Result<LinkedList<ProjectMonthIncrResultDTO>>().ok(govProjectService.projectMonthIncr(formDTO));
}
/**

7
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java

@ -25,6 +25,7 @@ import com.epmet.dataaggre.dto.datastats.result.*;
import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO;
import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO;
import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO;
import com.epmet.dataaggre.dto.govproject.result.ProjectMonthIncrResultDTO;
import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO;
import com.epmet.dataaggre.entity.datastats.DimAgencyEntity;
@ -342,4 +343,10 @@ public interface DataStatsDao {
* @author sun
*/
List<FactAgencyProjectResultDTO> getProjectTotal(ProjectTotalFormDTO formDTO);
/**
* @Description 查询dateId的上一月过去12个月份组织项目数据
* @author sun
*/
List<FactAgencyProjectMonthResultDTO> getProjectMonthIncr(ProjectTotalFormDTO formDTO);
}

7
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java

@ -7,6 +7,7 @@ import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO;
import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO;
import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO;
import com.epmet.dataaggre.dto.govproject.result.ProjectMonthIncrResultDTO;
import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO;
@ -253,4 +254,10 @@ public interface DataStatsService {
* @author sun
*/
List<FactAgencyProjectResultDTO> getProjectTotal(ProjectTotalFormDTO formDTO);
/**
* @Description 查询dateId的上一月过去12个月份组织项目数据
* @author sun
*/
List<FactAgencyProjectMonthResultDTO> getProjectMonthIncr(ProjectTotalFormDTO formDTO);
}

10
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java

@ -24,6 +24,7 @@ import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO;
import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO;
import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO;
import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO;
import com.epmet.dataaggre.dto.govproject.result.ProjectMonthIncrResultDTO;
import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO;
import com.epmet.dataaggre.entity.datastats.DimAgencyEntity;
@ -2124,5 +2125,14 @@ public class DataStatsServiceImpl implements DataStatsService {
return dataStatsDao.getProjectTotal(formDTO);
}
/**
* @Description 查询dateId的上一月过去12个月份组织项目数据
* @author sun
*/
@Override
public List<FactAgencyProjectMonthResultDTO> getProjectMonthIncr(ProjectTotalFormDTO formDTO) {
return dataStatsDao.getProjectMonthIncr(formDTO);
}
}

3
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java

@ -7,6 +7,7 @@ import com.epmet.dataaggre.dto.govproject.form.ProjectDistributionFormDTO;
import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO;
import com.epmet.dataaggre.dto.govproject.result.*;
import java.util.LinkedList;
import java.util.List;
/**
@ -61,7 +62,7 @@ public interface GovProjectService {
* @Description 赋能平台项目处理分析进12月新增项目折线图
* @author sun
*/
List<ProjectMonthIncrResultDTO> projectMonthIncr(ProjectTotalFormDTO formDTO);
LinkedList<ProjectMonthIncrResultDTO> projectMonthIncr(ProjectTotalFormDTO formDTO);
/**
* @Description 赋能平台项目处理分析按状态查询项目列表

27
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java

@ -10,6 +10,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.constant.ProjectConstant;
import com.epmet.dataaggre.dao.govproject.ProjectDao;
import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectMonthResultDTO;
import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectResultDTO;
import com.epmet.dataaggre.dto.govissue.result.IssueInfoDTO;
import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO;
@ -294,8 +295,30 @@ public class GovProjectServiceImpl implements GovProjectService {
* @author sun
*/
@Override
public List<ProjectMonthIncrResultDTO> projectMonthIncr(ProjectTotalFormDTO formDTO) {
return null;
public LinkedList<ProjectMonthIncrResultDTO> projectMonthIncr(ProjectTotalFormDTO formDTO) {
LinkedList<ProjectMonthIncrResultDTO> resultList = new LinkedList<>();
//1.获取起始终止月份值
LinkedHashMap<String, String> map = DateUtils.getXproSub(formDTO.getDateId());
List<String> monthIdList = map.keySet().stream().collect(Collectors.toList());
formDTO.setStartMonth(monthIdList.get(NumConstant.ZERO));
formDTO.setEndMonth(monthIdList.get(NumConstant.ELEVEN));
//2.查询dateId的上一月过去12个月份数据【2021-12-08 数据是202012到202111的数据】
List<FactAgencyProjectMonthResultDTO> list = dataStatsService.getProjectMonthIncr(formDTO);
//3.封装数据并返回
map.forEach((k, v) -> {
ProjectMonthIncrResultDTO dto = new ProjectMonthIncrResultDTO();
dto.setType(v);
list.forEach(l -> {
if (k.equals(l.getMonthId())) {
dto.setValue(l.getProjectIncr());
}
});
resultList.add(dto);
});
return resultList;
}
/**

14
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml

@ -1083,4 +1083,18 @@
ORDER BY a.date_id DESC
</select>
<select id="getProjectMonthIncr" resultType="com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectMonthResultDTO">
SELECT
agency_id,
month_id,
project_incr
FROM
fact_agency_project_monthly
WHERE
agency_id = #{agencyId}
AND month_id &gt;= #{startMonth}
AND month_id <![CDATA[ <= ]]> #{endMonth}
ORDER BY month_id ASC
</select>
</mapper>

Loading…
Cancel
Save