Browse Source

大屏excel导出:解决度

feature/dangjian
lichao 3 years ago
parent
commit
10a6048dcb
  1. 12
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/result/EventStatisticsResultDTO.java
  2. 7
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenDeptEventStatDao.java
  3. 5
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/excel/ScreenDataExportExcel.java
  4. 24
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenDeptEventStatServiceImpl.java
  5. 52
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/screen/ScreenDeptEventStatDao.xml

12
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/result/EventStatisticsResultDTO.java

@ -1,5 +1,7 @@
package com.elink.esua.epdc.dto.screen.result;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
@ -110,4 +112,14 @@ public class EventStatisticsResultDTO implements Serializable {
private Integer gridCommunityDealNum;
private Integer peopleNum;
/**
* 解决数
*/
private Integer resolveCount;
/**
* 解决率
*/
private String resolveRatio;
}

7
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenDeptEventStatDao.java

@ -93,6 +93,13 @@ public interface ScreenDeptEventStatDao extends BaseDao<ScreenDeptEventStatEntit
*/
List<EvaluationInfoResultDTO> getSatisfiedInfo(EventStatisticsFormDTO formDTO);
/**
* 导出满意数满意率
* @param formDTO
* @return
*/
List<EvaluationInfoResultDTO> getResolveInfo(EventStatisticsFormDTO formDTO);
/**
* 导出按时办结信息
* @param formDTO

5
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/excel/ScreenDataExportExcel.java

@ -65,4 +65,9 @@ public class ScreenDataExportExcel {
@ColumnWidth(20)
@ExcelProperty(value = "街道以下、部门办理诉求数", order = 18)
private Integer gridCommunityDealNum;
@ExcelProperty(value = "解决数", order = 19)
private Integer resolveCount;
@ColumnWidth(20)
@ExcelProperty(value = "解决率", order = 20)
private String resolveRatio;
}

24
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenDeptEventStatServiceImpl.java

@ -242,6 +242,9 @@ public class ScreenDeptEventStatServiceImpl extends BaseServiceImpl<ScreenDeptEv
// 获取红黄灯预警数
getYellowRedInfo(formDTO, resultDTOList);
// 组装解决信息
getResolveInfo(formDTO, resultDTOList);
return resultDTOList;
}
@ -266,6 +269,27 @@ public class ScreenDeptEventStatServiceImpl extends BaseServiceImpl<ScreenDeptEv
return resultDTOList;
}
/**
* 获取解决度和解决率
*
* @param formDTO
* @return
*/
private List<EventStatisticsResultDTO> getResolveInfo(EventStatisticsFormDTO formDTO, List<EventStatisticsResultDTO> resultDTOList) {
List<EvaluationInfoResultDTO> resultDto = baseDao.getResolveInfo(formDTO);
// 组装满意度信息
for (EventStatisticsResultDTO totalDto : resultDTOList) {
for (EvaluationInfoResultDTO childDto : resultDto) {
if (totalDto.getDeptId().equals(childDto.getDeptId())) {
totalDto.setResolveCount(childDto.getValue());
totalDto.setResolveRatio(childDto.getProportion());
break;
}
}
}
return resultDTOList;
}
/**
* 获取按期办结信息
*

52
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/screen/ScreenDeptEventStatDao.xml

@ -294,6 +294,58 @@
</select>
<select id="getResolveInfo" resultType="com.elink.esua.epdc.dto.item.result.EvaluationInfoResultDTO"
parameterType="com.elink.esua.epdc.dto.screen.form.EventStatisticsFormDTO">
SELECT
a.id AS deptId,
IFNULL(SUM(b.value), 0) AS value,
concat(ROUND(IFNULL(SUM(b.value) / SUM(b.total) * 100 , 0) ,2 ),'%') as proportion
FROM meta_sys_dept a
left join (
select
item.ALL_DEPT_IDS,
count((item.SOLUTION_INFO = '01' or item.SOLUTION_INFO = '02') or null) as value,
count(item.ID) as total
from epdc_item item
where item.DEL_FLAG = '0'
and item.IS_PEOPLE = '1'
and item.EVENT_ID is null
and item.ISSUE_ID is null
and item.SOLUTION_INFO is not null
and item.SOLUTION_INFO !=''
and ((SUBSTRING_INDEX(item.CATEGORY_FULL_NAME,'-',1) != '其他' and item.PEOPLE_FLAG = '0') or (item.PEOPLE_FLAG in ('1','2')))
<if test='"1" == statType'>
AND DATE_FORMAT(item.CREATED_TIME, '%Y-%m-%d') &lt;= #{statDate}
</if>
<if test='"2" == statType'>
AND DATE_FORMAT(item.CREATED_TIME, '%Y-%m') = #{statDate}
AND DATE_FORMAT(item.CREATED_TIME, '%Y-%m-%d') &lt;= #{startDate}
</if>
<if test='"3" == statType'>
AND DATE_FORMAT(item.CREATED_TIME, '%Y') = #{statDate}
AND DATE_FORMAT(item.CREATED_TIME, '%Y-%m-%d') &lt;= #{startDate}
</if>
<if test='"4" == statType'>
AND DATE_FORMAT(item.CREATED_TIME, '%Y-%m-%d') &gt;= #{startDate}
AND DATE_FORMAT(item.CREATED_TIME, '%Y-%m-%d') &lt;= #{endDate}
</if>
<if test="peopleFlag != null and peopleFlag != ''">
AND item.PEOPLE_FLAG = #{peopleFlag}
</if>
GROUP BY item.ALL_DEPT_IDS
) b ON b.ALL_DEPT_IDS LIKE CONCAT('%', a.id, '%')
WHERE a.del_flag = '0'
<if test="deptId != null and deptId != ''">
AND a.pid = #{deptId}
</if>
AND a.type_key != 'street_dept'
AND a.type_key != 'district_dept'
GROUP BY a.id
ORDER BY a.sort, CONVERT(a.`name` USING gbk) ASC
</select>
<select id="getOnTimeDealInfo" resultType="com.elink.esua.epdc.dto.item.result.OnTimeDealInfoResultDTO"
parameterType="com.elink.esua.epdc.dto.screen.form.EventStatisticsFormDTO">

Loading…
Cancel
Save