Browse Source

网格相关、区直部门相关,指标计算,改为以screen_customer_grid、screen_customer_dept为主表。当前部门或网格没有原始指标值时,赋值为0

dev_shibei_match
yinzuomei 4 years ago
parent
commit
bdabd15c34
  1. 8
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/GridCorreLationServiceImpl.java
  2. 82
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityDeptMonthlyDao.xml
  3. 105
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml
  4. 156
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexPartyAblityGridMonthlyDao.xml
  5. 80
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexServiceAblityGridMonthlyDao.xml

8
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/GridCorreLationServiceImpl.java

@ -192,9 +192,11 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
log.error("calculateGridDangJian customerId:{} have not any indexGroupDetail", formDTO.getCustomerId());
throw new RenException("客户【网格相关:党建能力】指标权重信息不存在");
}
//查询总记录数
//查询总记录数:如果网格内没有产生业务数据,fact_index_party_ablity_grid_monthly为空,改为以screen_customer_grid为主表
//举例:有10个网格,只有2个网格在指标表里面有记录,实际total应该还是为10. 并且那8个指标值赋值为0
int total = factIndexPartyAblityGridMonthlyDao.selectCount(formDTO);
if (NumConstant.ZERO == total) {
log.warn(String.format("customerId=%s,monthId=%s,没有找到screen_customer_grid记录", formDTO.getCustomerId(), formDTO.getMonthId()));
log.warn(String.format("customerId=%s,monthId=%s,没有上传网格相关-党建能力-五级指标数据", formDTO.getCustomerId(), formDTO.getMonthId()));
return;
}
@ -214,6 +216,7 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
for (int pageNo = 1; pageNo <= totalPage; pageNo++) {
int pageIndex = (pageNo - NumConstant.ONE) * IndexCalConstant.PAGE_SIZE;
//前10条
//这块逻辑也要改为以screen_customer_grid表为主表,没有五级指标值的网格,赋值为0
List<Map<String, Object>> recordList = queryListPartyAblityGrid(new PageQueryGridFormDTO(formDTO.getCustomerId(),
formDTO.getMonthId(),
pageIndex,
@ -603,7 +606,8 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
log.error("calculateGridZhiLi customerId:{} have not any indexGroupDetail", formDTO.getCustomerId());
throw new RenException("客户【网格相关:治理能力】指标权重信息不存在");
}
//查询总记录数
//查询总记录数:如果网格内没有产生业务数据,fact_index_govrn_ablity_grid_monthly为空,改为以screen_customer_grid为主表
//举例:有10个网格,只有2个网格在指标表里面有记录,实际total应该还是为10. 并且那8个指标值赋值为0
int total = factIndexGovrnAblityGridMonthlyDao.selectCount(formDTO);
if (NumConstant.ZERO == total) {
log.warn(String.format("customerId%s,monthId%s,没有上传网格相关-治理能力-五级指标数据", formDTO.getCustomerId(), formDTO.getMonthId()));

82
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityDeptMonthlyDao.xml

@ -98,24 +98,16 @@
<!-- 查询(治理能力-区直部门相关数据 )当前月共上传了多少条记录 -->
<select id="selectCount" parameterType="com.epmet.dto.indexcal.CalculateCommonFormDTO" resultType="java.lang.Integer">
SELECT
count( 1 ) AS total
count( SCD.DEPT_ID ) AS total
FROM
fact_index_govrn_ablity_dept_monthly m
inner join screen_customer_dept scd
on(
m.DEPT_ID=scd.DEPT_ID
and scd.DEL_FLAG='0'
and scd.UP_TO_CAL='yes'
)
WHERE
m.DEL_FLAG = '0'
AND m.MONTH_ID=#{monthId}
screen_customer_dept scd
WHERE scd.DEL_FLAG='0'
and scd.UP_TO_CAL='yes'
<choose>
<when test="null!=subCustomerIds and subCustomerIds.size()>0">
and scd.AREA_CODE LIKE concat( #{customerAreaCode}, '%')
</when>
<otherwise>
AND m.CUSTOMER_ID =#{customerId}
and scd.CUSTOMER_ID=#{customerId}
</otherwise>
</choose>
@ -124,21 +116,18 @@
<!-- 计算最大最小值 -->
<select id="selectExtremeValue" parameterType="com.epmet.dto.indexcal.CalculateCommonFormDTO" resultType="java.util.Map">
SELECT
m.CUSTOMER_ID,
m.DEPT_ID,
m.MONTH_ID,
MIN(m.TRANSFERED_COUNT) as TRANSFERED_COUNT_MIN,
MAX(m.TRANSFERED_COUNT) as TRANSFERED_COUNT_MAX,
MIN(m.CLOSED_PROJECT_COUNT) as CLOSED_PROJECT_COUNT_MIN,
MAX(m.CLOSED_PROJECT_COUNT) as CLOSED_PROJECT_COUNT_MAX,
MIN(m.RESP_PROJECT_RATIO) as RESP_PROJECT_RATIO_MIN,
MAX(m.RESP_PROJECT_RATIO) as RESP_PROJECT_RATIO_MAX,
MIN(m.HANDLE_PROJECT_RATIO) as HANDLE_PROJECT_RATIO_MIN,
MAX(m.HANDLE_PROJECT_RATIO) as HANDLE_PROJECT_RATIO_MAX,
MIN(M.CLOSED_PROJECT_RATIO) as CLOSED_PROJECT_RATIO_MIN,
MAX(M.CLOSED_PROJECT_RATIO) as CLOSED_PROJECT_RATIO_MAX,
MIN(M.SATISFACTION_RATIO) as SATISFACTION_RATIO_MIN,
MAX(M.SATISFACTION_RATIO) as SATISFACTION_RATIO_MAX
IFNULL(MIN(m.TRANSFERED_COUNT),0) as TRANSFERED_COUNT_MIN,
IFNULL(MAX(m.TRANSFERED_COUNT),0) as TRANSFERED_COUNT_MAX,
IFNULL(MIN(m.CLOSED_PROJECT_COUNT),0) as CLOSED_PROJECT_COUNT_MIN,
IFNULL(MAX(m.CLOSED_PROJECT_COUNT),0) as CLOSED_PROJECT_COUNT_MAX,
IFNULL(MIN(m.RESP_PROJECT_RATIO),0) as RESP_PROJECT_RATIO_MIN,
IFNULL(MAX(m.RESP_PROJECT_RATIO),0) as RESP_PROJECT_RATIO_MAX,
IFNULL(MIN(m.HANDLE_PROJECT_RATIO),0) as HANDLE_PROJECT_RATIO_MIN,
IFNULL(MAX(m.HANDLE_PROJECT_RATIO),0) as HANDLE_PROJECT_RATIO_MAX,
IFNULL(MIN(M.CLOSED_PROJECT_RATIO),0) as CLOSED_PROJECT_RATIO_MIN,
IFNULL(MAX(M.CLOSED_PROJECT_RATIO),0) as CLOSED_PROJECT_RATIO_MAX,
IFNULL(MIN(M.SATISFACTION_RATIO),0) as SATISFACTION_RATIO_MIN,
IFNULL(MAX(M.SATISFACTION_RATIO),0) as SATISFACTION_RATIO_MAX
FROM
fact_index_govrn_ablity_dept_monthly m
inner join screen_customer_dept scd
@ -155,7 +144,6 @@
and scd.AREA_CODE LIKE concat( #{customerAreaCode}, '%')
</when>
<otherwise>
AND m.CUSTOMER_ID =#{customerId}
and scd.CUSTOMER_ID=#{customerId}
</otherwise>
</choose>
@ -164,38 +152,36 @@
<!-- 分页查询事实记录 -->
<select id="selectListByMonthId" parameterType="map" resultType="java.util.Map">
SELECT
m.CUSTOMER_ID,
m.AGENCY_ID,
m.DEPT_ID,
m.MONTH_ID,
m.TRANSFERED_COUNT,
m.CLOSED_PROJECT_COUNT,
m.RESP_PROJECT_RATIO,
m.HANDLE_PROJECT_RATIO,
m.CLOSED_PROJECT_RATIO,
SATISFACTION_RATIO
scd.CUSTOMER_ID,
scd.PARENT_AGENCY_ID AS AGENCY_ID,
scd.DEPT_ID,
#{monthId} AS MONTH_ID,
IFNULL(m.TRANSFERED_COUNT,0) AS TRANSFERED_COUNT,
IFNULL(m.CLOSED_PROJECT_COUNT,0) AS CLOSED_PROJECT_COUNT,
IFNULL(m.RESP_PROJECT_RATIO,0) AS RESP_PROJECT_RATIO,
IFNULL(m.HANDLE_PROJECT_RATIO,0) AS HANDLE_PROJECT_RATIO,
IFNULL(m.CLOSED_PROJECT_RATIO,0) AS CLOSED_PROJECT_RATIO,
IFNULL(M.SATISFACTION_RATIO,0) AS SATISFACTION_RATIO
FROM
fact_index_govrn_ablity_dept_monthly m
inner join screen_customer_dept scd
screen_customer_dept scd
LEFT join fact_index_govrn_ablity_dept_monthly m
on(
m.DEPT_ID=scd.DEPT_ID
and scd.DEL_FLAG='0'
and scd.UP_TO_CAL='yes'
)
WHERE
m.DEL_FLAG = '0'
scd.DEPT_ID=m.DEPT_ID
AND m.DEL_FLAG = '0'
AND m.MONTH_ID =#{monthId}
)
WHERE scd.DEL_FLAG='0'
and scd.UP_TO_CAL='yes'
<choose>
<when test="null!=subCustomerIds and subCustomerIds.size()>0">
and scd.AREA_CODE LIKE concat( #{customerAreaCode}, '%')
</when>
<otherwise>
AND m.CUSTOMER_ID =#{customerId}
and scd.CUSTOMER_ID=#{customerId}
</otherwise>
</choose>
ORDER BY
m.DEPT_ID ASC
scd.DEPT_ID ASC
LIMIT #{offset},#{pageSize}
</select>

105
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml

@ -100,80 +100,73 @@
<!-- 当前客户下,所有网格的治理能力相关五级指标 -->
<select id="selectListGovrnAblityGrid" parameterType="com.epmet.dto.indexcal.PageQueryGridFormDTO" resultType="java.util.HashMap">
SELECT
m.CUSTOMER_ID,
m.GRID_ID,
m.MONTH_ID,
m.ISSUE_TOTAL,
m.AVG_ISSUE_COUNT,
m.ISSUE_TO_PROJECT_RATIO,
m.PROJECT_TOTAL,
m.SELF_SOLVE_PROJECT_COUNT,
m.RESOLVE_PROJECT_COUNT,
m.TRANSFER_RIGHT_RATIO,
m.SATISFACTION_RATIO
scg.CUSTOMER_ID,
scg.GRID_ID,
#{monthId} as MONTH_ID,
IFNULL(m.ISSUE_TOTAL,0) AS ISSUE_TOTAL,
IFNULL(m.AVG_ISSUE_COUNT,0) AS AVG_ISSUE_COUNT,
IFNULL(m.ISSUE_TO_PROJECT_RATIO,0) AS ISSUE_TO_PROJECT_RATIO,
IFNULL(m.PROJECT_TOTAL,0) AS PROJECT_TOTAL,
IFNULL(m.SELF_SOLVE_PROJECT_COUNT,0) AS SELF_SOLVE_PROJECT_COUNT,
IFNULL(m.RESOLVE_PROJECT_COUNT,0) AS RESOLVE_PROJECT_COUNT,
IFNULL(m.TRANSFER_RIGHT_RATIO,0) AS TRANSFER_RIGHT_RATIO,
IFNULL(m.SATISFACTION_RATIO,0) AS SATISFACTION_RATIO
FROM
fact_index_govrn_ablity_grid_monthly m
inner join screen_customer_grid scg
screen_customer_grid scg
LEFT join fact_index_govrn_ablity_grid_monthly m
on(
m.GRID_ID=scg.GRID_ID
and scg.DEL_FLAG='0'
and scg.UP_TO_CAL='yes'
)
WHERE
m.DEL_FLAG = '0'
scg.GRID_ID=m.GRID_ID
and m.DEL_FLAG = '0'
and m.MONTH_ID=#{monthId}
)
WHERE scg.DEL_FLAG='0'
and scg.UP_TO_CAL='yes'
<choose>
<when test="null!=subCustomerIds and subCustomerIds.size()>0">
and scg.AREA_CODE LIKE concat( #{customerAreaCode}, '%')
</when>
<otherwise>
and m.CUSTOMER_ID=#{customerId}
and scg.CUSTOMER_ID=#{customerId}
</otherwise>
</choose>
order by m.GRID_ID asc
order by scg.GRID_ID asc
LIMIT #{pageIndex}, #{pageSize}
</select>
<!-- 查询治理能力,网格相关,各五级指标最大值,最小值 -->
<select id="selectGovrnAblityGridMinAndMax" parameterType="com.epmet.dto.indexcal.CalculateCommonFormDTO" resultType="java.util.Map">
SELECT
m.CUSTOMER_ID,
m.GRID_ID,
m.MONTH_ID,
MIN(m.ISSUE_TOTAL) AS ISSUE_TOTAL_MIN,
MAX(m.ISSUE_TOTAL) AS ISSUE_TOTAL_MAX,
MIN(m.AVG_ISSUE_COUNT) AS AVG_ISSUE_COUNT_MIN,
MAX(m.AVG_ISSUE_COUNT) AS AVG_ISSUE_COUNT_MAX,
MIN(m.ISSUE_TO_PROJECT_RATIO) AS ISSUE_TO_PROJECT_RATIO_MIN,
MAX(m.ISSUE_TO_PROJECT_RATIO) AS ISSUE_TO_PROJECT_RATIO_MAX,
MIN(m.PROJECT_TOTAL) AS PROJECT_TOTAL_MIN,
MAX(m.PROJECT_TOTAL) AS PROJECT_TOTAL_MAX,
MIN(m.SELF_SOLVE_PROJECT_COUNT) AS SELF_SOLVE_PROJECT_COUNT_MIN,
MAX(m.SELF_SOLVE_PROJECT_COUNT) AS SELF_SOLVE_PROJECT_COUNT_MAX,
MIN(m.RESOLVE_PROJECT_COUNT) AS RESOLVE_PROJECT_COUNT_MIN,
MAX(m.RESOLVE_PROJECT_COUNT) AS RESOLVE_PROJECT_COUNT_MAX,
MIN(m.TRANSFER_RIGHT_RATIO) AS TRANSFER_RIGHT_RATIO_MIN,
MAX(m.TRANSFER_RIGHT_RATIO) AS TRANSFER_RIGHT_RATIO_MAX,
MIN(m.SATISFACTION_RATIO) AS SATISFACTION_RATIO_MIN,
MAX(m.SATISFACTION_RATIO) AS SATISFACTION_RATIO_MAX
IFNULL(MIN(m.ISSUE_TOTAL),0) AS ISSUE_TOTAL_MIN,
IFNULL(MAX(m.ISSUE_TOTAL),0) AS ISSUE_TOTAL_MAX,
IFNULL(MIN(m.AVG_ISSUE_COUNT),0) AS AVG_ISSUE_COUNT_MIN,
IFNULL(MAX(m.AVG_ISSUE_COUNT),0) AS AVG_ISSUE_COUNT_MAX,
IFNULL(MIN(m.ISSUE_TO_PROJECT_RATIO),0) AS ISSUE_TO_PROJECT_RATIO_MIN,
IFNULL(MAX(m.ISSUE_TO_PROJECT_RATIO),0) AS ISSUE_TO_PROJECT_RATIO_MAX,
IFNULL(MIN(m.PROJECT_TOTAL),0) AS PROJECT_TOTAL_MIN,
IFNULL(MAX(m.PROJECT_TOTAL),0) AS PROJECT_TOTAL_MAX,
IFNULL(MIN(m.SELF_SOLVE_PROJECT_COUNT),0) AS SELF_SOLVE_PROJECT_COUNT_MIN,
IFNULL(MAX(m.SELF_SOLVE_PROJECT_COUNT),0) AS SELF_SOLVE_PROJECT_COUNT_MAX,
IFNULL(MIN(m.RESOLVE_PROJECT_COUNT),0) AS RESOLVE_PROJECT_COUNT_MIN,
IFNULL(MAX(m.RESOLVE_PROJECT_COUNT),0) AS RESOLVE_PROJECT_COUNT_MAX,
IFNULL(MIN(m.TRANSFER_RIGHT_RATIO),0) AS TRANSFER_RIGHT_RATIO_MIN,
IFNULL(MAX(m.TRANSFER_RIGHT_RATIO),0) AS TRANSFER_RIGHT_RATIO_MAX,
IFNULL(MIN(m.SATISFACTION_RATIO),0) AS SATISFACTION_RATIO_MIN,
IFNULL(MAX(m.SATISFACTION_RATIO),0) AS SATISFACTION_RATIO_MAX
FROM
fact_index_govrn_ablity_grid_monthly m
inner join screen_customer_grid scg
screen_customer_grid scg
left join fact_index_govrn_ablity_grid_monthly m
on(
m.GRID_ID=scg.GRID_ID
and scg.DEL_FLAG='0'
and scg.UP_TO_CAL='yes'
)
WHERE
m.DEL_FLAG = '0'
scg.GRID_ID=m.GRID_ID
and m.DEL_FLAG = '0'
and m.MONTH_ID=#{monthId}
)
WHERE scg.DEL_FLAG='0'
and scg.UP_TO_CAL='yes'
<choose>
<when test="null!=subCustomerIds and subCustomerIds.size()>0">
and scg.AREA_CODE LIKE concat( #{customerAreaCode}, '%')
</when>
<otherwise>
and m.CUSTOMER_ID=#{customerId}
and scg.CUSTOMER_ID=#{customerId}
</otherwise>
</choose>
@ -181,24 +174,16 @@
<select id="selectCount" resultType="java.lang.Integer" parameterType="com.epmet.dto.indexcal.CalculateCommonFormDTO">
SELECT
count( 1 ) AS total
count( scg.GRID_ID ) AS total
FROM
fact_index_govrn_ablity_grid_monthly m
inner join screen_customer_grid scg
on(
m.GRID_ID=scg.GRID_ID
and scg.DEL_FLAG='0'
screen_customer_grid scg
WHERE scg.DEL_FLAG='0'
and scg.UP_TO_CAL='yes'
)
WHERE
m.DEL_FLAG = '0'
AND m.MONTH_ID=#{monthId}
<choose>
<when test="null!=subCustomerIds and subCustomerIds.size()>0">
and scg.AREA_CODE LIKE concat( #{customerAreaCode}, '%')
</when>
<otherwise>
AND m.CUSTOMER_ID =#{customerId}
and scg.CUSTOMER_ID=#{customerId}
</otherwise>
</choose>

156
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexPartyAblityGridMonthlyDao.xml

@ -105,98 +105,92 @@
</insert>
<!-- 这块逻辑也要改为以screen_customer_grid表为主表,没有五级指标值的网格,赋值为0 -->
<!-- 当前客户下,所有网格的党建能力相关五级指标 -->
<select id="selectListPartyAblityGrid" parameterType="com.epmet.dto.indexcal.PageQueryGridFormDTO" resultType="java.util.HashMap">
SELECT
m.CUSTOMER_ID,
m.GRID_ID,
m.MONTH_ID,
m.USER_COUNT,
m.PARTY_COUNT,
m.ACTIVE_USER_COUNT,
m.ACTIVE_PARTY_COUNT,
m.PARTY_AVG_TOPIC_COUNT,
m.USER_AVG_TOPIC_COUNT,
m.PARTY_AVG_SHIFT_PROJECT_COUNT,
m.USER_AVG_SHIFT_PROJECT_COUNT,
m.CREATE_GROUP_PARTY_COUNT,
m.PUBLISH_ARTICLE_COUNT,
m.ISSUE_TO_PROJECT_RATIO,
m.CREATE_THREE_MEETS_COUNT,
m.JOIN_THREE_MEETS_COUNT
scg.CUSTOMER_ID,
scg.GRID_ID,
#{monthId} as MONTH_ID,
IFNULL(m.USER_COUNT,0) AS USER_COUNT,
IFNULL(m.PARTY_COUNT,0) AS PARTY_COUNT,
IFNULL(m.ACTIVE_USER_COUNT,0) AS ACTIVE_USER_COUNT
IFNULL(m.ACTIVE_PARTY_COUNT,0) AS ACTIVE_PARTY_COUNT,
IFNULL(m.PARTY_AVG_TOPIC_COUNT,0) AS PARTY_AVG_TOPIC_COUNT,
IFNULL(m.USER_AVG_TOPIC_COUNT,0) AS USER_AVG_TOPIC_COUNT,
IFNULL(m.PARTY_AVG_SHIFT_PROJECT_COUNT,0) AS PARTY_AVG_SHIFT_PROJECT_COUNT,
IFNULL(m.USER_AVG_SHIFT_PROJECT_COUNT,0) AS USER_AVG_SHIFT_PROJECT_COUNT,
IFNULL(m.CREATE_GROUP_PARTY_COUNT,0) AS CREATE_GROUP_PARTY_COUNT,
IFNULL(m.PUBLISH_ARTICLE_COUNT,0) AS PUBLISH_ARTICLE_COUNT,
IFNULL(m.ISSUE_TO_PROJECT_RATIO,0) AS ISSUE_TO_PROJECT_RATIO,
IFNULL(m.CREATE_THREE_MEETS_COUNT,0) AS CREATE_THREE_MEETS_COUNT,
IFNULL(m.JOIN_THREE_MEETS_COUNT,0) AS JOIN_THREE_MEETS_COUNT
FROM
fact_index_party_ablity_grid_monthly m
inner join screen_customer_grid scg
screen_customer_grid scg
left join fact_index_party_ablity_grid_monthly m
on(
m.GRID_ID=scg.GRID_ID
and scg.DEL_FLAG='0'
and scg.UP_TO_CAL='yes'
scg.GRID_ID=m.GRID_ID
AND m.DEL_FLAG = '0'
AND m.MONTH_ID =#{monthId}
)
WHERE
m.DEL_FLAG = '0'
AND m.MONTH_ID =#{monthId}
WHERE scg.DEL_FLAG='0'
and scg.UP_TO_CAL='yes'
<choose>
<when test="null!=subCustomerIds and subCustomerIds.size()>0">
and scg.AREA_CODE LIKE concat( #{customerAreaCode}, '%')
</when>
<otherwise>
AND m.CUSTOMER_ID =#{customerId}
and scg.CUSTOMER_ID=#{customerId}
</otherwise>
</choose>
order by m.GRID_ID asc
order by scg.GRID_ID asc
LIMIT #{pageIndex}, #{pageSize}
</select>
<!-- 查询党建能力,网格相关,各五级指标最大值,最小值 -->
<select id="selectPartyAblityGridMinAndMax" resultType="java.util.Map" parameterType="com.epmet.dto.indexcal.CalculateCommonFormDTO">
SELECT
m.CUSTOMER_ID,
m.GRID_ID,
m.MONTH_ID,
MIN(m.USER_COUNT) AS USER_COUNT_MIN,
MAX(m.USER_COUNT) AS USER_COUNT_MAX,
MIN(m.PARTY_COUNT) AS PARTY_COUNT_MIN,
MAX(m.PARTY_COUNT) AS PARTY_COUNT_MAX,
MIN(m.ACTIVE_USER_COUNT) AS ACTIVE_USER_COUNT_MIN,
MAX(m.ACTIVE_USER_COUNT) AS ACTIVE_USER_COUNT_MAX,
MIN(m.ACTIVE_PARTY_COUNT) AS ACTIVE_PARTY_COUNT_MIN,
MAX(m.ACTIVE_PARTY_COUNT) AS ACTIVE_PARTY_COUNT_MAX,
MIN(m.PARTY_AVG_TOPIC_COUNT) AS PARTY_AVG_TOPIC_COUNT_MIN,
MAX(m.PARTY_AVG_TOPIC_COUNT) AS PARTY_AVG_TOPIC_COUNT_MAX,
MIN(m.USER_AVG_TOPIC_COUNT) AS USER_AVG_TOPIC_COUNT_MIN,
MAX(m.USER_AVG_TOPIC_COUNT) AS USER_AVG_TOPIC_COUNT_MAX,
MIN(m.PARTY_AVG_SHIFT_PROJECT_COUNT) AS PARTY_AVG_SHIFT_PROJECT_COUNT_MIN,
MAX(m.PARTY_AVG_SHIFT_PROJECT_COUNT) AS PARTY_AVG_SHIFT_PROJECT_COUNT_MAX,
MIN(m.USER_AVG_SHIFT_PROJECT_COUNT) AS USER_AVG_SHIFT_PROJECT_COUNT_MIN,
MAX(m.USER_AVG_SHIFT_PROJECT_COUNT) AS USER_AVG_SHIFT_PROJECT_COUNT_MAX,
MIN(m.CREATE_GROUP_PARTY_COUNT) AS CREATE_GROUP_PARTY_COUNT_MIN,
MAX(m.CREATE_GROUP_PARTY_COUNT) AS CREATE_GROUP_PARTY_COUNT_MAX,
MIN(m.PUBLISH_ARTICLE_COUNT) AS PUBLISH_ARTICLE_COUNT_MIN,
MAX(m.PUBLISH_ARTICLE_COUNT) AS PUBLISH_ARTICLE_COUNT_MAX,
MIN(m.ISSUE_TO_PROJECT_RATIO) AS ISSUE_TO_PROJECT_RATIO_MIN,
MAX(m.ISSUE_TO_PROJECT_RATIO) AS ISSUE_TO_PROJECT_RATIO_MAX,
MIN(m.CREATE_THREE_MEETS_COUNT) AS CREATE_THREE_MEETS_COUNT_MIN,
MAX(m.CREATE_THREE_MEETS_COUNT) AS CREATE_THREE_MEETS_COUNT_MAX,
MIN(m.JOIN_THREE_MEETS_COUNT) AS JOIN_THREE_MEETS_COUNT_MIN,
MAX(m.JOIN_THREE_MEETS_COUNT) AS JOIN_THREE_MEETS_COUNT_MAX
IFNULL(MIN(m.USER_COUNT),0) AS USER_COUNT_MIN,
IFNULL(MAX(m.USER_COUNT),0) AS USER_COUNT_MAX,
IFNULL(MIN(m.PARTY_COUNT),0) AS PARTY_COUNT_MIN,
IFNULL(MAX(m.PARTY_COUNT),0) AS PARTY_COUNT_MAX,
IFNULL(MIN(m.ACTIVE_USER_COUNT),0) AS ACTIVE_USER_COUNT_MIN,
IFNULL(MAX(m.ACTIVE_USER_COUNT),0) AS ACTIVE_USER_COUNT_MAX,
IFNULL(MIN(m.ACTIVE_PARTY_COUNT),0) AS ACTIVE_PARTY_COUNT_MIN,
IFNULL(MAX(m.ACTIVE_PARTY_COUNT),0) AS ACTIVE_PARTY_COUNT_MAX,
IFNULL(MIN(m.PARTY_AVG_TOPIC_COUNT),0) AS PARTY_AVG_TOPIC_COUNT_MIN,
IFNULL(MAX(m.PARTY_AVG_TOPIC_COUNT),0) AS PARTY_AVG_TOPIC_COUNT_MAX,
IFNULL(MIN(m.USER_AVG_TOPIC_COUNT),0) AS USER_AVG_TOPIC_COUNT_MIN,
IFNULL(MAX(m.USER_AVG_TOPIC_COUNT),0) AS USER_AVG_TOPIC_COUNT_MAX,
IFNULL(MIN(m.PARTY_AVG_SHIFT_PROJECT_COUNT),0) AS PARTY_AVG_SHIFT_PROJECT_COUNT_MIN,
IFNULL(MAX(m.PARTY_AVG_SHIFT_PROJECT_COUNT),0) AS PARTY_AVG_SHIFT_PROJECT_COUNT_MAX,
IFNULL(MIN(m.USER_AVG_SHIFT_PROJECT_COUNT),0) AS USER_AVG_SHIFT_PROJECT_COUNT_MIN,
IFNULL(MAX(m.USER_AVG_SHIFT_PROJECT_COUNT),0) AS USER_AVG_SHIFT_PROJECT_COUNT_MAX,
IFNULL(MIN(m.CREATE_GROUP_PARTY_COUNT),0) AS CREATE_GROUP_PARTY_COUNT_MIN,
IFNULL(MAX(m.CREATE_GROUP_PARTY_COUNT),0) AS CREATE_GROUP_PARTY_COUNT_MAX,
IFNULL(MIN(m.PUBLISH_ARTICLE_COUNT),0) AS PUBLISH_ARTICLE_COUNT_MIN,
IFNULL(MAX(m.PUBLISH_ARTICLE_COUNT),0) AS PUBLISH_ARTICLE_COUNT_MAX,
IFNULL(MIN(m.ISSUE_TO_PROJECT_RATIO),0) AS ISSUE_TO_PROJECT_RATIO_MIN,
IFNULL(MAX(m.ISSUE_TO_PROJECT_RATIO),0) AS ISSUE_TO_PROJECT_RATIO_MAX,
IFNULL(MIN(m.CREATE_THREE_MEETS_COUNT),0) AS CREATE_THREE_MEETS_COUNT_MIN,
IFNULL(MAX(m.CREATE_THREE_MEETS_COUNT),0) AS CREATE_THREE_MEETS_COUNT_MAX,
IFNULL(MIN(m.JOIN_THREE_MEETS_COUNT),0) AS JOIN_THREE_MEETS_COUNT_MIN,
IFNULL(MAX(m.JOIN_THREE_MEETS_COUNT),0) AS JOIN_THREE_MEETS_COUNT_MAX
FROM
fact_index_party_ablity_grid_monthly m
inner join screen_customer_grid scg
screen_customer_grid scg
LEFT join fact_index_party_ablity_grid_monthly m
on(
m.GRID_ID=scg.GRID_ID
and scg.DEL_FLAG='0'
and scg.UP_TO_CAL='yes'
)
WHERE
m.DEL_FLAG = '0'
scg.GRID_ID=m.GRID_ID
AND m.DEL_FLAG = '0'
AND m.MONTH_ID =#{monthId}
)
WHERE scg.DEL_FLAG='0'
and scg.UP_TO_CAL='yes'
<choose>
<when test="null!=subCustomerIds and subCustomerIds.size()>0">
and scg.AREA_CODE LIKE concat( #{customerAreaCode}, '%')
</when>
<otherwise>
AND m.CUSTOMER_ID =#{customerId}
and scg.CUSTOMER_ID=#{customerId}
</otherwise>
</choose>
@ -204,28 +198,20 @@
<!-- 查询 党建能力-网格相关事实表 这个月共上传记录数 -->
<select id="selectCount" parameterType="com.epmet.dto.indexcal.CalculateCommonFormDTO" resultType="java.lang.Integer">
SELECT
count(1) as total
SELECT
count(scg.GRID_ID) as total
FROM
fact_index_party_ablity_grid_monthly m
inner join screen_customer_grid scg
on(
m.GRID_ID=scg.GRID_ID
and scg.DEL_FLAG='0'
and scg.UP_TO_CAL='yes'
)
WHERE
m.DEL_FLAG = '0'
AND m.MONTH_ID =#{monthId}
<choose>
<when test="null!=subCustomerIds and subCustomerIds.size()>0">
and scg.AREA_CODE LIKE concat( #{customerAreaCode}, '%')
</when>
<otherwise>
AND m.CUSTOMER_ID =#{customerId}
and scg.CUSTOMER_ID=#{customerId}
</otherwise>
</choose>
screen_customer_grid scg
WHERE scg.DEL_FLAG='0'
and scg.UP_TO_CAL='yes'
<choose>
<when test="null!=subCustomerIds and subCustomerIds.size()>0">
and scg.AREA_CODE LIKE concat( #{customerAreaCode}, '%')
</when>
<otherwise>
and scg.CUSTOMER_ID=#{customerId}
</otherwise>
</choose>
</select>
<!-- 场景:客户这个月只上传了一个网格的事实记录 -->

80
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexServiceAblityGridMonthlyDao.xml

@ -81,51 +81,59 @@
<!-- 当前客户下,所有网格的治理能力相关五级指标 -->
<select id="selectListServiceAblityGrid" parameterType="com.epmet.dto.indexcal.PageQueryGridFormDTO" resultType="java.util.HashMap">
SELECT
m.CUSTOMER_ID,
m.GRID_ID,
m.MONTH_ID,
m.ACTIVITY_COUNT,
m.VOLUNTEER_RATIO,
m.PARTY_VOLUNTEER_RATIO
scg.CUSTOMER_ID,
scg.GRID_ID,
#{monthId} AS MONTH_ID,
IFNULL( m.ACTIVITY_COUNT, 0 ) AS ACTIVITY_COUNT,
IFNULL( m.VOLUNTEER_RATIO, 0 ) AS VOLUNTEER_RATIO,
IFNULL( m.PARTY_VOLUNTEER_RATIO, 0 ) AS PARTY_VOLUNTEER_RATIO
FROM
fact_index_service_ablity_grid_monthly m
WHERE
m.DEL_FLAG = '0'
and m.CUSTOMER_ID=#{customerId}
and m.MONTH_ID=#{monthId}
order by m.GRID_ID asc
screen_customer_grid scg
LEFT JOIN fact_index_service_ablity_grid_monthly m
ON ( scg.GRID_ID = m.GRID_ID
AND m.DEL_FLAG = '0'
AND m.MONTH_ID = #{monthId}
)
WHERE scg.DEL_FLAG='0'
and scg.UP_TO_CAL='yes'
<choose>
<when test="null!=subCustomerIds and subCustomerIds.size()>0">
and scg.AREA_CODE LIKE concat( #{customerAreaCode}, '%')
</when>
<otherwise>
and scg.CUSTOMER_ID=#{customerId}
</otherwise>
</choose>
ORDER BY
scg.GRID_ID ASC
LIMIT #{pageIndex}, #{pageSize}
</select>
<!-- 查询 服务能力,网格相关,各五级指标最大值,最小值 -->
<select id="selectServiceAblityGridMinAndMax" parameterType="com.epmet.dto.indexcal.CalculateCommonFormDTO" resultType="java.util.Map">
SELECT
m.CUSTOMER_ID,
m.GRID_ID,
m.MONTH_ID,
MIN(m.ACTIVITY_COUNT) AS ACTIVITY_COUNT_MIN,
MAX(m.ACTIVITY_COUNT) AS ACTIVITY_COUNT_MAX,
MIN(m.VOLUNTEER_RATIO) AS VOLUNTEER_RATIO_MIN,
MAX(m.VOLUNTEER_RATIO) AS VOLUNTEER_RATIO_MAX,
MIN(m.PARTY_VOLUNTEER_RATIO) AS PARTY_VOLUNTEER_RATIO_MIN,
MAX(m.PARTY_VOLUNTEER_RATIO) AS PARTY_VOLUNTEER_RATIO_MAX
IFNULL(MIN(m.ACTIVITY_COUNT),0) AS ACTIVITY_COUNT_MIN,
IFNULL(MAX(m.ACTIVITY_COUNT),0) AS ACTIVITY_COUNT_MAX,
IFNULL(MIN(m.VOLUNTEER_RATIO),0) AS VOLUNTEER_RATIO_MIN,
IFNULL(MAX(m.VOLUNTEER_RATIO),0) AS VOLUNTEER_RATIO_MAX,
IFNULL(MIN(m.PARTY_VOLUNTEER_RATIO),0) AS PARTY_VOLUNTEER_RATIO_MIN,
IFNULL(MAX(m.PARTY_VOLUNTEER_RATIO),0) AS PARTY_VOLUNTEER_RATIO_MAX
FROM
fact_index_service_ablity_grid_monthly m
inner join screen_customer_grid scg
screen_customer_grid scg
left join fact_index_service_ablity_grid_monthly m
on(
m.GRID_ID=scg.GRID_ID
and scg.DEL_FLAG='0'
and scg.UP_TO_CAL='yes'
scg.GRID_ID=m.GRID_ID
and m.DEL_FLAG = '0'
and m.MONTH_ID=#{monthId}
)
WHERE
m.DEL_FLAG = '0'
and m.MONTH_ID=#{monthId}
scg.DEL_FLAG='0'
and scg.UP_TO_CAL='yes'
<choose>
<when test="null!=subCustomerIds and subCustomerIds.size()>0">
and scg.AREA_CODE LIKE concat( #{customerAreaCode}, '%')
</when>
<otherwise>
and m.CUSTOMER_ID=#{customerId}
and scg.CUSTOMER_ID=#{customerId}
</otherwise>
</choose>
@ -134,24 +142,16 @@
<!-- 查询(服务能力-网格相关事实表)共上传记录数 -->
<select id="selectCount" parameterType="com.epmet.dto.indexcal.CalculateCommonFormDTO" resultType="java.lang.Integer">
SELECT
count(1) as total
count(scg.GRID_ID) as total
FROM
fact_index_service_ablity_grid_monthly m
inner join screen_customer_grid scg
on(
m.GRID_ID=scg.GRID_ID
and scg.DEL_FLAG='0'
screen_customer_grid scg
WHERE scg.DEL_FLAG='0'
and scg.UP_TO_CAL='yes'
)
WHERE
m.DEL_FLAG = '0'
AND m.MONTH_ID =#{monthId}
<choose>
<when test="null!=subCustomerIds and subCustomerIds.size()>0">
and scg.AREA_CODE LIKE concat( #{customerAreaCode}, '%')
</when>
<otherwise>
AND m.CUSTOMER_ID =#{customerId}
and scg.CUSTOMER_ID=#{customerId}
</otherwise>
</choose>

Loading…
Cancel
Save