Browse Source

Merge remote-tracking branch 'remotes/origin/dev_screen_data_2.0' into dev_screen_data_an_2.0

dev_shibei_match
jianjun 5 years ago
parent
commit
15a2eaefe0
  1. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollCommunityServiceImpl.java
  2. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollDistrictServiceImpl.java
  3. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollStreetServiceImpl.java
  4. 3
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/IssueExtractServiceImpl.java
  5. 11
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectExtractServiceImpl.java
  6. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/FactIndexCollectServiceImpl.java
  7. 125
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml
  8. 14
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml

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

@ -128,7 +128,7 @@ public class IndexCollCommunityServiceImpl implements IndexCollCommunityService
list.forEach(entity -> satisfaction.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(sa -> { list.forEach(entity -> satisfaction.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(sa -> {
if (sa.getCount() != NumConstant.ZERO) { if (sa.getCount() != NumConstant.ZERO) {
BigDecimal count = new BigDecimal(sa.getCount()); BigDecimal count = new BigDecimal(sa.getCount());
BigDecimal sum = new BigDecimal(sa.getSum()); BigDecimal sum = sa.getRatio();
entity.setSatisfactionRatio(sum.divide(count, NumConstant.SIX, RoundingMode.HALF_UP)); entity.setSatisfactionRatio(sum.divide(count, NumConstant.SIX, RoundingMode.HALF_UP));
} }
})); }));

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

@ -122,7 +122,7 @@ public class IndexCollDistrictServiceImpl implements IndexCollDistrictService {
list.forEach(entity -> satisfaction.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(sa -> { list.forEach(entity -> satisfaction.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(sa -> {
if (sa.getCount() != NumConstant.ZERO) { if (sa.getCount() != NumConstant.ZERO) {
BigDecimal count = new BigDecimal(sa.getCount()); BigDecimal count = new BigDecimal(sa.getCount());
BigDecimal sum = new BigDecimal(sa.getSum()); BigDecimal sum = sa.getRatio();
entity.setSatisfactionRatio(sum.divide(count, NumConstant.SIX, RoundingMode.HALF_UP)); entity.setSatisfactionRatio(sum.divide(count, NumConstant.SIX, RoundingMode.HALF_UP));
} }
})); }));

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

@ -120,7 +120,7 @@ public class IndexCollStreetServiceImpl implements IndexCollStreetService {
list.forEach(entity -> satisfaction.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(sa -> { list.forEach(entity -> satisfaction.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(sa -> {
if (sa.getCount() != NumConstant.ZERO) { if (sa.getCount() != NumConstant.ZERO) {
BigDecimal count = new BigDecimal(sa.getCount()); BigDecimal count = new BigDecimal(sa.getCount());
BigDecimal sum = new BigDecimal(sa.getSum()); BigDecimal sum = sa.getRatio();
entity.setSatisfactionRatio(sum.divide(count, NumConstant.SIX, RoundingMode.HALF_UP)); entity.setSatisfactionRatio(sum.divide(count, NumConstant.SIX, RoundingMode.HALF_UP));
} }
})); }));

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

@ -201,6 +201,9 @@ public class IssueExtractServiceImpl implements IssueExtractService {
List<String> userIds = listResult.stream().map(issue -> issue.getUserId()).distinct().collect(Collectors.toList()); List<String> userIds = listResult.stream().map(issue -> issue.getUserId()).distinct().collect(Collectors.toList());
userIds.addAll(voteInfoList.stream().map(issue -> issue.getUserId()).distinct().collect(Collectors.toList())); userIds.addAll(voteInfoList.stream().map(issue -> issue.getUserId()).distinct().collect(Collectors.toList()));
userIds.addAll(satisfactionInfoList.stream().map(issue -> issue.getUserId()).distinct().collect(Collectors.toList())); userIds.addAll(satisfactionInfoList.stream().map(issue -> issue.getUserId()).distinct().collect(Collectors.toList()));
if (CollectionUtils.isEmpty(userIds)){
return true;
}
Map<String,Integer> map = userService.selectUserIsParty(userIds); Map<String,Integer> map = userService.selectUserIsParty(userIds);
if (null != map){ if (null != map){
result.forEach(r -> { result.forEach(r -> {

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

@ -174,11 +174,18 @@ public class ProjectExtractServiceImpl implements ProjectExtractService {
})); }));
list.forEach(entity -> finishOrgList.stream().filter(finish -> entity.getId().equals(finish.getProjectId())).forEach(dto -> { list.forEach(entity -> finishOrgList.stream().filter(finish -> entity.getId().equals(finish.getProjectId())).forEach(dto -> {
String[] orgIds = dto.getPIdPath().split(StrConstant.COLON); String[] orgIds = dto.getPIdPath().split(StrConstant.COLON);
String org = "";
if (orgIds.length > NumConstant.ONE) { if (orgIds.length > NumConstant.ONE) {
entity.setFinishOrgIds(orgIds[orgIds.length - 1]); org = orgIds[orgIds.length - 1];
} else { } else {
entity.setFinishOrgIds(orgIds[0]); org = orgIds[0];
} }
if (StringUtils.isNotEmpty(dto.getGridId())) {
org = org + StrConstant.COLON + dto.getGridId();
} else if (StringUtils.isNotEmpty(dto.getDepartmentId())) {
org = org + StrConstant.COLON + dto.getDepartmentId();
}
entity.setFinishOrgIds(org);
})); }));
//插入数据 //插入数据
if (!list.isEmpty()) { if (!list.isEmpty()) {

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/FactIndexCollectServiceImpl.java

@ -315,7 +315,7 @@ public class FactIndexCollectServiceImpl implements FactIndexCollectService {
List<ScreenCustomerGridDTO> parentGridList = screenCustomerGridDao.selectListGridInfo(customerId); List<ScreenCustomerGridDTO> parentGridList = screenCustomerGridDao.selectListGridInfo(customerId);
if (!CollectionUtils.isEmpty(parentGridList)) { if (!CollectionUtils.isEmpty(parentGridList)) {
parentGridList.forEach(o -> { parentGridList.forEach(o -> {
allParentIds.put(o.getGridId(), o.getGridId()); allParentIds.put(o.getGridId(), o.getAllParentIds());
}); });
} }
for (Map.Entry<String, List<FactIndexGridScoreDTO>> gridScore : collect.entrySet()) { for (Map.Entry<String, List<FactIndexGridScoreDTO>> gridScore : collect.entrySet()) {

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

@ -90,7 +90,7 @@
SELECT SELECT
AGENCY_ID, AGENCY_ID,
COUNT( ID ) AS "count", COUNT( ID ) AS "count",
SUM( IFNULL( b.score, 0 ) ) AS "sum" SUM( IFNULL( b.score, 80 ) ) AS "ratio"
FROM FROM
( SELECT f.ID, f.AGENCY_ID FROM fact_origin_project_main_daily f ( SELECT f.ID, f.AGENCY_ID FROM fact_origin_project_main_daily f
INNER JOIN dim_agency da ON f.FINISH_ORG_IDS LIKE concat('%', da.ID, '%') INNER JOIN dim_agency da ON f.FINISH_ORG_IDS LIKE concat('%', da.ID, '%')
@ -102,7 +102,7 @@
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
PROJECT_ID, PROJECT_ID,
SUM( CASE ACTION_CODE WHEN 'bad' THEN 60 WHEN 'perfect' THEN 100 ELSE 80 END ) AS score AVG( CASE ACTION_CODE WHEN 'bad' THEN 60 WHEN 'perfect' THEN 100 ELSE 80 END ) AS score
FROM FROM
fact_origin_project_log_daily fact_origin_project_log_daily
WHERE WHERE
@ -110,6 +110,7 @@
OR ACTION_CODE = 'good' OR ACTION_CODE = 'good'
OR ACTION_CODE = 'perfect') OR ACTION_CODE = 'perfect')
AND CUSTOMER_ID = #{customerId} AND CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
GROUP BY GROUP BY
PROJECT_ID PROJECT_ID
) b ON a.ID = b.PROJECT_ID ) b ON a.ID = b.PROJECT_ID
@ -254,70 +255,70 @@
</select> </select>
<select id="selectGridSatisfaction" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO"> <select id="selectGridSatisfaction" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT SELECT
a.ORG_ID, GRID_ID AS "orgId",
a.sum, COUNT( score &gt;= 80 OR NULL ) AS 'count',
IFNULL(b.count, 0) AS "count" COUNT( ID ) AS 'sum'
FROM FROM
(SELECT (
ORG_ID, SELECT
COUNT( ID ) AS "sum" fm.GRID_ID,
FROM fm.ID,
fact_origin_project_log_daily IFNULL( fl.score, 80 ) AS "score"
WHERE FROM
1 = 1 fact_origin_project_main_daily fm
AND ( ACTION_CODE = 'bad' OR ACTION_CODE = 'good' OR ACTION_CODE = 'perfect' ) LEFT JOIN (
AND CUSTOMER_ID = #{customerId} SELECT
AND MONTH_ID = #{monthId} f.PROJECT_ID,
GROUP BY AVG( CASE ACTION_CODE WHEN 'bad' THEN 60 WHEN 'perfect' THEN 100 ELSE 80 END ) AS score
ORG_ID) a FROM
LEFT JOIN fact_origin_project_log_daily f
(SELECT WHERE
ORG_ID, ( ACTION_CODE = 'bad' OR ACTION_CODE = 'good' OR ACTION_CODE = 'perfect' )
COUNT( ID ) AS "count" AND f.CUSTOMER_ID = #{customerId}
FROM AND f.MONTH_ID = #{monthId}
fact_origin_project_log_daily GROUP BY
WHERE PROJECT_ID
1 = 1 ) fl ON fm.ID = fl.PROJECT_ID
AND ( ACTION_CODE = 'good' OR ACTION_CODE = 'perfect' ) WHERE fm.CUSTOMER_ID = #{customerId}
AND CUSTOMER_ID = #{customerId} AND fm.MONTH_ID = #{monthId}
AND MONTH_ID = #{monthId} ) a
GROUP BY GROUP BY
ORG_ID) b GRID_ID
ON a.ORG_ID = b.ORG_ID
</select> </select>
<select id="selectOrgSatisfaction" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO"> <select id="selectOrgSatisfaction" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT SELECT
a.AGENCY_ID, AGENCY_ID,
a.sum, COUNT( score &gt;= 80 OR NULL ) AS 'count',
IFNULL(b.count, 0) AS "count" COUNT( ID ) AS 'sum'
FROM FROM
(SELECT (
f.AGENCY_ID, SELECT
COUNT( f.ID ) AS "sum" fm.AGENCY_ID,
FROM fm.ID,
fact_origin_project_log_daily f IFNULL( fl.score, 80 ) AS "score"
INNER JOIN dim_agency da ON f.AGENCY_ID = da.ID AND da.`LEVEL` = #{level} FROM
WHERE fact_origin_project_main_daily fm
1 = 1 INNER JOIN dim_agency da ON fm.AGENCY_ID = da.ID
AND ( ACTION_CODE = 'bad' OR ACTION_CODE = 'good' OR ACTION_CODE = 'perfect' ) AND da.`LEVEL` = #{level}
AND f.CUSTOMER_ID = #{customerId} LEFT JOIN (
AND f.MONTH_ID = #{monthId} SELECT
GROUP BY f.PROJECT_ID,
f.AGENCY_ID) a AVG( CASE ACTION_CODE WHEN 'bad' THEN 60 WHEN 'perfect' THEN 100 ELSE 80 END ) AS score
LEFT JOIN FROM
(SELECT fact_origin_project_log_daily f
f.AGENCY_ID, INNER JOIN dim_agency da ON f.AGENCY_ID = da.ID
COUNT( f.ID ) AS "count" AND da.`LEVEL` = #{level}
FROM WHERE
fact_origin_project_log_daily f ( ACTION_CODE = 'bad' OR ACTION_CODE = 'good' OR ACTION_CODE = 'perfect' )
INNER JOIN dim_agency da ON f.AGENCY_ID = da.ID AND da.`LEVEL` = #{level} AND f.CUSTOMER_ID = #{customerId}
WHERE AND f.MONTH_ID = #{monthId}
1 = 1 GROUP BY
AND ( ACTION_CODE = 'good' OR ACTION_CODE = 'perfect' ) PROJECT_ID
AND f.CUSTOMER_ID = #{customerId} ) fl ON fm.ID = fl.PROJECT_ID
AND f.MONTH_ID = #{monthId} WHERE fm.CUSTOMER_ID = #{customerId}
GROUP BY AND fm.MONTH_ID = #{monthId}
f.AGENCY_ID) b ) a
ON a.AGENCY_ID = b.AGENCY_ID GROUP BY
AGENCY_ID
</select> </select>
</mapper> </mapper>

14
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml

@ -30,15 +30,17 @@
pp.STAFF_ID, pp.STAFF_ID,
pp.CREATED_TIME pp.CREATED_TIME
FROM project_process pp FROM project_process pp
LEFT JOIN project_staff staff ON pp.PROJECT_ID = staff.PROJECT_ID INNER JOIN project p ON pp.PROJECT_ID = p.ID
INNER JOIN project_staff staff ON pp.PROJECT_ID = staff.PROJECT_ID
AND pp.DEPARTMENT_NAME = staff.DEPARTMENT_NAME AND pp.DEPARTMENT_NAME = staff.DEPARTMENT_NAME
AND staff.IS_HANDLE = 'handle' AND staff.IS_HANDLE = 'handle'
AND pp.STAFF_ID = staff.STAFF_ID AND pp.STAFF_ID = staff.STAFF_ID
AND staff.DEL_FLAG = '0' AND staff.DEL_FLAG = '0'
WHERE WHERE
pp.DEL_FLAG = '0' pp.DEL_FLAG = '0'
AND AND p.CUSTOMER_ID = #{customerId}
p.CUSTOMER_ID = #{customerId} AND pp.OPERATION !='response'
AND pp.OPERATION !='created'
<if test="date != null and date.trim() != ''"> <if test="date != null and date.trim() != ''">
AND DATE_FORMAT(pp.CREATED_TIME, '%Y%m%d') = #{date} AND DATE_FORMAT(pp.CREATED_TIME, '%Y%m%d') = #{date}
</if> </if>
@ -161,6 +163,8 @@
</select> </select>
<select id="selectFinishOrg" resultType="com.epmet.dto.project.FinishOrgDTO"> <select id="selectFinishOrg" resultType="com.epmet.dto.project.FinishOrgDTO">
SELECT SELECT
a.GRID_ID,
a.DEPARTMENT_ID,
a.PROJECT_ID, a.PROJECT_ID,
a.ORG_ID_PATH, a.ORG_ID_PATH,
b.ORG_ID_PATH AS pIdPath b.ORG_ID_PATH AS pIdPath
@ -168,7 +172,9 @@
( (
SELECT SELECT
ps.PROJECT_ID, ps.PROJECT_ID,
ps.ORG_ID_PATH ps.ORG_ID_PATH,
ps.GRID_ID,
ps.DEPARTMENT_ID
FROM FROM
project_process pp project_process pp
INNER JOIN project_staff ps ON pp.STAFF_ID = ps.STAFF_ID INNER JOIN project_staff ps ON pp.STAFF_ID = ps.STAFF_ID

Loading…
Cancel
Save