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 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); 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)) { if (StringUtils.isNotEmpty(agencyId)) {
List<IcEventAnalysisOrgResDTO> orgs = getSubOrgs(agencyId); List<IcEventAnalysisOrgResDTO> orgs = getSubOrgs(agencyId);
if (null != orgs && orgs.size() > 0) { if (null != orgs && orgs.size() > 0) {
Map<String, String> namesMap = new HashMap<>();
for (IcEventAnalysisOrgResDTO org : orgs) { 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) { if (null != dto) {
dto.setAgencyName(org.getOrgName()); dto.setAgencyName(namesMap.get(dto.getGridId()));
dto.setRate(dto.getRate() == null ? 0 : dto.getRate()); dto.setRate(dto.getRate() == null ? 0 : dto.getRate());
dtoList.add(dto); dtoList.add(dto);
} else { } else {
dto.setAgencyName(org.getOrgName()); dto.setAgencyName(namesMap.get(dto.getGridId()));
dto.setRate(0.00); dto.setRate(0.00);
dto.setTotal(0); dto.setTotal(0);
dtoList.add(dto); 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 id="getEventRateByGridIds" resultType="com.epmet.dto.result.GridOrVillageEventRateResultDTO">
SELECT SELECT
ea.total AS total, ea.total AS total,
ea.gridId AS gridId,
eb.total, eb.total,
ROUND(eb.total/ea.total,2) as rate ROUND(eb.total/ea.total,2) AS rate
FROM 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 LEFT JOIN ic_event_reply r ON r.IC_EVENT_ID = e.ID
<where> <where>
e.DEL_FLAG = 0 e.DEL_FLAG = 0
<if test="null != orgId and orgId !=''"> <if test="null != orgIds and orgIds.size >0">
AND e.GRID_ID = #{orgId} AND e.GRID_ID IN(
<foreach collection="orgIds" item="orgId" separator=",">
#{orgId}
</foreach>)
</if> </if>
</where> </where>
GROUP BY e.GRID_ID
) ea, ) ea,
( (
SELECT count( e.id ) AS total FROM ic_event e SELECT count( e.id ) AS total FROM ic_event e
LEFT JOIN ic_event_reply r ON r.IC_EVENT_ID = e.ID LEFT JOIN ic_event_reply r ON r.IC_EVENT_ID = e.ID
<where> <where>
e.DEL_FLAG = 0 AND r.MANAGE_STATUS = 3 e.DEL_FLAG = 0 AND r.MANAGE_STATUS = 3
<if test="null != orgId and orgId !=''"> <if test="null != orgIds and orgIds.size >0">
AND e.GRID_ID = #{orgId} AND e.GRID_ID IN(
<foreach collection="orgIds" item="orgId" separator=",">
#{orgId}
</foreach>)
</if> </if>
</where> </where>
GROUP BY e.GRID_ID
) eb ) eb
</select> </select>

Loading…
Cancel
Save