16 changed files with 1854 additions and 0 deletions
@ -0,0 +1,141 @@ |
|||
package com.elink.esua.epdc.dto.screen.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* 组织治理指数(天) |
|||
* |
|||
* @author zhy |
|||
* @date 2021/6/28 9:28 |
|||
*/ |
|||
@Data |
|||
public class ScreenAgencyGovernDailyResultDTO implements Serializable { |
|||
private static final long serialVersionUID = -4035893591086943602L; |
|||
|
|||
/** |
|||
* 组织Id |
|||
*/ |
|||
private String agencyId; |
|||
|
|||
/** |
|||
* agency_id所属的机关级别(社区级:community, 乡(镇、街道)级:street, 区县级: district, 市级: city 省级:province) |
|||
*/ |
|||
private String level; |
|||
|
|||
/** |
|||
* 上级组织Id |
|||
*/ |
|||
private String pid; |
|||
|
|||
/** |
|||
* 网格所有上级id |
|||
*/ |
|||
private String pids; |
|||
|
|||
/** |
|||
* 日期ID |
|||
*/ |
|||
private String dateId; |
|||
|
|||
/** |
|||
* 界面展示:问题解决总数=1+2+3+4+5+6+7+8 |
|||
*/ |
|||
private Integer problemResolvedCount; |
|||
|
|||
/** |
|||
* 界面展示:党群自治占比=(9+10)/PROBLEM_RESOLVED_COUNT; 此列存储的是小数 |
|||
*/ |
|||
private String groupSelfGovernRatio; |
|||
|
|||
/** |
|||
* 界面展示:网格自治占比=GRID_SELF_GOVERN_PROJECT_TOTAL/PROBLEM_RESOLVED_COUNT;此列存储的是小数 |
|||
*/ |
|||
private String gridSelfGovernRatio; |
|||
|
|||
/** |
|||
* 界面展示:社区解决占比=COMMUNITY_CLOSED_COUNT/PROBLEM_RESOLVED_COUNT;此列存储的是小数 |
|||
*/ |
|||
private String communityClosedRatio; |
|||
|
|||
/** |
|||
* 界面展示:街道解决占比=STREET_CLOSED_COUNT/PROBLEM_RESOLVED_COUNT;此列存储的是小数 |
|||
*/ |
|||
private String streetClosedRatio; |
|||
|
|||
/** |
|||
* 界面展示:区直部门解决占比=DISTRICT_DEPT_CLOSED_COUNT/PROBLEM_RESOLVED_COUNT;此列存储的是小数 |
|||
*/ |
|||
private String districtDeptClosedRatio; |
|||
|
|||
/** |
|||
* 1、当前组织内,话题关闭已解决数 |
|||
*/ |
|||
private Integer topicResolvedCount; |
|||
|
|||
/** |
|||
* 2、当前组织内,话题关闭无需解决数 |
|||
*/ |
|||
private Integer topicUnResolvedCount; |
|||
|
|||
/** |
|||
* 3、当前组织内,议题关闭已解决数 |
|||
*/ |
|||
private Integer issueResolvedCount; |
|||
|
|||
/** |
|||
* 4、当前组织内,议题关闭无需解决数 |
|||
*/ |
|||
private Integer issueUnResolvedCount; |
|||
|
|||
/** |
|||
* 5、当前组织内:来源于议题的项目:结案已解决数 |
|||
*/ |
|||
private Integer issueProjectResolvedCount; |
|||
|
|||
/** |
|||
* 6、当前组织内:来源于议题的项目:结案无需解决数 |
|||
*/ |
|||
private Integer issueProjectUnResolvedCount; |
|||
|
|||
/** |
|||
* 7、当前组织内:项目立项,结案已解决数;默认为0, |
|||
*/ |
|||
private Integer approvalProjectResolvedCount; |
|||
|
|||
/** |
|||
* 8、当前组织内:项目立项,结案无需解决数;默认为0, |
|||
*/ |
|||
private Integer approvalProjectUnResolvedCount; |
|||
|
|||
/** |
|||
* 9、当前组织内,未出小组即未转议题的:话题关闭已解决数 |
|||
*/ |
|||
private Integer inGroupTopicResolvedCount; |
|||
|
|||
/** |
|||
* 10、当前组织内,未出小组即未转议题的:话题关闭无需解决数 |
|||
*/ |
|||
private Integer inGroupTopicUnResolvedCount; |
|||
|
|||
/** |
|||
* 11、未出当前组织的,结案项目数 |
|||
*/ |
|||
private Integer gridSelfGovernProjectTotal; |
|||
|
|||
/** |
|||
* 当前组织内出来的项目:由社区结案(已解决+未解决)的项目总数 |
|||
*/ |
|||
private Integer communityClosedCount; |
|||
|
|||
/** |
|||
* 当前组织内出来的项目:由街道结案(已解决+未解决)的项目总数 |
|||
*/ |
|||
private Integer streetClosedCount; |
|||
|
|||
/** |
|||
* 当前组织内出来的项目:由区直部门(已解决+未解决)结案的项目总数 |
|||
*/ |
|||
private Integer districtDeptClosedCount; |
|||
} |
@ -0,0 +1,106 @@ |
|||
package com.elink.esua.epdc.dto.screen.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* 治理能力排行数据(按日统计)数据 |
|||
* |
|||
* @author zhy |
|||
* @date 2021/6/28 9:28 |
|||
*/ |
|||
@Data |
|||
public class ScreenGovernRankDataDailyResultDTO implements Serializable { |
|||
private static final long serialVersionUID = -4035893591086943602L; |
|||
|
|||
/** |
|||
* 组织Id 可以为网格,机关id |
|||
*/ |
|||
private String orgId; |
|||
|
|||
/** |
|||
* 组织类别 agency:组织;部门:department;网格:grid |
|||
*/ |
|||
private String orgType; |
|||
|
|||
/** |
|||
* 上级组织Id |
|||
*/ |
|||
private String parentId; |
|||
|
|||
/** |
|||
* 组织名称 |
|||
*/ |
|||
private String orgName; |
|||
|
|||
/** |
|||
* 日期ID |
|||
*/ |
|||
private String dateId; |
|||
|
|||
/** |
|||
* 月ID |
|||
*/ |
|||
private String monthId; |
|||
|
|||
/** |
|||
* 年ID |
|||
*/ |
|||
private String yearId; |
|||
|
|||
/** |
|||
* 响应率,最大值100,保留小数点后4位 |
|||
*/ |
|||
private String responseRatio; |
|||
|
|||
/** |
|||
* 响应数 |
|||
*/ |
|||
private Integer responseCount; |
|||
|
|||
/** |
|||
* 项目转入次数 |
|||
*/ |
|||
private Integer transferCount; |
|||
|
|||
/** |
|||
* 解决率 最大值100,保留小数点后4位 |
|||
*/ |
|||
private String resolvedRatio; |
|||
|
|||
/** |
|||
* 解决项目数 |
|||
*/ |
|||
private Integer resolvedCount; |
|||
|
|||
/** |
|||
* 已关闭项目数 |
|||
*/ |
|||
private Integer closedCount; |
|||
|
|||
/** |
|||
* 自治率 最大值100,保留小数点后4位 |
|||
*/ |
|||
private String governRatio; |
|||
|
|||
/** |
|||
* 自治项目数 |
|||
*/ |
|||
private Integer governCount; |
|||
|
|||
/** |
|||
* 满意率,最大值100,保留小数点后四位 |
|||
*/ |
|||
private String satisfactionRatio; |
|||
|
|||
/** |
|||
* 满意项目数 |
|||
*/ |
|||
private Integer satisfactionCount; |
|||
|
|||
/** |
|||
* 已关闭项目(由议题转的项目)数 |
|||
*/ |
|||
private Integer closedProjectCount; |
|||
} |
@ -0,0 +1,14 @@ |
|||
package com.elink.esua.epdc.dto.screen.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @author zhy |
|||
* @date 2021/6/28 14:12 |
|||
*/ |
|||
@Data |
|||
public class ScreenGovernanceResultDTO implements Serializable { |
|||
private static final long serialVersionUID = -4696640703716250973L; |
|||
} |
@ -0,0 +1,156 @@ |
|||
package com.elink.esua.epdc.dto.screen.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* 网格治理指数(天) |
|||
* |
|||
* @author zhy |
|||
* @date 2021/6/28 9:28 |
|||
*/ |
|||
@Data |
|||
public class ScreenGridGovernDailyResultDTO implements Serializable { |
|||
private static final long serialVersionUID = -4035893591086943602L; |
|||
|
|||
/** |
|||
* 组织Id 可以为网格,机关id |
|||
*/ |
|||
private String gridId; |
|||
|
|||
/** |
|||
* 上级组织Id |
|||
*/ |
|||
private String pid; |
|||
|
|||
/** |
|||
* 网格所有上级id |
|||
*/ |
|||
private String pids; |
|||
|
|||
/** |
|||
* 日期ID |
|||
*/ |
|||
private String dateId; |
|||
|
|||
/** |
|||
* 界面展示:问题解决总数=1+2+3+4+5+6+7+8 |
|||
*/ |
|||
private Integer problemResolvedCount; |
|||
|
|||
/** |
|||
* 界面展示:党群自治占比=(9+10)/PROBLEM_RESOLVED_COUNT; 此列存储的是小数 |
|||
*/ |
|||
private String groupSelfGovernRatio; |
|||
|
|||
/** |
|||
* 界面展示:网格自治占比=GRID_SELF_GOVERN_PROJECT_TOTAL/PROBLEM_RESOLVED_COUNT;此列存储的是小数 |
|||
*/ |
|||
private String gridSelfGovernRatio; |
|||
|
|||
/** |
|||
* 界面展示:社区解决占比=COMMUNITY_CLOSED_COUNT/PROBLEM_RESOLVED_COUNT;此列存储的是小数 |
|||
*/ |
|||
private String communityClosedRatio; |
|||
|
|||
/** |
|||
* 界面展示:街道解决占比=STREET_CLOSED_COUNT/PROBLEM_RESOLVED_COUNT;此列存储的是小数 |
|||
*/ |
|||
private String streetClosedRatio; |
|||
|
|||
/** |
|||
* 界面展示:区直部门解决占比=DISTRICT_DEPT_CLOSED_COUNT/PROBLEM_RESOLVED_COUNT;此列存储的是小数 |
|||
*/ |
|||
private String districtDeptClosedRatio; |
|||
|
|||
/** |
|||
* 1、当前网格内,话题关闭已解决数 |
|||
*/ |
|||
private Integer topicResolvedCount; |
|||
|
|||
/** |
|||
* 2、当前网格内,话题关闭无需解决数 |
|||
*/ |
|||
private Integer topicUnResolvedCount; |
|||
|
|||
/** |
|||
* 3、当前网格内,议题关闭已解决数 |
|||
*/ |
|||
private Integer issueResolvedCount; |
|||
|
|||
/** |
|||
* 4、当前网格内,议题关闭无需解决数 |
|||
*/ |
|||
private Integer issueUnResolvedCount; |
|||
|
|||
/** |
|||
* 5、当前网格内:来源于议题的项目:结案已解决数 |
|||
*/ |
|||
private Integer issueProjectResolvedCount; |
|||
|
|||
/** |
|||
* 6、当前网格内:来源于议题的项目:结案无需解决数 |
|||
*/ |
|||
private Integer issueProjectUnResolvedCount; |
|||
|
|||
/** |
|||
* 7、当前网格内:项目立项,结案已解决数;默认为0, |
|||
*/ |
|||
private Integer approvalProjectResolvedCount; |
|||
|
|||
/** |
|||
* 8、当前网格内:项目立项,结案无需解决数;默认为0, |
|||
*/ |
|||
private Integer approvalProjectUnResolvedCount; |
|||
|
|||
/** |
|||
* 9、当前网格内,未出小组即未转议题的:话题关闭已解决数 |
|||
*/ |
|||
private Integer inGroupTopicResolvedCount; |
|||
|
|||
/** |
|||
* 10、当前网格内,未出小组即未转议题的:话题关闭无需解决数 |
|||
*/ |
|||
private Integer inGroupTopicUnResolvedCount; |
|||
|
|||
/** |
|||
* 11、来源于议题的项目,未出网格结案并且已解决的项目数 |
|||
*/ |
|||
private Integer fromIssueResolvedInGridCount; |
|||
|
|||
/** |
|||
* 12、来源于议题的项目,未出网格结案并且无需解决的项目数 |
|||
*/ |
|||
private Integer fromIssueUnResolvedInGridCount; |
|||
|
|||
/** |
|||
* 13、来源于项目立项的项目,未出网格结案,并且已解决的项目数;因现在网格不能立项,所以此列默认为0 |
|||
*/ |
|||
private Integer fromAgencyResolvedInGridCount; |
|||
|
|||
/** |
|||
* 14、来源于项目立项的项目,未出网格结案,并且无需解决的项目数;因现在网格不能立项,所以此列默认为0 |
|||
*/ |
|||
private Integer fromAgencyUnResolvedInGridCount; |
|||
|
|||
/** |
|||
* 15、未出当前网格的,结案项目数=11+12+13+14 |
|||
*/ |
|||
private Integer gridSelfGovernProjectTotal; |
|||
|
|||
/** |
|||
* 当前网格内出来的项目:由社区结案(已解决+未解决)的项目总数 |
|||
*/ |
|||
private Integer communityClosedCount; |
|||
|
|||
/** |
|||
* 当前网格内出来的项目:由街道结案(已解决+未解决)的项目总数 |
|||
*/ |
|||
private Integer streetClosedCount; |
|||
|
|||
/** |
|||
* 当前网格内出来的项目:由区直部门(已解决+未解决)结案的项目总数 |
|||
*/ |
|||
private Integer districtDeptClosedCount; |
|||
} |
@ -0,0 +1,70 @@ |
|||
package com.elink.esua.epdc.modules.screen.controller; |
|||
|
|||
import com.elink.esua.epdc.commons.tools.utils.Result; |
|||
import com.elink.esua.epdc.dto.screen.form.ScreenJobFormDTO; |
|||
import com.elink.esua.epdc.modules.screen.service.ScreenGovernanceService; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
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; |
|||
|
|||
/** |
|||
* 治理能力数据推送 |
|||
* |
|||
* @author zhy |
|||
* @date 2021/6/28 11:07 |
|||
*/ |
|||
@Slf4j |
|||
@RestController |
|||
@RequestMapping("data/stats/governance") |
|||
public class ScreenGovernanceController { |
|||
|
|||
@Autowired |
|||
private ScreenGovernanceService screenGovernanceService; |
|||
|
|||
/** |
|||
* 01、治理能力排行数据(按日统计)数据 |
|||
* |
|||
* @param |
|||
* @return com.elink.esua.epdc.commons.tools.utils.Result |
|||
* @author zhy |
|||
* @date 2021/6/28 11:05 |
|||
*/ |
|||
@PostMapping("governrankdatadaily") |
|||
public Result governrankdatadaily(@RequestBody ScreenJobFormDTO formDto) { |
|||
log.info("<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("<governrankdatadaily|网格治理指数(天)>定时任务执行"); |
|||
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); |
|||
} |
|||
|
|||
|
|||
} |
@ -0,0 +1,73 @@ |
|||
package com.elink.esua.epdc.modules.screen.dao; |
|||
|
|||
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; |
|||
import com.elink.esua.epdc.dto.screen.result.ScreenAgencyGovernDailyResultDTO; |
|||
import com.elink.esua.epdc.dto.screen.result.ScreenGovernRankDataDailyResultDTO; |
|||
import com.elink.esua.epdc.dto.screen.result.ScreenGovernanceResultDTO; |
|||
import com.elink.esua.epdc.dto.screen.result.ScreenGridGovernDailyResultDTO; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author zhy |
|||
* @date 2021/6/28 14:04 |
|||
*/ |
|||
@Mapper |
|||
public interface ScreenGovernanceDao extends BaseDao<ScreenGovernanceResultDTO> { |
|||
|
|||
/** |
|||
* 治理能力排行数据(按日统计)数据 |
|||
* 网格统计 |
|||
* |
|||
* @param |
|||
* @return java.util.List<com.elink.esua.epdc.dto.screen.result.ScreenGovernRankDataDailyResultDTO> |
|||
* @author zhy |
|||
* @date 2021/6/28 14:06 |
|||
*/ |
|||
List<ScreenGovernRankDataDailyResultDTO> governrankdatadaily(); |
|||
|
|||
/** |
|||
* 治理能力排行数据(按日统计)数据 |
|||
* 组织统计 |
|||
* |
|||
* @param |
|||
* @return java.util.List<com.elink.esua.epdc.dto.screen.result.ScreenGovernRankDataDailyResultDTO> |
|||
* @author zhy |
|||
* @date 2021/6/28 14:06 |
|||
*/ |
|||
List<ScreenGovernRankDataDailyResultDTO> governrankdatadailyAgency(); |
|||
|
|||
/** |
|||
* 治理能力排行数据(按日统计)数据 |
|||
* 未响应数 |
|||
* |
|||
* @param |
|||
* @return java.util.List<com.elink.esua.epdc.dto.screen.result.ScreenGovernRankDataDailyResultDTO> |
|||
* @author zhy |
|||
* @date 2021/6/28 14:06 |
|||
*/ |
|||
List<ScreenGovernRankDataDailyResultDTO> governrankdatadailyNoResp(); |
|||
|
|||
/** |
|||
* 网格治理指数(天) |
|||
* |
|||
* @param |
|||
* @return java.util.List<com.elink.esua.epdc.dto.screen.result.ScreenGridGovernDailyResultDTO> |
|||
* @author zhy |
|||
* @date 2021/8/13 17:55 |
|||
*/ |
|||
List<ScreenGridGovernDailyResultDTO> gridgoverndaily(); |
|||
|
|||
|
|||
/** |
|||
* 组织治理指数(天) |
|||
* |
|||
* @param |
|||
* @return java.util.List<com.elink.esua.epdc.dto.screen.result.ScreenGridGovernDailyResultDTO> |
|||
* @author zhy |
|||
* @date 2021/8/13 17:55 |
|||
*/ |
|||
List<ScreenAgencyGovernDailyResultDTO> agencygoverndaily(); |
|||
|
|||
} |
@ -0,0 +1,44 @@ |
|||
package com.elink.esua.epdc.modules.screen.service; |
|||
|
|||
import com.elink.esua.epdc.commons.tools.utils.Result; |
|||
import com.elink.esua.epdc.dto.screen.form.ScreenJobFormDTO; |
|||
|
|||
/** |
|||
* 治理能力数据推送 |
|||
* |
|||
* @author zhy |
|||
* @date 2021/6/28 13:51 |
|||
*/ |
|||
public interface ScreenGovernanceService { |
|||
|
|||
/** |
|||
* 01、治理能力排行数据(按日统计)数据 |
|||
* |
|||
* @param |
|||
* @return com.elink.esua.epdc.commons.tools.utils.Result |
|||
* @author zhy |
|||
* @date 2021/6/28 13:47 |
|||
*/ |
|||
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); |
|||
|
|||
} |
@ -0,0 +1,150 @@ |
|||
package com.elink.esua.epdc.modules.screen.service.impl; |
|||
|
|||
import com.alibaba.fastjson.JSONObject; |
|||
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.utils.DateUtils; |
|||
import com.elink.esua.epdc.commons.tools.utils.Result; |
|||
import com.elink.esua.epdc.dto.screen.form.ScreenJobFormDTO; |
|||
import com.elink.esua.epdc.dto.screen.result.ScreenAgencyGovernDailyResultDTO; |
|||
import com.elink.esua.epdc.dto.screen.result.ScreenGovernRankDataDailyResultDTO; |
|||
import com.elink.esua.epdc.dto.screen.result.ScreenGovernanceResultDTO; |
|||
import com.elink.esua.epdc.dto.screen.result.ScreenGridGovernDailyResultDTO; |
|||
import com.elink.esua.epdc.modules.screen.dao.ScreenGovernanceDao; |
|||
import com.elink.esua.epdc.modules.screen.service.ScreenGovernanceService; |
|||
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.Value; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.text.DecimalFormat; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
import java.util.Optional; |
|||
|
|||
|
|||
/** |
|||
* 治理能力数据推送 |
|||
* |
|||
* @author zhy |
|||
* @date 2021/6/28 13:51 |
|||
*/ |
|||
@Service |
|||
public class ScreenGovernanceServiceImpl extends BaseServiceImpl<ScreenGovernanceDao, ScreenGovernanceResultDTO> implements ScreenGovernanceService { |
|||
|
|||
@Autowired |
|||
private EpmetUtils epmetUtils; |
|||
|
|||
@Value("${epmet.config.customerId}") |
|||
private String EPMET_CONFIG_CUSTOMER_ID; |
|||
|
|||
/** |
|||
* 锦水街道DEPT_ID |
|||
*/ |
|||
private final String STREET_ID = "1215437824174608386"; |
|||
|
|||
@Override |
|||
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> agencyData = baseDao.governrankdatadailyAgency(); |
|||
List<ScreenGovernRankDataDailyResultDTO> noRespData = baseDao.governrankdatadailyNoResp(); |
|||
|
|||
// 处理未响应和项目转入次数
|
|||
noRespHandle(data, noRespData); |
|||
noRespHandle(agencyData, noRespData); |
|||
|
|||
// 社区数据需要在本身基础上再加上网格的合计
|
|||
data.forEach(item -> { |
|||
Optional<ScreenGovernRankDataDailyResultDTO> agencyOptional = agencyData.stream().filter(agency -> agency.getOrgId().equals(item.getParentId())).findFirst(); |
|||
if (agencyOptional.isPresent()) { |
|||
ScreenGovernRankDataDailyResultDTO agencyResult = agencyOptional.get(); |
|||
agencyResult.setResponseCount(agencyResult.getResponseCount() + item.getResponseCount()); |
|||
agencyResult.setTransferCount(agencyResult.getTransferCount() + item.getTransferCount()); |
|||
} |
|||
}); |
|||
// 街道数据需要在本身基础上再加上社区的合计
|
|||
Optional<ScreenGovernRankDataDailyResultDTO> agencyOptional = agencyData.stream().filter(agency -> agency.getOrgId().equals(STREET_ID)).findFirst(); |
|||
if (agencyOptional.isPresent()) { |
|||
ScreenGovernRankDataDailyResultDTO agencyResult = agencyOptional.get(); |
|||
Integer responseCount = agencyResult.getResponseCount() + agencyData.stream().filter(agency -> agency.getParentId().equals(STREET_ID)).mapToInt(ScreenGovernRankDataDailyResultDTO::getResponseCount).sum(); |
|||
Integer transferCount = agencyResult.getTransferCount() + agencyData.stream().filter(agency -> agency.getParentId().equals(STREET_ID)).mapToInt(ScreenGovernRankDataDailyResultDTO::getTransferCount).sum(); |
|||
agencyResult.setResponseCount(responseCount); |
|||
agencyResult.setTransferCount(transferCount); |
|||
} |
|||
// 合并网格社区街道数据
|
|||
data.addAll(agencyData); |
|||
// 计算响应率
|
|||
data.forEach(item -> { |
|||
if (0 == item.getTransferCount() || 0 == item.getResponseCount()) { |
|||
item.setResponseRatio("0.0000"); |
|||
} else { |
|||
DecimalFormat df = new DecimalFormat("0.0000"); |
|||
item.setResponseRatio(df.format((float) item.getResponseCount() / item.getTransferCount())); |
|||
} |
|||
}); |
|||
|
|||
JSONObject jsonObject = new JSONObject(); |
|||
jsonObject.put("isFirst", true); |
|||
jsonObject.put("dateId", yearMonthDay); |
|||
jsonObject.put("dataList", data); |
|||
epmetUtils.httpPost(EpmetConstant.EPMET_SCREEN_GOV_RANK_DATA, JSONObject.toJSONString(jsonObject)); |
|||
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(); |
|||
} |
|||
|
|||
/** |
|||
* 追加未响应数据 |
|||
* |
|||
* @param data |
|||
* @param noRespData |
|||
* @return void |
|||
* @author zhy |
|||
* @date 2021/8/13 14:48 |
|||
*/ |
|||
private void noRespHandle(List<ScreenGovernRankDataDailyResultDTO> data, List<ScreenGovernRankDataDailyResultDTO> noRespData) { |
|||
data.forEach(item -> { |
|||
Optional<ScreenGovernRankDataDailyResultDTO> noDataOptional = noRespData.stream().filter(agency -> agency.getOrgId().equals(item.getOrgId())).findFirst(); |
|||
// 如果有未响应的,项目转入次数 = 响应数 + 未响应数,否则,项目转入次数 = 响应数
|
|||
if (noDataOptional.isPresent()) { |
|||
ScreenGovernRankDataDailyResultDTO agencyResult = noDataOptional.get(); |
|||
item.setTransferCount(agencyResult.getResponseCount() + item.getResponseCount()); |
|||
} else { |
|||
item.setTransferCount(item.getResponseCount()); |
|||
} |
|||
}); |
|||
} |
|||
} |
@ -0,0 +1,874 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
|
|||
<mapper namespace="com.elink.esua.epdc.modules.screen.dao.ScreenGovernanceDao"> |
|||
|
|||
<select id="governrankdatadaily" resultType="com.elink.esua.epdc.dto.screen.result.ScreenGovernRankDataDailyResultDTO"> |
|||
SELECT |
|||
DATE_FORMAT( |
|||
date_add(now(), INTERVAL - 1 DAY), |
|||
'%Y%m%d' |
|||
) AS dateId, |
|||
DATE_FORMAT( |
|||
STR_TO_DATE( |
|||
DATE_FORMAT( |
|||
date_add(now(), INTERVAL - 1 DAY), |
|||
'%Y-%m-%d' |
|||
), |
|||
'%Y' |
|||
), |
|||
'%Y' |
|||
) AS yearId, |
|||
DATE_FORMAT( |
|||
STR_TO_DATE( |
|||
DATE_FORMAT( |
|||
date_add(now(), INTERVAL - 1 DAY), |
|||
'%Y-%m-%d' |
|||
), |
|||
'%Y-%m' |
|||
), |
|||
'%Y%m' |
|||
) AS monthId, |
|||
'grid' AS orgType, |
|||
sd.id AS orgId, |
|||
sd.pid AS parentId, |
|||
sd. NAME AS orgName, |
|||
IFNULL(count(hp.id), 0) AS responseCount, |
|||
IFNULL(st.ITEM_SETTLE_TOTAL, 0) AS resolvedCount, |
|||
IFNULL(st.ITEM_CLOSED_TOTAL, 0) AS closedCount, |
|||
IFNULL(st.ITEM_CLOSED_TOTAL, 0) AS closedProjectCount, |
|||
IFNULL( |
|||
ROUND( |
|||
( |
|||
st.ITEM_SETTLE_TOTAL + st.ITEM_CLOSED_TOTAL |
|||
) / st.ITEM_TOTAL, |
|||
4 |
|||
), |
|||
0 |
|||
) AS resolvedRatio, |
|||
IFNULL(hs.BYSELF_TOTAL, 0) AS governCount, |
|||
IFNULL( |
|||
ROUND( |
|||
hs.BYSELF_TOTAL / hs.ITEM_TOTAL, |
|||
4 |
|||
), |
|||
0 |
|||
) AS governRatio, |
|||
IFNULL( |
|||
hs.EVA_GOOD_TOTAL + hs.EVA_VERYGOOD_TOTAL, |
|||
0 |
|||
) AS satisfactionCount, |
|||
IFNULL( |
|||
ROUND( |
|||
( |
|||
hs.EVA_GOOD_TOTAL + hs.EVA_VERYGOOD_TOTAL |
|||
) / hs.ITEM_TOTAL, |
|||
4 |
|||
), |
|||
0 |
|||
) AS satisfactionRatio |
|||
FROM |
|||
esua_epdc_admin.sys_dept sd |
|||
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.HANDLER_DEPT_ID = sd.id |
|||
AND hp.DEL_FLAG = '0' |
|||
AND DATE_FORMAT(hp.CREATED_TIME, '%Y-%m-%d') <= DATE_FORMAT( |
|||
date_add(now(), INTERVAL - 1 DAY), |
|||
'%Y-%m-%d' |
|||
) |
|||
LEFT JOIN esua_epdc_analysis.epdc_issue_item_statistics st ON st.GRID_ID = sd.id |
|||
LEFT JOIN esua_epdc_analysis.epdc_grid_handle_statistics hs ON hs.DEPT_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 |
|||
</select> |
|||
|
|||
<select id="governrankdatadailyAgency" resultType="com.elink.esua.epdc.dto.screen.result.ScreenGovernRankDataDailyResultDTO"> |
|||
SELECT |
|||
DATE_FORMAT( |
|||
date_add(now(), INTERVAL - 1 DAY), |
|||
'%Y%m%d' |
|||
) AS dateId, |
|||
DATE_FORMAT( |
|||
STR_TO_DATE( |
|||
DATE_FORMAT( |
|||
date_add(now(), INTERVAL - 1 DAY), |
|||
'%Y-%m-%d' |
|||
), |
|||
'%Y' |
|||
), |
|||
'%Y' |
|||
) AS yearId, |
|||
DATE_FORMAT( |
|||
STR_TO_DATE( |
|||
DATE_FORMAT( |
|||
date_add(now(), INTERVAL - 1 DAY), |
|||
'%Y-%m-%d' |
|||
), |
|||
'%Y-%m' |
|||
), |
|||
'%Y%m' |
|||
) AS monthId, |
|||
'agency' AS orgType, |
|||
sd.id AS orgId, |
|||
sd.pid AS parentId, |
|||
sd. NAME AS orgName, |
|||
IFNULL(count(hp.id), 0) AS responseCount, |
|||
IFNULL(st.ITEM_SETTLE_TOTAL, 0) AS resolvedCount, |
|||
IFNULL(st.ITEM_CLOSED_TOTAL, 0) AS closedCount, |
|||
IFNULL(st.ITEM_CLOSED_TOTAL, 0) AS closedProjectCount, |
|||
IFNULL( |
|||
ROUND( |
|||
( |
|||
st.ITEM_SETTLE_TOTAL + st.ITEM_CLOSED_TOTAL |
|||
) / st.ITEM_TOTAL, |
|||
4 |
|||
), |
|||
0 |
|||
) AS resolvedRatio, |
|||
IFNULL(hs.BYSELF_TOTAL, 0) AS governCount, |
|||
IFNULL( |
|||
ROUND( |
|||
hs.BYSELF_TOTAL / hs.ITEM_TOTAL, |
|||
4 |
|||
), |
|||
0 |
|||
) AS governRatio, |
|||
IFNULL( |
|||
hs.EVA_GOOD_TOTAL + hs.EVA_VERYGOOD_TOTAL, |
|||
0 |
|||
) AS satisfactionCount, |
|||
IFNULL( |
|||
ROUND( |
|||
( |
|||
hs.EVA_GOOD_TOTAL + hs.EVA_VERYGOOD_TOTAL |
|||
) / hs.ITEM_TOTAL, |
|||
4 |
|||
), |
|||
0 |
|||
) AS satisfactionRatio |
|||
FROM |
|||
esua_epdc_admin.sys_dept sd |
|||
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.HANDLER_DEPT_ID = sd.id |
|||
AND hp.DEL_FLAG = '0' |
|||
AND DATE_FORMAT(hp.CREATED_TIME, '%Y-%m-%d') <= DATE_FORMAT( |
|||
date_add(now(), INTERVAL - 1 DAY), |
|||
'%Y-%m-%d' |
|||
) |
|||
LEFT JOIN esua_epdc_analysis.epdc_issue_item_statistics st ON st.GRID_ID = sd.id |
|||
LEFT JOIN esua_epdc_analysis.epdc_grid_handle_statistics hs ON hs.DEPT_ID = sd.id |
|||
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> |
|||
|
|||
<select id="governrankdatadailyNoResp" resultType="com.elink.esua.epdc.dto.screen.result.ScreenGovernRankDataDailyResultDTO"> |
|||
SELECT |
|||
d.DEPT_ID AS orgId, |
|||
COUNT(0) AS responseCount |
|||
FROM |
|||
esua_epdc_events.epdc_item_dept d |
|||
LEFT JOIN esua_epdc_events.epdc_item i ON i.ID = d.ITEM_ID |
|||
WHERE |
|||
d.ITEM_HANDLE_ID IS NOT NULL |
|||
AND d.DEL_FLAG = '0' |
|||
AND i.DEL_FLAG = '0' |
|||
AND i.ITEM_STATE = '0' |
|||
AND DATE_FORMAT(d.CREATED_TIME, '%Y-%m-%d') <= DATE_FORMAT( |
|||
date_add(now(), INTERVAL - 1 DAY), |
|||
'%Y-%m-%d' |
|||
) |
|||
GROUP BY |
|||
d.DEPT_ID |
|||
</select> |
|||
|
|||
<select id="gridgoverndaily" resultType="com.elink.esua.epdc.dto.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') = 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' |
|||
) = 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' |
|||
) = 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') = 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') = 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') = 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.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')= 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' |
|||
)= 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' |
|||
)= 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')= 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')= 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')= 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> |
@ -0,0 +1,33 @@ |
|||
package com.elink.esua.epdc.dto; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* 大屏数据采集接口共 (17) 个 |
|||
* |
|||
* @author zhy |
|||
* @date 2021/6/29 14:41 |
|||
*/ |
|||
@Data |
|||
public class ScreenGovernanceParamDTO implements Serializable { |
|||
private static final long serialVersionUID = -6661828243095315569L; |
|||
|
|||
|
|||
/** |
|||
* 01、治理能力排行数据(按日统计)数据 |
|||
*/ |
|||
private String governrankdatadaily; |
|||
|
|||
/** |
|||
* 02、网格治理指数(天) |
|||
*/ |
|||
private String gridgoverndaily; |
|||
|
|||
/** |
|||
* 03、组织治理指数(天) |
|||
*/ |
|||
private String agencygoverndaily; |
|||
|
|||
} |
@ -0,0 +1,21 @@ |
|||
package com.elink.esua.epdc.task.screen; |
|||
|
|||
/** |
|||
* 治理能力数据推送 |
|||
* |
|||
* @author zhy |
|||
* @date 2021/6/28 10:42 |
|||
*/ |
|||
public interface ScreenGovernancePushTask { |
|||
|
|||
/** |
|||
* 大屏数据推送 |
|||
* |
|||
* @param param 入参 |
|||
* 参数格式:{'gridPartyMemberData':'2020-08','gridPartyAbility':'2020-08','orgPartyAbility':'2020-08','gridServiceAbility':'2020-08','orgServiceAbility':'2020-08','gridGovernAbility':'2020-08','orgGovernAbility':'2020-08','deptGovernAbility':'2020-08','all':'2020-08'} |
|||
* @return void |
|||
* @author Liuchuang |
|||
* @since 2020/9/9 15:21 |
|||
*/ |
|||
void run(String param); |
|||
} |
@ -0,0 +1,97 @@ |
|||
package com.elink.esua.epdc.task.screen; |
|||
|
|||
import com.alibaba.fastjson.JSONObject; |
|||
import com.elink.esua.epdc.dto.ScreenGovernanceParamDTO; |
|||
import com.elink.esua.epdc.dto.screen.form.ScreenJobFormDTO; |
|||
import com.elink.esua.epdc.feign.AnalysisFeignClient; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
/** |
|||
* 治理能力数据推送 |
|||
* |
|||
* @author zhy |
|||
* @date 2021/6/28 10:42 |
|||
*/ |
|||
@Component("screenBaseReportPushTask") |
|||
public class ScreenGovernancePushTaskImpl implements ScreenGovernancePushTask { |
|||
|
|||
private final Logger logger = LoggerFactory.getLogger(getClass()); |
|||
|
|||
@Autowired |
|||
private AnalysisFeignClient analysisFeignClient; |
|||
|
|||
@Override |
|||
public void run(String param) { |
|||
// 参数处理
|
|||
ScreenGovernanceParamDTO paramDto = new ScreenGovernanceParamDTO(); |
|||
if (StringUtils.isNotEmpty(param)) { |
|||
paramDto = JSONObject.parseObject(param, ScreenGovernanceParamDTO.class); |
|||
} |
|||
// 01、治理能力排行数据(按日统计)数据
|
|||
governrankdatadaily(paramDto.getGovernrankdatadaily()); |
|||
// 02、网格治理指数(天)
|
|||
gridgoverndaily(paramDto.getGridgoverndaily()); |
|||
// 03、组织治理指数(天)
|
|||
agencygoverndaily(paramDto.getAgencygoverndaily()); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* 01、治理能力排行数据(按日统计)数据 |
|||
* |
|||
* @param yearMonth 统计月份,格式yyyyMMdd |
|||
* @return void |
|||
* @author zhy |
|||
* @date 2021/6/28 10:47 |
|||
*/ |
|||
public void governrankdatadaily(String yearMonth) { |
|||
ScreenJobFormDTO formDto = new ScreenJobFormDTO(); |
|||
formDto.setYearMonth(yearMonth); |
|||
// 方法名
|
|||
String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); |
|||
logger.info("<" + methodName + "|治理能力排行数据(按日统计)数据>定时任务开始执行" + yearMonth); |
|||
analysisFeignClient.governrankdatadaily(formDto); |
|||
logger.info("<" + methodName + "|治理能力排行数据(按日统计)数据>定时任务执行结束"); |
|||
} |
|||
|
|||
/** |
|||
* 02、网格治理指数(天) |
|||
* |
|||
* @param yearMonth |
|||
* @return void |
|||
* @author zhy |
|||
* @date 2021/6/28 10:47 |
|||
*/ |
|||
public void gridgoverndaily(String yearMonth) { |
|||
ScreenJobFormDTO formDto = new ScreenJobFormDTO(); |
|||
formDto.setYearMonth(yearMonth); |
|||
// 方法名
|
|||
String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); |
|||
logger.info("<" + methodName + "|网格治理指数>定时任务开始执行"); |
|||
analysisFeignClient.gridgoverndaily(formDto); |
|||
logger.info("<" + methodName + "|网格治理指数>定时任务执行结束"); |
|||
} |
|||
|
|||
/** |
|||
* 03、组织治理指数(天) |
|||
* |
|||
* @param yearMonth |
|||
* @return void |
|||
* @author zhy |
|||
* @date 2021/6/28 10:47 |
|||
*/ |
|||
public void agencygoverndaily(String yearMonth) { |
|||
ScreenJobFormDTO formDto = new ScreenJobFormDTO(); |
|||
formDto.setYearMonth(yearMonth); |
|||
// 方法名
|
|||
String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); |
|||
logger.info("<" + methodName + "|组织治理指数>定时任务开始执行"); |
|||
analysisFeignClient.agencygoverndaily(formDto); |
|||
logger.info("<" + methodName + "|组织治理指数>定时任务执行结束"); |
|||
} |
|||
|
|||
} |
Loading…
Reference in new issue