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 20977fc543..c07b789b8e 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 @@ -431,8 +431,13 @@ public class ProjectServiceImpl extends BaseServiceImpl responseList = projectProcessService.selectResponseTrace(projects); Map> sorted = responseList.stream().collect(Collectors.groupingBy(ProjectOrgRelationWhenResponseResultDTO::getProjectId)); + //跨级分组 skipLevelGrouping(projectMap,sorted); List calculatedData = new LinkedList<>(); projectMap.values().forEach(list -> {list.forEach(obj -> {calculatedData.add(obj);});}); @@ -1042,16 +1048,39 @@ public class ProjectServiceImpl extends BaseServiceImpl identities = totalContainer.stream().map(ProjectOrgRelationDTO::getProjectStaffId).distinct().collect(Collectors.toList()); ListUtils.partition(identities,NumConstant.ONE_THOUSAND).forEach(partition -> {relationDao.deleteBatch(partition);}); - List timeInterval = totalContainer.stream().map(relation -> { + /*List timeInterval = totalContainer.stream().map(relation -> { TimestampIntervalFormDTO interval = new TimestampIntervalFormDTO(); interval.setId(relation.getProjectStaffId()); interval.setLeft(relation.getInformedDate()); interval.setRight(relation.getHandledDate()); return interval; - }).collect(Collectors.toList()); + }).collect(Collectors.toList());*/ + + List handleTimeInterval = new LinkedList<>(); + + List responseTimeInterval = new LinkedList<>(); + totalContainer.forEach(local -> { + if(null != local.getHandledDate()){ + TimestampIntervalFormDTO handle = new TimestampIntervalFormDTO(); + handle.setId(local.getProjectStaffId()); + handle.setLeft(local.getInformedDate()); + handle.setRight(local.getHandledDate()); + handleTimeInterval.add(handle); + } + if(null != local.getFirstDealtDate()){ + TimestampIntervalFormDTO response = new TimestampIntervalFormDTO(); + response.setId(local.getProjectStaffId()); + response.setLeft(local.getInformedDate()); + response.setRight(local.getFirstDealtDate()); + responseTimeInterval.add(response); + } + }); + Map batchDelta_T = batchCalculateDelta_T(ProjectConstant.IMPRECISE_CALCULATION, - ProjectConstant.CALCULATION_TYPE_DEFAULT,timeInterval); + ProjectConstant.CALCULATION_TYPE_DEFAULT,handleTimeInterval); + + Map dataMap = totalContainer.stream().collect(Collectors.toMap(ProjectOrgRelationDTO::getProjectStaffId, Function.identity(), (key1, key2) -> key2)); @@ -1061,6 +1090,7 @@ public class ProjectServiceImpl extends BaseServiceImpl { if(null != v){ v.setTotalPeriod(batchDelta_T.get(k)); + if(v.getHandledDate() == v.getFirstDealtDate())v.setFirstReplyPeriod(batchDelta_T.get(k)); } }); List> partition = ListUtils.partition(totalContainer, NumConstant.ONE_HUNDRED); @@ -1212,11 +1242,14 @@ public class ProjectServiceImpl extends BaseServiceImpl dest, - ProjectOrgRelationWhenResponseResultDTO staffResponseTraceUnit){ + ProjectOrgRelationWhenResponseResultDTO staffResponseTraceUnit,int seq){ // 传递过来的dest是已经按照projectId分好组之后再按照staff分组的集合 // dest key->staff - for(int cursor = 0; cursor < dest.size(); cursor++){ - if(dest.get(cursor).getPeriodTillReplyFirstly() == null) continue; - dest.get(cursor).setPeriodTillReplyFirstly(staffResponseTraceUnit.getCreatedTime()); - } - + ProjectOrgPeriodResultDTO target = dest.get(seq); + if(null != target) target.setPeriodTillReplyFirstly(staffResponseTraceUnit.getCreatedTime()); } } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/logback-spring.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/logback-spring.xml index 236abcb4e9..c4e23d9fe9 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/logback-spring.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/logback-spring.xml @@ -134,7 +134,7 @@ - + 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 8979d90f57..baf33ff218 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 @@ -195,4 +195,15 @@ AND p.ID = #{id} AND ps.IS_HANDLE = 'unhandled' + + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectOrgRelationDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectOrgRelationDao.xml index 6cbb71d1ae..e07b0e9f54 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectOrgRelationDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectOrgRelationDao.xml @@ -110,6 +110,7 @@ ID, PROJECT_STAFF_ID, INFORMED_DATE, + HANDLED_DATE, CREATED_TIME, UPDATED_TIME, SOURCE_OPERATION, @@ -125,10 +126,11 @@ (SELECT REPLACE(UUID(),'-','') as id), #{item.projectStaffId}, #{item.informedDate}, + #{item.handledDate}, NOW(), NOW(), #{item.sourceOperation}, - #{item.OPERATION}, + #{item.operation}, #{item.totalPeriod}, #{item.firstDealtDate}, #{item.firstReplyPeriod}, @@ -140,7 +142,7 @@ - DELETE + DELETE FROM project_org_relation WHERE diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectStaffDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectStaffDao.xml index ae9ebb16bb..18df0a762a 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectStaffDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectStaffDao.xml @@ -156,7 +156,6 @@ staff.GRID_ID, staff.STAFF_ID AS staffId, staff.ORG_ID_PATH, - IF(staff.IS_HANDLE='handle',timestampdiff(MINUTE , staff.CREATED_TIME , staff.UPDATED_TIME),0) AS TOTAL_PERIOD, staff.CREATED_TIME AS informedDate, IF(staff.IS_HANDLE='handle','resolved','unresolved') AS isResolved,