diff --git a/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/service/BaseService.java b/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/service/BaseService.java index c82dce8253..9f5a388ab2 100644 --- a/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/service/BaseService.java +++ b/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/service/BaseService.java @@ -123,5 +123,31 @@ public interface BaseService { */ boolean deleteBatchIds(Collection idList); + /** + *

+ * 存在更新记录,否插入一条记录 + *

+ * + * @param entity 实体对象 + */ + boolean saveOrUpdate(T entity); + + /** + *

+ * 批量修改插入 + *

+ * + * @param entityList 实体对象集合 + */ + boolean saveOrUpdateBatch(Collection entityList); + /** + *

+ * 批量修改插入 + *

+ * + * @param entityList 实体对象集合 + * @param batchSize 更新批次数量 + */ + boolean saveOrUpdateBatch(Collection entityList, int batchSize); } diff --git a/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/service/impl/BaseServiceImpl.java b/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/service/impl/BaseServiceImpl.java index fc89437e03..445f5a6e40 100644 --- a/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/service/impl/BaseServiceImpl.java +++ b/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/service/impl/BaseServiceImpl.java @@ -13,6 +13,8 @@ import com.baomidou.mybatisplus.core.enums.SqlMethod; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.core.metadata.TableInfo; +import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; import com.baomidou.mybatisplus.core.toolkit.*; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; @@ -31,6 +33,7 @@ import java.io.Serializable; import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.Objects; /** * 基础服务类,所有Service都要继承 @@ -298,4 +301,56 @@ public abstract class BaseServiceImpl, T> implements Bas public boolean deleteBatchIds(Collection idList) { return SqlHelper.delBool(baseDao.deleteBatchIds(idList)); } + + @Transactional(rollbackFor = Exception.class) + @Override + public boolean saveOrUpdate(T entity) { + if (null != entity) { + Class cls = entity.getClass(); + TableInfo tableInfo = TableInfoHelper.getTableInfo(cls); + Assert.notNull(tableInfo, "error: can not execute. because can not find cache of TableInfo for entity!"); + String keyProperty = tableInfo.getKeyProperty(); + Assert.notEmpty(keyProperty, "error: can not execute. because can not find column for id from entity!"); + Object idVal = ReflectionKit.getMethodValue(cls, entity, tableInfo.getKeyProperty()); + return StringUtils.checkValNull(idVal) || Objects.isNull(selectById((Serializable) idVal)) ? insert(entity) : updateById(entity); + } + return false; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public boolean saveOrUpdateBatch(Collection entityList) { + return saveOrUpdateBatch(entityList, 100); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public boolean saveOrUpdateBatch(Collection entityList, int batchSize) { + Assert.notEmpty(entityList, "error: entityList must not be empty"); + Class cls = currentModelClass(); + TableInfo tableInfo = TableInfoHelper.getTableInfo(cls); + Assert.notNull(tableInfo, "error: can not execute. because can not find cache of TableInfo for entity!"); + String keyProperty = tableInfo.getKeyProperty(); + Assert.notEmpty(keyProperty, "error: can not execute. because can not find column for id from entity!"); + try (SqlSession batchSqlSession = sqlSessionBatch()) { + int i = 0; + for (T entity : entityList) { + Object idVal = ReflectionKit.getMethodValue(cls, entity, keyProperty); + if (StringUtils.checkValNull(idVal) || Objects.isNull(selectById((Serializable) idVal))) { + batchSqlSession.insert(sqlStatement(SqlMethod.INSERT_ONE), entity); + } else { + MapperMethod.ParamMap param = new MapperMethod.ParamMap<>(); + param.put(Constants.ENTITY, entity); + batchSqlSession.update(sqlStatement(SqlMethod.UPDATE_BY_ID), param); + } + // 不知道以后会不会有人说更新失败了还要执行插入 😂😂😂 + if (i >= 1 && i % batchSize == 0) { + batchSqlSession.flushStatements(); + } + i++; + } + batchSqlSession.flushStatements(); + } + return true; + } } diff --git a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/DisputeProcessMQMsg.java b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/DisputeProcessMQMsg.java index 30a1700054..bed6aa4bf5 100644 --- a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/DisputeProcessMQMsg.java +++ b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/DisputeProcessMQMsg.java @@ -4,6 +4,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import java.io.Serializable; +import java.util.List; /** * @Description @@ -14,7 +15,7 @@ import java.io.Serializable; @AllArgsConstructor public class DisputeProcessMQMsg implements Serializable { private String customerId; - private String projectId; + private List projectId; /** * 操作类型【新增:add 修改删除:edit】 */ diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java index 66313a3cb6..cfca4dec6f 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java @@ -743,44 +743,6 @@ public class DateUtils { return minusMonthId; } - /** - * @Description 根据传入的时间维度判断格式,日、周、月、季、年 - * @param dimension - * @return - * @author wangc - * @date 2020.09.24 10:11 - **/ - public static String identifyTimeDimension(String dimension){ - //yyyyMMdd DATE_PATTERN_YYYYMMDD - //yyyyMM DATE_PATTERN_YYYYMM - //yyyy DATE_PATTERN_YYYY - //yyyyWcc - //yyyyQc - if(dimension.length() == NumConstant.EIGHT){ - - SimpleDateFormat df = new SimpleDateFormat(DATE_PATTERN_YYYYMMDD); - try{ df.parse(dimension); }catch (ParseException e){ return null; } - return "date"; - - }else if(dimension.length() == NumConstant.FOUR){ - SimpleDateFormat df = new SimpleDateFormat(DATE_PATTERN_YYYY); - try{df.parse(dimension);}catch (ParseException e){return null;} - return "year"; - }else if(dimension.length() == NumConstant.SEVEN){ - if(dimension.contains("W")){ - return "week"; - }else return null; - }else if(dimension.length() == NumConstant.SIX){ - if(dimension.contains("Q")){ - return "quarter"; - }else{ - SimpleDateFormat df = new SimpleDateFormat(DATE_PATTERN_YYYYMM); - try{df.parse(dimension);}catch (ParseException e){return null;} - return "month"; - } - }else return null; - } - /** * 指定月份的开始时间 * @param date diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/StaffPatrolRecordDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/StaffPatrolRecordDTO.java index be8e0300f3..e9db8368de 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/StaffPatrolRecordDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/StaffPatrolRecordDTO.java @@ -88,6 +88,11 @@ public class StaffPatrolRecordDTO implements Serializable { */ private String status; + /** + * 是否手动结束 手动:1,定时任务传参:0 + */ + private Integer isHandEnd; + /** * 删除标识 0.未删除 1.已删除 */ diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/PatrolDailySumResult.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/PatrolDailySumResult.java index 5400a1247f..c7fbe6b7ef 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/PatrolDailySumResult.java +++ b/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; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/PatrolRecordListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/PatrolRecordListResultDTO.java index d59abe39de..f2c9d0c387 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/PatrolRecordListResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/PatrolRecordListResultDTO.java @@ -45,4 +45,9 @@ public class PatrolRecordListResultDTO implements Serializable { */ private List details; + /** + * 是否手动结束 手动:1,定时任务传参:0 + */ + private Integer isHandEnd; + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java index 11ed072080..8be4c4c34e 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java +++ b/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 getPatrolSumList(@Param("agencyFullIdList") List agencyFullIdList, @Param("startDateId") String startDateId, @Param("endDateId") String endDateId); + List getPatrolSumList(@Param("orgIdList") List orgIdList, @Param("startDateId") String startDateId, @Param("endDateId") String endDateId); /** * @Description 直属组织或网格下巡查数据 diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/StaffPatrolRecordEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/StaffPatrolRecordEntity.java index f15187a712..0ad2407f74 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/StaffPatrolRecordEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/StaffPatrolRecordEntity.java @@ -88,4 +88,9 @@ public class StaffPatrolRecordEntity extends BaseEpmetEntity { */ private String status; + /** + * 是否手动结束 手动:1,定时任务传参:0 + */ + private Integer isHandEnd; + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index 4f1deda6ca..e2156dbadb 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -1,54 +1,54 @@ package com.epmet.dataaggre.service.datastats.impl; 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.DateUtils; - import com.epmet.commons.tools.utils.ExcelUtils; - import com.epmet.dataaggre.constant.DataSourceConstant; - import com.epmet.dataaggre.constant.OrgConstant; - import com.epmet.dataaggre.dao.datastats.DataStatsDao; - import com.epmet.dataaggre.dao.datastats.FactGridMemberStatisticsDailyDao; - import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; - import com.epmet.dataaggre.dto.datastats.form.*; - import com.epmet.dataaggre.dto.datastats.result.*; - import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; - import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; - import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult; - import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO; - import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; - import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; - import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO; - import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; - import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; - import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; - import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; - import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity; - import com.epmet.dataaggre.excel.CustomerDataManageExcel; - import com.epmet.dataaggre.service.datastats.DataStatsService; - import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService; - import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; - import com.epmet.dataaggre.service.opercrm.CustomerRelation; - import com.github.pagehelper.PageHelper; - import lombok.extern.slf4j.Slf4j; - import org.apache.commons.collections4.CollectionUtils; - import org.apache.commons.lang3.StringUtils; - import org.springframework.beans.factory.annotation.Autowired; - import org.springframework.stereotype.Service; - - import javax.servlet.http.HttpServletResponse; - import java.math.BigDecimal; - import java.math.RoundingMode; - import java.text.NumberFormat; - import java.text.ParseException; - import java.text.SimpleDateFormat; - import java.util.*; - import java.util.concurrent.atomic.AtomicInteger; - import java.util.concurrent.atomic.AtomicReference; - import java.util.stream.Collectors; +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.tools.constant.NumConstant; +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; +import com.epmet.dataaggre.constant.OrgConstant; +import com.epmet.dataaggre.dao.datastats.DataStatsDao; +import com.epmet.dataaggre.dao.datastats.FactGridMemberStatisticsDailyDao; +import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; +import com.epmet.dataaggre.dto.datastats.form.*; +import com.epmet.dataaggre.dto.datastats.result.*; +import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; +import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; +import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult; +import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO; +import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; +import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; +import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO; +import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; +import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; +import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; +import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; +import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity; +import com.epmet.dataaggre.excel.CustomerDataManageExcel; +import com.epmet.dataaggre.service.datastats.DataStatsService; +import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService; +import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; +import com.epmet.dataaggre.service.opercrm.CustomerRelation; +import com.github.pagehelper.PageHelper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.NumberFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; /** * @Author sun @@ -1538,24 +1538,24 @@ public class DataStatsServiceImpl implements DataStatsService { return null; } List gridIdList = subAgencyList.stream().map(ScreenCustomerGridDTO::getGridId).collect(Collectors.toList()); - //查询组织的话题转议题数据 + //查询网格议题数据 List toIssueStart = dataStatsDao.getSubGridTopicShiftIssue(gridIdList, breforeStartDate); List toIssueEnd = dataStatsDao.getSubGridTopicShiftIssue(gridIdList, formDTO.getEndDateId()); Map toIssueStartMap = toIssueStart.stream().collect(Collectors.toMap(SubGridFormDTO.Topic::getGridId, SubGridFormDTO.Topic::getShiftedIssueTotal, (o1, o2) -> o1)); Map toIssueEndMap = toIssueEnd.stream().collect(Collectors.toMap(SubGridFormDTO.Topic::getGridId, SubGridFormDTO.Topic::getShiftedIssueTotal, (o1, o2) -> o1)); - //查询组织的议题转项目数据 - List toProjectStart = dataStatsDao.getSubGridIssue(gridIdList, breforeStartDate); - List toProjectEnd = dataStatsDao.getSubGridIssue(gridIdList, formDTO.getEndDateId()); - Map toProjectStartMap = toProjectStart.stream().collect(Collectors.toMap(SubGridIssueResultDTO::getGridId, SubGridIssueResultDTO::getShiftProjectTotal, (o1, o2) -> o1)); - Map toProjectEndMap = toProjectEnd.stream().collect(Collectors.toMap(SubGridIssueResultDTO::getGridId, SubGridIssueResultDTO::getShiftProjectTotal, (o1, o2) -> o1)); + //查询网格项目数据 + List toProjectStart = dataStatsDao.getSubGridProject(gridIdList, breforeStartDate); + List toProjectEnd = dataStatsDao.getSubGridProject(gridIdList, formDTO.getEndDateId()); + Map toProjectStartMap = toProjectStart.stream().collect(Collectors.toMap(SubGridProjectResultDTO::getGridId, SubGridProjectResultDTO::getProjectTotal, (o1, o2) -> o1)); + Map toProjectEndMap = toProjectEnd.stream().collect(Collectors.toMap(SubGridProjectResultDTO::getGridId, SubGridProjectResultDTO::getProjectTotal, (o1, o2) -> o1)); //查询组织已关闭的项目数据 - List closeProjectStart = dataStatsDao.getSubGridProject(gridIdList, breforeStartDate); - List closeProjectEnd = dataStatsDao.getSubGridProject(gridIdList, formDTO.getEndDateId()); - Map closeProjectStartMap = closeProjectStart.stream().collect(Collectors.toMap(SubGridProjectResultDTO::getGridId, SubGridProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1)); - Map closeProjectEndMap = closeProjectEnd.stream().collect(Collectors.toMap(SubGridProjectResultDTO::getGridId, SubGridProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1)); + //List closeProjectStart = dataStatsDao.getSubGridProject(gridIdList, breforeStartDate); + //List closeProjectEnd = dataStatsDao.getSubGridProject(gridIdList, formDTO.getEndDateId()); + Map closeProjectStartMap = toProjectStart.stream().collect(Collectors.toMap(SubGridProjectResultDTO::getGridId, SubGridProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1)); + Map closeProjectEndMap = toProjectEnd.stream().collect(Collectors.toMap(SubGridProjectResultDTO::getGridId, SubGridProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1)); //巡查次数和时间 List patrolList = statsStaffPatrolRecordDailyService.getPatrolSumList(gridIdList,formDTO.getStartDateId(),formDTO.getEndDateId()); - Map patrolListMap = patrolList.stream().collect(Collectors.toMap(PatrolDailySumResult::getFullAgencyId, o -> o, (o1, o2) -> o1)); + Map 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 agencyList = subAgencyList.stream().map(ScreenCustomerAgencyDTO::getAgencyId).collect(Collectors.toList()); - //查询组织的话题转议题数据 + //查询组织的议题数据 List toIssueStart = dataStatsDao.getSubAgencyTopicShiftIssue(agencyList, breforeStartDate); List toIssueEnd = dataStatsDao.getSubAgencyTopicShiftIssue(agencyList, formDTO.getEndDateId()); Map toIssueStartMap = toIssueStart.stream().collect(Collectors.toMap(SubAgencyFormDTO.Topic::getAgencyId, SubAgencyFormDTO.Topic::getShiftedIssueTotal, (o1, o2) -> o1)); Map toIssueEndMap = toIssueEnd.stream().collect(Collectors.toMap(SubAgencyFormDTO.Topic::getAgencyId, SubAgencyFormDTO.Topic::getShiftedIssueTotal, (o1, o2) -> o1)); - //查询组织的议题转项目数据 - List toProjectStart = dataStatsDao.getSubAgencyIssue(agencyList, breforeStartDate); - List toProjectEnd = dataStatsDao.getSubAgencyIssue(agencyList, formDTO.getEndDateId()); - Map toProjectStartMap = toProjectStart.stream().collect(Collectors.toMap(SubAgencyIssueResultDTO::getAgencyId, SubAgencyIssueResultDTO::getShiftProjectTotal, (o1, o2) -> o1)); - Map toProjectEndMap = toProjectEnd.stream().collect(Collectors.toMap(SubAgencyIssueResultDTO::getAgencyId, SubAgencyIssueResultDTO::getShiftProjectTotal, (o1, o2) -> o1)); + //查询组织的项目数据 + List toProjectStart = dataStatsDao.getSubAgencyProject(agencyList, breforeStartDate); + List toProjectEnd = dataStatsDao.getSubAgencyProject(agencyList, formDTO.getEndDateId()); + Map toProjectStartMap = toProjectStart.stream().collect(Collectors.toMap(SubAgencyProjectResultDTO::getAgencyId, SubAgencyProjectResultDTO::getProjectTotal, (o1, o2) -> o1)); + Map toProjectEndMap = toProjectEnd.stream().collect(Collectors.toMap(SubAgencyProjectResultDTO::getAgencyId, SubAgencyProjectResultDTO::getProjectTotal, (o1, o2) -> o1)); //查询组织已关闭的项目数据 - List closeProjectStart = dataStatsDao.getSubAgencyProject(agencyList, breforeStartDate); - List closeProjectEnd = dataStatsDao.getSubAgencyProject(agencyList, formDTO.getEndDateId()); - Map closeProjectStartMap = closeProjectStart.stream().collect(Collectors.toMap(SubAgencyProjectResultDTO::getAgencyId, SubAgencyProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1)); - Map closeProjectEndMap = closeProjectEnd.stream().collect(Collectors.toMap(SubAgencyProjectResultDTO::getAgencyId, SubAgencyProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1)); + //List closeProjectStart = dataStatsDao.getSubAgencyProject(agencyList, breforeStartDate); + //List closeProjectEnd = dataStatsDao.getSubAgencyProject(agencyList, formDTO.getEndDateId()); + Map closeProjectStartMap = toProjectStart.stream().collect(Collectors.toMap(SubAgencyProjectResultDTO::getAgencyId, SubAgencyProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1)); + Map closeProjectEndMap = toProjectEnd.stream().collect(Collectors.toMap(SubAgencyProjectResultDTO::getAgencyId, SubAgencyProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1)); //巡查次数和时间 - List agencyFullIds = subAgencyList.stream().map(o -> o.getPids().concat(StrConstant.COLON).concat(o.getAgencyId())).collect(Collectors.toList()); - List patrolList = statsStaffPatrolRecordDailyService.getPatrolSumList(agencyFullIds,breforeStartDate,formDTO.getEndDateId()); - Map patrolListMap = patrolList.stream().collect(Collectors.toMap(PatrolDailySumResult::getFullAgencyId, o -> o, (o1, o2) -> o1)); + List patrolList = statsStaffPatrolRecordDailyService.getPatrolSumList(agencyList,formDTO.getStartDateId(),formDTO.getEndDateId()); + Map 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 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 projectEnd = dataStatsDao.projectList(formDTO); HashMap pEndMap = new HashMap<>(); projectEnd.stream().forEach(u->pEndMap.put(u.getOrgId(),u)); - //巡查数据不区分区间差值,只计算累计值,人员做去重处理且是有巡查记录的人员 - List patrolEnd = statsStaffPatrolRecordDailyService.patrolList(formDTO); + //巡查数据不区分区间差值,只计算累计值,人员做去重处理且是有巡查记录的人员 == + CustomerDataManageFormDTO patrolForm = ConvertUtils.sourceToTarget(formDTO,CustomerDataManageFormDTO.class); + patrolForm.setStartTime(startTimeForm); + List patrolEnd = statsStaffPatrolRecordDailyService.patrolList(patrolForm); //4.判断是否需要查询起始日期用户、群组、话题、议题、项目、巡查数据 HashMap uStartMap = new HashMap<>(); diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java index ce49c18f73..70afc1e944 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java +++ b/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 getPatrolSumList(List agencyList, String startDateId, String endDateId); + List getPatrolSumList(List orgIdList, String startDateId, String endDateId); /** * @Description 直属组织或网格下巡查数据 diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index a131ca29dd..6315daf303 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -209,6 +209,7 @@ public class EpmetUserServiceImpl implements EpmetUserService { dto.setStatus(record.getStatus()); dto.setPatrolStartTime(DateUtils.format(record.getPatrolStartTime(), DateUtils.DATE_TIME_PATTERN)); dto.setPatrolEndTime(DateUtils.format(record.getPatrolEndTime(), DateUtils.DATE_TIME_PATTERN)); + dto.setIsHandEnd(record.getIsHandEnd()); Integer minutes; if (("patrolling").equals(record.getStatus())) { minutes = DateUtils.calculateMin(record.getPatrolStartTime(), new Date()); diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java index d24dcbe10c..ccfe71e399 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java +++ b/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 getPatrolSumList(List agencyFullIdList, String startDateId, String endDateId) { - return baseDao.getPatrolSumList(agencyFullIdList,startDateId,endDateId); + public List getPatrolSumList(List orgIdList, String startDateId, String endDateId) { + return baseDao.getPatrolSumList(orgIdList,startDateId,endDateId); } /** diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml index 228e1c3fc6..3332f525f3 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml +++ b/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 @@ AND date_id =]]> #{startTime} + + AND date_id #{endTime} + ORDER BY date_id ASC + + AND date_id =]]> #{startTime} + AND date_id #{endTime} ORDER BY date_id DESC @@ -871,9 +877,15 @@ AND date_id =]]> #{startTime} + + AND date_id #{endTime} + ORDER BY date_id ASC + + AND date_id =]]> #{startTime} + AND date_id #{endTime} ORDER BY date_id DESC @@ -911,9 +923,15 @@ AND date_id =]]> #{startTime} + + AND date_id #{endTime} + ORDER BY date_id ASC + + AND date_id =]]> #{startTime} + AND date_id #{endTime} ORDER BY date_id DESC @@ -951,9 +969,15 @@ AND date_id =]]> #{startTime} + + AND date_id #{endTime} + ORDER BY date_id ASC + + AND date_id =]]> #{startTime} + AND date_id #{endTime} ORDER BY date_id DESC @@ -991,9 +1015,15 @@ AND date_id =]]> #{startTime} + + AND date_id #{endTime} + ORDER BY date_id ASC + + AND date_id =]]> #{startTime} + AND date_id #{endTime} ORDER BY date_id DESC diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml index b3f6e59aa9..e77b01af94 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml @@ -2,16 +2,17 @@ diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/CompartmentResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/CompartmentResultDTO.java index 9e941152e4..52b0f9fa36 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/CompartmentResultDTO.java +++ b/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 = ""; + /** * 当前所选组织 */ diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ScoreListResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ScoreListResultDTO.java index 64d2b02a95..40db66a38b 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ScoreListResultDTO.java +++ b/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; } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/IndexServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/IndexServiceImpl.java index aa6c86490c..209e776ee7 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/IndexServiceImpl.java +++ b/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; } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/fact/impl/FactIndexServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/fact/impl/FactIndexServiceImpl.java index 80d2161ebb..a8dcf880d2 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/fact/impl/FactIndexServiceImpl.java +++ b/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()); } diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexAgencyScoreDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexAgencyScoreDao.xml index 04fcae2efd..37438d4249 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexAgencyScoreDao.xml +++ b/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 diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexCommunityScoreDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexCommunityScoreDao.xml index 5f77c4950d..bd42a2b2b8 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexCommunityScoreDao.xml +++ b/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 diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexGridScoreDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexGridScoreDao.xml index c152cbd144..62a7984b85 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexGridScoreDao.xml +++ b/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 diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml index 16c1b42383..0b619b742a 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml @@ -192,6 +192,7 @@ 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 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml index 9c42712164..638f7ec8df 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml @@ -164,18 +164,19 @@ )t - - 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}) - GROUP BY GRID_ID + 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 @@ -377,4 +378,4 @@ GROUP BY a.ID - \ No newline at end of file + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml index 121c909d15..64682b5dd4 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml @@ -47,7 +47,7 @@ - + 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) @@ -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, '%') - AND da.AGENCY_DIM_TYPE = 'all' - AND da.`LEVEL` = #{level} - AND da.CUSTOMER_ID = #{customerId} - WHERE 1=1 - AND f.MONTH_ID = #{monthId}) a - LEFT JOIN ( - SELECT - PROJECT_ID, - AVG( CASE ACTION_CODE WHEN 'bad' THEN 60 WHEN 'perfect' THEN 100 ELSE 80 END ) AS score - FROM - fact_origin_project_log_daily - WHERE - (ACTION_CODE = 'bad' - OR ACTION_CODE = 'good' - OR ACTION_CODE = 'perfect') - AND CUSTOMER_ID = #{customerId} - AND MONTH_ID = #{monthId} - GROUP BY - PROJECT_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.ORIGIN = 'issue' + AND f.PROJECT_STATUS = 'closed' + AND f.CUSTOMER_ID = #{customerId} + ) a + LEFT JOIN ( + SELECT + 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 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 + ( 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 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml index 0790001c64..063ec1acc8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml +++ b/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 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.xml index 76ab745264..97374f84e2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.xml +++ b/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} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml index a15debd1c6..86980fbab1 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml @@ -218,6 +218,7 @@ a.CLOSE_CASE_TIME, a.DATA_END_TIME, a.ALL_PARENT_IDS, + a.PROJECT_CREATOR, a.ORIGIN, a.CATEGORY_CODE, b.HANDLER_ID AS finishOrg, @@ -253,8 +254,10 @@ AND b.CUSTOMER_ID = #{customerId} - - AND b.PROJECT_ID = #{projectId} + + + b.PROJECT_ID = #{projectId} + LEFT JOIN screen_customer_agency c ON b.HANDLER_ID = c.AGENCY_ID WHERE a.DEL_FLAG = '0' @@ -263,8 +266,10 @@ AND a.CUSTOMER_ID = #{customerId} - - AND a.PROJECT_ID = #{projectId} + + + a.PROJECT_ID = #{projectId} + ORDER BY a.CREATED_TIME ASC diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml index ae1950cdd4..1d04f913fb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml @@ -110,8 +110,8 @@ + + + +