Browse Source

办结效率、办结率做响应调整,调整部分方法名称

master
wangchao 5 years ago
parent
commit
19313bb233
  1. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.java
  2. 15
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollCommunityServiceImpl.java
  3. 15
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollStreetServiceImpl.java
  4. 17
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectLogDailyService.java
  5. 41
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java
  6. 2
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml
  7. 16
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml

4
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.java

@ -80,7 +80,7 @@ public interface FactOriginProjectOrgPeriodDailyDao extends BaseDao<FactOriginPr
void insertBatch(@Param("list") List<FactOriginProjectOrgPeriodDailyEntity> list);
/**
* @Description 查找网格部门对项目的响应系数
* @Description 查找网格部门对项目的办结系数
* @param customerId
* @return
* @author wangc
@ -89,7 +89,7 @@ public interface FactOriginProjectOrgPeriodDailyDao extends BaseDao<FactOriginPr
List<OrgResponseTimeResultDTO> selectSubOrgResponseCoefficient(@Param("customerId") String customerId,@Param("dimId") String dimId, @Param("dateType") String dateType);
/**
* @Description 查找机关对项目的响应系数
* @Description 查找机关对项目的办结系数
* @param customerId
* @return
* @author wangc

15
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollCommunityServiceImpl.java

@ -127,20 +127,25 @@ public class IndexCollCommunityServiceImpl implements IndexCollCommunityService
//办结数
Map<String, Integer> agencyHandleCount = factOriginProjectLogDailyService.getProjectHandledAgency(customerId,dimId.getMonthId(),"month");
Map<String,BigDecimal> responseMap = factOriginProjectLogDailyService.getAgencyResponseRatio(customerId,dimId.getMonthId(),"month");
Map<String,Integer> agencyParticipatedCount = factOriginProjectLogDailyService.getCountOfProjectsHandledByAgency(customerId,dimId.getMonthId(),"month");
Map<String,BigDecimal> efficiencyMap = factOriginProjectLogDailyService.getAgencyWorkPieceRatio(customerId,dimId.getMonthId(),"month");
list.forEach(entity ->{
entity.setClosedProjectCount(agencyHandleCount.get(entity.getAgencyId()) == null? NumConstant.ZERO : agencyHandleCount.get(entity.getAgencyId()));
BigDecimal element = entity.getClosedProjectRatio();
if (entity.getTransferedCount() != NumConstant.ZERO) {
BigDecimal element = new BigDecimal(entity.getClosedProjectCount());
//分母,即机关参与过的项目数(去重)
Integer denominator = agencyParticipatedCount.get(entity.getAgencyId());
if (agencyParticipatedCount.get(entity.getAgencyId()) != NumConstant.ZERO) {
//办结率
entity.setClosedProjectRatio(
element.divide(new BigDecimal(entity.getTransferedCount()), NumConstant.SIX, RoundingMode.HALF_UP)
element.divide(new BigDecimal(denominator), NumConstant.SIX, RoundingMode.HALF_UP)
);
}
//响应度
//办结效率
entity.setHandleProjectRatio(efficiencyMap.get(entity.getAgencyId()));
});
factIndexGovrnAblityOrgMonthlyService.deleteByCustomer(customerId, dimId.getMonthId(), OrgTypeConstant.COMMUNITY);
factIndexGovrnAblityOrgMonthlyService.saveList(list);

15
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollStreetServiceImpl.java

@ -78,6 +78,7 @@ public class IndexCollStreetServiceImpl implements IndexCollStreetService {
//办结项目率
entity.setClosedProjectRatio(new BigDecimal(NumConstant.ZERO));
entity.setSatisfactionRatio(new BigDecimal(NumConstant.ZERO));
//街道办结项目的处理效率
entity.setHandleProjectRatio(new BigDecimal(NumConstant.ZERO));
return entity;
}).collect(Collectors.toList());
@ -117,17 +118,21 @@ public class IndexCollStreetServiceImpl implements IndexCollStreetService {
}
//办结数
Map<String, Integer> agencyHandleCount = factOriginProjectLogDailyService.getProjectHandledAgency(customerId,dimId.getMonthId(),"month");
Map<String,BigDecimal> responseMap = factOriginProjectLogDailyService.getAgencyResponseRatio(customerId,dimId.getMonthId(),"month");
Map<String,Integer> agencyParticipatedCount = factOriginProjectLogDailyService.getCountOfProjectsHandledByAgency(customerId,dimId.getMonthId(),"month");
Map<String,BigDecimal> efficiencyMap = factOriginProjectLogDailyService.getAgencyWorkPieceRatio(customerId,dimId.getMonthId(),"month");
list.forEach(entity ->{
entity.setClosedProjectCount(agencyHandleCount.get(entity.getAgencyId()) == null? NumConstant.ZERO : agencyHandleCount.get(entity.getAgencyId()));
BigDecimal element = entity.getClosedProjectRatio();
if (entity.getTransferedCount() != NumConstant.ZERO) {
BigDecimal element = new BigDecimal(entity.getClosedProjectCount());
//分母,即机关参与过的项目数(去重)
Integer denominator = agencyParticipatedCount.get(entity.getAgencyId());
if (agencyParticipatedCount.get(entity.getAgencyId()) != NumConstant.ZERO) {
//办结率
entity.setClosedProjectRatio(
element.divide(new BigDecimal(entity.getTransferedCount()), NumConstant.SIX, RoundingMode.HALF_UP)
element.divide(new BigDecimal(denominator), NumConstant.SIX, RoundingMode.HALF_UP)
);
}
//响应度
//办结效率
entity.setHandleProjectRatio(efficiencyMap.get(entity.getAgencyId()));
});
factIndexGovrnAblityOrgMonthlyService.deleteByCustomer(customerId, dimId.getMonthId(), OrgTypeConstant.STREET);

17
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectLogDailyService.java

@ -169,21 +169,32 @@ public interface FactOriginProjectLogDailyService extends BaseService<FactOrigin
List<OrgStatisticsResultDTO> getDepTransferCount(String customerId, String monthId, String level);
/**
* @Description 查询各机关办结了多少项目
* @Description 查询各机关办结(办结的含义指每个项目的结点中最高的机关)了多少项目
* @param customerId
* @return
* @author wangc
* @date 2020.09.20 23:46
**/
Map<String,Integer> getProjectHandledAgency(String customerId, String dimId,String dateType);
/**
* @Description 查询机关单位经手的项目数
* @param customerId
* @param dimId
* @param dateType - 日期维度类型 month date week quarter year
* @return
* @author wangc
* @date 2020.09.23 10:06
**/
Map<String,Integer> getCountOfProjectsHandledByAgency(String customerId, String dimId,String dateType);
/**
* @Description 计算机关响应度
* @Description 计算机关办结项目效率
* @param customerId
* @return
* @author wangc
* @date 2020.09.21 02:16
**/
Map<String, BigDecimal> getAgencyResponseRatio(String customerId, String dimId,String dateType);
Map<String, BigDecimal> getAgencyWorkPieceRatio(String customerId, String dimId,String dateType);
}

41
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java

@ -165,7 +165,7 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl<FactOr
}
/**
* @Description 查询各项目经受了多少机关
* @Description 查询各项目经手的最高机关Id
* @param customerId
* @return
* @author wangc
@ -197,16 +197,44 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl<FactOr
return result;
}
/**
* @Description 查询机关单位经手的项目数
* @param customerId
* @param dimId
* @param dateType - 日期维度类型 month date week quarter year
* @return
* @author wangc
* @date 2020.09.23 10:06
**/
@Override
public Map<String, Integer> getCountOfProjectsHandledByAgency(String customerId, String dimId, String dateType) {
Map<String,Integer> result = new HashMap<>();
List<ProjectParticipatedAgencyResultDTO> projectAgencyCount = baseDao.selectProjectParticipatedAgency(customerId,dimId,dateType);
if(!CollectionUtils.isEmpty(projectAgencyCount)){
Map<String,List<ProjectParticipatedAgencyResultDTO>> map =
projectAgencyCount.stream().collect(Collectors.groupingBy(ProjectParticipatedAgencyResultDTO :: getProjectId));
map.forEach((agency,handledProjectList) -> {
result.put(agency,handledProjectList.size());
});
return result;
}
return result;
}
/**
* @Description 计算机关响应度
* @Description 计算机关办结项目效率
* @param customerId
* @return
* @author wangc
* @date 2020.09.21 02:16
**/
@Override
public Map<String, BigDecimal> getAgencyResponseRatio(String customerId, String dimId, String dateType) {
public Map<String, BigDecimal> getAgencyWorkPieceRatio(String customerId, String dimId, String dateType) {
//网格、部门的办结系数
List<OrgResponseTimeResultDTO> gridDeptResponse = projectOrgPeriodDailyDao.selectSubOrgResponseCoefficient(customerId, dimId, dateType);
//机关的办结系数
List<OrgResponseTimeResultDTO> agencyResponse = projectOrgPeriodDailyDao.selectAgencyResponseCoefficient(customerId, dimId, dateType);
Map<String,BigDecimal> consumingMap = new HashMap<>();
Map<String,BigDecimal> timeMap = new HashMap<>();
@ -229,13 +257,14 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl<FactOr
}
});
}
Map<String,BigDecimal> ratioMap = new HashMap<>();
//效率map
Map<String,BigDecimal> efficiencyMap = new HashMap<>();
if(!CollectionUtils.isEmpty(consumingMap)) {
consumingMap.keySet().forEach(agencyId -> {
ratioMap.put(agencyId, consumingMap.get(agencyId).divide(timeMap.get(agencyId), NumConstant.SIX, RoundingMode.HALF_UP));
efficiencyMap.put(agencyId, consumingMap.get(agencyId).divide(timeMap.get(agencyId), NumConstant.SIX, RoundingMode.HALF_UP));
});
}
return ratioMap;
return efficiencyMap;
}

2
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml

@ -151,7 +151,7 @@
fact_origin_project_main_daily project
LEFT JOIN
fact_origin_project_log_daily log
ON log.PROJECT_ID = project.ID AND log.DEL_FLAG = '0'
ON log.PROJECT_ID = project.ID AND log.DEL_FLAG = '0' AND log.IS_ACTIVE = '1'
LEFT JOIN
dim_object_status dimStatus
ON project.PROJECT_STATUS = dimStatus.STATUS_CODE AND dimStatus.DEL_FLAG = '0' AND dimStatus.STATUS_TYPE = 'project'

16
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml

@ -117,11 +117,11 @@
</insert>
<!-- 查找网格、部门对项目的响应系数 -->
<!-- 查找网格、部门对项目的办结系数 -->
<select id="selectSubOrgResponseCoefficient" resultType="com.epmet.dto.extract.result.OrgResponseTimeResultDTO">
SELECT
PID AS agencyId,
SUM(timestampdiff(MINUTE , INFORMED_DATE ,IFNULL(PERIOD_TILL_REPLY_FIRSTLY,NOW()))) AS responseTime,
SUM(timestampdiff(MINUTE , INFORMED_DATE ,IFNULL(HANDLED_DATE,NOW()))) AS responseTime,
COUNT(ID) projectTotal,
COUNT(DISTINCT PROJECT_ID) distinctProjectTotal
@ -138,21 +138,21 @@
<if test='null != dimId and "" != dimId'>
<choose>
<when test='"month" == dateType'>
AND DATE_FORMAT(IFNULL(PERIOD_TILL_REPLY_FIRSTLY,NOW()),'%Y%m') = #{dimId}
AND DATE_FORMAT(IFNULL(HANDLED_DATE,NOW()),'%Y%m') = #{dimId}
</when>
<otherwise>
AND DATE_FORMAT(IFNULL(PERIOD_TILL_REPLY_FIRSTLY,NOW()),'%Y%m%d') = #{dimId}
AND DATE_FORMAT(IFNULL(HANDLED_DATE,NOW()),'%Y%m%d') = #{dimId}
</otherwise>
</choose>
</if>
GROUP BY PID
</select>
<!-- 查找机关对项目的响应系数 -->
<!-- 查找机关对项目的办结系数 -->
<select id="selectAgencyResponseCoefficient" resultType="com.epmet.dto.extract.result.OrgResponseTimeResultDTO">
SELECT
ORG_ID AS agencyId,
SUM(timestampdiff(MINUTE , INFORMED_DATE ,IFNULL(PERIOD_TILL_REPLY_FIRSTLY,NOW()))) AS responseTime,
SUM(timestampdiff(MINUTE , INFORMED_DATE ,IFNULL(HANDLED_DATE,NOW()))) AS responseTime,
COUNT(ID) projectTotal,
COUNT(PROJECT_ID) distinctProjectTotal
@ -169,10 +169,10 @@
<if test='null != dimId and "" != dimId'>
<choose>
<when test='"month" == dateType'>
AND DATE_FORMAT(IFNULL(PERIOD_TILL_REPLY_FIRSTLY,NOW()),'%Y%m') = #{dimId}
AND DATE_FORMAT(IFNULL(HANDLED_DATE,NOW()),'%Y%m') = #{dimId}
</when>
<otherwise>
AND DATE_FORMAT(IFNULL(PERIOD_TILL_REPLY_FIRSTLY,NOW()),'%Y%m%d') = #{dimId}
AND DATE_FORMAT(IFNULL(HANDLED_DATE,NOW()),'%Y%m%d') = #{dimId}
</otherwise>
</choose>
</if>

Loading…
Cancel
Save