+ * 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