Browse Source

修改新村事件办理情况分析

master
luyan 2 years ago
parent
commit
472b6b10d3
  1. 2
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/GridOrVillageEventRateResultDTO.java
  2. 2
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/IcEventDao.java
  3. 11
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java
  4. 24
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml

2
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/GridOrVillageEventRateResultDTO.java

@ -20,6 +20,8 @@ public class GridOrVillageEventRateResultDTO implements Serializable {
*/
private String agencyName;
private String gridId;
/**
* 完结事件数量
*/

2
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/IcEventDao.java

@ -215,5 +215,5 @@ public interface IcEventDao extends BaseDao<IcEventEntity> {
List<IcEventResultDTO> getListBySourceTypeOrEventType(@Param("orgIdPath") String orgPath, @Param("sourceType") String sourceType, @Param("eventType") String eventType);
GridOrVillageEventRateResultDTO getEventRateByGridIds(@Param("orgId") String orgId);
List<GridOrVillageEventRateResultDTO> getEventRateByGridIds(@Param("orgIds") List<String> orgIds);
}

11
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java

@ -2013,14 +2013,19 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
if (StringUtils.isNotEmpty(agencyId)) {
List<IcEventAnalysisOrgResDTO> orgs = getSubOrgs(agencyId);
if (null != orgs && orgs.size() > 0) {
Map<String, String> namesMap = new HashMap<>();
for (IcEventAnalysisOrgResDTO org : orgs) {
GridOrVillageEventRateResultDTO dto = baseDao.getEventRateByGridIds(org.getOrgId());
namesMap.put(org.getOrgId(), org.getOrgName());
}
List<String> ids = orgs.stream().map(IcEventAnalysisOrgResDTO::getOrgId).collect(Collectors.toList());
List<GridOrVillageEventRateResultDTO> resultList = baseDao.getEventRateByGridIds(ids);
for (GridOrVillageEventRateResultDTO dto : resultList) {
if (null != dto) {
dto.setAgencyName(org.getOrgName());
dto.setAgencyName(namesMap.get(dto.getGridId()));
dto.setRate(dto.getRate() == null ? 0 : dto.getRate());
dtoList.add(dto);
} else {
dto.setAgencyName(org.getOrgName());
dto.setAgencyName(namesMap.get(dto.getGridId()));
dto.setRate(0.00);
dto.setTotal(0);
dtoList.add(dto);

24
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml

@ -675,28 +675,40 @@
<select id="getEventRateByGridIds" resultType="com.epmet.dto.result.GridOrVillageEventRateResultDTO">
SELECT
ea.total AS total,
ea.gridId AS gridId,
eb.total,
ROUND(eb.total/ea.total,2) as rate
ROUND(eb.total/ea.total,2) AS rate
FROM
(
SELECT count( e.id ) AS total FROM ic_event e
SELECT
count( e.id ) AS total,
e.GRID_ID AS gridId
FROM ic_event e
LEFT JOIN ic_event_reply r ON r.IC_EVENT_ID = e.ID
<where>
e.DEL_FLAG = 0
<if test="null != orgId and orgId !=''">
AND e.GRID_ID = #{orgId}
<if test="null != orgIds and orgIds.size >0">
AND e.GRID_ID IN(
<foreach collection="orgIds" item="orgId" separator=",">
#{orgId}
</foreach>)
</if>
</where>
GROUP BY e.GRID_ID
) ea,
(
SELECT count( e.id ) AS total FROM ic_event e
LEFT JOIN ic_event_reply r ON r.IC_EVENT_ID = e.ID
<where>
e.DEL_FLAG = 0 AND r.MANAGE_STATUS = 3
<if test="null != orgId and orgId !=''">
AND e.GRID_ID = #{orgId}
<if test="null != orgIds and orgIds.size >0">
AND e.GRID_ID IN(
<foreach collection="orgIds" item="orgId" separator=",">
#{orgId}
</foreach>)
</if>
</where>
GROUP BY e.GRID_ID
) eb
</select>

Loading…
Cancel
Save