From 72a0ef2529a6cae921a3b976c1a65c615cf1f123 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 16 Sep 2020 09:38:35 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=AE=E9=A2=98=E4=B8=BB=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/form/IssueMainDailyFormDTO.java | 8 +-- .../extract/result/AgencyInfoResultDTO.java | 25 +++++++++ .../extract/FactOriginIssueMainDailyDao.java | 9 ++++ .../com/epmet/dao/stats/DimAgencyDao.java | 9 ++++ .../extract/impl/IssueExtractServiceImpl.java | 33 +++++++++--- .../extract/FactOriginIssueMainDailyDao.xml | 54 +++++++++++++++---- .../resources/mapper/stats/DimAgencyDao.xml | 17 ++++++ 7 files changed, 134 insertions(+), 21 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/AgencyInfoResultDTO.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/IssueMainDailyFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/IssueMainDailyFormDTO.java index f180014be9..bb7a5b5ea7 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/IssueMainDailyFormDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/IssueMainDailyFormDTO.java @@ -115,9 +115,9 @@ public class IssueMainDailyFormDTO implements Serializable { private String updatedBy; public IssueMainDailyFormDTO() { - this.delFlag = delFlag = 0; - this.revision = revision = 0; - this.createdBy = createdBy = "APP_USER"; - this.updatedBy = updatedBy = "APP_USER"; + this.delFlag = 0; + this.revision = 0; + this.createdBy = "APP_USER"; + this.updatedBy = "APP_USER"; } } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/AgencyInfoResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/AgencyInfoResultDTO.java new file mode 100644 index 0000000000..6434fd6836 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/AgencyInfoResultDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.extract.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/9/15 6:13 下午 + */ +@Data +public class AgencyInfoResultDTO implements Serializable { + + private static final long serialVersionUID = 2823049943836552367L; + + /** + * 机关ID + */ + private String agencyId; + + /** + * 机关的父ID + */ + private String pid; +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java index e33f4255b1..ddfc9134e6 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java @@ -41,4 +41,13 @@ public interface FactOriginIssueMainDailyDao extends BaseDao issueMainList); + + /** + * @Description 删除旧的记录 + * @param customerId + * @param dateId + * @author zxc + * @date 2020/9/16 9:33 上午 + */ + void deleteOldRecord(@Param("customerId")String customerId,@Param("dateId")String dateId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java index 8788232a7b..7e20babbeb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java @@ -21,6 +21,7 @@ package com.epmet.dao.stats; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.AgencySubDeptTreeDto; import com.epmet.dto.AgencySubTreeDto; +import com.epmet.dto.extract.result.AgencyInfoResultDTO; import com.epmet.dto.stats.DimAgencyDTO; import com.epmet.entity.stats.DimAgencyEntity; import org.apache.ibatis.annotations.Mapper; @@ -126,4 +127,12 @@ public interface DimAgencyDao extends BaseDao { DimAgencyEntity getLatestCreatedAgencyDimEntity(); DimAgencyEntity getLatestUpdatedAgencyDimEntity(); + + /** + * @Description 查询pid信息 + * @param agencyIds + * @author zxc + * @date 2020/9/15 6:15 下午 + */ + List selectAgencyInfo(@Param("agencyIds")List agencyIds); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java index b8c01d6305..6e6ac11bd2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java @@ -5,7 +5,10 @@ import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.dao.evaluationindex.extract.FactOriginIssueMainDailyDao; +import com.epmet.dao.stats.DimAgencyDao; import com.epmet.dto.extract.FactOriginIssueMainDailyDTO; +import com.epmet.dto.extract.form.IssueMainDailyFormDTO; +import com.epmet.dto.extract.result.AgencyInfoResultDTO; import com.epmet.dto.extract.result.IssueInfoResultDTO; import com.epmet.dto.extract.result.TopicInfoResultDTO; import com.epmet.service.Issue.IssueService; @@ -15,6 +18,7 @@ import com.epmet.service.user.UserService; import lombok.extern.slf4j.Slf4j; 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; @@ -38,6 +42,8 @@ public class IssueExtractServiceImpl implements IssueExtractService { private UserService userService; @Autowired private TopicService topicService; + @Autowired + private DimAgencyDao dimAgencyDao; /** * @Description 议题抽取 @@ -47,18 +53,19 @@ public class IssueExtractServiceImpl implements IssueExtractService { * @date 2020/9/15 2:02 下午 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean issueExtract(String customerId, String dateId) { // 议题信息查询 List listResult = issueService.selectIssueInfo(customerId, dateId); - List result = new ArrayList<>(); + List result = new ArrayList<>(); if (CollectionUtils.isEmpty(listResult)){ throw new RenException("查询议题信息为空"); } listResult.forEach(issue -> { - FactOriginIssueMainDailyDTO factOriginIssueMainDailyDTO = ConvertUtils.sourceToTarget(issue, FactOriginIssueMainDailyDTO.class); - factOriginIssueMainDailyDTO.setId(issue.getIssueId()); - result.add(factOriginIssueMainDailyDTO); + IssueMainDailyFormDTO issueMainDailyFormDTO = ConvertUtils.sourceToTarget(issue, IssueMainDailyFormDTO.class); + issueMainDailyFormDTO.setId(issue.getIssueId()); + result.add(issueMainDailyFormDTO); }); // 创建议题人ID @@ -105,9 +112,21 @@ public class IssueExtractServiceImpl implements IssueExtractService { }); }); - - - + // 查询pid + List agencyIds = result.stream().map(r -> r.getAgencyId()).distinct().collect(Collectors.toList()); + List agencyInfoList = dimAgencyDao.selectAgencyInfo(agencyIds); + if (CollectionUtils.isEmpty(agencyInfoList)){ + throw new RenException("查询组织上级ID集合为空......"); + } + result.forEach(r -> { + agencyInfoList.forEach(pid -> { + if (r.getAgencyId().equals(pid.getAgencyId())){ + r.setPid(pid.getPid()); + } + }); + }); + issueMainDailyDao.deleteOldRecord(customerId, dateId); + issueMainDailyDao.insertIssueMainList(result); return true; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml index c467a9d5f9..9b5420adde 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml @@ -5,24 +5,48 @@ - INSERT INTO fact_origin_issue_main_daily(ID, CUSTOMER_ID, GRID_ID, PID, AGENCY_ID, DATE_ID, WEEK_ID, MONTH_ID, QUARTER_ID, YEAR_ID, ISSUE_ID, OPERATION_USER_ID, ACTION_CODE, USER_IDENTITY, DEL_FLAG, REVISION, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME) + INSERT INTO fact_origin_issue_main_daily( + ID, + DATE_ID, + WEEK_ID, + MONTH_ID, + QUARTER_ID, + YEAR_ID, + CUSTOMER_ID, + IS_PARTY, + USER_ID, + CREATE_TOPIC_USER_ID, + TOPIC_ID, + GRID_ID, + PID, + AGENCY_ID, + ISSUE_STATUS, + TOPIC_USER_IS_PARTY, + DEL_FLAG, + REVISION, + CREATED_BY, + CREATED_TIME, + UPDATED_BY, + UPDATED_TIME) VALUES ( - REPLACE ( UUID(), '-', '' ), - #{item.customerId}, - #{item.gridId}, - #{item.pid}, - #{item.agencyId}, + #{item.id}, #{item.dateId}, #{item.weekId}, #{item.monthId}, #{item.quarterId}, #{item.yearId}, - #{item.issueId}, - #{item.operationUserId}, - #{item.actionCode}, - #{item.userIdentity}, + #{item.customerId}, + #{item.isParty}, + #{item.userId}, + #{item.createTopicUserId}, + #{item.topicId}, + #{item.gridId}, + #{item.pid}, + #{item.agencyId}, + #{item.issueStatus}, + #{item.topicUserIsParty}, #{item.delFlag}, #{item.revision}, #{item.createdBy}, @@ -32,4 +56,14 @@ ) + + + + DELETE + FROM + fact_origin_issue_main_daily + WHERE + CUSTOMER_ID = #{customerId} + AND DATE_ID = #{dateId} + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml index 3b7fb8b8ba..357265ee82 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml @@ -299,4 +299,21 @@ limit 1 + + + \ No newline at end of file