Browse Source

Merge remote-tracking branch 'origin/dev_bugfix_ljj' into develop

dev_shibei_match
zxc 4 years ago
parent
commit
721ba67c5b
  1. 2
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/PatrolDailySumResult.java
  2. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java
  3. 67
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
  4. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java
  5. 6
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java
  6. 34
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml
  7. 11
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml
  8. 5
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/CompartmentResultDTO.java
  9. 8
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ScoreListResultDTO.java
  10. 5
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/IndexServiceImpl.java
  11. 5
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/fact/impl/FactIndexServiceImpl.java
  12. 11
      epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexAgencyScoreDao.xml
  13. 11
      epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexCommunityScoreDao.xml
  14. 11
      epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexGridScoreDao.xml
  15. 1
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml
  16. 11
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml
  17. 7
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java
  18. 9
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java
  19. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java
  20. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java
  21. 8
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.java
  22. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/user/FactRegUserGridMonthlyDao.java
  23. 97
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java
  24. 14
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollDistrictDepartmentServiceImpl.java
  25. 48
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexOriginExtractServiceImpl.java
  26. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/IssueExtractService.java
  27. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java
  28. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/IssueExtractServiceImpl.java
  29. 20
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java
  30. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/user/FactRegUserGridMonthlyService.java
  31. 17
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/user/impl/FactRegUserGridMonthlyServiceImpl.java
  32. 6
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java
  33. 13
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java
  34. 6
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml
  35. 19
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml
  36. 97
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml
  37. 28
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml
  38. 4
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml
  39. 3
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.xml
  40. 19
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml
  41. 16
      epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/MathUtilTest.java
  42. BIN
      epmet-module/data-statistical/data-statistical-server/src/test/java/resources/评价指标体系算法需求-备注.xlsx
  43. BIN
      epmet-module/data-statistical/data-statistical-server/src/test/java/resources/评价指标体系算法需求-备注3.0版新权重(新客户适用)-党群e事通和亿联互助平台在用.xlsx
  44. 24
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
  45. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java
  46. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/StaffPatrolRecordEntity.java
  47. 11
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java
  48. 1
      epmet-user/epmet-user-server/src/main/resources/mapper/StatsStaffPatrolRecordDailyDao.xml

2
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/PatrolDailySumResult.java

@ -15,7 +15,7 @@ import java.io.Serializable;
public class PatrolDailySumResult implements Serializable {
private static final long serialVersionUID = 310405655189243944L;
private String fullAgencyId;
private String orgId;
private Integer patrolTotal;
private Integer totalTime;
}

4
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java

@ -39,12 +39,12 @@ public interface StatsStaffPatrolRecordDailyDao extends BaseDao<StatsStaffPatrol
/**
* desc:获取巡查次数和时间
* @param agencyFullIdList
* @param orgIdList
* @param startDateId
* @param endDateId
* @return
*/
List<PatrolDailySumResult> getPatrolSumList(@Param("agencyFullIdList") List<String> agencyFullIdList, @Param("startDateId") String startDateId, @Param("endDateId") String endDateId);
List<PatrolDailySumResult> getPatrolSumList(@Param("orgIdList") List<String> orgIdList, @Param("startDateId") String startDateId, @Param("endDateId") String endDateId);
/**
* @Description 直属组织或网格下巡查数据

67
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java

@ -3,9 +3,9 @@
import com.alibaba.fastjson.JSON;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.enums.OrgLevelEnum;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.dataaggre.constant.DataSourceConstant;
@ -1538,24 +1538,24 @@ public class DataStatsServiceImpl implements DataStatsService {
return null;
}
List<String> gridIdList = subAgencyList.stream().map(ScreenCustomerGridDTO::getGridId).collect(Collectors.toList());
//查询组织的话题转议题数据
//查询网格议题数据
List<SubGridFormDTO.Topic> toIssueStart = dataStatsDao.getSubGridTopicShiftIssue(gridIdList, breforeStartDate);
List<SubGridFormDTO.Topic> toIssueEnd = dataStatsDao.getSubGridTopicShiftIssue(gridIdList, formDTO.getEndDateId());
Map<String, Integer> toIssueStartMap = toIssueStart.stream().collect(Collectors.toMap(SubGridFormDTO.Topic::getGridId, SubGridFormDTO.Topic::getShiftedIssueTotal, (o1, o2) -> o1));
Map<String, Integer> toIssueEndMap = toIssueEnd.stream().collect(Collectors.toMap(SubGridFormDTO.Topic::getGridId, SubGridFormDTO.Topic::getShiftedIssueTotal, (o1, o2) -> o1));
//查询组织的议题转项目数据
List<SubGridIssueResultDTO> toProjectStart = dataStatsDao.getSubGridIssue(gridIdList, breforeStartDate);
List<SubGridIssueResultDTO> toProjectEnd = dataStatsDao.getSubGridIssue(gridIdList, formDTO.getEndDateId());
Map<String, Integer> toProjectStartMap = toProjectStart.stream().collect(Collectors.toMap(SubGridIssueResultDTO::getGridId, SubGridIssueResultDTO::getShiftProjectTotal, (o1, o2) -> o1));
Map<String, Integer> toProjectEndMap = toProjectEnd.stream().collect(Collectors.toMap(SubGridIssueResultDTO::getGridId, SubGridIssueResultDTO::getShiftProjectTotal, (o1, o2) -> o1));
//查询网格项目数据
List<SubGridProjectResultDTO> toProjectStart = dataStatsDao.getSubGridProject(gridIdList, breforeStartDate);
List<SubGridProjectResultDTO> toProjectEnd = dataStatsDao.getSubGridProject(gridIdList, formDTO.getEndDateId());
Map<String, Integer> toProjectStartMap = toProjectStart.stream().collect(Collectors.toMap(SubGridProjectResultDTO::getGridId, SubGridProjectResultDTO::getProjectTotal, (o1, o2) -> o1));
Map<String, Integer> toProjectEndMap = toProjectEnd.stream().collect(Collectors.toMap(SubGridProjectResultDTO::getGridId, SubGridProjectResultDTO::getProjectTotal, (o1, o2) -> o1));
//查询组织已关闭的项目数据
List<SubGridProjectResultDTO> closeProjectStart = dataStatsDao.getSubGridProject(gridIdList, breforeStartDate);
List<SubGridProjectResultDTO> closeProjectEnd = dataStatsDao.getSubGridProject(gridIdList, formDTO.getEndDateId());
Map<String, Integer> closeProjectStartMap = closeProjectStart.stream().collect(Collectors.toMap(SubGridProjectResultDTO::getGridId, SubGridProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1));
Map<String, Integer> closeProjectEndMap = closeProjectEnd.stream().collect(Collectors.toMap(SubGridProjectResultDTO::getGridId, SubGridProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1));
//List<SubGridProjectResultDTO> closeProjectStart = dataStatsDao.getSubGridProject(gridIdList, breforeStartDate);
//List<SubGridProjectResultDTO> closeProjectEnd = dataStatsDao.getSubGridProject(gridIdList, formDTO.getEndDateId());
Map<String, Integer> closeProjectStartMap = toProjectStart.stream().collect(Collectors.toMap(SubGridProjectResultDTO::getGridId, SubGridProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1));
Map<String, Integer> closeProjectEndMap = toProjectEnd.stream().collect(Collectors.toMap(SubGridProjectResultDTO::getGridId, SubGridProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1));
//巡查次数和时间
List<PatrolDailySumResult> patrolList = statsStaffPatrolRecordDailyService.getPatrolSumList(gridIdList,formDTO.getStartDateId(),formDTO.getEndDateId());
Map<String, PatrolDailySumResult> patrolListMap = patrolList.stream().collect(Collectors.toMap(PatrolDailySumResult::getFullAgencyId, o -> o, (o1, o2) -> o1));
Map<String, PatrolDailySumResult> patrolListMap = patrolList.stream().collect(Collectors.toMap(PatrolDailySumResult::getOrgId, o -> o, (o1, o2) -> o1));
subAgencyList.forEach(agency->{
String gridId = agency.getGridId();
@ -1566,7 +1566,7 @@ public class DataStatsServiceImpl implements DataStatsService {
resultDTO.setIssueToProjectTotal(getTotal(toProjectStartMap,toProjectEndMap,gridId));
resultDTO.setClosedProjectTotal(getTotal(closeProjectStartMap,closeProjectEndMap,gridId));
PatrolDailySumResult patrolRecordDTO = patrolListMap.get(agency.getAllParentIds());
PatrolDailySumResult patrolRecordDTO = patrolListMap.get(gridId);
setPatrolAttr(resultDTO, patrolRecordDTO);
result.add(resultDTO);
});
@ -1578,25 +1578,24 @@ public class DataStatsServiceImpl implements DataStatsService {
}
List<String> agencyList = subAgencyList.stream().map(ScreenCustomerAgencyDTO::getAgencyId).collect(Collectors.toList());
//查询组织的话题转议题数据
//查询组织的议题数据
List<SubAgencyFormDTO.Topic> toIssueStart = dataStatsDao.getSubAgencyTopicShiftIssue(agencyList, breforeStartDate);
List<SubAgencyFormDTO.Topic> toIssueEnd = dataStatsDao.getSubAgencyTopicShiftIssue(agencyList, formDTO.getEndDateId());
Map<String, Integer> toIssueStartMap = toIssueStart.stream().collect(Collectors.toMap(SubAgencyFormDTO.Topic::getAgencyId, SubAgencyFormDTO.Topic::getShiftedIssueTotal, (o1, o2) -> o1));
Map<String, Integer> toIssueEndMap = toIssueEnd.stream().collect(Collectors.toMap(SubAgencyFormDTO.Topic::getAgencyId, SubAgencyFormDTO.Topic::getShiftedIssueTotal, (o1, o2) -> o1));
//查询组织的议题转项目数据
List<SubAgencyIssueResultDTO> toProjectStart = dataStatsDao.getSubAgencyIssue(agencyList, breforeStartDate);
List<SubAgencyIssueResultDTO> toProjectEnd = dataStatsDao.getSubAgencyIssue(agencyList, formDTO.getEndDateId());
Map<String, Integer> toProjectStartMap = toProjectStart.stream().collect(Collectors.toMap(SubAgencyIssueResultDTO::getAgencyId, SubAgencyIssueResultDTO::getShiftProjectTotal, (o1, o2) -> o1));
Map<String, Integer> toProjectEndMap = toProjectEnd.stream().collect(Collectors.toMap(SubAgencyIssueResultDTO::getAgencyId, SubAgencyIssueResultDTO::getShiftProjectTotal, (o1, o2) -> o1));
//查询组织的项目数据
List<SubAgencyProjectResultDTO> toProjectStart = dataStatsDao.getSubAgencyProject(agencyList, breforeStartDate);
List<SubAgencyProjectResultDTO> toProjectEnd = dataStatsDao.getSubAgencyProject(agencyList, formDTO.getEndDateId());
Map<String, Integer> toProjectStartMap = toProjectStart.stream().collect(Collectors.toMap(SubAgencyProjectResultDTO::getAgencyId, SubAgencyProjectResultDTO::getProjectTotal, (o1, o2) -> o1));
Map<String, Integer> toProjectEndMap = toProjectEnd.stream().collect(Collectors.toMap(SubAgencyProjectResultDTO::getAgencyId, SubAgencyProjectResultDTO::getProjectTotal, (o1, o2) -> o1));
//查询组织已关闭的项目数据
List<SubAgencyProjectResultDTO> closeProjectStart = dataStatsDao.getSubAgencyProject(agencyList, breforeStartDate);
List<SubAgencyProjectResultDTO> closeProjectEnd = dataStatsDao.getSubAgencyProject(agencyList, formDTO.getEndDateId());
Map<String, Integer> closeProjectStartMap = closeProjectStart.stream().collect(Collectors.toMap(SubAgencyProjectResultDTO::getAgencyId, SubAgencyProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1));
Map<String, Integer> closeProjectEndMap = closeProjectEnd.stream().collect(Collectors.toMap(SubAgencyProjectResultDTO::getAgencyId, SubAgencyProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1));
//List<SubAgencyProjectResultDTO> closeProjectStart = dataStatsDao.getSubAgencyProject(agencyList, breforeStartDate);
//List<SubAgencyProjectResultDTO> closeProjectEnd = dataStatsDao.getSubAgencyProject(agencyList, formDTO.getEndDateId());
Map<String, Integer> closeProjectStartMap = toProjectStart.stream().collect(Collectors.toMap(SubAgencyProjectResultDTO::getAgencyId, SubAgencyProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1));
Map<String, Integer> closeProjectEndMap = toProjectEnd.stream().collect(Collectors.toMap(SubAgencyProjectResultDTO::getAgencyId, SubAgencyProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1));
//巡查次数和时间
List<String> agencyFullIds = subAgencyList.stream().map(o -> o.getPids().concat(StrConstant.COLON).concat(o.getAgencyId())).collect(Collectors.toList());
List<PatrolDailySumResult> patrolList = statsStaffPatrolRecordDailyService.getPatrolSumList(agencyFullIds,breforeStartDate,formDTO.getEndDateId());
Map<String, PatrolDailySumResult> patrolListMap = patrolList.stream().collect(Collectors.toMap(PatrolDailySumResult::getFullAgencyId, o -> o, (o1, o2) -> o1));
List<PatrolDailySumResult> patrolList = statsStaffPatrolRecordDailyService.getPatrolSumList(agencyList,formDTO.getStartDateId(),formDTO.getEndDateId());
Map<String, PatrolDailySumResult> patrolListMap = patrolList.stream().collect(Collectors.toMap(PatrolDailySumResult::getOrgId, o -> o, (o1, o2) -> o1));
subAgencyList.forEach(agency->{
String agencyId = agency.getAgencyId();
@ -1606,8 +1605,7 @@ public class DataStatsServiceImpl implements DataStatsService {
resultDTO.setTopicToIssueTotal(getTotal(toIssueStartMap,toIssueEndMap,agencyId));
resultDTO.setIssueToProjectTotal(getTotal(toProjectStartMap,toProjectEndMap,agencyId));
resultDTO.setClosedProjectTotal(getTotal(closeProjectStartMap,closeProjectEndMap,agencyId));
String fullAgencyId = agency.getPids().concat(StrConstant.COLON).concat(agencyId);
PatrolDailySumResult patrolRecordDTO = patrolListMap.get(fullAgencyId);
PatrolDailySumResult patrolRecordDTO = patrolListMap.get(agencyId);
setPatrolAttr(resultDTO,patrolRecordDTO);
result.add(resultDTO);
});
@ -1944,13 +1942,14 @@ public class DataStatsServiceImpl implements DataStatsService {
CustomerDataManageResultDTO resultDTO = new CustomerDataManageResultDTO();
List<CustomerDataManageResultDTO.CustomerDataManage> dataManageList = new ArrayList<>();
//1.必要参数校验及处理
if ("Interval".equals(formDTO.getType()) && StringUtils.isEmpty(formDTO.getStartTime())) {
String startTimeForm = formDTO.getStartTime();
if ("Interval".equals(formDTO.getType()) && StringUtils.isEmpty(startTimeForm)) {
throw new RenException("请选择开始时间或查询累计值");
}
//入参有开始时间的则需要减去一天
if (StringUtils.isNotBlank(formDTO.getStartTime())) {
if (StringUtils.isNotBlank(startTimeForm)) {
SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD);
Date date = format.parse(formDTO.getStartTime());
Date date = format.parse(startTimeForm);
Date yesterday = DateUtils.addDateDays(date, -1);
formDTO.setStartTime(format.format(yesterday));
}
@ -1983,8 +1982,10 @@ public class DataStatsServiceImpl implements DataStatsService {
List<CustomerDataManageResultDTO.CustomerDataManage> projectEnd = dataStatsDao.projectList(formDTO);
HashMap<String, CustomerDataManageResultDTO.CustomerDataManage> pEndMap = new HashMap<>();
projectEnd.stream().forEach(u->pEndMap.put(u.getOrgId(),u));
//巡查数据不区分区间差值,只计算累计值,人员做去重处理且是有巡查记录的人员
List<CustomerDataManageResultDTO.CustomerDataManage> patrolEnd = statsStaffPatrolRecordDailyService.patrolList(formDTO);
//巡查数据不区分区间差值,只计算累计值,人员做去重处理且是有巡查记录的人员 ==
CustomerDataManageFormDTO patrolForm = ConvertUtils.sourceToTarget(formDTO,CustomerDataManageFormDTO.class);
patrolForm.setStartTime(startTimeForm);
List<CustomerDataManageResultDTO.CustomerDataManage> patrolEnd = statsStaffPatrolRecordDailyService.patrolList(patrolForm);
//4.判断是否需要查询起始日期用户、群组、话题、议题、项目、巡查数据
HashMap<String, CustomerDataManageResultDTO.CustomerDataManage> uStartMap = new HashMap<>();

4
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java

@ -35,12 +35,12 @@ public interface StatsStaffPatrolRecordDailyService extends BaseService<StatsSta
/**
* desc:获取组织或网格的 时间段内的总次数等
* @param agencyList
* @param orgIdList
* @param startDateId
* @param endDateId
* @return
*/
List<PatrolDailySumResult> getPatrolSumList(List<String> agencyList, String startDateId, String endDateId);
List<PatrolDailySumResult> getPatrolSumList(List<String> orgIdList, String startDateId, String endDateId);
/**
* @Description 直属组织或网格下巡查数据

6
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java

@ -28,14 +28,14 @@ public class StatsStaffPatrolRecordDailyServiceImpl extends BaseServiceImpl<Stat
/**
* desc:获取组织或网格的 时间段内的总次数等
*
* @param agencyFullIdList
* @param orgIdList
* @param startDateId
* @param endDateId
* @return
*/
@Override
public List<PatrolDailySumResult> getPatrolSumList(List<String> agencyFullIdList, String startDateId, String endDateId) {
return baseDao.getPatrolSumList(agencyFullIdList,startDateId,endDateId);
public List<PatrolDailySumResult> getPatrolSumList(List<String> orgIdList, String startDateId, String endDateId) {
return baseDao.getPatrolSumList(orgIdList,startDateId,endDateId);
}
/**

34
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml

@ -221,7 +221,7 @@
agency_id AS agencyId,
issue_total AS shiftedIssueTotal
FROM
fact_topic_issue_agency_daily
fact_issue_agency_daily
WHERE
del_flag = '0'
AND date_id = #{dateId}
@ -266,7 +266,7 @@
grid_id AS gridId,
issue_total AS shiftedIssueTotal
FROM
fact_topic_issue_grid_daily
fact_issue_grid_daily
WHERE
del_flag = '0'
AND date_id = #{dateId}
@ -831,9 +831,15 @@
</choose>
<if test='sourceType != "" and sourceType == "start" and startTime != "" and startTime != null '>
AND date_id <![CDATA[>=]]> #{startTime}
<if test='endTime != "" and endTime != null '>
AND date_id <![CDATA[<=]]> #{endTime}
</if>
ORDER BY date_id ASC
</if>
<if test='sourceType != "" and sourceType == "end" and endTime != "" and endTime != null '>
<if test='startTime != "" and startTime != null '>
AND date_id <![CDATA[>=]]> #{startTime}
</if>
AND date_id <![CDATA[<=]]> #{endTime}
ORDER BY date_id DESC
</if>
@ -871,9 +877,15 @@
</choose>
<if test='sourceType != "" and sourceType == "start" and startTime != "" and startTime != null '>
AND date_id <![CDATA[>=]]> #{startTime}
<if test='endTime != "" and endTime != null '>
AND date_id <![CDATA[<=]]> #{endTime}
</if>
ORDER BY date_id ASC
</if>
<if test='sourceType != "" and sourceType == "end" and endTime != "" and endTime != null '>
<if test='startTime != "" and startTime != null '>
AND date_id <![CDATA[>=]]> #{startTime}
</if>
AND date_id <![CDATA[<=]]> #{endTime}
ORDER BY date_id DESC
</if>
@ -911,9 +923,15 @@
</choose>
<if test='sourceType != "" and sourceType == "start" and startTime != "" and startTime != null '>
AND date_id <![CDATA[>=]]> #{startTime}
<if test='endTime != "" and endTime != null '>
AND date_id <![CDATA[<=]]> #{endTime}
</if>
ORDER BY date_id ASC
</if>
<if test='sourceType != "" and sourceType == "end" and endTime != "" and endTime != null '>
<if test='startTime != "" and startTime != null '>
AND date_id <![CDATA[>=]]> #{startTime}
</if>
AND date_id <![CDATA[<=]]> #{endTime}
ORDER BY date_id DESC
</if>
@ -951,9 +969,15 @@
</choose>
<if test='sourceType != "" and sourceType == "start" and startTime != "" and startTime != null '>
AND date_id <![CDATA[>=]]> #{startTime}
<if test='endTime != "" and endTime != null '>
AND date_id <![CDATA[<=]]> #{endTime}
</if>
ORDER BY date_id ASC
</if>
<if test='sourceType != "" and sourceType == "end" and endTime != "" and endTime != null '>
<if test='startTime != "" and startTime != null '>
AND date_id <![CDATA[>=]]> #{startTime}
</if>
AND date_id <![CDATA[<=]]> #{endTime}
ORDER BY date_id DESC
</if>
@ -991,9 +1015,15 @@
</choose>
<if test='sourceType != "" and sourceType == "start" and startTime != "" and startTime != null '>
AND date_id <![CDATA[>=]]> #{startTime}
<if test='endTime != "" and endTime != null '>
AND date_id <![CDATA[<=]]> #{endTime}
</if>
ORDER BY date_id ASC
</if>
<if test='sourceType != "" and sourceType == "end" and endTime != "" and endTime != null '>
<if test='startTime != "" and startTime != null '>
AND date_id <![CDATA[>=]]> #{startTime}
</if>
AND date_id <![CDATA[<=]]> #{endTime}
ORDER BY date_id DESC
</if>

11
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml

@ -2,16 +2,17 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.epmet.dataaggre.dao.epmetuser.StatsStaffPatrolRecordDailyDao">
<select id="getPatrolSumList" resultType="com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult">
<foreach collection="agencyFullIdList" item="fullAgencyId" separator="UNION ALL">
<foreach collection="orgIdList" item="orgId" separator="UNION ALL">
SELECT
LEFT (GRID_PIDS,LENGTH( #{fullAgencyId} )) fullAgencyId,
#{orgId} orgId,
sum(patrol_total) patrolTotal,
sum(TOTAL_TIME) totalTime
FROM stats_staff_patrol_record_daily
WHERE del_flag = '0'
AND date_id BETWEEN #{startDateId} and #{endDateId}
AND GRID_PIDS like CONCAT( #{fullAgencyId},'%')
GROUP BY fullAgencyId
AND date_id <![CDATA[>=]]> #{startDateId}
AND date_id <![CDATA[<=]]> #{endDateId}
AND GRID_PIDS like CONCAT('%', #{orgId},'%')
GROUP BY orgId
</foreach>
</select>

5
epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/CompartmentResultDTO.java

@ -16,6 +16,11 @@ public class CompartmentResultDTO implements Serializable {
private static final long serialVersionUID = 7963177476365327829L;
/**
* 组织对应的客户Id
*/
private String customerId = "";
/**
* 当前所选组织
*/

8
epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ScoreListResultDTO.java

@ -44,6 +44,12 @@ public class ScoreListResultDTO implements Serializable {
private Double subAgencyWeight;
/**
* 下级指数=indexTotalOriginScore-selfOriginScore
*/
private Double subOriginScore;
/**
* 下级指数四舍五入前端不用此值
*/
private Double subOriginScoreBak;
}

5
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/IndexServiceImpl.java

@ -264,6 +264,7 @@ public class IndexServiceImpl implements IndexService {
indexRank.setServiceAbility(getRound(indexRank.getServiceAbility()));
indexRank.setTotalIndex(getRound(indexRank.getPartyDevAbility() + indexRank.getGovernAbility() + indexRank.getServiceAbility()));
});
subAgencyIndexRankResultDTOS.sort(Comparator.comparing(SubAgencyIndexRankResultDTO::getTotalIndex).reversed());
return subAgencyIndexRankResultDTOS;
}
@ -297,6 +298,7 @@ public class IndexServiceImpl implements IndexService {
rank.setTotalIndex(getRound(rank.getPartyDevAbility() + rank.getGovernAbility() + rank.getServiceAbility()));
});
}
subAgencyIndexRankResultDTOS.sort(Comparator.comparing(AnNingSubAgencyIndexRankResultDTO::getTotalIndex).reversed());
return subAgencyIndexRankResultDTOS;
}
@ -316,6 +318,7 @@ public class IndexServiceImpl implements IndexService {
indexRank.setServiceAbility(getRound(indexRank.getServiceAbility()));
indexRank.setTotalIndex(getRound(indexRank.getPartyDevAbility() + indexRank.getGovernAbility() + indexRank.getServiceAbility()));
});
subAgencyIndexRankResultDTOS.sort(Comparator.comparing(SubAgencyIndexRankResultDTO::getTotalIndex).reversed());
return subAgencyIndexRankResultDTOS;
}
@ -437,6 +440,7 @@ public class IndexServiceImpl implements IndexService {
indexRank.setOrgType("street");
indexRank.setTotalIndex(getRound(indexRank.getPartyDevAbility() + indexRank.getGovernAbility() + indexRank.getServiceAbility()));
});
streetList.sort(Comparator.comparing(SubAgencyIndexRankResultDTO::getTotalIndex).reversed());
return streetList;
}
// 网格会根据中央区选择具体某个街道,变化
@ -446,6 +450,7 @@ public class IndexServiceImpl implements IndexService {
indexRank.setOrgType("grid");
indexRank.setTotalIndex(getRound(indexRank.getPartyDevAbility() + indexRank.getGovernAbility() + indexRank.getServiceAbility()));
});
gridList.sort(Comparator.comparing(SubAgencyIndexRankResultDTO::getTotalIndex).reversed());
return gridList;
}

5
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/fact/impl/FactIndexServiceImpl.java

@ -305,7 +305,8 @@ public class FactIndexServiceImpl implements FactIndexService {
//3.根据组织级别拼接查询条件,判断查询不同数据表
//区县级、乡镇街道级
if ("district".equals(agency.getAgencyLevel()) || "street".equals(agency.getAgencyLevel())) {
if ("district".equals(agency.getAgencyLevel())) {
//这里 给孔村镇街道降级为 街道
if ("district".equals(agency.getAgencyLevel()) && !"2fe0065f70ca0e23ce4c26fca5f1d933".equals(agency.getCustomerId())) {
formDTO.setAllParentIndexCode(FactConstant.QUAN_QU_XIANG_GUAN + ":" + formDTO.getIndexCode());
} else {
formDTO.setAllParentIndexCode(FactConstant.JIE_DAO_XIANG_GUAN + ":" + formDTO.getIndexCode());
@ -336,7 +337,7 @@ public class FactIndexServiceImpl implements FactIndexService {
list.stream().filter(dto -> dto.getIndexCode().equals(result.getKey())).forEach(l -> {
result.setShowType(l.getValueType());
//整数
if (FactConstant.DECIMAL.equals(l.getValueType())) {
if (FactConstant.INTEGER.equals(l.getValueType())) {
BigDecimal num = new BigDecimal(result.getValue()).setScale(0, BigDecimal.ROUND_HALF_UP);
result.setValue(num.toString());
}

11
epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexAgencyScoreDao.xml

@ -31,11 +31,14 @@
ROUND(self.self_score,1) AS selfOriginScore,
self.SELF_WEIGHT AS agencyWeight,
ROUND(self.sub_score*fact.WEIGHT, 1) AS "subAgencyScore",
ROUND(self.sub_score,1) AS subOriginScore,
ROUND(self.sub_score,1) AS subOriginScoreBak,
ROUND(fact.score,1)-ROUND(self.self_score,1) as subOriginScore,
self.SUB_WEIGHT AS subAgencyWeight
FROM
fact_index_agency_score fact
INNER JOIN fact_index_agency_self_sub_score self ON fact.agency_id = self.agency_id
INNER JOIN fact_index_agency_self_sub_score self ON
fact.CUSTOMER_ID = self.CUSTOMER_ID
AND fact.agency_id = self.agency_id
AND fact.month_id = self.month_id
AND fact.index_code = self.parent_index_code
WHERE
@ -60,7 +63,9 @@
self.SUB_WEIGHT AS "subWeight"
FROM
fact_index_agency_score fact
INNER JOIN fact_index_agency_self_sub_score self ON fact.agency_id = self.agency_id
INNER JOIN fact_index_agency_self_sub_score self ON
fact.CUSTOMER_ID = self.CUSTOMER_ID
AND fact.agency_id = self.agency_id
AND fact.month_id = self.month_id
AND fact.index_code = self.parent_index_code
WHERE

11
epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexCommunityScoreDao.xml

@ -31,11 +31,14 @@
ROUND(self.self_score, 1) AS selfOriginScore,
self.SELF_WEIGHT AS agencyWeight,
ROUND(ROUND(self.sub_score,1)*fact.WEIGHT, 1) AS "subAgencyScore",
ROUND(self.sub_score, 1) AS subOriginScore,
ROUND(self.sub_score, 1) AS subOriginScoreBak,
ROUND(fact.score,1)-ROUND(self.self_score, 1) as subOriginScore,
self.SUB_WEIGHT AS subAgencyWeight
FROM
fact_index_community_score fact
INNER JOIN fact_index_community_self_sub_score self ON fact.agency_id = self.agency_id
INNER JOIN fact_index_community_self_sub_score self ON
fact.CUSTOMER_ID = self.CUSTOMER_ID
AND fact.agency_id = self.agency_id
AND fact.month_id = self.month_id
AND fact.index_code = self.parent_index_code
WHERE
@ -60,7 +63,9 @@
self.SUB_WEIGHT AS "subWeight"
FROM
fact_index_community_score fact
INNER JOIN fact_index_community_self_sub_score self ON fact.agency_id = self.agency_id
INNER JOIN fact_index_community_self_sub_score self ON
fact.CUSTOMER_ID = self.CUSTOMER_ID
AND fact.agency_id = self.agency_id
AND fact.month_id = self.month_id
AND fact.index_code = self.parent_index_code
WHERE

11
epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexGridScoreDao.xml

@ -31,11 +31,14 @@
ROUND(self.self_score, 1) AS selfOriginScore,
self.SELF_WEIGHT AS agencyWeight,
ROUND(ROUND(self.sub_score,1)*fact.WEIGHT, 1) AS "subAgencyScore",
ROUND(self.sub_score, 1) AS subOriginScore,
ROUND(self.sub_score, 1) AS subOriginScoreBak,
ROUND(fact.score,1)-ROUND(self.self_score, 1) as subOriginScore,
self.SUB_WEIGHT AS subAgencyWeight
FROM
fact_index_grid_score fact
INNER JOIN fact_index_grid_self_sub_score self ON fact.grid_id = self.grid_id
INNER JOIN fact_index_grid_self_sub_score self ON
fact.CUSTOMER_ID = self.CUSTOMER_ID
AND fact.grid_id = self.grid_id
AND fact.agency_id = self.agency_id
AND fact.month_id = self.month_id
AND fact.index_code = self.parent_index_code
@ -61,7 +64,9 @@
self.SUB_WEIGHT AS "subWeight"
FROM
fact_index_grid_score fact
INNER JOIN fact_index_grid_self_sub_score self ON fact.grid_id = self.grid_id
INNER JOIN fact_index_grid_self_sub_score self ON
fact.CUSTOMER_ID = self.CUSTOMER_ID
AND fact.grid_id = self.grid_id
AND fact.agency_id = self.agency_id
AND fact.month_id = self.month_id
AND fact.index_code = self.parent_index_code

1
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml

@ -192,6 +192,7 @@
<select id="getAgencyInfoByAegncyId" resultType="com.epmet.evaluationindex.screen.dto.result.CompartmentResultDTO">
SELECT
CUSTOMER_ID AS customerId,
agency_id AS agencyId,
agency_name AS name,
level AS level,

11
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml

@ -308,11 +308,20 @@
WHERE
score.del_flag = '0'
AND score.MONTH_ID = #{monthId,jdbcType=VARCHAR}
<if test="customerId != null and customerId != ''">
AND score.CUSTOMER_ID = #{customerId,jdbcType=VARCHAR}
</if>
<!--孔村镇ID 则跳过 直接查社区级别的-->
<choose>
<when test="agencyId == '1234085031077498881'">
AND org.PIDS like concat(#{agencyId},'%')
AND org.LEVEL = 'community'
</when>
<otherwise>
AND score.PARENT_ID = #{agencyId,jdbcType=VARCHAR}
AND score.MONTH_ID = #{monthId,jdbcType=VARCHAR}
</otherwise>
</choose>
<choose>
<when test="orgType != null and orgType != ''">
AND score.ORG_TYPE = #{orgType,jdbcType=VARCHAR}

7
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java

@ -1,8 +1,10 @@
package com.epmet.dto.extract.form;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Author zxc
@ -27,4 +29,9 @@ public class GridIssueCountResultDTO implements Serializable {
* 网格ID
*/
private String gridId;
/**
* 网格议题转项目率
*/
private BigDecimal issueToProjectRatio = NumConstant.ZERO_DECIMAL;
}

9
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java

@ -601,16 +601,15 @@ public class DemoController {
private CalGridIndexService calGridIndexService;
@PostMapping("gridparty")
public void gridParty(){
String customerId = "45687aa479955f9d06204d415238f7cc";
// String customerId = "epmettest";
String monthId = "202009";
public Result gridParty(@RequestParam("customerId")String customerId,@RequestParam("monthId")String monthId){
calGridIndexService.calGridIndexPartyAbility(customerId,monthId);
return new Result();
}
@PostMapping("gridgovern")
public void gridGovern(@RequestParam("customerId")String customerId,@RequestParam("monthId")String monthId){
public Result gridGovern(@RequestParam("customerId")String customerId,@RequestParam("monthId")String monthId){
calGridIndexService.calGridIndexGovernAbility(customerId,monthId);
return new Result();
}
@PostMapping("gridservice")

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

@ -67,13 +67,13 @@ public interface FactOriginIssueMainDailyDao extends BaseDao<FactOriginIssueMain
List<GridIssueCountResultDTO> selectIssueTotal(@Param("customerId") String customerId,@Param("monthId") String monthId);
/**
* @Description 查询俩月的网格议题总数
* @Description 查询议题转项目总数
* @param customerId
* @param monthId
* @author zxc
* @date 2020/9/18 10:20 上午
*/
List<GridIssueCountResultDTO> selectIssueTotalTwoMonthPlus(@Param("customerId")String customerId,@Param("monthId") String monthId,@Param("minusMonthId") String minusMonthId);
List<GridIssueCountResultDTO> selectIssueTotalShiftProject(@Param("customerId")String customerId, @Param("monthId") String monthId);
/**
* @Description 网格总项目数

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java

@ -207,7 +207,7 @@ public interface ScreenCustomerAgencyDao extends BaseDao<ScreenCustomerAgencyEnt
*/
List<ScreenProjectOrgDailyDTO> selectAgencyByCustomer(@Param("customerId")String customerId);
List<ScreenProjectOrgDailyDTO> selectAgencyByAreaCode(String areaCode);
List<ScreenProjectOrgDailyDTO> selectAgencyByAreaCode(@Param("areaCode") String areaCode);
/**
* @Description 根据areaCode查询下级组织

8
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.java

@ -48,7 +48,9 @@ public interface ScreenProjectQuantityOrgMonthlyDao extends BaseDao<ScreenProjec
* @author zxc
* @date 2021/2/2 上午11:09
*/
List<ProjectOrgMonthlyResultDTO> selectQuantityOrgMonthly(@Param("agencyInfos") List<ScreenProjectQuantityOrgMonthlyDTO> agencyInfos, @Param("monthId") String monthId);
List<ProjectOrgMonthlyResultDTO> selectQuantityOrgMonthly(
@Param("agencyInfos") List<ScreenProjectQuantityOrgMonthlyDTO> agencyInfos,
@Param("monthId") String monthId);
List<ProjectOrgMonthlyResultDTO> selectQuantityOrgMonthlyByAgency(@Param("agencyInfos") List<ScreenProjectQuantityOrgMonthlyDTO> agencyInfos, @Param("monthId") String monthId);
/**
@ -58,7 +60,9 @@ public interface ScreenProjectQuantityOrgMonthlyDao extends BaseDao<ScreenProjec
* @author zxc
* @date 2021/2/2 下午3:03
*/
List<ProjectOrgMonthlyResultDTO> selectQuantityGrandOrgMonthly(@Param("agencyInfos") List<ScreenProjectQuantityOrgMonthlyDTO> agencyInfos, @Param("monthId") String monthId);
List<ProjectOrgMonthlyResultDTO> selectQuantityGrandOrgMonthly(
@Param("agencyInfos") List<ScreenProjectQuantityOrgMonthlyDTO> agencyInfos,
@Param("monthId") String monthId);
List<ProjectOrgMonthlyResultDTO> selectQuantityGrandOrgMonthlyByAgency(@Param("agencyInfos") List<ScreenProjectQuantityOrgMonthlyDTO> agencyInfos, @Param("monthId") String monthId);

10
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/user/FactRegUserGridMonthlyDao.java

@ -48,6 +48,16 @@ public interface FactRegUserGridMonthlyDao extends BaseDao<FactRegUserGridMonthl
*/
List<GridUserCountResultDTO> selectGridUserCount(String customerId, String monthId);
/**
* 网格相关-党建能力网格群众用户数网格党员用户数
* 从fact_reg_user_grid_daily这个表 sum增量为了与运营端数据导出一致
*
* @param customerId
* @param monthId
* @return
*/
List<GridUserCountResultDTO> selectGridUserCountFromDaily(@Param("customerId") String customerId, @Param("monthId")String monthId);
/**
* 查询网格下各用户数量
* @author zhaoqifeng

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

@ -1,5 +1,6 @@
package com.epmet.service.evaluationindex.extract.dataToIndex.impl;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
@ -35,11 +36,8 @@ import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
@ -100,7 +98,7 @@ public class CalGridIndexServiceImpl implements CalGridIndexService {
return true;
}
// 网格群众用户数 , 网格党员用户数
List<GridUserCountResultDTO> gridUserCountList = userGridMonthlyService.selectGridUserCount(customerId, monthId);
List<GridUserCountResultDTO> gridUserCountList = userGridMonthlyService.selectGridUserCountFromDaily(customerId, monthId);
// 网格党员人均提出话题数
List<CreateTopicCountResultDTO> partyCreateTopicCountList = topicMainService.selectCreateTopicCount(customerId, monthId, NumConstant.ONE);
// 网格群众人均提出话题数
@ -112,9 +110,9 @@ public class CalGridIndexServiceImpl implements CalGridIndexService {
// 网格的发文数量
List<PublishCountResultDTO> publishCountList = articlePublishedGridDailyService.selectArticlePublishCount(customerId, monthId);
// 网格议题转项目率
List<GridIssueCountResultDTO> gridIssueTotalList = issueExtractService.selectIssueTotalTwoMonth(customerId, monthId, DateUtils.minusMonthId(monthId));
List<GridProjectCountResultDTO> gridProjectTotalList = issueExtractService.selectGridProjectCount(customerId, monthId, ExtractConstant.SHIFT_PROJECT);
List<GridProjectCountResultDTO> gridIssueShiftProjectRatio = getGridIssueShiftProjectRatio(gridIssueTotalList, gridProjectTotalList);
List<GridIssueCountResultDTO> gridIssueTotalShiftProjectList = issueExtractService.selectIssueTotalShiftProject(customerId, monthId);
List<GridIssueCountResultDTO> gridIssueTotalList = issueExtractService.selectIssueTotal(customerId, monthId);
List<GridIssueCountResultDTO> gridIssueShiftProjectRatio = getGridIssueShiftProjectRatio(gridIssueTotalShiftProjectList, gridIssueTotalList);
// 建群党员数
List<PartyCreateGroupCountResultDTO> partyCreateGroupCountList = groupExtractService.selectPartyCreateGroupCount(customerId, monthId);
//结合目前产品,数据来源:话题评论、议题表决
@ -310,9 +308,13 @@ public class CalGridIndexServiceImpl implements CalGridIndexService {
List<GridIssueCountResultDTO> gridIssueTotalList = issueExtractService.selectIssueTotal(customerId, monthId);
//网格总项目数 从议题根据状态获取
List<GridProjectCountResultDTO> gridProjectTotalList = issueExtractService.selectGridProjectCount(customerId, monthId, ExtractConstant.SHIFT_PROJECT);
log.info("网格总项目数{}", JSON.toJSONString(gridProjectTotalList));
//网格议题转项目率
List<GridIssueCountResultDTO> gridIssueCountList = issueExtractService.selectIssueTotalTwoMonth(customerId, monthId, DateUtils.minusMonthId(monthId));
List<GridProjectCountResultDTO> gridIssueShiftProjectRatio = getGridIssueShiftProjectRatio(gridIssueCountList, gridProjectTotalList);
List<GridIssueCountResultDTO> gridIssueCountList = issueExtractService.selectIssueTotalShiftProject(customerId, monthId);
log.info("网格近两个月的议题{}", JSON.toJSONString(gridIssueCountList));
List<GridIssueCountResultDTO> gridIssueShiftProjectRatio = getGridIssueShiftProjectRatio(gridIssueCountList, gridIssueTotalList);
log.info("网格议题转项目率{}", JSON.toJSONString(gridIssueShiftProjectRatio));
//网格自治项目数 从议题创建到项目关闭,包括处理人,自始至终没有出过议题所属网格
List<AutoNoMyResultDTO> projectAutoNoMyList = projectLogService.selectProjectAutoNoMy(customerId, monthId);
Map<String,Integer> autoMap = new HashMap<>(16);
@ -323,8 +325,10 @@ public class CalGridIndexServiceImpl implements CalGridIndexService {
});
}
//网格办结项目数
List<GridProjectClosedTotalResultDTO> gridProjectClosedTotalList = projectMainService.selectGridClosedProject(result.stream().map(m -> m.getGridId()).collect(Collectors.toList()), monthId, ExtractConstant.CLOSED);
List<String> allGridIds = result.stream().map(GovernAbilityGridMonthlyFormDTO::getGridId).collect(Collectors.toList());
List<GridProjectClosedTotalResultDTO> gridProjectClosedTotalList = projectMainService.selectGridClosedProject(allGridIds, monthId, ExtractConstant.CLOSED);
//网格吹哨部门准确率 【没被退回的项目数/项目总数 】
//获取网格 存在的项目id及网格Id 没有项目的网格需要过滤出来
List<TransferRightRatioResultDTO> transferRightRatioResultDTOS = projectMainService.selectTransferRightRatio(customerId, monthId);
List<TransferRightRatioResultDTO> transferRightRatioResultDTOS1 = projectLogService.selectNotReturn(customerId, monthId);
if (!CollectionUtils.isEmpty(transferRightRatioResultDTOS1)){
@ -334,16 +338,19 @@ public class CalGridIndexServiceImpl implements CalGridIndexService {
}else {
transferRightRatioResultDTOS.forEach(r -> r.setStatus(false));
}
Set<String> haveNotProjectSet = new HashSet<>(allGridIds);
Map<String, List<TransferRightRatioResultDTO>> groupByGridProject = transferRightRatioResultDTOS.stream().collect(Collectors.groupingBy(TransferRightRatioResultDTO::getGridId));
Map<String,BigDecimal> notReturnMap = new HashMap<>(16);
groupByGridProject.forEach((grid,project) -> {
AtomicReference<Integer> count = new AtomicReference<>(NumConstant.ZERO);
AtomicInteger count = new AtomicInteger(NumConstant.ZERO);
project.forEach(p -> {
if (p.getStatus().equals(false)){
count.getAndSet(count.get() + NumConstant.ONE);
count.incrementAndGet();
}
});
notReturnMap.put(grid,getRound(new BigDecimal(count.get()/project.size()).multiply(NumConstant.ONE_HUNDRED_DECIMAL)));
notReturnMap.put(grid,getRound(new BigDecimal(count.get()).divide(new BigDecimal(project.size()),NumConstant.EIGHT,BigDecimal.ROUND_HALF_UP).multiply(NumConstant.ONE_HUNDRED_DECIMAL)));
//把有项目数的网格剔除 只剩下没有项目的网格
haveNotProjectSet.remove(grid);
});
//网格内解决的项目的满意度
//项目评价(分值定义下非常满意100,满意80,不满意(一般)60)的人数的平均分(每个项目的参加人数的分数和/评论人数=一个项目的平均分)+其他项目得分/已关闭项目总数
@ -353,33 +360,23 @@ public class CalGridIndexServiceImpl implements CalGridIndexService {
// 根据网格分组
Map<String, List<ProjectEvaluateResultDTO>> groupByGrid = projectEvaluateList.stream().collect(Collectors.groupingBy(ProjectEvaluateResultDTO::getGridId));
groupByGrid.forEach((gridId,projectEvaluateInfoList) -> {
Map<String,Integer> scoreMap = new HashMap<>(16);
// 根据项目分组
Map<String, List<ProjectEvaluateResultDTO>> groupByProject = projectEvaluateInfoList.stream().collect(Collectors.groupingBy(ProjectEvaluateResultDTO::getProjectId));
groupByProject.forEach((projectId,projectList) -> {
projectList.forEach(project -> {
switch (project.getActionCode()) {
projectEvaluateInfoList.forEach(p -> {
switch (p.getActionCode()) {
case ExtractConstant.EVALUATE_BAD:
project.setScore(ProjectEvaluateConstant.BAD);
p.setScore(ProjectEvaluateConstant.BAD);
break;
case ExtractConstant.EVALUATE_GOOD:
project.setScore(ProjectEvaluateConstant.GOOD);
p.setScore(ProjectEvaluateConstant.GOOD);
break;
case ExtractConstant.EVALUATE_PERFECT:
project.setScore(ProjectEvaluateConstant.PERFECT);
p.setScore(ProjectEvaluateConstant.PERFECT);
break;
default:
log.warn("calGridIndexGovernAbility other projectEvaluate,actionCode:{}", project.getActionCode());
log.warn("calGridIndexGovernAbility other projectEvaluate,actionCode:{}", p.getActionCode());
}
});
Integer projectAllScore = projectList.stream().mapToInt(ProjectEvaluateResultDTO::getScore).sum();
scoreMap.put(projectId,projectAllScore/projectList.size());
});
AtomicReference<Integer> allScore = new AtomicReference<>(0);
scoreMap.forEach((k,v) -> {
allScore.set(++v);
});
resultSatisfactionScore.put(gridId,getRound(new BigDecimal(allScore.get()/scoreMap.size())));
Integer projectAllScore = projectEvaluateInfoList.stream().collect(Collectors.summingInt(ProjectEvaluateResultDTO::getScore));
resultSatisfactionScore.put(gridId,getRound(new BigDecimal(projectAllScore/projectEvaluateInfoList.size())));
});
}
String quarterId = DateUtils.getQuarterId(monthId);
@ -397,15 +394,23 @@ public class CalGridIndexServiceImpl implements CalGridIndexService {
}
});
}
// 2. 网格总项目数,网格议题转项目率
if (!CollectionUtils.isEmpty(gridIssueTotalList)){
// 2.网格议题转项目率
if (!CollectionUtils.isEmpty(gridIssueShiftProjectRatio)){
gridIssueShiftProjectRatio.forEach(projectTotal -> {
if (r.getGridId().equals(projectTotal.getGridId())){
r.setProjectTotal(projectTotal.getProjectTotal());
r.setIssueToProjectRatio(projectTotal.getIssueToProjectRatio());
}
});
}
// 网格总项目数
if (!CollectionUtils.isEmpty(gridProjectTotalList)){
gridProjectTotalList.forEach(projectTotal -> {
if (r.getGridId().equals(projectTotal.getGridId())) {
r.setProjectTotal(projectTotal.getProjectTotal());
}
});
}
// 3. 网格办结项目数
if (!CollectionUtils.isEmpty(gridProjectClosedTotalList)){
gridProjectClosedTotalList.forEach(closed -> {
@ -422,6 +427,10 @@ public class CalGridIndexServiceImpl implements CalGridIndexService {
}
});
}
//如果项目数为0 则准确率设置为100
if (haveNotProjectSet.contains(r.getGridId())){
r.setTransferRightRatio(new BigDecimal(100));
}
// 5. 网格内解决的项目的满意度
if (!CollectionUtils.isEmpty(resultSatisfactionScore)){
resultSatisfactionScore.forEach((k, v) -> {
@ -545,22 +554,22 @@ public class CalGridIndexServiceImpl implements CalGridIndexService {
/**
* @Description
* @param gridIssueTotalList
* @param gridProjectTotalList
* @param gridIssueTotalList 网格下已转项目的议题
* @param gridIssueAllTotalList 网格下所有议题
* @author zxc
* @date 2020/9/19 2:53 下午
*/
public List<GridProjectCountResultDTO> getGridIssueShiftProjectRatio(List<GridIssueCountResultDTO> gridIssueTotalList,List<GridProjectCountResultDTO> gridProjectTotalList){
if (!CollectionUtils.isEmpty(gridIssueTotalList) && !CollectionUtils.isEmpty(gridProjectTotalList)) {
gridProjectTotalList.forEach(project -> {
public List<GridIssueCountResultDTO> getGridIssueShiftProjectRatio(List<GridIssueCountResultDTO> gridIssueTotalList,List<GridIssueCountResultDTO> gridIssueAllTotalList){
if (!CollectionUtils.isEmpty(gridIssueTotalList) && !CollectionUtils.isEmpty(gridIssueAllTotalList)) {
gridIssueAllTotalList.forEach(allIssue -> {
gridIssueTotalList.forEach(issue -> {
if (project.getGridId().equals(issue.getGridId())) {
project.setIssueToProjectRatio(getRound(new BigDecimal(project.getProjectTotal() / issue.getIssueTotal()).multiply(NumConstant.ONE_HUNDRED_DECIMAL)));
if (allIssue.getGridId().equals(issue.getGridId())) {
allIssue.setIssueToProjectRatio(getRound(new BigDecimal(issue.getIssueTotal()).divide(new BigDecimal(allIssue.getIssueTotal()),NumConstant.EIGHT,BigDecimal.ROUND_HALF_UP).multiply(NumConstant.ONE_HUNDRED_DECIMAL)));
}
});
});
}
return gridProjectTotalList;
return gridIssueAllTotalList;
}
/**

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

@ -42,9 +42,8 @@ public class IndexCollDistrictDepartmentServiceImpl implements IndexCollDistrict
@Override
public void saveDepartmentAbility(String customerId, String dateId) {
{
//当前日期前一天
Date date = DateUtils.getBeforeDay(DateUtils.stringToDate(dateId, DateUtils.DATE_PATTERN_YYYYMM));
Date date = DateUtils.stringToDate(dateId, DateUtils.DATE_PATTERN_YYYYMM);
//获取日期相关维度
DimIdGenerator.DimIdBean dimId = DimIdGenerator.getDimIdBean(date);
//获取区直部门列表
@ -118,10 +117,16 @@ public class IndexCollDistrictDepartmentServiceImpl implements IndexCollDistrict
if (CollectionUtils.isNotEmpty(handle)) {
list.forEach(entity -> handle.stream().filter(dto -> dto.getOrgId().equals(entity.getDeptId())).forEach(item -> {
if (item.getCount() != NumConstant.ZERO) {
BigDecimal count = new BigDecimal(item.getCount());
BigDecimal count = null != item.getCount() && NumConstant.ZERO != item.getCount() ? new BigDecimal(item.getCount()) : BigDecimal.ZERO;
BigDecimal sum = new BigDecimal(item.getSum());
BigDecimal one = new BigDecimal(NumConstant.ONE);
entity.setClosedProjectRatio(one.divide(sum.divide(count), NumConstant.SIX, RoundingMode.HALF_UP));
//entity.setClosedProjectRatio(one.divide(sum.divide(count), NumConstant.SIX, RoundingMode.HALF_UP));
if (count.compareTo(BigDecimal.ZERO) == 1) {
//如果count>0
entity.setClosedProjectRatio(sum.divide(count).setScale(NumConstant.SIX, RoundingMode.HALF_UP));
} else {
entity.setClosedProjectRatio(BigDecimal.ZERO);
}
}
}));
}
@ -131,4 +136,3 @@ public class IndexCollDistrictDepartmentServiceImpl implements IndexCollDistrict
factIndexGovrnAblityDeptMonthlyService.saveList(list);
}
}
}

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

@ -42,7 +42,8 @@ public class IndexOriginExtractServiceImpl implements IndexOriginExtractService
private IndexCollCommunityService indexCollCommunityService;
@Autowired
private IndexCollDistrictService indexCollDistrictService;
@Autowired
private IndexCollDistrictDepartmentService indexCollDistrictDepartmentService;
/**
* desc从统计库对象抽取指标数据
*
@ -80,49 +81,88 @@ public class IndexOriginExtractServiceImpl implements IndexOriginExtractService
private void submitJob(ExtractIndexFormDTO param) {
CountDownLatch countDownLatch = new CountDownLatch(2);
long start = System.currentTimeMillis();
final String customerId = param.getCustomerId();
final String monthId = param.getMonthId();
threadPool.submit(() -> {
try {
calCpcIndexService.calCpcPartyAbility(customerId, monthId);
long startCpc = System.currentTimeMillis();
//calCpcIndexService.calCpcPartyAbility(customerId, monthId);
log.error("党员相关-党建能力执行完毕======总耗时:{}ms,customerId:{}",System.currentTimeMillis()-startCpc, param.getCustomerId());
} catch (Exception e) {
log.error("抽取【党员相关数据】发生异常,参数:" + JSON.toJSONString(param), e);
}finally {
countDownLatch.countDown();
}
});
threadPool.submit(() -> {
try {
long startGridGovern = System.currentTimeMillis();
calGridIndexService.calGridIndexGovernAbility(customerId, monthId);
log.error("网格相关-治理能力执行完毕======总耗时:{}ms,customerId:{}",System.currentTimeMillis()-startGridGovern, param.getCustomerId());
} catch (Exception e) {
log.error("抽取【网格治理能力数据】发生异常,参数:" + JSON.toJSONString(param), e);
}
try {
long startGridParty = System.currentTimeMillis();
calGridIndexService.calGridIndexPartyAbility(customerId, monthId);
log.error("网格相关-党建能力执行完毕======总耗时:{}ms,customerId:{}",System.currentTimeMillis()-startGridParty, param.getCustomerId());
} catch (Exception e) {
log.error("抽取【网格党建能力数据】发生异常,参数:" + JSON.toJSONString(param), e);
}
try {
long startGridService = System.currentTimeMillis();
calGridIndexService.calGridIndexServiceAbility(customerId, monthId);
log.error("网格相关-服务能力执行完毕======总耗时:{}ms,customerId:{}",System.currentTimeMillis()-startGridService, param.getCustomerId());
} catch (Exception e) {
log.error("抽取【网格服务能力数据】发生异常,参数:" + JSON.toJSONString(param), e);
}
try{
//dimAgency
long startCommunity = System.currentTimeMillis();
indexCollCommunityService.saveCommunityAbility(customerId, monthId);
log.error("社区相关-三大能力执行完毕======总耗时:{}ms,customerId:{}",System.currentTimeMillis()-startCommunity, param.getCustomerId());
}catch (Exception e){
log.error("抽取【社区治理能力-社区党建能力-服务能力】发生异常,参数:" + JSON.toJSONString(param), e);
}
try{
//dimAgency
long startStreet = System.currentTimeMillis();
indexCollStreetService.saveStreetAbility(customerId, monthId);
log.error("街道相关-三大能力执行完毕======总耗时:{}ms,customerId:{}",System.currentTimeMillis()-startStreet, param.getCustomerId());
}catch (Exception e){
log.error("抽取【街道治理能力-街道党建能力-服务能力】发生异常,参数:" + JSON.toJSONString(param), e);
}
try{
//dimAgency
indexCollCommunityService.saveCommunityAbility(customerId, monthId);
long startDept = System.currentTimeMillis();
indexCollDistrictDepartmentService.saveDepartmentAbility(customerId, monthId);
log.error("区直部门相关-治理能力执行完毕======总耗时:{}ms,customerId:{}",System.currentTimeMillis()-startDept, param.getCustomerId());
}catch (Exception e){
log.error("抽取【社区治理能力-社区党建能力-服务能力】发生异常,参数:" + JSON.toJSONString(param), e);
log.error("抽取【区直部门治理能力】发生异常,参数:" + JSON.toJSONString(param), e);
}
try{
//dimAgency
long startDistrict = System.currentTimeMillis();
indexCollDistrictService.saveDistrictAbility(customerId, monthId);
log.error("全区相关-三大能力执行完毕======总耗时:{}ms,customerId:{}",System.currentTimeMillis()-startDistrict, param.getCustomerId());
}catch (Exception e){
log.error("抽取【全区治理能力-全区党建能力-服务能力】发生异常,参数:" + JSON.toJSONString(param), e);
}
countDownLatch.countDown();
});
try {
countDownLatch.await();
} catch (InterruptedException e) {
log.error("indexOriginExtractAll countDownLatch exception", e);
}
log.error("indexOriginExtractAll执行完毕======总耗时:{}ms,customerId:{}",System.currentTimeMillis()-start, param.getCustomerId());
}
}

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

@ -47,7 +47,7 @@ public interface IssueExtractService {
* @author zxc
* @date 2020/9/18 10:20 上午
*/
List<GridIssueCountResultDTO> selectIssueTotalTwoMonth(String customerId, String monthId, String minusMonthId);
List<GridIssueCountResultDTO> selectIssueTotalShiftProject(String customerId, String monthId);
/**
* @Description 网格总项目数

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

@ -269,8 +269,8 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl<FactOr
//每个机关的项目平均耗时
BigDecimal avgCost = new BigDecimal(total).divide(new BigDecimal(v.size()),4, BigDecimal.ROUND_HALF_UP);
efficiencyMap.put(k,BigDecimal.ONE.divide(avgCost,4, BigDecimal.ROUND_HALF_UP));
//efficiencyMap.put(k,BigDecimal.ONE.divide(avgCost,4, BigDecimal.ROUND_HALF_UP));
efficiencyMap.put(k, null == avgCost ? BigDecimal.ZERO : avgCost.setScale(6, BigDecimal.ROUND_HALF_UP));
}else{
efficiencyMap.put(k,BigDecimal.ZERO);
}

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

@ -268,8 +268,8 @@ public class IssueExtractServiceImpl implements IssueExtractService {
* @date 2020/9/18 10:20 上午
*/
@Override
public List<GridIssueCountResultDTO> selectIssueTotalTwoMonth(String customerId, String monthId, String minusMonthId) {
return issueMainDailyDao.selectIssueTotalTwoMonthPlus(customerId, monthId, minusMonthId);
public List<GridIssueCountResultDTO> selectIssueTotalShiftProject(String customerId, String monthId) {
return issueMainDailyDao.selectIssueTotalShiftProject(customerId, monthId);
}
/**

20
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java

@ -210,6 +210,17 @@ public class ScreenExtractServiceImpl implements ScreenExtractService {
threadPool.submit(() -> {
//公众参与排行(注册人数、参与人数、话题数、议题数、项目数)screen_public_party_total_data
try {
ScreenCentralZoneDataFormDTO screenCentralZone = new ScreenCentralZoneDataFormDTO();
screenCentralZone.setCustomerId(customerId);
screenCentralZone.setDateId(dateId);
//中央区 screen_user_total_data
try {
screenCentralZoneDataAbsorptionService.centralZoneDataHub(screenCentralZone);
} catch (Exception e) {
log.error("中央区抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e);
}
try {
publicPartiTotalDataExtractService.extractPublicPartiTotalData(customerId, dateId);
} catch (Exception e) {
@ -246,15 +257,6 @@ public class ScreenExtractServiceImpl implements ScreenExtractService {
});
threadPool.submit(() -> {
try {
ScreenCentralZoneDataFormDTO param = new ScreenCentralZoneDataFormDTO();
param.setCustomerId(customerId);
param.setDateId(dateId);
//中央区 screen_user_total_data
try {
screenCentralZoneDataAbsorptionService.centralZoneDataHub(param);
} catch (Exception e) {
log.error("中央区抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e);
}
try {
// 项目(事件)分析按网格_按天统计

10
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/user/FactRegUserGridMonthlyService.java

@ -104,6 +104,16 @@ public interface FactRegUserGridMonthlyService extends BaseService<FactRegUserGr
*/
List<GridUserCountResultDTO> selectGridUserCount(String customerId,String monthId);
/**
* 网格相关-党建能力网格群众用户数网格党员用户数
* 从fact_reg_user_grid_daily这个表 sum增量为了与运营端数据导出一致
*
* @param customerId
* @param monthId
* @return
*/
List<GridUserCountResultDTO> selectGridUserCountFromDaily(String customerId,String monthId);
/**
* 查询网格下各用户数量
*

17
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/user/impl/FactRegUserGridMonthlyServiceImpl.java

@ -20,16 +20,15 @@ package com.epmet.service.stats.user.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.stats.user.FactRegUserGridMonthlyDao;
import com.epmet.dto.extract.result.GridUserCountResultDTO;
import com.epmet.dto.stats.user.FactRegUserGridMonthlyDTO;
import com.epmet.entity.stats.user.FactRegUserGridMonthlyEntity;
import com.epmet.service.stats.user.FactRegUserGridMonthlyService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -112,6 +111,20 @@ public class FactRegUserGridMonthlyServiceImpl extends BaseServiceImpl<FactRegUs
return baseDao.selectGridUserCount(customerId, monthId);
}
/**
* 网格相关-党建能力网格群众用户数网格党员用户数
* 从fact_reg_user_grid_daily这个表 sum增量为了与运营端数据导出一致
*
* @param customerId
* @param monthId
* @return
*/
@Override
public List<GridUserCountResultDTO> selectGridUserCountFromDaily(String customerId, String monthId) {
return baseDao.selectGridUserCountFromDaily(customerId, monthId);
}
@Override
public List<FactRegUserGridMonthlyDTO> getGridUserCountByCustomer(String customerId, String monthId) {
return baseDao.selectGridUserCountByCustomer(customerId, monthId);

6
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java

@ -76,16 +76,14 @@ public abstract class ScoreCalculator<T> {
throw new RuntimeException("入参数组错误:请设置sourceValue");
}
BigDecimal x = coefficient.multiply(convertValue2BigDecimal(sourceValue).subtract(minValue));
if (correlation == Correlation.POSITIVE) {
// 正相关
BigDecimal x = coefficient.multiply(convertValue2BigDecimal(sourceValue).subtract(minValue));
BigDecimal score = minScore.add(x);
return score;
} else if (correlation == Correlation.NEGATIVE) {
// 负相关
BigDecimal x = coefficient.multiply(convertValue2BigDecimal(sourceValue).subtract(minValue));
BigDecimal score = minScore.add(x);
return maxScore.subtract(score, MathContext.DECIMAL32);
return maxScore.subtract(x, MathContext.DECIMAL32);
} else {
throw new RuntimeException("错误的相关性");
}

13
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java

@ -76,19 +76,24 @@ public class BatchScoreCalculator {
if (idx.getScoreCalculator().getMaxValue().compareTo(idx.getScoreCalculator().getMinValue()) == 0) {
//*((max-min)/ (Math.PI/2))+min
//Math.atan(new Double(vo.getSampleValue().toString()))*
if (Correlation.POSITIVE.getCode().equals(scoreCalculator.getCorrelation().getCode())) {
normalizeValue = new BigDecimal(Math.atan(new Double(getFinalSampleValue(vo.getSampleValue(), threshold).toString())))
.multiply(
(maxScoreValue.subtract(minScoreValue).divide(new BigDecimal(Math.PI / 2), 10, RoundingMode.HALF_UP)))
.add(minScoreValue).setScale(6, RoundingMode.HALF_UP);
}else{
normalizeValue = new BigDecimal(Math.atan(new Double(getFinalSampleValue(vo.getSampleValue(), threshold).toString())))
.multiply(
(maxScoreValue.subtract(minScoreValue).divide(new BigDecimal(Math.PI / 2), 10, RoundingMode.HALF_UP)).multiply(new BigDecimal(-1)))
.add(maxScoreValue).setScale(6, RoundingMode.HALF_UP);
}
} else {
normalizeValue = scoreCalculator.normalize(getFinalSampleValue(vo.getSampleValue(), threshold));
}
//如果是负相关 则用100-归一后的值为最大值减
/* //如果是负相关 则用100-归一后的值为最大值减
if (Correlation.NEGATIVE.getCode().equals(scoreCalculator.getCorrelation().getCode())) {
normalizeValue = maxScoreValue.subtract(normalizeValue);
}
}*/
}
//如果归一后的值小于0 则置为0
if (normalizeValue.compareTo(NumConstant.ZERO_DECIMAL)<=-1){

6
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml

@ -3,17 +3,19 @@
<mapper namespace="com.epmet.dao.evaluationindex.extract.FactOriginGroupMainDailyDao">
<!-- 查询建群党员数 -->
<!-- 查询建群党员数: 网格内 建立群组的 党员数(去重) -->
<select id="selectPartyCreateGroupCount" resultType="com.epmet.dto.extract.result.PartyCreateGroupCountResultDTO">
SELECT
GRID_ID,
COUNT( ID ) AS partyCreateGroupCount
COUNT( distinct GROUP_OWNER_ID ) AS partyCreateGroupCount
FROM
fact_origin_group_main_daily
WHERE
DEL_FLAG = '0'
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
AND IS_OWNER_PARTY='1'
AND GROUP_STATE='approved'
GROUP BY GRID_ID
</select>

19
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml

@ -164,17 +164,18 @@
)t
</select>
<!-- 查询俩月的网格议题总数 -->
<select id="selectIssueTotalTwoMonthPlus" resultType="com.epmet.dto.extract.form.GridIssueCountResultDTO">
<!-- 查询议题转项目总数 -->
<select id="selectIssueTotalShiftProject" resultType="com.epmet.dto.extract.form.GridIssueCountResultDTO">
SELECT
COUNT( ID ) AS issueTotal,
GRID_ID
m.GRID_ID,
COUNT(m.ID) AS issueTotal
FROM
fact_origin_issue_main_daily
WHERE
DEL_FLAG = 0
AND CUSTOMER_ID = #{customerId}
AND (MONTH_ID = #{monthId} OR MONTH_ID = #{minusMonthId})
fact_origin_issue_main_daily m INNER JOIN
fact_origin_issue_log_daily l ON m.ID = l.ISSUE_ID
WHERE m.DEL_FLAG = '0'
AND m.MONTH_ID = #{monthId}
AND m.CUSTOMER_ID = #{customerId}
AND l.ACTION_CODE = 'shift_project'
GROUP BY GRID_ID
</select>

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

@ -47,7 +47,7 @@
</select>
<!-- 查询项目评价信息 -->
<select id="selectProjectEvaluate" resultType="com.epmet.dto.extract.result.ProjectEvaluateResultDTO">
<!--<select id="selectProjectEvaluate" resultType="com.epmet.dto.extract.result.ProjectEvaluateResultDTO">
SELECT
ACTION_CODE,
ORG_ID AS gridId,
@ -60,6 +60,34 @@
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
AND (ACTION_CODE = 'bad' OR ACTION_CODE = 'good' OR ACTION_CODE = 'perfect')
</select>-->
<select id="selectProjectEvaluate" resultType="com.epmet.dto.extract.result.ProjectEvaluateResultDTO">
SELECT
IFNULL(en.actionCode,'good') AS actionCode,
cl.projectId,
cl.gridId
FROM
(SELECT
ld.PROJECT_ID AS projectId,
ld.ORG_ID AS gridId
FROM fact_origin_project_log_daily ld
WHERE ld.DEL_FLAG = 0
AND ld.CUSTOMER_ID = #{customerId}
AND ld.ACTION_CODE IN('close')
AND ld.ORG_TYPE = 'grid'
AND ld.MONTH_ID = #{monthId}
) cl
LEFT JOIN
(SELECT
IFNULL(ld.ACTION_CODE,'good') AS actionCode,
ld.ORG_ID AS gridId,
ld.PROJECT_ID AS projectId
FROM fact_origin_project_log_daily ld
WHERE ld.DEL_FLAG = 0
AND ld.ACTION_CODE IN( 'bad','good', 'perfect')
AND ld.MONTH_ID = #{monthId}
AND ld.CUSTOMER_ID = #{customerId}
) en ON (en.projectId = cl.projectId)
</select>
<!-- 网格项目自治率查询 -->
@ -92,29 +120,46 @@
COUNT( ID ) AS "count",
SUM( IFNULL( b.score, 80 ) ) AS "ratio"
FROM
( 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, '%')
(
SELECT
f.ID,
log.AGENCY_ID
FROM
fact_origin_project_main_daily f
INNER JOIN fact_origin_project_log_daily log ON f.ID = log.PROJECT_ID
AND log.ACTION_CODE = 'close'
AND log.DEL_FLAG = '0'
AND log.CUSTOMER_ID = #{customerId}
AND log.MONTH_ID = #{monthId}
INNER JOIN dim_agency da ON log.PIDS LIKE concat( '%', da.ID, '%' )
AND da.AGENCY_DIM_TYPE = 'all'
AND da.`LEVEL` = #{level}
AND da.CUSTOMER_ID = #{customerId}
WHERE 1=1
AND f.MONTH_ID = #{monthId}) a
WHERE
1 = 1
AND f.ORIGIN = 'issue'
AND f.PROJECT_STATUS = 'closed'
AND f.CUSTOMER_ID = #{customerId}
) a
LEFT JOIN (
SELECT
PROJECT_ID,
AVG( CASE ACTION_CODE WHEN 'bad' THEN 60 WHEN 'perfect' THEN 100 ELSE 80 END ) AS score
l1.PROJECT_ID,
AVG( CASE l1.ACTION_CODE WHEN 'bad' THEN 60 WHEN 'perfect' THEN 100 ELSE 80 END ) AS score
FROM
fact_origin_project_log_daily
fact_origin_project_log_daily l1
INNER JOIN fact_origin_project_log_daily l2 ON l1.PROJECT_ID = l2.PROJECT_ID
AND l2.ACTION_CODE = 'close'
AND l2.MONTH_ID = #{monthId}
AND l2.CUSTOMER_ID = #{customerId}
WHERE
(ACTION_CODE = 'bad'
OR ACTION_CODE = 'good'
OR ACTION_CODE = 'perfect')
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
( l1.ACTION_CODE = 'bad' OR l1.ACTION_CODE = 'good' OR l1.ACTION_CODE = 'perfect' )
AND l1.CUSTOMER_ID = #{customerId}
GROUP BY
PROJECT_ID
) b ON a.ID = b.PROJECT_ID
GROUP BY AGENCY_ID
GROUP BY
AGENCY_ID
</select>
<select id="selectDepTransferCount" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT
@ -222,23 +267,25 @@
<!-- 查询机关办结次数 -->
<select id="selectAgencyHandledProjectCount" resultType="com.epmet.dto.extract.result.ProjectParticipatedAgencyResultDTO">
SELECT
SUBSTRING_INDEX(main.FINISH_ORG_IDS,':',1) AS agencyId,
COUNT(main.ID) AS count
FROM fact_origin_project_main_daily main
LEFT JOIN fact_origin_project_log_daily log
ON main.ID = log.PROJECT_ID AND log.DEL_FLAG = '0' AND log.ACTION_CODE = 'close'
WHERE main.DEL_FLAG = '0'
AND main.CUSTOMER_ID = #{customerId}
ORG_ID AS "agencyId",
COUNT( PROJECT_ID ) AS count
FROM
fact_origin_project_log_daily
WHERE
DEL_FLAG = '0'
AND ACTION_CODE = 'close'
AND CUSTOMER_ID = #{customerId}
AND ORG_TYPE = 'agency'
<if test="null != agencies and agencies.size() > 0">
<foreach collection="agencies" item="item" open="AND ( " separator=" OR " close=" ) ">
main.FINISH_ORG_IDS LIKE concat(#{item},'%')
ORG_ID = #{item}
</foreach>
</if>
<if test='null != dimId and "" != dimId.trim()'>
AND log.ID IS NOT NULL AND log.MONTH_ID = #{dimId}
AND MONTH_ID = #{dimId}
</if>
GROUP BY SUBSTRING_INDEX(main.FINISH_ORG_IDS,':',1)
GROUP BY
ORG_ID
</select>
<!-- 查询评价周期内各级别机关办结的项目Id -->
<select id="selectProjectIdHandledByAgency" resultType="com.epmet.dto.extract.result.ProjectParticipatedAgencyResultDTO">

28
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml

@ -980,34 +980,28 @@
<select id="selectAgencyClosedProjectStaticDaily" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT
a.ID AS AGENCY_ID,
b.`LEVEL`,
COUNT( b.ID ) AS "sum",
SUM(
IF
( b.ORG_TYPE = 'department', 1, 0 )) AS "count"
a.`LEVEL`,
COUNT( b.PROJECT_ID ) AS "sum",
SUM(IF( b.ORG_TYPE = 'department', 1, 0 )) AS "count"
FROM
dim_agency a
INNER JOIN (
SELECT
a.ID,
a.PIDS,
c.`LEVEL`,
b.ORG_TYPE
PROJECT_ID,
PIDS,
ORG_TYPE
FROM
fact_origin_project_main_daily a
INNER JOIN fact_origin_project_log_daily b ON a.ID = b.PROJECT_ID
AND b.ACTION_CODE = 'close'
INNER JOIN dim_agency c ON b.AGENCY_ID = c.ID
fact_origin_project_log_daily
WHERE
a.CUSTOMER_ID = #{customerId}
AND a.DATE_ID &lt;= #{dateId}
AND a.PROJECT_STATUS = 'closed'
CUSTOMER_ID = #{customerId}
AND DATE_ID &lt;= #{dateId}
AND ACTION_CODE = 'close'
) b ON b.PIDS LIKE CONCAT( '%', a.ID, '%' )
WHERE
a.CUSTOMER_ID = #{customerId}
GROUP BY
a.ID,
b.`LEVEL`
a.`LEVEL`
</select>

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

@ -53,7 +53,7 @@
f.ORG_ID AS "agencyId",
SUM( TIMESTAMPDIFF( MINUTE, ( DATE_FORMAT( f.INFORMED_DATE, '%Y-%m-%d %H:%i' )),
( DATE_FORMAT( f.PERIOD_TILL_REPLY_FIRSTLY, '%Y-%m-%d %H:%i' )) ) ) AS "sum",
COUNT( f.ID ) AS "count"
COUNT(DISTINCT f.PROJECT_ID) AS "count"
FROM
fact_origin_project_org_period_daily f
INNER JOIN dim_agency da ON f.ORG_ID = da.ID
@ -128,7 +128,7 @@
fp.ORG_ID,
SUM( TIMESTAMPDIFF( MINUTE, ( DATE_FORMAT( fp.INFORMED_DATE, '%Y-%m-%d %H:%i' )),
( DATE_FORMAT( fp.PERIOD_TILL_REPLY_FIRSTLY, '%Y-%m-%d %H:%i' )) ) ) AS "sum",
COUNT( fp.ID ) AS "count"
COUNT( DISTINCT fp.PROJECT_ID ) AS "count"
FROM
fact_origin_project_org_period_daily fp
INNER JOIN fact_origin_project_main_daily fm ON fp.PROJECT_ID = fm.ID

3
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.xml

@ -249,10 +249,9 @@
AND gm.del_flag = '0'
AND gm.month_id = #{monthId}
AND gm.DATA_TYPE = #{level}
AND gm.PARENT_ID = '0'
)
WHERE sca.DEL_FLAG = '0'
AND sca.AREA_CODE LIKE CONCAT('370124','%')
AND sca.AREA_CODE LIKE CONCAT(#{areaCode},'%')
AND sca.`LEVEL` = #{level}
</select>

19
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml

@ -110,8 +110,8 @@
<!-- 查询网格下的客户 -->
<select id="selectGridUserCount" resultType="com.epmet.dto.extract.result.GridUserCountResultDTO">
SELECT
REG_INCR,
PARTYMEMBER_INCR,
REG_INCR as userCount,
PARTYMEMBER_INCR as partyCount,
GRID_ID as orgId,
REG_TOTAL
FROM
@ -121,6 +121,21 @@
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
</select>
<!-- 网格相关-党建能力:网格群众用户数、网格党员用户数 从fact_reg_user_grid_daily这个表 sum增量,为了与运营端数据导出一致 -->
<select id="selectGridUserCountFromDaily" parameterType="map" resultType="com.epmet.dto.extract.result.GridUserCountResultDTO">
SELECT
sum( m.REG_INCR ) AS userCount,
sum( m.PARTYMEMBER_INCR ) AS partyCount,
m.GRID_ID AS orgId
FROM
fact_reg_user_grid_daily m
WHERE
m.CUSTOMER_ID = #{customerId}
AND m.DATE_ID LIKE CONCAT(#{monthId},'%')
GROUP BY m.GRID_ID
</select>
<select id="selectGridUserCountByCustomer" resultType="com.epmet.dto.stats.user.FactRegUserGridMonthlyDTO">
SELECT
GRID_ID,

16
epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/MathUtilTest.java

@ -20,10 +20,20 @@ public class MathUtilTest {
BigDecimal maxValue = new BigDecimal(100);
BigDecimal minValue = new BigDecimal(60);
BigDecimal normalizeValue = new BigDecimal(Math.atan(new Double("0")))
.multiply(
(maxValue.subtract(minValue).divide(new BigDecimal(Math.PI / 2), 10, RoundingMode.HALF_UP))).add(minValue).setScale(6, RoundingMode.HALF_UP);
//((max-min)/ (Math.PI/2))+min
BigDecimal sampleValue = new BigDecimal(Math.atan(new Double("0")));
BigDecimal normalizeValue = sampleValue
.multiply(maxValue.subtract(minValue).divide(new BigDecimal(Math.PI / 2), 10, RoundingMode.HALF_UP))
.add(minValue).setScale(6, RoundingMode.HALF_UP);
BigDecimal normalizeValue2 = sampleValue
.multiply(maxValue.subtract(minValue).divide(new BigDecimal(Math.PI / 2), 10, RoundingMode.HALF_UP).multiply(new BigDecimal(-1)))
.add(maxValue).setScale(6, RoundingMode.HALF_UP);
System.out.println(normalizeValue);
System.out.println(normalizeValue2);
//new BigDecimal(Math.atan(new Double(vo.getSampleValue().toString())) / Math.PI * 100).setScale(6, RoundingMode.HALF_UP);
}

BIN
epmet-module/data-statistical/data-statistical-server/src/test/java/resources/评价指标体系算法需求-备注.xlsx

Binary file not shown.

BIN
epmet-module/data-statistical/data-statistical-server/src/test/java/resources/评价指标体系算法需求-备注3.0版新权重(新客户适用)-党群e事通和亿联互助平台在用.xlsx

Binary file not shown.

24
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java

@ -940,6 +940,18 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
*/
@Override
public void shiftProjectV2(ShiftProjectFormDTO formDTO) {
//1:查询议题数据
IssueEntity entity = baseDao.selectById(formDTO.getIssueId());
if (null == entity) {
throw new RenException(IssueConstant.SELECT_EXCEPTION);
}
if (IssueConstant.ISSUE_SHIFT_PROJECT.equals(entity.getIssueStatus())) {
throw new RenException(IssueConstant.ISSUE_SHIFT_PROJECT_EXCEPTION);
}
if (!IssueConstant.ISSUE_VOTING.equals(entity.getIssueStatus())) {
throw new RenException(IssueConstant.ISSUE_VOTING_EXCEPTION);
}
formDTO.setIssueDTO(ConvertUtils.sourceToTarget(entity, IssueDTO.class));
//获取议题分类
List<IssueCategoryDTO> categoryList = issueCategoryService.getCategoryByIssue(formDTO.getIssueId());
@ -965,18 +977,6 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
}
//因需要保证议题表中的转项目时间与创建项目时间一致 因此先新增项目数据再更新议题数据
//1:查询议题数据
IssueEntity entity = baseDao.selectById(formDTO.getIssueId());
if (null == entity) {
throw new RenException(IssueConstant.SELECT_EXCEPTION);
}
if (IssueConstant.ISSUE_SHIFT_PROJECT.equals(entity.getIssueStatus())) {
throw new RenException(IssueConstant.ISSUE_SHIFT_PROJECT_EXCEPTION);
}
if (!IssueConstant.ISSUE_VOTING.equals(entity.getIssueStatus())) {
throw new RenException(IssueConstant.ISSUE_VOTING_EXCEPTION);
}
formDTO.setIssueDTO(ConvertUtils.sourceToTarget(entity, IssueDTO.class));
//2:调用resi-group查询话题创建人数据(目前议题来源只有来自话题),为了到项目服务初始数据以及发送消息使用
Result<ResiTopicDTO> resultTopicDTO = resiGroupFeignClient.getTopicById(entity.getSourceId());

3
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java

@ -62,7 +62,8 @@ public interface StatsStaffPatrolRecordDailyDao extends BaseDao<StatsStaffPatrol
* @date 2021/7/1 10:36 上午
*/
void updateStatsRecordEnd(@Param("userId")String userId,@Param("totalTime") Integer totalTime,
@Param("projectCount")Integer projectCount,@Param("dateId")String dateId,@Param("gridId")String gridId);
@Param("projectCount")Integer projectCount,@Param("dateId")String dateId,
@Param("gridId")String gridId, @Param("isHandEnd")Integer isHandEnd);
/**
* @Description 查询巡查人数

5
epmet-user/epmet-user-server/src/main/java/com/epmet/entity/StaffPatrolRecordEntity.java

@ -88,4 +88,9 @@ public class StaffPatrolRecordEntity extends BaseEpmetEntity {
*/
private String status;
/**
* 是否手动结束 手动:1定时任务传参:0
*/
private Integer isHandEnd;
}

11
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java

@ -264,6 +264,7 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl<StaffPatrolRec
Integer totalTime = DateUtils.calculateSecond(record.getPatrolStartTime(), record.getPatrolEndTime()) + 59;
record.setTotalTime(totalTime);
record.setStatus(PatrolConstant.END);
record.setIsHandEnd(NumConstant.ONE);
baseDao.updateById(record);
//保存记录明细
StaffPatrolDetailEntity detailEntity = new StaffPatrolDetailEntity();
@ -276,7 +277,7 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl<StaffPatrolRec
detailEntity.setSpeed(formDTO.getSpeed());
staffPatrolDetailService.insert(detailEntity);
// 添加巡查统计表逻辑
statsPatrolUpdateEnd(tokenDto.getUserId(),totalTime,record.getPatrolStartTime(),patrolEndTime,record.getGrid());
statsPatrolUpdateEnd(tokenDto.getUserId(),totalTime,record.getPatrolStartTime(),patrolEndTime,record.getGrid(),NumConstant.ONE);
sendPatrolMsg(record, SystemMessageType.USER_PATROL_STOP);
}
@ -318,7 +319,8 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl<StaffPatrolRec
Integer totalTime = DateUtils.calculateSecond(item.getPatrolStartTime(), endTime) + 59;
item.setTotalTime(totalTime);
item.setUpdatedTime(null);
statsPatrolUpdateEnd(item.getStaffId(),totalTime, item.getPatrolStartTime(), endTime, item.getGrid());
item.setIsHandEnd(NumConstant.ZERO);
statsPatrolUpdateEnd(item.getStaffId(),totalTime, item.getPatrolStartTime(), endTime, item.getGrid(), NumConstant.ZERO);
});
updateBatchById(list);
@ -333,11 +335,12 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl<StaffPatrolRec
* @Param totalTime
* @Param patrolStartTime
* @Param patrolEndTime
* @Param isHandEnd
* @author zxc
* @date 2021/7/1 10:50 上午
*/
@Transactional(rollbackFor = Exception.class)
public void statsPatrolUpdateEnd(String userId, Integer totalTime, Date patrolStartTime, Date patrolEndTime,String gridId){
public void statsPatrolUpdateEnd(String userId, Integer totalTime, Date patrolStartTime, Date patrolEndTime,String gridId, Integer isHandEnd){
String dateId = DateUtils.getBeforeNDay(NumConstant.ZERO);
PatrolProjectFormDTO formDTO = new PatrolProjectFormDTO();
formDTO.setUserId(userId);
@ -348,7 +351,7 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl<StaffPatrolRec
throw new RenException("查询巡查期间立项数失败【"+patrolProject.getInternalMsg()+"】");
}
Integer data = patrolProject.getData();
statsStaffPatrolRecordDailyDao.updateStatsRecordEnd(userId,totalTime,data,dateId,gridId);
statsStaffPatrolRecordDailyDao.updateStatsRecordEnd(userId,totalTime,data,dateId,gridId,isHandEnd);
}
/**

1
epmet-user/epmet-user-server/src/main/resources/mapper/StatsStaffPatrolRecordDailyDao.xml

@ -20,6 +20,7 @@
PATROL_TOTAL = (PATROL_TOTAL + 1),
REPORT_PROJECT_COUNT = (REPORT_PROJECT_COUNT + #{projectCount}),
LATEST_PATROL_STATUS = 'end',
IS_HAND_END = #{isHandEnd},
UPDATED_TIME = NOW()
WHERE DEL_FLAG = 0
AND STAFF_ID = #{userId}

Loading…
Cancel
Save