Browse Source

Merge branch 'feature/zhy_updatepush'

hotfix/zhy
zhangyuan 4 years ago
parent
commit
c1b1fa6394
  1. 35
      epdc-cloud-analysis-pc/src/main/java/com/elink/esua/epdc/modules/screen/controller/ScreenGovernanceController.java
  2. 34
      epdc-cloud-analysis-pc/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenGovernanceDao.java
  3. 23
      epdc-cloud-analysis-pc/src/main/java/com/elink/esua/epdc/modules/screen/service/ScreenGovernanceService.java
  4. 73
      epdc-cloud-analysis-pc/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenGovernanceServiceImpl.java
  5. 688
      epdc-cloud-analysis-pc/src/main/resources/mapper/screen/ScreenGovernanceDao.xml

35
epdc-cloud-analysis-pc/src/main/java/com/elink/esua/epdc/modules/screen/controller/ScreenGovernanceController.java

@ -1,10 +1,12 @@
package com.elink.esua.epdc.modules.screen.controller; package com.elink.esua.epdc.modules.screen.controller;
import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.analysis.pc.screen.form.ScreenJobFormDTO;
import com.elink.esua.epdc.modules.screen.service.ScreenGovernanceService; import com.elink.esua.epdc.modules.screen.service.ScreenGovernanceService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; 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.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -31,9 +33,38 @@ public class ScreenGovernanceController {
* @date 2021/6/28 11:05 * @date 2021/6/28 11:05
*/ */
@PostMapping("governrankdatadaily") @PostMapping("governrankdatadaily")
public Result governrankdatadaily() { public Result governrankdatadaily(@RequestBody ScreenJobFormDTO formDto) {
log.info("<governrankdatadaily|治理能力排行数据(按日统计)数据>定时任务执行"); log.info("<governrankdatadaily|治理能力排行数据(按日统计)数据>定时任务执行");
return screenGovernanceService.governrankdatadaily(); return screenGovernanceService.governrankdatadaily(formDto);
} }
/**
* 02网格治理指数
*
* @param
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author zhy
* @date 2021/6/28 11:05
*/
@PostMapping("gridgoverndaily")
public Result gridgoverndaily(@RequestBody ScreenJobFormDTO formDto) {
log.info("<gridgoverndaily|网格治理指数(天)>定时任务执行");
return screenGovernanceService.gridgoverndaily(formDto);
}
/**
* 03组织治理指数
*
* @param
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author zhy
* @date 2021/6/28 11:05
*/
@PostMapping("agencygoverndaily")
public Result agencygoverndaily(@RequestBody ScreenJobFormDTO formDto) {
log.info("<agencygoverndaily|组织治理指数(天)>定时任务执行");
return screenGovernanceService.agencygoverndaily(formDto);
}
} }

34
epdc-cloud-analysis-pc/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenGovernanceDao.java

@ -1,8 +1,11 @@
package com.elink.esua.epdc.modules.screen.dao; package com.elink.esua.epdc.modules.screen.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.SysDeptDTO;
import com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenAgencyGovernDailyResultDTO;
import com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGovernRankDataDailyResultDTO; import com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGovernRankDataDailyResultDTO;
import com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGovernanceResultDTO; import com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGovernanceResultDTO;
import com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGridGovernDailyResultDTO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
@ -14,6 +17,16 @@ import java.util.List;
@Mapper @Mapper
public interface ScreenGovernanceDao extends BaseDao<ScreenGovernanceResultDTO> { public interface ScreenGovernanceDao extends BaseDao<ScreenGovernanceResultDTO> {
/**
* 获取街道列表
*
* @param
* @return java.util.List<com.elink.esua.epdc.dto.SysDeptDTO>
* @author zhy
* @date 2021/8/16 17:11
*/
List<SysDeptDTO> getStreetList();
/** /**
* 治理能力排行数据(按日统计)数据 * 治理能力排行数据(按日统计)数据
* 网格统计 * 网格统计
@ -47,4 +60,25 @@ public interface ScreenGovernanceDao extends BaseDao<ScreenGovernanceResultDTO>
*/ */
List<ScreenGovernRankDataDailyResultDTO> governrankdatadailyNoResp(); List<ScreenGovernRankDataDailyResultDTO> governrankdatadailyNoResp();
/**
* 网格治理指数
*
* @param
* @return java.util.List<com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGridGovernDailyResultDTO>
* @author zhy
* @date 2021/8/13 17:55
*/
List<ScreenGridGovernDailyResultDTO> gridgoverndaily();
/**
* 组织治理指数
*
* @param
* @return java.util.List<com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGridGovernDailyResultDTO>
* @author zhy
* @date 2021/8/13 17:55
*/
List<ScreenAgencyGovernDailyResultDTO> agencygoverndaily();
} }

23
epdc-cloud-analysis-pc/src/main/java/com/elink/esua/epdc/modules/screen/service/ScreenGovernanceService.java

@ -1,6 +1,7 @@
package com.elink.esua.epdc.modules.screen.service; package com.elink.esua.epdc.modules.screen.service;
import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.analysis.pc.screen.form.ScreenJobFormDTO;
/** /**
* 治理能力数据推送 * 治理能力数据推送
@ -18,6 +19,26 @@ public interface ScreenGovernanceService {
* @author zhy * @author zhy
* @date 2021/6/28 13:47 * @date 2021/6/28 13:47
*/ */
Result governrankdatadaily(); Result governrankdatadaily(ScreenJobFormDTO formDto);
/**
* 02网格治理指数
*
* @param
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author zhy
* @date 2021/6/28 13:47
*/
Result gridgoverndaily(ScreenJobFormDTO formDto);
/**
* 03组织治理指数
*
* @param
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author zhy
* @date 2021/6/28 13:47
*/
Result agencygoverndaily(ScreenJobFormDTO formDto);
} }

73
epdc-cloud-analysis-pc/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenGovernanceServiceImpl.java

@ -3,17 +3,24 @@ package com.elink.esua.epdc.modules.screen.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.EpmetConstant; import com.elink.esua.epdc.commons.tools.constant.EpmetConstant;
import com.elink.esua.epdc.commons.tools.utils.DateUtils;
import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.SysDeptDTO;
import com.elink.esua.epdc.dto.analysis.pc.screen.form.ScreenJobFormDTO;
import com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenAgencyGovernDailyResultDTO;
import com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGovernRankDataDailyResultDTO; import com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGovernRankDataDailyResultDTO;
import com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGovernanceResultDTO; import com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGovernanceResultDTO;
import com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGridGovernDailyResultDTO;
import com.elink.esua.epdc.modules.screen.dao.ScreenGovernanceDao; import com.elink.esua.epdc.modules.screen.dao.ScreenGovernanceDao;
import com.elink.esua.epdc.modules.screen.service.ScreenGovernanceService; import com.elink.esua.epdc.modules.screen.service.ScreenGovernanceService;
import com.elink.esua.epdc.utils.EpmetUtils; import com.elink.esua.epdc.utils.EpmetUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -33,16 +40,16 @@ public class ScreenGovernanceServiceImpl extends BaseServiceImpl<ScreenGovernanc
@Value("${epmet.config.customerId}") @Value("${epmet.config.customerId}")
private String EPMET_CONFIG_CUSTOMER_ID; private String EPMET_CONFIG_CUSTOMER_ID;
/**
* 榆山街道DEPT_ID
*/
private final String STREET_ID = "1258587398679126017";
@Override @Override
public Result governrankdatadaily() { public Result governrankdatadaily(ScreenJobFormDTO formDto) {
String yearMonthDay = DateUtils.formatNoSplit(DateUtils.addDateDays(new Date(), -1));
// if (formDto.getYearMonth() != null && StringUtils.isNotBlank(formDto.getYearMonth())) {
// yearMonthDay = formDto.getYearMonth();
// }
List<ScreenGovernRankDataDailyResultDTO> data = baseDao.governrankdatadaily(); List<ScreenGovernRankDataDailyResultDTO> data = baseDao.governrankdatadaily();
List<ScreenGovernRankDataDailyResultDTO> agencyData = baseDao.governrankdatadailyAgency(); List<ScreenGovernRankDataDailyResultDTO> agencyData = baseDao.governrankdatadailyAgency();
List<ScreenGovernRankDataDailyResultDTO> noRespData = baseDao.governrankdatadailyNoResp(); List<ScreenGovernRankDataDailyResultDTO> noRespData = baseDao.governrankdatadailyNoResp();
List<SysDeptDTO> streetList = baseDao.getStreetList();
// 处理未响应和项目转入次数 // 处理未响应和项目转入次数
noRespHandle(data, noRespData); noRespHandle(data, noRespData);
@ -57,15 +64,19 @@ public class ScreenGovernanceServiceImpl extends BaseServiceImpl<ScreenGovernanc
agencyResult.setTransferCount(agencyResult.getTransferCount() + item.getTransferCount()); agencyResult.setTransferCount(agencyResult.getTransferCount() + item.getTransferCount());
} }
}); });
// 街道数据需要在本身基础上再加上社区的合计
Optional<ScreenGovernRankDataDailyResultDTO> agencyOptional = agencyData.stream().filter(agency -> agency.getOrgId().equals(STREET_ID)).findFirst(); streetList.forEach(street -> {
if (agencyOptional.isPresent()) { String streetId = street.getId().toString();
ScreenGovernRankDataDailyResultDTO agencyResult = agencyOptional.get(); // 街道数据需要在本身基础上再加上社区的合计
Integer responseCount = agencyResult.getResponseCount() + agencyData.stream().filter(agency -> agency.getParentId().equals(STREET_ID)).mapToInt(ScreenGovernRankDataDailyResultDTO::getResponseCount).sum(); Optional<ScreenGovernRankDataDailyResultDTO> agencyOptional = agencyData.stream().filter(agency -> agency.getOrgId().equals(streetId)).findFirst();
Integer transferCount = agencyResult.getTransferCount() + agencyData.stream().filter(agency -> agency.getParentId().equals(STREET_ID)).mapToInt(ScreenGovernRankDataDailyResultDTO::getTransferCount).sum(); if (agencyOptional.isPresent()) {
agencyResult.setResponseCount(responseCount); ScreenGovernRankDataDailyResultDTO agencyResult = agencyOptional.get();
agencyResult.setTransferCount(transferCount); Integer responseCount = agencyResult.getResponseCount() + agencyData.stream().filter(agency -> agency.getParentId().equals(streetId)).mapToInt(ScreenGovernRankDataDailyResultDTO::getResponseCount).sum();
} Integer transferCount = agencyResult.getTransferCount() + agencyData.stream().filter(agency -> agency.getParentId().equals(streetId)).mapToInt(ScreenGovernRankDataDailyResultDTO::getTransferCount).sum();
agencyResult.setResponseCount(responseCount);
agencyResult.setTransferCount(transferCount);
}
});
// 合并网格社区街道数据 // 合并网格社区街道数据
data.addAll(agencyData); data.addAll(agencyData);
// 计算响应率 // 计算响应率
@ -78,14 +89,44 @@ public class ScreenGovernanceServiceImpl extends BaseServiceImpl<ScreenGovernanc
} }
}); });
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("isFirst", true); jsonObject.put("isFirst", true);
jsonObject.put("dateId", yearMonthDay);
jsonObject.put("dataList", data); jsonObject.put("dataList", data);
epmetUtils.httpPost(EpmetConstant.EPMET_SCREEN_GOV_RANK_DATA, JSONObject.toJSONString(jsonObject)); epmetUtils.httpPost(EpmetConstant.EPMET_SCREEN_GOV_RANK_DATA, JSONObject.toJSONString(jsonObject));
return new Result(); return new Result();
} }
@Override
public Result gridgoverndaily(ScreenJobFormDTO formDto) {
String yearMonthDay = DateUtils.formatNoSplit(DateUtils.addDateDays(new Date(), -1));
// if (formDto.getYearMonth() != null && StringUtils.isNotBlank(formDto.getYearMonth())) {
// yearMonthDay = formDto.getYearMonth();
// }
List<ScreenGridGovernDailyResultDTO> data = baseDao.gridgoverndaily();
JSONObject jsonObject = new JSONObject();
jsonObject.put("isFirst", true);
jsonObject.put("dataList", data);
jsonObject.put("dateId", yearMonthDay);
epmetUtils.httpPost(EpmetConstant.EPMET_SCREEN_GOV_GRID_GOV_DATA, JSONObject.toJSONString(jsonObject));
return new Result();
}
@Override
public Result agencygoverndaily(ScreenJobFormDTO formDto) {
String yearMonthDay = DateUtils.formatNoSplit(DateUtils.addDateDays(new Date(), -1));
// if (formDto.getYearMonth() != null && StringUtils.isNotBlank(formDto.getYearMonth())) {
// yearMonthDay = formDto.getYearMonth();
// }
List<ScreenAgencyGovernDailyResultDTO> data = baseDao.agencygoverndaily();
JSONObject jsonObject = new JSONObject();
jsonObject.put("isFirst", true);
jsonObject.put("dateId", yearMonthDay);
jsonObject.put("dataList", data);
epmetUtils.httpPost(EpmetConstant.EPMET_SCREEN_GOV_AGENCY_GOV_DATA, JSONObject.toJSONString(jsonObject));
return new Result();
}
/** /**
* 追加未响应数据 * 追加未响应数据
* *

688
epdc-cloud-analysis-pc/src/main/resources/mapper/screen/ScreenGovernanceDao.xml

@ -3,6 +3,27 @@
<mapper namespace="com.elink.esua.epdc.modules.screen.dao.ScreenGovernanceDao"> <mapper namespace="com.elink.esua.epdc.modules.screen.dao.ScreenGovernanceDao">
<select id="getStreetList" resultType="com.elink.esua.epdc.dto.SysDeptDTO">
SELECT
id,
pid,
pids,
NAME
FROM
esua_epdc_admin.sys_dept sd
WHERE
sd.del_flag = '0'
AND sd.type_key = 'street_party'
AND sd.id NOT IN (
SELECT
t.dept_id
FROM
esua_epdc_admin.sys_dept_config t
WHERE
t.del_flag = '0'
)
</select>
<select id="governrankdatadaily" resultType="com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGovernRankDataDailyResultDTO"> <select id="governrankdatadaily" resultType="com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGovernRankDataDailyResultDTO">
SELECT SELECT
DATE_FORMAT( DATE_FORMAT(
@ -204,4 +225,671 @@
d.DEPT_ID d.DEPT_ID
</select> </select>
<select id="gridgoverndaily" resultType="com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGridGovernDailyResultDTO">
SELECT
info.*, IFNULL(
(
info.inGroupTopicResolvedCount + info.inGroupTopicUnResolvedCount
) / info.problemResolvedCount,
0
) AS groupSelfGovernRatio,
IFNULL(
info.gridSelfGovernProjectTotal / info.problemResolvedCount,
0
) AS gridSelfGovernRatio,
IFNULL(
info.communityClosedCount / info.problemResolvedCount,
0
) AS communityClosedRatio,
IFNULL(
info.streetClosedCount / info.problemResolvedCount,
0
) AS streetClosedRatio,
0 AS districtDeptClosedRatio
FROM
(
SELECT
DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y%m%d'
) AS dateId,
sd.id AS gridId,
sd.pid,
sd.pids,
IFNULL(
(
topic.topicResolvedCount + topic.topicUnResolvedCount + issue.issueResolvedCount + issue.issueUnResolvedCount + item.issueProjectResolvedCount + item.issueProjectResolvedCount + item.issueProjectUnResolvedCount
),
0
) AS problemResolvedCount,
IFNULL(topic.topicResolvedCount, 0) AS topicResolvedCount,
IFNULL(
topic.topicUnResolvedCount,
0
) AS topicUnResolvedCount,
IFNULL(issue.issueResolvedCount, 0) AS issueResolvedCount,
IFNULL(
issue.issueUnResolvedCount,
0
) AS issueUnResolvedCount,
IFNULL(
item.issueProjectResolvedCount,
0
) AS issueProjectResolvedCount,
IFNULL(
item.issueProjectUnResolvedCount,
0
) AS issueProjectUnResolvedCount,
IFNULL(
item.approvalProjectResolvedCount,
0
) AS approvalProjectResolvedCount,
IFNULL(
item.approvalProjectUnResolvedCount,
0
) AS approvalProjectUnResolvedCount,
IFNULL(
topic.inGroupTopicResolvedCount,
0
) AS inGroupTopicResolvedCount,
IFNULL(
topic.inGroupTopicUnResolvedCount,
0
) AS inGroupTopicUnResolvedCount,
IFNULL(
selfsolved.fromIssueResolvedInGridCount,
0
) AS fromIssueResolvedInGridCount,
IFNULL(
selfsolved.fromIssueUnResolvedInGridCount,
0
) AS fromIssueUnResolvedInGridCount,
IFNULL(
selfsolved.fromAgencyResolvedInGridCount,
0
) AS fromAgencyResolvedInGridCount,
IFNULL(
selfsolved.fromAgencyUnResolvedInGridCount,
0
) AS fromAgencyUnResolvedInGridCount,
IFNULL(
(
selfsolved.fromIssueResolvedInGridCount + selfsolved.fromIssueUnResolvedInGridCount + selfsolved.fromIssueUnResolvedInGridCount + selfsolved.fromAgencyResolvedInGridCount
),
0
) AS gridSelfGovernProjectTotal,
IFNULL(
commsolved.communityClosedCount,
0
) AS communityClosedCount,
IFNULL(
streetsolved.streetClosedCount,
0
) AS streetClosedCount,
0 AS districtDeptClosedCount
FROM
esua_epdc_admin.sys_dept sd
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS topicResolvedCount,
IFNULL(COUNT(0), 0) AS inGroupTopicResolvedCount,
0 AS topicUnResolvedCount,
0 AS inGroupTopicUnResolvedCount
FROM
esua_epdc_group.epdc_topic et
WHERE
et.DEL_FLAG = '0'
AND DATE_FORMAT(et.UPDATED_TIME, '%Y-%m-%d')&lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
AND et.STATE = '20'
GROUP BY
et.GRID_ID
) topic ON topic.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS issueResolvedCount,
0 AS issueUnResolvedCount
FROM
esua_epdc_events.epdc_issue eis
WHERE
eis.DEL_FLAG = '0'
AND DATE_FORMAT(
eis.UPDATED_TIME,
'%Y-%m-%d'
)&lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
AND eis.ISSUE_STATE = '2'
GROUP BY
eis.GRID_ID
) issue ON issue.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS issueProjectResolvedCount,
0 AS issueProjectUnResolvedCount,
0 AS approvalProjectResolvedCount,
0 AS approvalProjectUnResolvedCount
FROM
esua_epdc_events.epdc_item eit
WHERE
eit.DEL_FLAG = '0'
AND DATE_FORMAT(
eit.UPDATED_TIME,
'%Y-%m-%d'
)&lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
AND eit.ITEM_STATE IN ('5', '10')
GROUP BY
GRID_ID
) item ON item.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS fromIssueResolvedInGridCount,
0 AS fromIssueUnResolvedInGridCount,
0 AS fromAgencyResolvedInGridCount,
0 AS fromAgencyUnResolvedInGridCount
FROM
(
SELECT
GRID_ID,
eit.id,
hp.HANDLER_DEPT_ID,
eit.UPDATED_TIME
FROM
esua_epdc_events.epdc_item eit
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.item_id = eit.id
WHERE
eit.DEL_FLAG = '0'
AND hp.DEL_FLAG = '0'
AND eit.ITEM_STATE IN ('5', '10')
GROUP BY
eit.GRID_ID,
eit.ID
HAVING
COUNT(DISTINCT hp.HANDLER_DEPT_ID) = 1
) t
WHERE
t.GRID_ID = t.HANDLER_DEPT_ID
AND DATE_FORMAT(t.UPDATED_TIME, '%Y-%m-%d')&lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
GROUP BY
t.GRID_ID
) selfsolved ON selfsolved.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS communityClosedCount
FROM
(
SELECT
GRID_ID,
eit.id,
hp.HANDLER_DEPT_ID,
eit.UPDATED_TIME
FROM
esua_epdc_events.epdc_item eit
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.item_id = eit.id
LEFT JOIN esua_epdc_admin.sys_dept sd ON sd.id = hp.HANDLER_DEPT_ID
WHERE
eit.DEL_FLAG = '0'
AND hp.DEL_FLAG = '0'
AND eit.ITEM_STATE IN ('5', '10')
AND hp.STATE IN ('5', '10')
AND sd.type_key = 'community_party'
GROUP BY
eit.GRID_ID,
eit.ID
) t
WHERE
DATE_FORMAT(t.UPDATED_TIME, '%Y-%m-%d')&lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
GROUP BY
t.GRID_ID
) commsolved ON commsolved.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS streetClosedCount
FROM
(
SELECT
GRID_ID,
eit.id,
hp.HANDLER_DEPT_ID,
eit.UPDATED_TIME
FROM
esua_epdc_events.epdc_item eit
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.item_id = eit.id
LEFT JOIN esua_epdc_admin.sys_dept sd ON sd.id = hp.HANDLER_DEPT_ID
WHERE
eit.DEL_FLAG = '0'
AND hp.DEL_FLAG = '0'
AND eit.ITEM_STATE IN ('5', '10')
AND hp.STATE IN ('5', '10')
AND sd.type_key = 'street_party'
GROUP BY
eit.GRID_ID,
eit.ID
) t
WHERE
DATE_FORMAT(t.UPDATED_TIME, '%Y-%m-%d')&lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
GROUP BY
t.GRID_ID
) streetsolved ON streetsolved.GRID_ID = sd.id
WHERE
sd.del_flag = '0'
AND sd.type_key = 'grid_party'
AND sd.id NOT IN (
SELECT
t.dept_id
FROM
esua_epdc_admin.sys_dept_config t
WHERE
t.del_flag = '0'
)
GROUP BY
sd.id
) info
</select>
<select id="agencygoverndaily" resultType="com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenAgencyGovernDailyResultDTO">
SELECT
DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y%m%d'
) AS dateId,
sd.id AS agencyId,
CASE
WHEN sd.type_key = 'community_party' THEN
'community'
WHEN sd.type_key = 'street_party' THEN
'street'
END AS LEVEL,
sd.pid,
sd.pids,
IFNULL(
sum(info.problemResolvedCount),
0
) AS problemResolvedCount,
IFNULL(
sum(info.topicResolvedCount),
0
) AS topicResolvedCount,
IFNULL(
sum(info.topicUnResolvedCount),
0
) AS topicUnResolvedCount,
IFNULL(
sum(info.issueResolvedCount),
0
) AS issueResolvedCount,
IFNULL(
sum(info.issueUnResolvedCount),
0
) AS issueUnResolvedCount,
IFNULL(
sum(
info.issueProjectResolvedCount
),
0
) AS issueProjectResolvedCount,
IFNULL(
sum(
info.issueProjectUnResolvedCount
),
0
) AS issueProjectUnResolvedCount,
IFNULL(
sum(
info.approvalProjectResolvedCount
),
0
) AS approvalProjectResolvedCount,
IFNULL(
sum(
info.approvalProjectUnResolvedCount
),
0
) AS approvalProjectUnResolvedCount,
IFNULL(
sum(
info.inGroupTopicResolvedCount
),
0
) AS inGroupTopicResolvedCount,
IFNULL(
sum(
info.inGroupTopicUnResolvedCount
),
0
) AS inGroupTopicUnResolvedCount,
IFNULL(
sum(
info.gridSelfGovernProjectTotal
),
0
) AS gridSelfGovernProjectTotal,
IFNULL(
sum(info.communityClosedCount),
0
) AS communityClosedCount,
IFNULL(
sum(info.streetClosedCount),
0
) AS streetClosedCount,
0 AS districtDeptClosedCount,
IFNULL(
(
sum(
info.inGroupTopicResolvedCount
) + sum(
info.inGroupTopicUnResolvedCount
)
) / sum(info.problemResolvedCount),
0
) AS groupSelfGovernRatio,
IFNULL(
sum(
info.gridSelfGovernProjectTotal
) / sum(info.problemResolvedCount),
0
) AS gridSelfGovernRatio,
IFNULL(
sum(info.communityClosedCount) / sum(info.problemResolvedCount),
0
) AS communityClosedRatio,
IFNULL(
sum(info.streetClosedCount) / sum(info.problemResolvedCount),
0
) AS streetClosedRatio,
0 AS districtDeptClosedRatio
FROM
(
SELECT
sd.pids,
IFNULL(
(
topic.topicResolvedCount + topic.topicUnResolvedCount + issue.issueResolvedCount + issue.issueUnResolvedCount + item.issueProjectResolvedCount + item.issueProjectResolvedCount + item.issueProjectUnResolvedCount
),
0
) AS problemResolvedCount,
IFNULL(topic.topicResolvedCount, 0) AS topicResolvedCount,
IFNULL(
topic.topicUnResolvedCount,
0
) AS topicUnResolvedCount,
IFNULL(issue.issueResolvedCount, 0) AS issueResolvedCount,
IFNULL(
issue.issueUnResolvedCount,
0
) AS issueUnResolvedCount,
IFNULL(
item.issueProjectResolvedCount,
0
) AS issueProjectResolvedCount,
IFNULL(
item.issueProjectUnResolvedCount,
0
) AS issueProjectUnResolvedCount,
IFNULL(
item.approvalProjectResolvedCount,
0
) AS approvalProjectResolvedCount,
IFNULL(
item.approvalProjectUnResolvedCount,
0
) AS approvalProjectUnResolvedCount,
IFNULL(
topic.inGroupTopicResolvedCount,
0
) AS inGroupTopicResolvedCount,
IFNULL(
topic.inGroupTopicUnResolvedCount,
0
) AS inGroupTopicUnResolvedCount,
IFNULL(
selfsolved.fromIssueResolvedInGridCount,
0
) AS fromIssueResolvedInGridCount,
IFNULL(
selfsolved.fromIssueUnResolvedInGridCount,
0
) AS fromIssueUnResolvedInGridCount,
IFNULL(
selfsolved.fromAgencyResolvedInGridCount,
0
) AS fromAgencyResolvedInGridCount,
IFNULL(
selfsolved.fromAgencyUnResolvedInGridCount,
0
) AS fromAgencyUnResolvedInGridCount,
IFNULL(
(
selfsolved.fromIssueResolvedInGridCount + selfsolved.fromIssueUnResolvedInGridCount + selfsolved.fromIssueUnResolvedInGridCount + selfsolved.fromAgencyResolvedInGridCount
),
0
) AS gridSelfGovernProjectTotal,
IFNULL(
commsolved.communityClosedCount,
0
) AS communityClosedCount,
IFNULL(
streetsolved.streetClosedCount,
0
) AS streetClosedCount,
0 AS districtDeptClosedCount
FROM
esua_epdc_admin.sys_dept sd
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS topicResolvedCount,
IFNULL(COUNT(0), 0) AS inGroupTopicResolvedCount,
0 AS topicUnResolvedCount,
0 AS inGroupTopicUnResolvedCount
FROM
esua_epdc_group.epdc_topic et
WHERE
et.DEL_FLAG = '0'
AND DATE_FORMAT(et.UPDATED_TIME, '%Y-%m-%d')&lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
AND et.STATE = '20'
GROUP BY
et.GRID_ID
) topic ON topic.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS issueResolvedCount,
0 AS issueUnResolvedCount
FROM
esua_epdc_events.epdc_issue eis
WHERE
eis.DEL_FLAG = '0'
AND DATE_FORMAT(
eis.UPDATED_TIME,
'%Y-%m-%d'
)&lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
AND eis.ISSUE_STATE = '2'
GROUP BY
eis.GRID_ID
) issue ON issue.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS issueProjectResolvedCount,
0 AS issueProjectUnResolvedCount,
0 AS approvalProjectResolvedCount,
0 AS approvalProjectUnResolvedCount
FROM
esua_epdc_events.epdc_item eit
WHERE
eit.DEL_FLAG = '0'
AND DATE_FORMAT(
eit.UPDATED_TIME,
'%Y-%m-%d'
)&lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
AND eit.ITEM_STATE IN ('5', '10')
GROUP BY
GRID_ID
) item ON item.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS fromIssueResolvedInGridCount,
0 AS fromIssueUnResolvedInGridCount,
0 AS fromAgencyResolvedInGridCount,
0 AS fromAgencyUnResolvedInGridCount
FROM
(
SELECT
GRID_ID,
eit.id,
hp.HANDLER_DEPT_ID,
eit.UPDATED_TIME
FROM
esua_epdc_events.epdc_item eit
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.item_id = eit.id
WHERE
eit.DEL_FLAG = '0'
AND hp.DEL_FLAG = '0'
AND eit.ITEM_STATE IN ('5', '10')
GROUP BY
eit.GRID_ID,
eit.ID
HAVING
COUNT(DISTINCT hp.HANDLER_DEPT_ID) = 1
) t
WHERE
t.GRID_ID = t.HANDLER_DEPT_ID
AND DATE_FORMAT(t.UPDATED_TIME, '%Y-%m-%d')&lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
GROUP BY
t.GRID_ID
) selfsolved ON selfsolved.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS communityClosedCount
FROM
(
SELECT
GRID_ID,
eit.id,
hp.HANDLER_DEPT_ID,
eit.UPDATED_TIME
FROM
esua_epdc_events.epdc_item eit
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.item_id = eit.id
LEFT JOIN esua_epdc_admin.sys_dept sd ON sd.id = hp.HANDLER_DEPT_ID
WHERE
eit.DEL_FLAG = '0'
AND hp.DEL_FLAG = '0'
AND eit.ITEM_STATE IN ('5', '10')
AND hp.STATE IN ('5', '10')
AND sd.type_key = 'community_party'
GROUP BY
eit.GRID_ID,
eit.ID
) t
WHERE
DATE_FORMAT(t.UPDATED_TIME, '%Y-%m-%d')&lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
GROUP BY
t.GRID_ID
) commsolved ON commsolved.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS streetClosedCount
FROM
(
SELECT
GRID_ID,
eit.id,
hp.HANDLER_DEPT_ID,
eit.UPDATED_TIME
FROM
esua_epdc_events.epdc_item eit
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.item_id = eit.id
LEFT JOIN esua_epdc_admin.sys_dept sd ON sd.id = hp.HANDLER_DEPT_ID
WHERE
eit.DEL_FLAG = '0'
AND hp.DEL_FLAG = '0'
AND eit.ITEM_STATE IN ('5', '10')
AND hp.STATE IN ('5', '10')
AND sd.type_key = 'street_party'
GROUP BY
eit.GRID_ID,
eit.ID
) t
WHERE
DATE_FORMAT(t.UPDATED_TIME, '%Y-%m-%d')&lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
GROUP BY
t.GRID_ID
) streetsolved ON streetsolved.GRID_ID = sd.id
WHERE
sd.del_flag = '0'
AND sd.type_key = 'grid_party'
AND sd.id NOT IN (
SELECT
t.dept_id
FROM
esua_epdc_admin.sys_dept_config t
WHERE
t.del_flag = '0'
)
GROUP BY
sd.id
) info
LEFT JOIN esua_epdc_admin.sys_dept sd ON find_in_set(sd.`id`, info.pids)
WHERE
sd.del_flag = '0'
AND sd.id NOT IN (
SELECT
t.dept_id
FROM
esua_epdc_admin.sys_dept_config t
WHERE
t.del_flag = '0'
)
AND sd.type_key IN (
'community_party',
'street_party'
)
GROUP BY
sd.id
</select>
</mapper> </mapper>

Loading…
Cancel
Save