diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java index 36a31e24cc..1809319a3c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java @@ -133,4 +133,6 @@ public interface ScreenProjectDataDao extends BaseDao { * @Date 2022/3/16 9:48 */ void updateHistoryData(CustomerStaffGridDTO dto); + + int getProjectCount(@Param("customerId") String customerId,@Param("dateId") String dateId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java index f611edf8f7..27b5255863 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java @@ -260,10 +260,21 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl NumConstant.ZERO) { - affectedRows = baseDao.deleteByProjectTimeAndCustomerId(customerId, dateId); + int count = baseDao.getProjectCount(customerId, dateId); + if (meta.size() < count) { + //meta的数据量小于表里的数据量,意味着指定部分数据进行重新抽取,只需要删除指定的项目数据即可 + List projectIds = meta.stream().map(ScreenProjectDataDTO::getProjectId).collect(Collectors.toList()); + List> projectPartition = ListUtils.partition(projectIds, NumConstant.FIFTY); + projectPartition.forEach(part -> { + baseDao.deleteByProjectIds(customerId, part); + }); + } else { + int affectedRows = baseDao.deleteByProjectTimeAndCustomerId(customerId,dateId); + while (affectedRows > NumConstant.ZERO) { + affectedRows = baseDao.deleteByProjectTimeAndCustomerId(customerId, dateId); + } } + List> partition = ListUtils.partition(meta, NumConstant.ONE_HUNDRED); partition.forEach(part -> { List list = ConvertUtils.sourceToTarget(part, ScreenProjectDataEntity.class); 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 68e2d9d27f..64b783c786 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 @@ -539,4 +539,10 @@ AND ORG_ID = #{agencyId} AND ORIGIN = 'agency' + diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/EventreportPingyinServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/EventreportPingyinServiceImpl.java index df1d77eca2..fbf68fc8c5 100755 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/EventreportPingyinServiceImpl.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/EventreportPingyinServiceImpl.java @@ -162,7 +162,13 @@ public class EventreportPingyinServiceImpl extends BaseServiceImpl