diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/constant/IssueConstant.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/constant/IssueConstant.java
new file mode 100644
index 0000000000..88d4f44c78
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/constant/IssueConstant.java
@@ -0,0 +1,14 @@
+package com.epmet.issue.constant;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/6/22 14:07
+ */
+public interface IssueConstant {
+ String MONTH = "month";
+ String DATE = "date";
+ String VOTING_NAME = "表决中";
+ String SHIFT_NAME = "已转项目";
+ String CLOSED_NAME = "已关闭";
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/form/IssueIncrtrendFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/form/IssueIncrtrendFormDTO.java
new file mode 100644
index 0000000000..b4577b2811
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/form/IssueIncrtrendFormDTO.java
@@ -0,0 +1,19 @@
+package com.epmet.issue.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/6/22 16:32
+ */
+@Data
+public class IssueIncrtrendFormDTO implements Serializable {
+ private static final long serialVersionUID = 4408419854627376175L;
+ /**
+ * 类型,按日date 按月month
+ */
+ private String type;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueDataDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueDataDTO.java
new file mode 100644
index 0000000000..961727e31c
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueDataDTO.java
@@ -0,0 +1,206 @@
+package com.epmet.issue.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/6/22 14:11
+ */
+@Data
+public class IssueDataDTO implements Serializable {
+
+ private static final long serialVersionUID = 9136989870868730175L;
+ /**
+ * 组织ID
+ */
+ private String agencyId;
+
+ /**
+ * 组织名
+ */
+ private String agencyName;
+
+ /**
+ * 网格ID
+ */
+ private String gridId;
+
+ /**
+ * 网格名
+ */
+ private String gridName;
+
+ /**
+ * 年度ID
+ */
+ private String yearId;
+
+ /**
+ * 年度名
+ */
+ private String yearName;
+
+ /**
+ * 季度ID
+ */
+ private String quarterId;
+
+ /**
+ * 季度名
+ */
+ private String quarterName;
+
+ /**
+ * 月度ID
+ */
+ private String monthId;
+
+ /**
+ * 月度名
+ */
+ private String monthName;
+
+ /**
+ * 周ID
+ */
+ private String weekId;
+
+ /**
+ * 日期ID
+ */
+ private String dateId;
+
+ /**
+ * 日期名
+ */
+ private String dateName;
+
+ /**
+ * 当日议题增量
+ */
+ private Integer issueIncr;
+
+ /**
+ * 议题总数
+ */
+ private Integer issueTotal;
+
+ /**
+ * 当日已转项目的议题数增量
+ */
+ private Integer shiftProjectIncr;
+
+ /**
+ * 已转项目的议题总数
+ */
+ private Integer shiftProjectTotal;
+
+ /**
+ * 已转项目所占百分比
+ */
+ private BigDecimal shiftProjectPercent;
+
+ /**
+ * 当日表决中议题数增量
+ */
+ private Integer votingIncr;
+
+ /**
+ * 表决中议题总数
+ */
+ private Integer votingTotal;
+
+ /**
+ * 表决中议题所占百分比
+ */
+ private BigDecimal votingPercent;
+
+ /**
+ * 当日已关闭议题数增量
+ */
+ private Integer closedIncr;
+
+ /**
+ * 当日已关闭议题中已解决数量
+ */
+ private Integer closedResolvedIncr;
+
+ /**
+ * 当日已关闭议题中无需解决数量
+ */
+ private Integer closedUnresolvedIncr;
+
+ /**
+ * 已关闭议题总数
+ */
+ private Integer closedTotal;
+
+ /**
+ * 已关闭议题中已解决总数
+ */
+ private Integer closedResolvedTotal;
+
+ /**
+ * 已关闭议题中未解决总数
+ */
+ private Integer closedUnresolvedTotal;
+
+ /**
+ * 已关闭议题所占百分比
+ */
+ private BigDecimal closedPercent;
+
+ /**
+ * 已关闭议题中已解决百分比
+ */
+ private BigDecimal closedResolvedPercent;
+
+ /**
+ * 已关闭议题中未解决百分比
+ */
+ private BigDecimal closedUnresolvedPercent;
+
+ /**
+ * 当日已结案议题数
+ */
+ private Integer closedCaseIncr;
+
+ /**
+ * 当日已结案议题中已解决数
+ */
+ private Integer closedCaseResolvedIncr;
+
+ /**
+ * 当日已结案议题中未解决数
+ */
+ private Integer closedCaseUnresolvedIncr;
+
+ /**
+ * 已结案议题总数
+ */
+ private Integer closedCaseTotal;
+
+ /**
+ * 已结案议题中已解决总数
+ */
+ private Integer closedCaseResolvedTotal;
+
+ /**
+ * 已结案议题中未解决总数
+ */
+ private Integer closedCaseUnresolvedTotal;
+
+ /**
+ * 已结案议题中已解决百分比
+ */
+ private BigDecimal closedCaseResolvedPercent;
+
+ /**
+ * 已结案议题中未解决百分比
+ */
+ private BigDecimal closedCaseUnresolvedPercent;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueIncrtrendResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueIncrtrendResultDTO.java
new file mode 100644
index 0000000000..d63d332a9b
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueIncrtrendResultDTO.java
@@ -0,0 +1,30 @@
+package com.epmet.issue.dto.result;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/6/22 16:30
+ */
+@NoArgsConstructor
+@Data
+public class IssueIncrtrendResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 7762529188251385355L;
+ /**
+ * 日期
+ */
+ private String date;
+ /**
+ * 状态(表决中,已转项目,已关闭)
+ */
+ private String type;
+ /**
+ * 数量
+ */
+ private Integer value;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueSubAgencyResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueSubAgencyResultDTO.java
new file mode 100644
index 0000000000..c401d5ecc4
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueSubAgencyResultDTO.java
@@ -0,0 +1,34 @@
+package com.epmet.issue.dto.result;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/6/22 16:24
+ */
+@NoArgsConstructor
+@Data
+public class IssueSubAgencyResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 2640337888693960513L;
+ /**
+ * 组织ID
+ */
+ private String agencyId;
+ /**
+ * 组织名
+ */
+ private String name;
+ /**
+ * 类型 表决中,已转项目,已关闭
+ */
+ private String type;
+ /**
+ * 数量
+ */
+ private Integer value;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueSubGridResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueSubGridResultDTO.java
new file mode 100644
index 0000000000..3313f0a8e7
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueSubGridResultDTO.java
@@ -0,0 +1,27 @@
+package com.epmet.issue.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/6/22 16:27
+ */
+@Data
+public class IssueSubGridResultDTO implements Serializable {
+ private static final long serialVersionUID = -3318384216762207856L;
+ /**
+ * 网格名
+ */
+ private String name;
+ /**
+ * 类型 表决中,已转项目,已关闭
+ */
+ private String type;
+ /**
+ * 数量
+ */
+ private Integer value;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueSummaryInfoResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueSummaryInfoResultDTO.java
new file mode 100644
index 0000000000..c53707c0a1
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueSummaryInfoResultDTO.java
@@ -0,0 +1,54 @@
+package com.epmet.issue.dto.result;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/6/22 16:17
+ */
+@NoArgsConstructor
+@Data
+public class IssueSummaryInfoResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -7959140755148294338L;
+ /**
+ * 机关ID
+ */
+ private String agencyId;
+ /**
+ * 议题总数
+ */
+ private Integer issueTotal;
+ /**
+ * 表决中数量
+ */
+ private Integer votingTotal;
+ /**
+ * 已转项目数量
+ */
+ private Integer shiftProjectTotal;
+ /**
+ * 已关闭数量
+ */
+ private Integer closedTotal;
+ /**
+ * 表决中占比
+ */
+ private String votingRatio;
+ /**
+ * 已转项目占比
+ */
+ private String shiftProjectRatio;
+ /**
+ * 已关闭占比
+ */
+ private String closedRatio;
+ /**
+ * 更新至日期
+ */
+ private String dateName;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueSummaryPieResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueSummaryPieResultDTO.java
new file mode 100644
index 0000000000..f6940edeeb
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/dto/result/IssueSummaryPieResultDTO.java
@@ -0,0 +1,30 @@
+package com.epmet.issue.dto.result;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/6/22 16:21
+ */
+@NoArgsConstructor
+@Data
+public class IssueSummaryPieResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -971115426789868580L;
+ /**
+ * 名称 表决中,已转项目,已关闭
+ */
+ private String name;
+ /**
+ * 值
+ */
+ private Integer value;
+ /**
+ * 百分比
+ */
+ private String ratio;
+}
diff --git a/epmet-module/data-report/data-report-server/pom.xml b/epmet-module/data-report/data-report-server/pom.xml
index d6dd66a273..d0933af706 100644
--- a/epmet-module/data-report/data-report-server/pom.xml
+++ b/epmet-module/data-report/data-report-server/pom.xml
@@ -112,7 +112,7 @@
123456
- false
+ true
122.152.200.70:8848
fcd6fc8f-ca3a-4b01-8026-2b05cdc5976b
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/issue/controller/IssueController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/issue/controller/IssueController.java
new file mode 100644
index 0000000000..39b61b637a
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/issue/controller/IssueController.java
@@ -0,0 +1,95 @@
+package com.epmet.module.issue.controller;
+
+import com.epmet.commons.tools.annotation.LoginUser;
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.issue.dto.form.IssueIncrtrendFormDTO;
+import com.epmet.issue.dto.result.*;
+import com.epmet.module.issue.service.IssueService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/6/22 13:47
+ */
+@RestController
+@RequestMapping("issue")
+public class IssueController {
+ @Autowired
+ private IssueService issueService;
+
+ /**
+ * 数据汇总
+ *
+ * @param tokenDto
+ * @return com.epmet.commons.tools.utils.Result
+ * @author zhaoqifeng
+ * @date 2020/6/22 17:31
+ */
+ @PostMapping("summaryinfo")
+ public Result getSummaryInfo(@LoginUser TokenDto tokenDto) {
+ return new Result().ok(issueService.getSummaryInfo(tokenDto));
+ }
+
+ /**
+ * 数据汇总饼状图
+ *
+ * @param tokenDto
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhaoqifeng
+ * @date 2020/6/22 17:31
+ */
+ @PostMapping("summarypie")
+ public Result> getSummaryPie(@LoginUser TokenDto tokenDto) {
+ return new Result>().ok(issueService.getSummaryPie(tokenDto));
+ }
+
+ /**
+ * 下级机关议题统计
+ *
+ * @param tokenDto
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhaoqifeng
+ * @date 2020/6/22 17:31
+ */
+ @PostMapping("subagency")
+ public Result> getSubAgency(@LoginUser TokenDto tokenDto) {
+ return new Result>().ok(issueService.getSubAgency(tokenDto));
+ }
+
+ /**
+ * 网格议题统计
+ *
+ * @param tokenDto
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhaoqifeng
+ * @date 2020/6/22 17:31
+ */
+ @PostMapping("subgrid")
+ public Result> getSubGrid(@LoginUser TokenDto tokenDto) {
+ return new Result>().ok(issueService.getSubGrid(tokenDto));
+ }
+
+ /**
+ * 议题分析
+ *
+ * @param tokenDto
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhaoqifeng
+ * @date 2020/6/22 17:31
+ */
+ @PostMapping("incrtrend")
+ public Result> getIncrtrend(@LoginUser TokenDto tokenDto, @RequestBody IssueIncrtrendFormDTO formDTO) {
+ return new Result>().ok(issueService.getIncrtrend(tokenDto, formDTO));
+ }
+
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/issue/dao/IssueDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/issue/dao/IssueDao.java
new file mode 100644
index 0000000000..bd530dd616
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/issue/dao/IssueDao.java
@@ -0,0 +1,60 @@
+package com.epmet.module.issue.dao;
+
+import com.epmet.issue.dto.result.IssueDataDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/6/22 13:48
+ */
+@Mapper
+public interface IssueDao {
+ /**
+ * 获取当前机关统计信息
+ * @author zhaoqifeng
+ * @date 2020/6/22 15:19
+ * @param agencyId
+ * @return com.epmet.issue.dto.result.IssueDataDTO
+ */
+ IssueDataDTO selectAgencyInfo(@Param("agencyId") String agencyId);
+
+ /**
+ * 获取下级机关统计信息
+ * @author zhaoqifeng
+ * @date 2020/6/22 15:20
+ * @param agencyId
+ * @return java.util.List
+ */
+ List selectSubAgencyList(@Param("agencyId") String agencyId);
+
+ /**
+ * 获取机关下网格统计信息
+ * @author zhaoqifeng
+ * @date 2020/6/22 15:21
+ * @param agencyId
+ * @return java.util.List
+ */
+ List selectGridList(@Param("agencyId") String agencyId);
+
+ /**
+ * 获取当前机关日增量
+ * @author zhaoqifeng
+ * @date 2020/6/22 15:22
+ * @param agencyId
+ * @return java.util.List
+ */
+ List selectAgencyIncDailyList(@Param("agencyId") String agencyId);
+
+ /**
+ * 获取当前机关月增量
+ * @author zhaoqifeng
+ * @date 2020/6/22 15:23
+ * @param agencyId
+ * @return java.util.List
+ */
+ List selectAgencyIncMonthlyList(@Param("agencyId") String agencyId);
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/issue/service/IssueService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/issue/service/IssueService.java
new file mode 100644
index 0000000000..410930bffe
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/issue/service/IssueService.java
@@ -0,0 +1,65 @@
+package com.epmet.module.issue.service;
+
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.issue.dto.form.IssueIncrtrendFormDTO;
+import com.epmet.issue.dto.result.*;
+
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/6/22 13:48
+ */
+public interface IssueService {
+ /**
+ * 议题汇总
+ *
+ * @param tokenDto
+ * @return com.epmet.issue.dto.result.IssueSummaryInfoResultDTO
+ * @author zhaoqifeng
+ * @date 2020/6/22 16:40
+ */
+ IssueSummaryInfoResultDTO getSummaryInfo(TokenDto tokenDto);
+
+ /**
+ * 议题汇总饼状图
+ *
+ * @param tokenDto
+ * @return com.epmet.issue.dto.result.IssueSummaryPieResultDTO
+ * @author zhaoqifeng
+ * @date 2020/6/22 16:40
+ */
+ List getSummaryPie(TokenDto tokenDto);
+
+ /**
+ * 下级机关
+ *
+ * @param tokenDto
+ * @return java.util.List
+ * @author zhaoqifeng
+ * @date 2020/6/22 16:40
+ */
+ List getSubAgency(TokenDto tokenDto);
+
+ /**
+ * 网格
+ *
+ * @param tokenDto
+ * @return java.util.List
+ * @author zhaoqifeng
+ * @date 2020/6/22 16:41
+ */
+ List getSubGrid(TokenDto tokenDto);
+
+ /**
+ * 议题分析
+ *
+ * @param tokenDto
+ * @param formDTO
+ * @return java.util.List
+ * @author zhaoqifeng
+ * @date 2020/6/22 16:41
+ */
+ List getIncrtrend(TokenDto tokenDto, IssueIncrtrendFormDTO formDTO);
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/issue/service/impl/IssueServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/issue/service/impl/IssueServiceImpl.java
new file mode 100644
index 0000000000..562cfc25fc
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/issue/service/impl/IssueServiceImpl.java
@@ -0,0 +1,172 @@
+package com.epmet.module.issue.service.impl;
+
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.dto.form.LoginUserDetailsFormDTO;
+import com.epmet.dto.result.LoginUserDetailsResultDTO;
+import com.epmet.feign.EpmetUserOpenFeignClient;
+import com.epmet.issue.constant.IssueConstant;
+import com.epmet.issue.dto.form.IssueIncrtrendFormDTO;
+import com.epmet.issue.dto.result.*;
+import com.epmet.module.issue.dao.IssueDao;
+import com.epmet.module.issue.service.IssueService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/6/22 13:49
+ */
+@Service
+public class IssueServiceImpl implements IssueService {
+ @Autowired
+ private IssueDao issueDao;
+ @Autowired
+ private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
+ @Override
+ public IssueSummaryInfoResultDTO getSummaryInfo(TokenDto tokenDto) {
+ IssueSummaryInfoResultDTO result = new IssueSummaryInfoResultDTO();
+ String agencyId = getAgencyId(tokenDto);
+ IssueDataDTO data = issueDao.selectAgencyInfo(agencyId);
+ result.setAgencyId(agencyId);
+ result.setDateName(data.getDateName());
+ result.setIssueTotal(data.getIssueTotal());
+ result.setVotingTotal(data.getVotingTotal());
+ result.setShiftProjectTotal(data.getShiftProjectTotal());
+ result.setClosedTotal(data.getClosedTotal());
+ result.setVotingRatio(toRatio(data.getVotingPercent()));
+ result.setShiftProjectRatio(toRatio(data.getShiftProjectPercent()));
+ result.setClosedRatio(toRatio(data.getClosedPercent()));
+ return result;
+ }
+
+ @Override
+ public List getSummaryPie(TokenDto tokenDto) {
+ List list = new ArrayList<>();
+ String agencyId = getAgencyId(tokenDto);
+ IssueDataDTO data = issueDao.selectAgencyInfo(agencyId);
+ IssueSummaryPieResultDTO voting = new IssueSummaryPieResultDTO();
+ voting.setName(IssueConstant.VOTING_NAME);
+ voting.setValue(data.getVotingTotal());
+ voting.setRatio(toRatio(data.getVotingPercent()));
+ list.add(voting);
+ IssueSummaryPieResultDTO shift = new IssueSummaryPieResultDTO();
+ shift.setName(IssueConstant.SHIFT_NAME);
+ shift.setValue(data.getShiftProjectTotal());
+ shift.setRatio(toRatio(data.getShiftProjectPercent()));
+ list.add(shift);
+ IssueSummaryPieResultDTO closed = new IssueSummaryPieResultDTO();
+ closed.setName(IssueConstant.CLOSED_NAME);
+ closed.setValue(data.getClosedTotal());
+ closed.setRatio(toRatio(data.getClosedPercent()));
+ list.add(closed);
+ return list;
+ }
+
+ @Override
+ public List getSubAgency(TokenDto tokenDto) {
+ List list = new ArrayList<>();
+ String agencyId = getAgencyId(tokenDto);
+ List dataList = issueDao.selectSubAgencyList(agencyId);
+ if(null != dataList) {
+ dataList.forEach(data -> {
+ IssueSubAgencyResultDTO voting = new IssueSubAgencyResultDTO();
+ voting.setAgencyId(data.getAgencyId());
+ voting.setName(data.getAgencyName());
+ voting.setType(IssueConstant.VOTING_NAME);
+ voting.setValue(data.getVotingTotal());
+ list.add(voting);
+ IssueSubAgencyResultDTO shift = new IssueSubAgencyResultDTO();
+ shift.setAgencyId(data.getAgencyId());
+ shift.setName(data.getAgencyName());
+ shift.setType(IssueConstant.SHIFT_NAME);
+ shift.setValue(data.getShiftProjectTotal());
+ list.add(shift);
+ IssueSubAgencyResultDTO closed = new IssueSubAgencyResultDTO();
+ closed.setAgencyId(data.getAgencyId());
+ closed.setName(data.getAgencyName());
+ closed.setType(IssueConstant.CLOSED_NAME);
+ closed.setValue(data.getClosedTotal());
+ list.add(closed);
+ });
+ }
+ return list;
+ }
+
+ @Override
+ public List getSubGrid(TokenDto tokenDto) {
+ List list = new ArrayList<>();
+ String agencyId = getAgencyId(tokenDto);
+ List dataList = issueDao.selectGridList(agencyId);
+ if(null != dataList) {
+ dataList.forEach(data -> {
+ IssueSubGridResultDTO voting = new IssueSubGridResultDTO();
+ voting.setName(data.getGridName());
+ voting.setType(IssueConstant.VOTING_NAME);
+ voting.setValue(data.getVotingTotal());
+ list.add(voting);
+ IssueSubGridResultDTO shift = new IssueSubGridResultDTO();
+ shift.setName(data.getGridName());
+ shift.setType(IssueConstant.SHIFT_NAME);
+ shift.setValue(data.getShiftProjectTotal());
+ list.add(shift);
+ IssueSubGridResultDTO closed = new IssueSubGridResultDTO();
+ closed.setName(data.getGridName());
+ closed.setType(IssueConstant.CLOSED_NAME);
+ closed.setValue(data.getClosedTotal());
+ list.add(closed);
+ });
+ }
+ return list;
+ }
+
+ @Override
+ public List getIncrtrend(TokenDto tokenDto, IssueIncrtrendFormDTO formDTO) {
+ List list = new ArrayList<>();
+ String agencyId = getAgencyId(tokenDto);
+ List dataList;
+ if (IssueConstant.DATE.equals(formDTO.getType())) {
+ dataList = issueDao.selectAgencyIncDailyList(agencyId);
+ } else {
+ dataList = issueDao.selectAgencyIncMonthlyList(agencyId);
+ }
+ if (null != dataList) {
+ dataList.forEach(data -> {
+ IssueIncrtrendResultDTO voting = new IssueIncrtrendResultDTO();
+ voting.setDate(data.getDateName());
+ voting.setType(IssueConstant.VOTING_NAME);
+ voting.setValue(data.getVotingIncr());
+ list.add(voting);
+ IssueIncrtrendResultDTO shift = new IssueIncrtrendResultDTO();
+ shift.setDate(data.getDateName());
+ shift.setType(IssueConstant.SHIFT_NAME);
+ shift.setValue(data.getShiftProjectIncr());
+ list.add(shift);
+ IssueIncrtrendResultDTO closed = new IssueIncrtrendResultDTO();
+ closed.setDate(data.getDateName());
+ closed.setType(IssueConstant.CLOSED_NAME);
+ closed.setValue(data.getClosedIncr());
+ list.add(closed);
+ });
+ }
+ return list;
+ }
+
+ private String getAgencyId(TokenDto tokenDto) {
+ LoginUserDetailsFormDTO loginUserDetailsFormDTO = new LoginUserDetailsFormDTO();
+ loginUserDetailsFormDTO.setApp(tokenDto.getApp());
+ loginUserDetailsFormDTO.setClient(tokenDto.getClient());
+ loginUserDetailsFormDTO.setUserId(tokenDto.getUserId());
+ LoginUserDetailsResultDTO userInfo = epmetUserOpenFeignClient.getLoginUserDetails(loginUserDetailsFormDTO).getData();
+ String[] orgIdPath = userInfo.getOrgIdPath().split(":");
+ return orgIdPath[orgIdPath.length - 1];
+ }
+
+ private String toRatio(BigDecimal data) {
+ return data.stripTrailingZeros().toString().concat("%");
+ }
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml
new file mode 100644
index 0000000000..d558e62d86
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file