diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicMainDailyDao.java index ae3ad01fd5..103e85c748 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicMainDailyDao.java @@ -106,6 +106,14 @@ public interface FactOriginTopicMainDailyDao extends BaseDao topicIds); + /** * @return java.lang.Integer * @param customerId diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginTopicMainDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginTopicMainDailyServiceImpl.java index 7519d9496d..ee147e5151 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginTopicMainDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginTopicMainDailyServiceImpl.java @@ -40,6 +40,7 @@ import com.epmet.service.evaluationindex.extract.todata.FactOriginTopicMainDaily import com.epmet.service.org.CustomerGridService; import com.epmet.service.topic.TopicService; import com.epmet.service.user.UserService; +import com.epmet.util.ModuleConstant; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.ListUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -91,6 +92,7 @@ public class FactOriginTopicMainDailyServiceImpl extends BaseServiceImpl map = this.constructFactOriginData(topicOriginInfoList, gridMap); List mainDailyEntityList = (List) map.get("main"); List logDailyEntityList = (List) map.get("log"); + List topicIds = (List) map.get(ModuleConstant.NEED_UPDATE_STATUS_TOPIC); //删除之前统计的数据 deleteFactOriginData(customerId,dateId); //批量保存主表 @@ -99,6 +101,8 @@ public class FactOriginTopicMainDailyServiceImpl extends BaseServiceImpl topicIds){ + if (!CollectionUtils.isEmpty(topicIds)){ + baseDao.updateTopicMainStatus(topicIds); + } + } + private Map getGridInfoMap(String customerId) { Map map=new HashMap<>(); @@ -172,12 +188,13 @@ public class FactOriginTopicMainDailyServiceImpl extends BaseServiceImpl userIds = topicOriginInfoList.stream().map(topic -> topic.getOperateUserId()).distinct().collect(Collectors.toList()); Map userIsPartyMap = userService.selectUserIsParty(userIds); + List topicIds = new ArrayList<>(); for(TopicOriginInfoDTO topicOriginInfoDTO:topicOriginInfoList){ GridInfoDTO gridInfoDTO=gridMap.get(topicOriginInfoDTO.getGridId()); if(null==gridInfoDTO){ - log.error("没有找到 gridId="+topicOriginInfoDTO.getGridId()+" 的基本信息"); + log.warn("没有找到 gridId="+topicOriginInfoDTO.getGridId()+" 的基本信息"); // continue; - throw new RenException("xxxxxx"); + throw new RenException("gridInfoDTO is null gridId="+topicOriginInfoDTO.getGridId()); } // 一年的第几周 String weekId = DateUtils.format(topicOriginInfoDTO.getOriginalBusinessTime(), DateUtils.DATE_PATTERN_YYYY).concat("W").concat(String.valueOf(DateUtils.getWeekOfYear(topicOriginInfoDTO.getOriginalBusinessTime()))); @@ -219,9 +236,13 @@ public class FactOriginTopicMainDailyServiceImpl extends BaseServiceImpl> groupByStatus = categoryProjectGrid.stream().collect(Collectors.groupingBy(CategoryProjectResultDTO::getStatus)); - // 取出分类标签code不一样的数据 + // 取出分类标签code同agency级别不一样的数据 List categoryProjectResultDTOS1 = groupByStatus.get(false); categoryProjectResultDTOS.addAll(categoryProjectResultDTOS1); } } -// result = ConvertUtils.sourceToTarget(categoryProjectResultDTOS,ScreenProjectCategoryOrgDailyEntity.class); + result = ConvertUtils.sourceToTarget(categoryProjectResultDTOS,ScreenProjectCategoryOrgDailyEntity.class); /** * 查询父子客户所有的分类,根据分类分组,然后把agencyId统一换成父客户的 * 在保存一份子客户自己agencyId的 @@ -409,6 +409,8 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl> groupByCategoryCode = categoryProjectResultDTOS.stream().collect(Collectors.groupingBy(CategoryProjectResultDTO::getCategoryCode)); + // 这时的result集合要清空,因为被上边使用 【result = ConvertUtils.sourceToTarget(categoryProjectResultDTOS,ScreenProjectCategoryOrgDailyEntity.class);】 + result.clear(); List finalResult = result; groupByCategoryCode.forEach((code, list) -> { ScreenProjectCategoryOrgDailyEntity e = new ScreenProjectCategoryOrgDailyEntity(); @@ -454,6 +456,7 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl levelAgencyInfo = groupByLevel.get(level); if (!CollectionUtils.isEmpty(levelAgencyInfo)) { orgIds = levelAgencyInfo.stream().map(m -> m.getAgencyId()).collect(Collectors.toList()); + // 查询客户下,组织直接立项的,各项目分类下的项目数量【筛选组织创建的项目,fact_origin_project_main_daily表gridId为空】 List screenProjectCategory = factOriginProjectCategoryDailyService.selectListProjectCategoryByOrg(orgIds, customerId); if (!CollectionUtils.isEmpty(result)) { if (!CollectionUtils.isEmpty(screenProjectCategory)) { @@ -466,6 +469,7 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl> groupByStatus = screenProjectCategory.stream().collect(Collectors.groupingBy(ScreenProjectCategoryGridDailyDTO::getStatus)); + // 取出没有累加过的数据 List screenProjectCategoryNoCal = groupByStatus.get(false); if (!CollectionUtils.isEmpty(screenProjectCategoryNoCal)) { List noCalCategory = ConvertUtils.sourceToTarget(screenProjectCategoryNoCal, ScreenProjectCategoryOrgDailyEntity.class); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/util/ModuleConstant.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/util/ModuleConstant.java index 7473434df9..1881ed5c77 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/util/ModuleConstant.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/util/ModuleConstant.java @@ -39,4 +39,8 @@ public interface ModuleConstant { String EXCEPTION_DING_INTERCEPTOR_PREFIX_TOPIC_STATISTICAL = "topicStats"; String LOG_WARN_NO_AGENCY_MESSAGE = "没有相应的机关集合"; + + String TOPIC_STATUS_SHIFT_ISSUE = "shift_issue"; + + String NEED_UPDATE_STATUS_TOPIC = "needUpdateStatusTopic"; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.16__add_shiftIssue.sql b/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.16__add_shiftIssue.sql new file mode 100644 index 0000000000..367af0a9b7 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.16__add_shiftIssue.sql @@ -0,0 +1 @@ +ALTER TABLE `fact_origin_topic_main_daily` ADD `SHIFT_ISSUE` tinyint(1) NOT NULL default '0' COMMENT '是否转为议题,0:false,1:true' AFTER `CREATE_TOPIC_USER_IS_PARTY`; \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicMainDailyDao.xml index a4f2d9bbaa..f0e5dc075d 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicMainDailyDao.xml @@ -139,6 +139,19 @@ where id = #{topicId} + + + UPDATE fact_origin_topic_main_daily + SET SHIFT_ISSUE = 1, + UPDATED_TIME = NOW() + WHERE 1=1 + AND ( + + ID = #{topicId} + + ) + +