From 32420502c58f2bc50b3212dbe220a2c6ab94f16f Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 12 Oct 2021 16:29:34 +0800 Subject: [PATCH] =?UTF-8?q?fact=5Forigin=5Fproject=5Fcategory=5Fdaily?= =?UTF-8?q?=E6=8A=BD=E5=8F=96=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FactOriginProjectCategoryDailyDao.java | 2 ++ ...OriginProjectCategoryDailyServiceImpl.java | 23 ++++++++++++++++--- .../FactOriginProjectCategoryDailyDao.xml | 12 ++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectCategoryDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectCategoryDailyDao.java index 911b73b479..dcd9105781 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectCategoryDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectCategoryDailyDao.java @@ -51,4 +51,6 @@ public interface FactOriginProjectCategoryDailyDao extends BaseDao selectListProjectCategoryByOrg(@Param("orgIds")List orgIds,@Param("customerId") String customerId); + + int deleteByProjectIds(@Param("list") List list); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java index 6e3f7abb90..bb05d1b16f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java @@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.evaluationindex.extract.FactOriginProjectCategoryDailyDao; import com.epmet.dto.ProjectCategoryDTO; @@ -32,13 +33,14 @@ import com.epmet.service.Issue.IssueProjectCategoryDictService; import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectCategoryDailyService; import com.epmet.service.project.ProjectService; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.collections4.ListUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; /** @@ -73,26 +75,41 @@ public class FactOriginProjectCategoryDailyServiceImpl extends BaseServiceImpl projectCategoryData = projectService.getProjectCategoryData(customerId, dateString); + HashSet projectIdSet=new HashSet<>(); if (!CollectionUtils.isEmpty(projectCategoryData)){ projectCategoryData.forEach(data->{ FactOriginProjectCategoryDailyEntity insertEntity = new FactOriginProjectCategoryDailyEntity(); IssueProjectCategoryDictEntity categoryDictEntity = issueProjectCategoryDictService.getById(customerId, data.getCategoryId()); if (categoryDictEntity == null){ - log.warn("categoryDict not found : customerId:{},categoryId:{}",customerId,data.getCategoryId()); + log.error("categoryDict not found : customerId:{},categoryId:{}",customerId,data.getCategoryId()); } insertEntity.setProjectId(data.getProjectId()); - insertEntity.setCategoryCode(categoryDictEntity.getCategoryCode()); + insertEntity.setCategoryCode(null != categoryDictEntity ? categoryDictEntity.getCategoryCode() : StrConstant.EPMETY_STR); insertEntity.setParentCategoryCode(categoryDictEntity.getParentCategoryCode()); insertEntity.setCustomerId(customerId); insertEntity.setLevel(Integer.valueOf(categoryDictEntity.getCategoryType())); insertEntity.setCreatedTime(data.getCreatedTime()); entities.add(insertEntity); + if (NumConstant.ZERO != count){ + projectIdSet.add(data.getProjectId()); + } }); if (!CollectionUtils.isEmpty(entities)){ + // 项目分类在项目结案前,都可以修改。所以要保证将之前的分类删除 + //1、这些项目可能之前已经有分类,先删除 + if(!CollectionUtils.isEmpty(projectIdSet)){ + List projectIdList = new ArrayList(projectIdSet); + List> partionList= ListUtils.partition(projectIdList, 100); + partionList.forEach(list->{ + baseDao.deleteByProjectIds(list); + }); + } + //2、先删除后增 delAndInsert(customerId,dateString,entities); } } } + /** * @Description category表删除插入 * @param customerId diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectCategoryDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectCategoryDailyDao.xml index a33bda9bed..8bc9f15f92 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectCategoryDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectCategoryDailyDao.xml @@ -14,6 +14,18 @@ + + DELETE + FROM + fact_origin_project_category_daily + WHERE del_flag='0' + + AND PROJECT_ID in + + #{projectId} + + +