diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ResiEventReportOrgDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ResiEventReportOrgDTO.java new file mode 100644 index 0000000000..2576c3df7e --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ResiEventReportOrgDTO.java @@ -0,0 +1,112 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dataaggre.dto.govproject; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 事件相关组织表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-08-03 + */ +@Data +public class ResiEventReportOrgDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 事件id + */ + private String resiEventId; + + /** + * 报给?: +网格:grid; +社区:community; +乡(镇、街道)级:street; +区县级: district; +市级: city; +省级:province。 + */ + private String orgType; + + /** + * 报给的组织或者网格id + */ + private String orgId; + + /** + * org_id的上级组织id,org_id是跟组织,此列为0 + */ + private String orgPid; + + /** + * org_id的所有上级组织id,org_id是跟组织,此列为0 + */ + private String orgPids; + + /** + * 含义:已读read,未读:un_read;组织下的工作人员从待处理=>处理中,点击查看详情前更新为已读; + */ + private String orgRead; + + /** + * (1)含义:1:展示红点;0:不展示;(2)注意:发布事件插入数据时为1,(3)何时更新?:人大代表回复or报事人回复or工作人员回复、立项、办结更新为1; + */ + private Boolean redDot; + + /** + * 删除标识:0.未删除 1.已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/CategoryProjectResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/CategoryProjectResultDTO.java index 0d5b2f2707..5386febe19 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/CategoryProjectResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/CategoryProjectResultDTO.java @@ -32,12 +32,14 @@ public class CategoryProjectResultDTO implements Serializable { private List categoryCodes = new ArrayList<>(); //一级分类名称集合 private List categoryNames = new ArrayList<>(); - //来源:议题issue 项目立项:agency 事件:resi_event【控制电机查看时里边三个按钮的显示】 + //网格Id + private String gridId; + //来源:议题issue 项目立项:agency 事件:resi_event【控制点击查看时里边三个按钮的显示】 private String origin; - //网格Id[上报给组织的事件、直接立项的项目此值为空] - private String gridId = ""; - //网格名[上报给组织的事件、直接立项的项目此值为空] - private String gridName = ""; + //来源Id + private String originId; + //所属组织名[来源楼院小组的项目所属组织显示来源的网格名,直接立项的显示立项的组织名,来源事件的显示上报给的网格或组织名] + private String orgName = ""; //状态:待处理 pending,已结案closed private String status; //标题 diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java index 422aa74f4c..523386aacb 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java @@ -102,9 +102,9 @@ public class GovProjectController { * @author sun */ @PostMapping("categoryprojectlist") - public Result categoryProjectList(@LoginUser TokenDto tokenDto, @RequestBody CategoryProjectFormDTO formDTO) { + public Result categoryProjectList(@RequestBody CategoryProjectFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, CategoryProjectFormDTO.Category.class); - formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setCustomerId("45687aa479955f9d06204d415238f7cc"); return new Result().ok(govProjectService.categoryProjectList(formDTO)); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java index ee44c3cee8..ecc9333edd 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java @@ -22,6 +22,7 @@ import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; import com.epmet.dataaggre.dto.govproject.ProjectDTO; import com.epmet.dataaggre.dto.govproject.ProjectRelatedPersonnelDTO; import com.epmet.dataaggre.dto.govproject.ResiEventDTO; +import com.epmet.dataaggre.dto.govproject.ResiEventReportOrgDTO; import com.epmet.dataaggre.dto.govproject.form.AllProjectFormDTO; import com.epmet.dataaggre.dto.govproject.form.CategoryProjectFormDTO; import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; @@ -115,4 +116,9 @@ public interface ProjectDao extends BaseDao { @Param("userIds") List userIds, @Param("origin") String origin); + /** + * @Description 事件项目上报组织信息 + * @author sun + */ + List getEventOrgList(@Param("eventIds") List eventIds); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java index fb91510b88..77adb4e22a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java @@ -6,7 +6,10 @@ import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; +import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; @@ -22,6 +25,7 @@ import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO; import com.epmet.dataaggre.dto.govproject.ProjectDTO; import com.epmet.dataaggre.dto.govproject.ProjectRelatedPersonnelDTO; import com.epmet.dataaggre.dto.govproject.ResiEventDTO; +import com.epmet.dataaggre.dto.govproject.ResiEventReportOrgDTO; import com.epmet.dataaggre.dto.govproject.form.*; import com.epmet.dataaggre.dto.govproject.result.*; import com.epmet.dataaggre.dto.resigroup.ResiTopicDTO; @@ -46,6 +50,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -383,23 +388,66 @@ public class GovProjectServiceImpl implements GovProjectService { List projectIds = result.getList().stream().map(CategoryProjectResultDTO.Project::getProjectId).collect(Collectors.toList()); List list = projectDao.getCategoryList(projectIds); - //4.查询网格信息【楼院小组类项目、上报事件且上报给网格的项目才存在网格Id】 - List gridIds = result.getList().stream().map(CategoryProjectResultDTO.Project::getGridId).collect(Collectors.toList()); - gridIds = gridIds.stream().distinct().collect(Collectors.toList()); - List gridList = govOrgService.gridListByIds(gridIds); + //4.查询来源事件的项目上报的组织信息 + List eventIds = result.getList().stream().filter(re -> "resi_event".equals(re.getOrigin())).map(m -> m.getOriginId()).collect(Collectors.toList()); + List eventOrgList = projectDao.getEventOrgList(eventIds); + Map eventMap = eventOrgList.stream().collect(Collectors.toMap(ResiEventReportOrgDTO::getResiEventId, Function.identity())); //5.查询来源议题、事件的项目居民端创建人userId List eventUser = projectDao.getEventList(projectIds); List topicUser = projectDao.getTopicUser(projectIds); //5.封装数据 + //组织或网格id->组织或网格名称 + Map map = new HashMap<>(); result.getList().forEach(re -> { - //项目涉及网格信息 - gridList.forEach(g -> { - if (StringUtils.isNotBlank(re.getGridId()) && re.getGridId().equals(g.getGridId())) { - re.setGridName(g.getName()); + //所属组织 + if ("issue".equals(re.getOrigin())) { + if (map.containsKey(re.getGridId())) { + re.setOrgName(map.get(re.getGridId())); + } else { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(re.getGridId()); + if (gridInfo != null) { + re.setOrgName(gridInfo.getGridName()); + map.put(re.getGridId(), gridInfo.getGridName()); + } } - }); + } else if ("agency".equals(re.getOrigin())) { + if (map.containsKey(re.getAgencyId())) { + re.setOrgName(map.get(re.getAgencyId())); + } else { + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(re.getAgencyId()); + if (agencyInfo != null) { + re.setOrgName(agencyInfo.getOrganizationName()); + map.put(re.getAgencyId(), agencyInfo.getOrganizationName()); + } + + } + } else if ("resi_event".equals(re.getOrigin())) { + if (eventMap.containsKey(re.getOriginId())) { + if ("grid".equals(eventMap.get(re.getOriginId()).getOrgType())) { + if (map.containsKey(re.getGridId())) { + re.setOrgName(map.get(re.getGridId())); + } else { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(re.getGridId()); + if (gridInfo != null) { + re.setOrgName(gridInfo.getGridName()); + map.put(re.getGridId(), gridInfo.getGridName()); + } + } + } else { + if (map.containsKey(re.getAgencyId())) { + re.setOrgName(map.get(re.getAgencyId())); + } else { + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(re.getAgencyId()); + if (agencyInfo != null) { + re.setOrgName(agencyInfo.getOrganizationName()); + map.put(re.getAgencyId(), agencyInfo.getOrganizationName()); + } + } + } + } + } //项目涉及分类信息【一个项目涉及多个一级分类】 //一级分类Id List caId = new ArrayList<>(); diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml index f7b74ccdb9..c8682a66dc 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml @@ -267,6 +267,7 @@ p.agency_id agencyId, p.id projectId, p.origin origin, + p.origin_id originId, IFNULL(pc.grid_id, '') gridId, p.`status` status, p.title title, @@ -380,4 +381,19 @@ ORDER BY p.created_time DESC + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsGroupServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsGroupServiceImpl.java index 2520d4bd89..084a3ed84c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsGroupServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsGroupServiceImpl.java @@ -23,6 +23,7 @@ import com.epmet.service.stats.*; import com.epmet.util.DimIdGenerator; import com.epmet.util.ModuleConstant; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -89,10 +90,15 @@ public class StatsGroupServiceImpl implements StatsGroupService { DimIdGenerator.DimIdBean dimIdBean = this.getDimIdBean(formDTO); if (customerIds.size() != NumConstant.ZERO) { customerIds.forEach(customerId -> { + Boolean status = true; try { List gridsInfo = customerGridService.getCustomerGridIdList(customerId, dimIdBean.getDateId()); - List resultDTOS = groupDataService.groupGridDaily(customerId, dimIdBean, gridsInfo); - factGroupGridDailyService.statisticsGroupGridDaily(resultDTOS, customerId); + List> partition = ListUtils.partition(gridsInfo, NumConstant.ONE_HUNDRED); + for (List p : partition) { + List resultDTOS = groupDataService.groupGridDaily(customerId, dimIdBean, p); + factGroupGridDailyService.statisticsGroupGridDaily(resultDTOS, customerId,status); + status = false; + } } catch (Exception e) { log.error(String.format(GroupConstant.STATS_FAILED_GRID_DAILY, customerId, LocalDate.now(), e)); } @@ -129,10 +135,15 @@ public class StatsGroupServiceImpl implements StatsGroupService { if (customerIds.size() != NumConstant.ZERO) { DimIdGenerator.DimIdBean dimIdBean = this.getDimIdBean(formDTO); customerIds.forEach(customerId -> { + Boolean status = true; try { List customerAgencyInfos = dimAgencyService.getAgencyInfoByCustomerId(customerId); - List agencyGroupDaily = this.getAgencyGroupDaily(customerAgencyInfos, dimIdBean, customerId); - factGroupAgencyDailyService.insertGroupAgencyDaily(agencyGroupDaily, customerId); + List> partition = ListUtils.partition(customerAgencyInfos, NumConstant.ONE_HUNDRED); + for (List p : partition) { + List agencyGroupDaily = this.getAgencyGroupDaily(p, dimIdBean, customerId); + factGroupAgencyDailyService.insertGroupAgencyDaily(agencyGroupDaily, customerId,status); + status = false; + } } catch (Exception e) { log.error(String.format(GroupConstant.STATS_FAILED_AGENCY_DAILY, customerId, LocalDate.now(), e)); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsProjectServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsProjectServiceImpl.java index 0d62755e2c..75e030f55c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsProjectServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsProjectServiceImpl.java @@ -187,11 +187,13 @@ public class StatsProjectServiceImpl implements StatsProjectService { projectEntity.setStatus(ProjectConstant.CLOSED); projectEntity.setPageSize(NumConstant.ONE_THOUSAND); int pageNo = NumConstant.ONE; + int size = NumConstant.ZERO; List processList = new ArrayList<>(); do { //1.一千条一循环查询节点数据,封装每个组织对应数据 projectEntity.setPageNo(pageNo); processList = projectProcessService.getProcessList(projectEntity); + size = processList.size(); pageNo++; //遍历删除项目节点表查询的无效数据 if (list.size() > NumConstant.ZERO) { @@ -245,11 +247,11 @@ public class StatsProjectServiceImpl implements StatsProjectService { if (mapList.containsKey(agency.getId())) { entity = mapList.get(agency.getId()); entity.setProjectTotal(entity.getProjectTotal() + projectTotal.intValue()); - entity.setPendingTotal(entity.getPendingTotal() + projectTotal.intValue() - closedTotal.intValue()); + entity.setPendingTotal(entity.getProjectTotal() - closedTotal.intValue()); entity.setClosedTotal(entity.getClosedTotal() + closedTotal.intValue()); if (projectTotal.intValue() > NumConstant.ZERO) { - entity.setPendingRatio(new BigDecimal(numberFormat.format((float) entity.getPendingTotal() / (float) projectTotal.intValue()))); - entity.setClosedRatio(new BigDecimal(numberFormat.format((float) closedTotal.intValue() / (float) projectTotal.intValue()))); + entity.setPendingRatio(new BigDecimal(numberFormat.format((float) entity.getPendingTotal() / (float) entity.getProjectTotal()))); + entity.setClosedRatio(new BigDecimal(numberFormat.format((float) entity.getClosedTotal() / (float) entity.getProjectTotal()))); } entity.setProjectIncr(entity.getProjectIncr() + projectIncr.intValue()); entity.setPendingIncr(entity.getPendingIncr() + projectIncr.intValue()); @@ -267,8 +269,8 @@ public class StatsProjectServiceImpl implements StatsProjectService { entity.setPendingTotal(projectTotal.intValue() - closedTotal.intValue()); entity.setClosedTotal(closedTotal.intValue()); if (projectTotal.intValue() > NumConstant.ZERO) { - entity.setPendingRatio(new BigDecimal(numberFormat.format((float) entity.getPendingTotal() / (float) projectTotal.intValue()))); - entity.setClosedRatio(new BigDecimal(numberFormat.format((float) closedTotal.intValue() / (float) projectTotal.intValue()))); + entity.setPendingRatio(new BigDecimal(numberFormat.format((float) entity.getPendingTotal() / (float) entity.getProjectTotal()))); + entity.setClosedRatio(new BigDecimal(numberFormat.format((float) entity.getClosedTotal() / (float) entity.getProjectTotal()))); } entity.setProjectIncr(projectIncr.intValue()); entity.setPendingIncr(projectIncr.intValue()); @@ -276,7 +278,7 @@ public class StatsProjectServiceImpl implements StatsProjectService { } mapList.put(agency.getId(), entity); } - } while (!CollectionUtil.isEmpty(processList) && processList.size() == NumConstant.ONE_THOUSAND); + } while (size == NumConstant.ONE_THOUSAND); //二、再分页查询项目表数据,封装每个组织的已结案已解决总数、已结案未解决总数;日增量中已结案已解决总数、已结案未解决总数 int num = NumConstant.ONE; @@ -285,6 +287,7 @@ public class StatsProjectServiceImpl implements StatsProjectService { //3.一千条一循环查询项目数据,封装每个组织对应数据 projectEntity.setPageNo(num); projectList = projectService.getProjectList(projectEntity); + size = projectList.size(); num++; //遍历删除项目主表查询的无效数据 if (list.size() > NumConstant.ZERO) { @@ -343,8 +346,8 @@ public class StatsProjectServiceImpl implements StatsProjectService { entity.setResolvedTotal(entity.getResolvedTotal() + resolvedTotal.intValue()); entity.setUnresolvedTotal(entity.getUnresolvedTotal() + unResolvedTotal.intValue()); if (entity.getClosedTotal() > NumConstant.ZERO) { - entity.setResolvedRatio(new BigDecimal(numberFormat.format((float) resolvedTotal.intValue() / (float) entity.getClosedTotal()))); - entity.setUnresolvedRatio(new BigDecimal(numberFormat.format((float) unResolvedTotal.intValue() / (float) entity.getClosedTotal()))); + entity.setResolvedRatio(new BigDecimal(numberFormat.format((float) entity.getResolvedTotal() / (float) entity.getClosedTotal()))); + entity.setUnresolvedRatio(new BigDecimal(numberFormat.format((float) entity.getUnresolvedTotal() / (float) entity.getClosedTotal()))); } entity.setResolvedIncr(entity.getResolvedIncr() + resolvedIncr.intValue()); entity.setUnresolvedIncr(entity.getUnresolvedIncr() + unResolvedIncr.intValue()); @@ -371,7 +374,7 @@ public class StatsProjectServiceImpl implements StatsProjectService { } mapList.put(agency.getId(), entity); } - } while (!CollectionUtil.isEmpty(projectList) && projectList.size() == NumConstant.ONE_THOUSAND); + } while (size == NumConstant.ONE_THOUSAND); List projectDateEntityList = new ArrayList<>(mapList.values()); //三、批量保存数据,先删后增 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java index 9f1861df0f..bb0925ca52 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java @@ -34,6 +34,7 @@ import com.epmet.dto.screen.ScreenProjectProcessDTO; import com.epmet.entity.project.ProjectEntity; import com.epmet.entity.project.ProjectProcessEntity; import com.epmet.service.project.ProjectProcessService; +import com.github.pagehelper.PageHelper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -62,6 +63,7 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl getProcessList(ProjectEntity projectEntity) { + PageHelper.startPage(projectEntity.getPageNo(), projectEntity.getPageSize()); return baseDao.selectProcessList(projectEntity); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java index ecdcda2e71..cf5da0feb9 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java @@ -28,6 +28,7 @@ import com.epmet.dto.project.result.ProjectExceedParamsResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity; import com.epmet.entity.project.ProjectEntity; import com.epmet.service.project.ProjectService; +import com.github.pagehelper.PageHelper; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -54,6 +55,7 @@ public class ProjectServiceImpl extends BaseServiceImpl getProjectList(ProjectEntity projectEntity) { + PageHelper.startPage(projectEntity.getPageNo(), projectEntity.getPageSize()); return baseDao.selectProjectList(projectEntity); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupAgencyDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupAgencyDailyService.java index 812c2c73da..23b34b22af 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupAgencyDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupAgencyDailyService.java @@ -101,7 +101,7 @@ public interface FactGroupAgencyDailyService extends BaseService agencyList,String customerId); + void insertGroupAgencyDaily(List agencyList,String customerId,Boolean status); /** * @param diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupGridDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupGridDailyService.java index bcf2157ecd..732e5062eb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupGridDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupGridDailyService.java @@ -99,5 +99,5 @@ public interface FactGroupGridDailyService extends BaseService formDto,String customerId); + void statisticsGroupGridDaily(List formDto,String customerId,Boolean status); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupAgencyDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupAgencyDailyServiceImpl.java index 306849f76e..b822dcaaa0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupAgencyDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupAgencyDailyServiceImpl.java @@ -113,12 +113,15 @@ public class FactGroupAgencyDailyServiceImpl extends BaseServiceImpl agencyList,String customerId) { + public void insertGroupAgencyDaily(List agencyList,String customerId,Boolean status) { if (!CollectionUtils.isEmpty(agencyList)){ - Integer delNum; - do { - delNum = baseDao.deleteInsertAgencyDailyByDateId(agencyList.get(NumConstant.ZERO).getDateId(),customerId); - }while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND); + // true 为当前客户第一回进入,需要删除历史数据 + if (status){ + Integer delNum; + do { + delNum = baseDao.deleteInsertAgencyDailyByDateId(agencyList.get(NumConstant.ZERO).getDateId(),customerId); + }while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND); + } List> partition = ListUtils.partition(agencyList, NumConstant.ONE_HUNDRED); partition.forEach(p -> { baseDao.insertGroupAgencyDaily(p); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupGridDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupGridDailyServiceImpl.java index f0c8d90832..993428d34f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupGridDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupGridDailyServiceImpl.java @@ -115,15 +115,18 @@ public class FactGroupGridDailyServiceImpl extends BaseServiceImpl formDto,String customerId) { + public void statisticsGroupGridDaily(List formDto,String customerId,Boolean status) { if (CollectionUtils.isEmpty(formDto)){ return; } String dateId = formDto.get(NumConstant.ZERO).getDateId(); - Integer delNum; - do { - delNum = baseDao.deleteInsertDateId(dateId,customerId); - }while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND); + // true 为当前客户第一回进入,需要删除历史数据 + if (status){ + Integer delNum; + do { + delNum = baseDao.deleteInsertDateId(dateId,customerId); + }while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND); + } List> partition = ListUtils.partition(formDto, NumConstant.ONE_HUNDRED); partition.forEach(p -> { baseDao.insertGroupGridDaily(p); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml index 766636e76b..7b92a7b440 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml @@ -5,7 +5,10 @@ \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java index 3006a8b4f6..b5a3e5107e 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java @@ -272,4 +272,15 @@ public interface ProjectDao extends BaseDao { * @Date 2022/1/4 16:45 */ List getGridMemberProjectList(@Param("agencyId") String agencyId, @Param("staffId") String staffId, @Param("startTime") String startTime, @Param("endTime") String endTime); + + /** + * 获取项目列表,用来计算项目耗时 + * @Param customerId + * @Param projectId + * @Param status + * @Return {@link List< ProjectEntity>} + * @Author zhaoqifeng + * @Date 2022/1/12 17:05 + */ + List getProjectListForWorkMinutes(@Param("customerId")String customerId, @Param("projectId")String projectId, @Param("status")String status); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java index 6eb8f0265c..4757113bc7 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java @@ -359,7 +359,7 @@ public interface ProjectService extends BaseService { TopicResearchAnalysisResDTO topicResearchAnalysis(TopicResearchAnalysisFormDTO formDTO); /** - * 计算项目耗时定时任务 + * 计算项目耗时定时任务 1小时一次 * @Param dto * @Return * @Author zhaoqifeng diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 9022c94686..e6e70e2c73 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -18,7 +18,6 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; @@ -59,6 +58,7 @@ import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import com.epmet.send.SendMqMsgUtil; import com.epmet.service.*; import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.google.common.base.Joiner; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -3079,11 +3079,7 @@ public class ProjectServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(dto.getCustomerId()), ProjectEntity::getCustomerId, dto.getCustomerId()); - wrapper.eq(StringUtils.isNotBlank(dto.getId()), ProjectEntity::getId, dto.getId()); - wrapper.eq(StringUtils.isNotBlank(dto.getStatus()), ProjectEntity::getStatus, dto.getStatus()); - list = baseDao.selectList(wrapper); + list = baseDao.getProjectListForWorkMinutes(dto.getCustomerId(), dto.getId(), dto.getStatus());; if (CollectionUtils.isNotEmpty(list)) { //提取项目ID,创建时间,更新时间 List intervalList = list.stream().map(item -> { diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.17__project_work_minutes.sql b/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.19__project_work_minutes.sql similarity index 100% rename from epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.17__project_work_minutes.sql rename to epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.19__project_work_minutes.sql diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml index 60c2050f24..0ce0ccba89 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml @@ -506,4 +506,26 @@ ORDER BY CREATED_TIME DESC + \ No newline at end of file