Browse Source

议题附表

master
zxc 5 years ago
parent
commit
da6830fd62
  1. 8
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ExtractConstant.java
  2. 45
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/SatisfactionInfoResultDTO.java
  3. 19
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/StatsIssueDao.java
  4. 19
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java
  5. 25
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java
  6. 37
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java
  7. 55
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml

8
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ExtractConstant.java

@ -10,4 +10,12 @@ public interface ExtractConstant {
String STRANGER = "陌生人";
String ISSUE_INFO = "查询议题信息为空";
String CREATED_TOPIC_USER_IDENTITY = "查询创建话题用户身份信息为空";
String PARENT_AGENCY_ID_LIST = "查询组织上级ID集合为空......";
String ISSUE_PROCESS = "查询查询议题process集合为空";
}

45
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/SatisfactionInfoResultDTO.java

@ -0,0 +1,45 @@
package com.epmet.dto.extract.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2020/9/16 5:14 下午
*/
@Data
public class SatisfactionInfoResultDTO implements Serializable {
private static final long serialVersionUID = 1194031573388458848L;
/**
* 客户ID
*/
private String customerId;
/**
* 网格ID
*/
private String gridId;
/**
* 机关ID
*/
private String agencyId;
/**
* 议题ID
*/
private String issueId;
/**
* 动作CODE
*/
private String actionCode;
/**
* 用户ID
*/
private String userId;
}

19
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/StatsIssueDao.java

@ -1,6 +1,7 @@
package com.epmet.dao.issue;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.extract.result.SatisfactionInfoResultDTO;
import com.epmet.dto.extract.result.IssueProcessInfoResultDTO;
import com.epmet.dto.issue.IssueAgencyDTO;
import com.epmet.dto.issue.IssueGridDTO;
@ -131,4 +132,22 @@ public interface StatsIssueDao extends BaseDao<IssueEntity> {
* @date 2020/9/16 1:48 下午
*/
List<IssueProcessInfoResultDTO> selectIssueProcessInfo(@Param("customerId")String customerId, @Param("dateId")String dateId);
/**
* @Description 查询议题满意度评价信息
* @param customerId
* @param dateId
* @author zxc
* @date 2020/9/16 1:48 下午
*/
List<SatisfactionInfoResultDTO> selectIssueSatisfactionInfo(@Param("customerId")String customerId, @Param("dateId")String dateId);
/**
* @Description 查询议题支持反对信息
* @param customerId
* @param dateId
* @author zxc
* @date 2020/9/16 1:48 下午
*/
List<SatisfactionInfoResultDTO> selectIssueVoteInfo(@Param("customerId")String customerId, @Param("dateId")String dateId);
}

19
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java

@ -1,5 +1,6 @@
package com.epmet.service.Issue;
import com.epmet.dto.extract.result.SatisfactionInfoResultDTO;
import com.epmet.dto.extract.result.IssueProcessInfoResultDTO;
import com.epmet.dto.issue.IssueAgencyDTO;
import com.epmet.dto.issue.IssueGridDTO;
@ -129,4 +130,22 @@ public interface IssueService {
* @date 2020/9/16 1:48 下午
*/
List<IssueProcessInfoResultDTO> selectIssueProcessInfo(String customerId,String dateId);
/**
* @Description 查询议题满意度评价信息
* @param customerId
* @param dateId
* @author zxc
* @date 2020/9/16 1:48 下午
*/
List<SatisfactionInfoResultDTO> selectIssueSatisfactionInfo(String customerId,String dateId);
/**
* @Description 查询议题支持反对信息
* @param customerId
* @param dateId
* @author zxc
* @date 2020/9/16 1:48 下午
*/
List<SatisfactionInfoResultDTO> selectIssueVoteInfo(String customerId,String dateId);
}

25
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java

@ -3,6 +3,7 @@ package com.epmet.service.Issue.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.constant.DataSourceConstant;
import com.epmet.dao.issue.StatsIssueDao;
import com.epmet.dto.extract.result.SatisfactionInfoResultDTO;
import com.epmet.dto.extract.result.IssueProcessInfoResultDTO;
import com.epmet.dto.issue.IssueAgencyDTO;
import com.epmet.dto.issue.IssueGridDTO;
@ -106,4 +107,28 @@ public class IssueServiceImpl implements IssueService {
public List<IssueProcessInfoResultDTO> selectIssueProcessInfo(String customerId, String dateId) {
return statsIssueDao.selectIssueProcessInfo(customerId, dateId);
}
/**
* @Description 查询议题满意度评价信息
* @param customerId
* @param dateId
* @author zxc
* @date 2020/9/16 1:48 下午
*/
@Override
public List<SatisfactionInfoResultDTO> selectIssueSatisfactionInfo(String customerId, String dateId) {
return statsIssueDao.selectIssueSatisfactionInfo(customerId, dateId);
}
/**
* @Description 查询议题支持反对信息
* @param customerId
* @param dateId
* @author zxc
* @date 2020/9/16 1:48 下午
*/
@Override
public List<SatisfactionInfoResultDTO> selectIssueVoteInfo(String customerId, String dateId) {
return statsIssueDao.selectIssueVoteInfo(customerId, dateId);
}
}

37
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java

@ -1,16 +1,16 @@
package com.epmet.service.evaluationindex.extract.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.dto.form.TimeListResultDTO;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.constant.DataSourceConstant;
import com.epmet.constant.ExtractConstant;
import com.epmet.dao.evaluationindex.extract.FactOriginIssueLogDailyDao;
import com.epmet.dao.evaluationindex.extract.FactOriginIssueMainDailyDao;
import com.epmet.dao.stats.DimAgencyDao;
import com.epmet.dto.extract.form.IssueLogDailyFormDTO;
import com.epmet.dto.extract.form.IssueMainDailyFormDTO;
import com.epmet.dto.extract.result.SatisfactionInfoResultDTO;
import com.epmet.dto.extract.result.AgencyInfoResultDTO;
import com.epmet.dto.extract.result.IssueInfoResultDTO;
import com.epmet.dto.extract.result.IssueProcessInfoResultDTO;
@ -65,7 +65,7 @@ public class IssueExtractServiceImpl implements IssueExtractService {
List<IssueInfoResultDTO> listResult = issueService.selectIssueInfo(customerId, dateId);
List<IssueMainDailyFormDTO> result = new ArrayList<>();
if (CollectionUtils.isEmpty(listResult)){
throw new RenException("查询议题信息为空");
throw new RenException(ExtractConstant.ISSUE_INFO);
}
listResult.forEach(issue -> {
IssueMainDailyFormDTO issueMainDailyFormDTO = ConvertUtils.sourceToTarget(issue, IssueMainDailyFormDTO.class);
@ -90,7 +90,7 @@ public class IssueExtractServiceImpl implements IssueExtractService {
List<String> topicIds = listResult.stream().map(issue -> issue.getTopicId()).collect(Collectors.toList());
List<TopicInfoResultDTO> topicInfoList = topicService.selectTopicInfo(topicIds);
if (CollectionUtils.isEmpty(topicInfoList)){
throw new RenException("查询创建话题用户身份信息为空");
throw new RenException(ExtractConstant.CREATED_TOPIC_USER_IDENTITY);
}
List<String> createTopicUserIds = topicInfoList.stream().map(topic -> topic.getUserId()).distinct().collect(Collectors.toList());
Map<String, Integer> topicUserIsParty = userService.selectUserIsParty(createTopicUserIds);
@ -121,7 +121,7 @@ public class IssueExtractServiceImpl implements IssueExtractService {
List<String> agencyIds = result.stream().map(r -> r.getAgencyId()).distinct().collect(Collectors.toList());
List<AgencyInfoResultDTO> agencyInfoList = dimAgencyDao.selectAgencyInfo(agencyIds);
if (CollectionUtils.isEmpty(agencyInfoList)){
throw new RenException("查询组织上级ID集合为空......");
throw new RenException(ExtractConstant.PARENT_AGENCY_ID_LIST);
}
result.forEach(r -> {
agencyInfoList.forEach(pid -> {
@ -150,19 +150,38 @@ public class IssueExtractServiceImpl implements IssueExtractService {
@Override
public Boolean issueExtractLog(String customerId, String dateId) {
List<IssueLogDailyFormDTO> result = new ArrayList<>();
// 查询议题process
List<IssueProcessInfoResultDTO> listResult = issueService.selectIssueProcessInfo(customerId, dateId);
if (CollectionUtils.isEmpty(listResult)){
throw new RenException("查询查询议题process集合为空");
throw new RenException(ExtractConstant.ISSUE_PROCESS);
}
List<IssueLogDailyFormDTO> result = new ArrayList<>();
listResult.forEach(issueProcess -> {
IssueLogDailyFormDTO issueLogDailyFormDTO = ConvertUtils.sourceToTarget(issueProcess, IssueLogDailyFormDTO.class);
issueLogDailyFormDTO.setOperationUserId(issueProcess.getUserId());
result.add(issueLogDailyFormDTO);
});
// 查询议题满意度
List<SatisfactionInfoResultDTO> satisfactionInfoList = issueService.selectIssueSatisfactionInfo(customerId, dateId);
if (!CollectionUtils.isEmpty(satisfactionInfoList)){
satisfactionInfoList.forEach(s -> {
IssueLogDailyFormDTO issueLogDailyFormDTO = ConvertUtils.sourceToTarget(s, IssueLogDailyFormDTO.class);
issueLogDailyFormDTO.setOperationUserId(s.getUserId());
result.add(issueLogDailyFormDTO);
});
}
// 查询议题支持反对
List<SatisfactionInfoResultDTO> voteInfoList = issueService.selectIssueVoteInfo(customerId, dateId);
if (!CollectionUtils.isEmpty(voteInfoList)){
voteInfoList.forEach(v -> {
IssueLogDailyFormDTO issueLogDailyFormDTO = ConvertUtils.sourceToTarget(v, IssueLogDailyFormDTO.class);
issueLogDailyFormDTO.setOperationUserId(v.getUserId());
result.add(issueLogDailyFormDTO);
});
}
// 动作操作人的身份标识是否是党员
List<String> userIds = listResult.stream().map(issue -> issue.getUserId()).distinct().collect(Collectors.toList());
Map<String,Integer> map = userService.selectUserIsParty(userIds);
@ -180,7 +199,7 @@ public class IssueExtractServiceImpl implements IssueExtractService {
List<String> agencyIds = listResult.stream().map(process -> process.getAgencyId()).distinct().collect(Collectors.toList());
List<AgencyInfoResultDTO> agencyInfoList = dimAgencyDao.selectAgencyInfo(agencyIds);
if (CollectionUtils.isEmpty(agencyInfoList)){
throw new RenException("查询组织上级ID集合为空......");
throw new RenException(ExtractConstant.PARENT_AGENCY_ID_LIST);
}
TimeListResultDTO timeList = DateUtils.getTimeList(dateId);
result.forEach(r -> {

55
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml

@ -207,15 +207,60 @@
i.CUSTOMER_ID AS customerId,
ip.ISSUE_ID AS issueId,
ip.CREATED_BY AS userId,
ip.ISSUE_STATUS AS actionCode
(case when i.RESOLVE_TYPE = 'resolved' then 'closed_resolved'
when i.RESOLVE_TYPE = 'unresolved' then 'closed_unresolved'
else i.ISSUE_STATUS end ) AS actionCode
FROM
issue_process ip
LEFT JOIN issue i ON i.id = ip.issue_id
LEFT JOIN issue i ON i.id = ip.issue_id
WHERE
i.DEL_FLAG = '0'
AND ip.DEL_FLAG = '0'
AND i.CUSTOMER_ID = #{customerId}
AND DATE_FORMAT(i.CREATED_TIME,'%Y%m%d') = #{dateId}
AND ip.DEL_FLAG = '0'
AND i.CUSTOMER_ID = #{customerId}
AND DATE_FORMAT(i.CREATED_TIME,'%Y%m%d') = #{dateId}
</select>
<!-- 查询议题满意度评价信息 -->
<select id="selectIssueSatisfactionInfo" resultType="com.epmet.dto.extract.result.SatisfactionInfoResultDTO">
SELECT
isd.ISSUE_ID AS issueId,
( CASE WHEN isd.SATISFACTION = 'bad' THEN 'evaluste_bad'
WHEN isd.SATISFACTION = 'good' THEN 'evaluste_good'
WHEN isd.SATISFACTION = 'perfect' THEN 'evaluste_perfect'
ELSE '' END ) AS actionCode,
isd.CREATED_BY AS userId,
i.GRID_ID AS gridId,
i.ORG_ID AS agencyId,
i.CUSTOMER_ID AS customerId
FROM
issue_satisfaction_detail isd
LEFT JOIN issue i ON i.id = isd.issue_id
WHERE
isd.del_flag = '0'
AND i.del_flag = '0'
AND i.CUSTOMER_ID = #{customerId}
AND DATE_FORMAT(isd.CREATED_TIME,'%Y%m%d') = #{dateId}
</select>
<!-- 查询议题支持反对信息 -->
<select id="selectIssueVoteInfo" resultType="com.epmet.dto.extract.result.SatisfactionInfoResultDTO">
SELECT
ivd.ISSUE_ID AS issueId,
( CASE WHEN ivd.ATTITUDE = 'support' THEN 'vote_support'
WHEN ivd.ATTITUDE = 'opposition' THEN 'vote_opposition'
ELSE '' END ) AS actionCode,
ivd.CREATED_BY AS userId,
i.GRID_ID AS gridId,
i.ORG_ID AS agencyId,
i.CUSTOMER_ID AS customerId
FROM
issue_vote_detail ivd
LEFT JOIN issue i ON i.id = ivd.issue_id
WHERE
ivd.del_flag = '0'
AND i.del_flag = '0'
AND i.CUSTOMER_ID = #{customerId}
AND DATE_FORMAT(ivd.CREATED_TIME,'%Y%m%d') = #{dateId}
</select>
</mapper>
Loading…
Cancel
Save