Browse Source

议题统计优化,获取折线图修改

dev_shibei_match
zxc 4 years ago
parent
commit
68bc9bc498
  1. 5
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/PolyLineDTO.java
  2. 26
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/DailyStatisticalVoteJob.java
  3. 69
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/DailyStatisticalVoteJobResultDTO.java
  4. 2
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java
  5. 6
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalDailyController.java
  6. 21
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java
  7. 9
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDailyDao.java
  8. 9
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueVoteStatisticalDailyService.java
  9. 81
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalDailyServiceImpl.java
  10. 61
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java
  11. 39
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml
  12. 9
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDailyDao.xml

5
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/PolyLineDTO.java

@ -1,5 +1,6 @@
package com.epmet.dto; package com.epmet.dto;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@ -29,4 +30,8 @@ public class PolyLineDTO implements Serializable {
*/ */
private Integer oppositionIncrement; private Integer oppositionIncrement;
public PolyLineDTO() {
this.supportIncrement = NumConstant.ZERO;
this.oppositionIncrement = NumConstant.ZERO;
}
} }

26
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/DailyStatisticalVoteJob.java

@ -0,0 +1,26 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/12/29 10:56 上午
* @DESC
*/
@Data
public class DailyStatisticalVoteJob implements Serializable {
private static final long serialVersionUID = -3685299478100771134L;
private String customerId;
private String dateId;
private String startDate;
private String endDate;
}

69
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/DailyStatisticalVoteJobResultDTO.java

@ -0,0 +1,69 @@
package com.epmet.dto.result;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/12/29 1:52 下午
* @DESC
*/
@Data
public class DailyStatisticalVoteJobResultDTO implements Serializable {
private static final long serialVersionUID = 5266996778036448163L;
private String issueId;
/**
* 统计日期
*/
private String statisticalDate;
/**
* 到该日的总赞成数
*/
private Integer supportCount;
/**
* 到该日的总反对数
*/
private Integer oppositionCount;
/**
* 到该日的总票数
*/
private Integer totalCount;
/**
* 该日增量
*/
private Integer todayIncrement;
/**
* 该日赞成增量
*/
private Integer supportIncrement;
/**
* 该日反对增量
*/
private Integer oppositionIncrement;
/**
* 应表决数
*/
private Integer votableCount;
public DailyStatisticalVoteJobResultDTO() {
this.supportCount = NumConstant.ZERO;
this.oppositionCount = NumConstant.ZERO;
this.totalCount = NumConstant.ZERO;
this.todayIncrement = NumConstant.ZERO;
this.supportIncrement = NumConstant.ZERO;
this.oppositionIncrement = NumConstant.ZERO;
this.votableCount = NumConstant.ZERO;
}
}

2
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java

@ -83,7 +83,7 @@ public class IssueManageController {
* @author zxc * @author zxc
*/ */
@PostMapping("votingtrend") @PostMapping("votingtrend")
@RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_ISSUE_DETAIL) // @RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_ISSUE_DETAIL)
public Result<VotingTrendResultDTO> votingTrend(@RequestBody IssueIdFormDTO issueId){ public Result<VotingTrendResultDTO> votingTrend(@RequestBody IssueIdFormDTO issueId){
return new Result<VotingTrendResultDTO>().ok(issueVoteStatisticalService.votingTrend(issueId)); return new Result<VotingTrendResultDTO>().ok(issueVoteStatisticalService.votingTrend(issueId));
} }

6
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalDailyController.java

@ -26,6 +26,7 @@ import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.IssueVoteStatisticalDailyDTO; import com.epmet.dto.IssueVoteStatisticalDailyDTO;
import com.epmet.dto.form.DailyStatisticalVoteJob;
import com.epmet.excel.IssueVoteStatisticalDailyExcel; import com.epmet.excel.IssueVoteStatisticalDailyExcel;
import com.epmet.service.IssueVoteStatisticalDailyService; import com.epmet.service.IssueVoteStatisticalDailyService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -99,8 +100,9 @@ public class IssueVoteStatisticalDailyController {
* @date 2020.05.20 15:39 * @date 2020.05.20 15:39
**/ **/
@PostMapping(value = "dailystatisticalvotejob") @PostMapping(value = "dailystatisticalvotejob")
public Result dailyStatisticalVoteJob(){ public Result dailyStatisticalVoteJob(DailyStatisticalVoteJob form){
issueVoteStatisticalDailyService.countVotingDailyStatistic(); // issueVoteStatisticalDailyService.countVotingDailyStatistic();
issueVoteStatisticalDailyService.countVotingDailyStatisticNew(form);
return new Result(); return new Result();
} }
} }

21
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java

@ -19,8 +19,10 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IssueVoteDetailDTO; import com.epmet.dto.IssueVoteDetailDTO;
import com.epmet.dto.PolyLineDTO;
import com.epmet.dto.form.VoteFormDTO; import com.epmet.dto.form.VoteFormDTO;
import com.epmet.dto.form.VoteRedisFormDTO; import com.epmet.dto.form.VoteRedisFormDTO;
import com.epmet.dto.result.DailyStatisticalVoteJobResultDTO;
import com.epmet.dto.result.IssueAttitudeCountResultDTO; import com.epmet.dto.result.IssueAttitudeCountResultDTO;
import com.epmet.dto.result.IssueVoteResultDTO; import com.epmet.dto.result.IssueVoteResultDTO;
import com.epmet.dto.result.MyPartIssuesResultDTO; import com.epmet.dto.result.MyPartIssuesResultDTO;
@ -130,4 +132,23 @@ public interface IssueVoteDetailDao extends BaseDao<IssueVoteDetailEntity> {
* @date 2021/5/12 1:48 下午 * @date 2021/5/12 1:48 下午
*/ */
List<IssueVoteResultDTO> selectIssueVoteCountBatch(@Param("issueIds")List<String> issueIds); List<IssueVoteResultDTO> selectIssueVoteCountBatch(@Param("issueIds")List<String> issueIds);
/**
* @Description 查询客户下的议题表决日增
* @param customerId
* @param dateId 当dateId为空时查询的是累计值
* @author zxc
* @date 2021/12/29 2:02 下午
*/
List<DailyStatisticalVoteJobResultDTO> statisticVote(@Param("customerId")String customerId,@Param("dateId")String dateId);
/**
* @Description 根据议题ID查询折线图一天的数据
* @param issueId
* @param dateId
* @author zxc
* @date 2021/12/29 4:19 下午
*/
PolyLineDTO polyLineData(@Param("issueId")String issueId,@Param("dateId")String dateId);;
} }

9
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDailyDao.java

@ -78,4 +78,13 @@ public interface IssueVoteStatisticalDailyDao extends BaseDao<IssueVoteStatistic
* @date 2020.05.20 14:54 * @date 2020.05.20 14:54
**/ **/
void updateBatch(@Param("list") List<IssueVoteStatisticalDailyEntity> list); void updateBatch(@Param("list") List<IssueVoteStatisticalDailyEntity> list);
/**
* @Description 删除历史数据
* @param customerId
* @param dateId
* @author zxc
* @date 2021/12/29 2:51 下午
*/
Integer delHistoryData(@Param("customerId")String customerId,@Param("dateId")String dateId);
} }

9
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueVoteStatisticalDailyService.java

@ -20,6 +20,7 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IssueVoteStatisticalDailyDTO; import com.epmet.dto.IssueVoteStatisticalDailyDTO;
import com.epmet.dto.form.DailyStatisticalVoteJob;
import com.epmet.entity.IssueVoteStatisticalDailyEntity; import com.epmet.entity.IssueVoteStatisticalDailyEntity;
import java.util.List; import java.util.List;
@ -101,4 +102,12 @@ public interface IssueVoteStatisticalDailyService extends BaseService<IssueVoteS
* @date 2020.05.19 09:23 * @date 2020.05.19 09:23
**/ **/
void countVotingDailyStatistic(); void countVotingDailyStatistic();
/**
* @Description 统计前一天所有有表决动作的议题
* @param
* @author zxc
* @date 2021/12/29 10:31 上午
*/
void countVotingDailyStatisticNew(DailyStatisticalVoteJob form);
} }

81
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalDailyServiceImpl.java

@ -21,18 +21,27 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.IssueVoteDetailDao; import com.epmet.dao.IssueVoteDetailDao;
import com.epmet.dao.IssueVoteStatisticalDailyDao; import com.epmet.dao.IssueVoteStatisticalDailyDao;
import com.epmet.dto.CustomerDTO;
import com.epmet.dto.IssueVoteStatisticalDailyDTO; import com.epmet.dto.IssueVoteStatisticalDailyDTO;
import com.epmet.dto.form.DailyStatisticalVoteJob;
import com.epmet.dto.result.DailyStatisticalVoteJobResultDTO;
import com.epmet.dto.result.IssuesToBeCountedResultDTO; import com.epmet.dto.result.IssuesToBeCountedResultDTO;
import com.epmet.entity.IssueVoteStatisticalDailyEntity; import com.epmet.entity.IssueVoteStatisticalDailyEntity;
import com.epmet.feign.OperCrmOpenFeignClient;
import com.epmet.redis.IssueVoteStatisticalDailyRedis; import com.epmet.redis.IssueVoteStatisticalDailyRedis;
import com.epmet.service.IssueVoteStatisticalDailyService; import com.epmet.service.IssueVoteStatisticalDailyService;
import com.epmet.utils.ModuleConstants; import com.epmet.utils.ModuleConstants;
import oracle.sql.NUMBER; import oracle.sql.NUMBER;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -40,6 +49,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -58,6 +68,9 @@ public class IssueVoteStatisticalDailyServiceImpl extends BaseServiceImpl<IssueV
@Autowired @Autowired
private IssueVoteDetailDao issueVoteDetailDao; private IssueVoteDetailDao issueVoteDetailDao;
@Autowired
private OperCrmOpenFeignClient operCrmOpenFeignClient;
protected static final Logger logger = LoggerFactory.getLogger(IssueVoteStatisticalDailyServiceImpl.class); protected static final Logger logger = LoggerFactory.getLogger(IssueVoteStatisticalDailyServiceImpl.class);
@Override @Override
@ -303,4 +316,72 @@ public class IssueVoteStatisticalDailyServiceImpl extends BaseServiceImpl<IssueV
} }
/**
* @Description 统计前一天所有有表决动作的议题
* @param
* @author zxc
* @date 2021/12/29 10:31 上午
*/
@Override
public void countVotingDailyStatisticNew(DailyStatisticalVoteJob form) {
// 先处理下纬度
List<String> customerIds = new ArrayList<>();
if (StringUtils.isBlank(form.getCustomerId())){
Result<List<CustomerDTO>> allCustomerList = operCrmOpenFeignClient.getAllCustomerList();
if (!allCustomerList.success() || CollectionUtils.isEmpty(allCustomerList.getData())){
throw new EpmetException("查询所有客户失败...");
}
customerIds = allCustomerList.getData().stream().map(m -> m.getId()).collect(Collectors.toList());
}else {
customerIds.add(form.getCustomerId());
}
if (StringUtils.isNotBlank(form.getStartDate()) && StringUtils.isNotBlank(form.getEndDate())){
List<String> daysBetween = DateUtils.getDaysBetween(form.getStartDate(), form.getEndDate());
customerIds.forEach(customerId -> {
daysBetween.forEach(dateId -> {
statisticVote(customerId,dateId);
});
});
}else {
if (StringUtils.isBlank(form.getDateId())){
form.setDateId(LocalDate.now().minusDays(NumConstant.ONE).toString().replace("-", ""));
}
customerIds.forEach(customerId -> {
statisticVote(customerId, form.getDateId());
});
}
}
/**
* @Description 统计 issue_vote_statistical_daily
* 只统计表决日增存在的不存在的不写入查询程序补全
* @param customerId
* @param dateId 格式YYYY-MM-DD
* @author zxc
* @date 2021/12/29 1:46 下午
*/
@Transactional(rollbackFor = Exception.class)
public void statisticVote(String customerId,String dateId){
// 日增
List<DailyStatisticalVoteJobResultDTO> dayAdd = issueVoteDetailDao.statisticVote(customerId, dateId);
if (CollectionUtils.isNotEmpty(dayAdd)){
//累计
List<DailyStatisticalVoteJobResultDTO> allDayAdd = issueVoteDetailDao.statisticVote(customerId, null);
dayAdd.forEach(d -> allDayAdd.stream().filter(a -> a.getIssueId().equals(d.getIssueId())).forEach(a -> {
d.setOppositionCount(a.getOppositionCount());
d.setSupportCount(a.getSupportCount());
d.setTotalCount(a.getTotalCount());
}));
List<IssueVoteStatisticalDailyEntity> needInsert = ConvertUtils.sourceToTarget(dayAdd, IssueVoteStatisticalDailyEntity.class);
Integer delNum;
do {
delNum = baseDao.delHistoryData(customerId, dateId);
} while (delNum != null && delNum > NumConstant.ZERO);
List<List<IssueVoteStatisticalDailyEntity>> partition = ListUtils.partition(needInsert, NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
baseDao.insertBatch(p);
});
}
}
} }

61
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java

@ -27,6 +27,7 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.IssueConstant; import com.epmet.constant.IssueConstant;
import com.epmet.dao.IssueDao; import com.epmet.dao.IssueDao;
@ -66,6 +67,9 @@ import java.time.ZoneOffset;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.epmet.commons.tools.utils.DateUtils.DATE_PATTERN;
import static com.epmet.commons.tools.utils.DateUtils.DATE_PATTERN_YYYYMMDD;
/** /**
* 议题表决统计表 * 议题表决统计表
* *
@ -205,12 +209,36 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
votingTrendResultDTO.setRealityVoteCount(voteRedisFormDTO.getSupportAmount() + voteRedisFormDTO.getOppositionAmount()); votingTrendResultDTO.setRealityVoteCount(voteRedisFormDTO.getSupportAmount() + voteRedisFormDTO.getOppositionAmount());
//DB获取表决 日统计详情 //DB获取表决 日统计详情
List<PolyLineDTO> polyLineDTOS = issueVoteStatisticalDao.polyLineData(issueId); List<PolyLineDTO> polyLineDTOS = issueVoteStatisticalDao.polyLineData(issueId);
PolyLineDTO polyLineDTO = new PolyLineDTO(); // PolyLineDTO polyLineDTO = new PolyLineDTO();
polyLineDTO.setVoteDate(LocalDateTime.now().toEpochSecond(ZoneOffset.of(IssueConstant.BEIJING_TIME_ZONE))); // polyLineDTO.setVoteDate(LocalDateTime.now().toEpochSecond(ZoneOffset.of(IssueConstant.BEIJING_TIME_ZONE)));
//议题 已转项目 或 已结案 的时间 //议题 已转项目 或 已结案 的时间
String date = issueDao.operateTime(issueId.getIssueId()); // String date = issueDao.operateTime(issueId.getIssueId());
IssueEntity issueEntity = issueDao.selectById(issueId.getIssueId());
String startDate = DateUtils.format(issueEntity.getDecidedTime(),DATE_PATTERN);
String endDate = null == issueEntity.getVotingDeadline() ?
DateUtils.format(new Date(),DATE_PATTERN) :
DateUtils.format(issueEntity.getVotingDeadline(),DATE_PATTERN);
List<PolyLineDTO> polyLine = getPolyLine(startDate, endDate);
if (CollectionUtils.isEmpty(polyLineDTOS)){
votingTrendResultDTO.setPolyLine(polyLine);
return votingTrendResultDTO;
}
polyLineDTOS.forEach(pd -> {
polyLine.forEach(p -> {
if (pd.getVoteDate().equals(p.getVoteDate())){
p.setOppositionIncrement(pd.getOppositionIncrement());
p.setSupportIncrement(pd.getSupportIncrement());
}
});
});
String today = LocalDate.now().toString();
if (today.equals(endDate)){
PolyLineDTO polyLineDTO = issueVoteDetailDao.polyLineData(issueId.getIssueId(), endDate);
polyLine.get(polyLine.size() - NumConstant.ONE).setSupportIncrement(polyLineDTO.getSupportIncrement());
polyLine.get(polyLine.size() - NumConstant.ONE).setOppositionIncrement(polyLineDTO.getOppositionIncrement());
}
//今天刚转项目或刚刚关闭,当天数据DB没有,直接从缓存拿 //今天刚转项目或刚刚关闭,当天数据DB没有,直接从缓存拿
if (polyLineDTOS.size() == NumConstant.ZERO && date.equals(LocalDate.now().toString())) { /*if (polyLineDTOS.size() == NumConstant.ZERO && date.equals(LocalDate.now().toString())) {
polyLineDTO.setSupportIncrement(voteRedisFormDTO.getSupportAmount()); polyLineDTO.setSupportIncrement(voteRedisFormDTO.getSupportAmount());
polyLineDTO.setOppositionIncrement(voteRedisFormDTO.getOppositionAmount()); polyLineDTO.setOppositionIncrement(voteRedisFormDTO.getOppositionAmount());
polyLineDTOS.add(polyLineDTO); polyLineDTOS.add(polyLineDTO);
@ -222,18 +250,37 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
polyLineDTOS.add(polyLineDTO); polyLineDTOS.add(polyLineDTO);
} }
//从古至今一直在表决中 //从古至今一直在表决中
IssueEntity issueEntity = issueDao.selectById(issueId.getIssueId());
if (issueEntity.getIssueStatus().equals(IssueConstant.ISSUE_VOTING)){ if (issueEntity.getIssueStatus().equals(IssueConstant.ISSUE_VOTING)){
polyLineDTO.setSupportIncrement(voteRedisFormDTO.getSupportAmount()); polyLineDTO.setSupportIncrement(voteRedisFormDTO.getSupportAmount());
polyLineDTO.setOppositionIncrement(voteRedisFormDTO.getOppositionAmount()); polyLineDTO.setOppositionIncrement(voteRedisFormDTO.getOppositionAmount());
polyLineDTOS.add(polyLineDTO); polyLineDTOS.add(polyLineDTO);
} }
} }*/
//今天之前 “已转项目”或“已关闭” //今天之前 “已转项目”或“已关闭”
votingTrendResultDTO.setPolyLine(polyLineDTOS);
votingTrendResultDTO.setPolyLine(polyLine);
return votingTrendResultDTO; return votingTrendResultDTO;
} }
public List<PolyLineDTO> getPolyLine(String startTime, String endTime){
List<PolyLineDTO> result = new ArrayList<>();
Date start = DateUtils.parse(startTime, DATE_PATTERN);
Date end = DateUtils.parse(endTime, DATE_PATTERN);
Calendar tempStart = Calendar.getInstance();
tempStart.setTime(start);
Calendar tempEnd = Calendar.getInstance();
tempEnd.setTime(end);
// 日期加1(包含结束)
tempEnd.add(Calendar.DATE, +1);
while (tempStart.before(tempEnd)) {
PolyLineDTO dto = new PolyLineDTO();
dto.setVoteDate(tempStart.getTimeInMillis()/1000);
result.add(dto);
tempStart.add(Calendar.DAY_OF_YEAR, 1);
}
return result;
}
/** /**
* @param formDTO * @param formDTO
* @Description 满意度评价列表已关闭 * @Description 满意度评价列表已关闭

39
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml

@ -181,4 +181,43 @@
</foreach> </foreach>
) )
</select> </select>
<!-- 查询客户下的议题表决日增 -->
<select id="statisticVote" resultType="com.epmet.dto.result.DailyStatisticalVoteJobResultDTO">
SELECT
vs.votable_count,
<if test="dateId == null">
(t.oppositionCount + t.supportCount) AS totalCount,
</if>
<if test="dateId != null">
(t.oppositionIncrement + t.supportIncrement) AS todayIncrement,
</if>
t.* FROM
(SELECT
vd.ISSUE_ID,
COUNT(CASE WHEN vd.ATTITUDE = 'opposition' THEN 1 END) AS oppositionCount,
COUNT(CASE WHEN vd.ATTITUDE = 'opposition' THEN 1 END) AS oppositionIncrement,
COUNT(CASE WHEN vd.ATTITUDE = 'support' THEN 1 END) AS supportCount,
COUNT(CASE WHEN vd.ATTITUDE = 'support' THEN 1 END) AS supportIncrement,
#{dateId} AS statisticalDate
FROM issue_vote_detail vd
WHERE vd.DEL_FLAG = '0'
AND vd.CUSTOMER_ID = #{customerId}
<if test="dateId != null">
AND DATE_FORMAT(vd.CREATED_TIME,'%Y-%m-%d') = #{dateId}
</if>
GROUP BY vd.ISSUE_ID)t
INNER JOIN issue_vote_statistical vs ON (vs.ISSUE_ID = t.ISSUE_ID AND vs.DEL_FLAG = '0')
</select>
<!-- 根据议题ID查询折线图一天的数据 -->
<select id="polyLineData" resultType="com.epmet.dto.PolyLineDTO">
SELECT
COUNT(CASE WHEN vd.ATTITUDE = 'opposition' THEN 1 END) AS oppositionIncrement,
COUNT(CASE WHEN vd.ATTITUDE = 'support' THEN 1 END) AS supportIncrement
FROM issue_vote_detail vd
WHERE vd.DEL_FLAG = '0'
AND DATE_FORMAT(vd.CREATED_TIME,'%Y-%m-%d') = #{dateId}
AND ISSUE_ID = #{issueId}
</select>
</mapper> </mapper>

9
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDailyDao.xml

@ -280,4 +280,13 @@
id = #{item.id} id = #{item.id}
</foreach> </foreach>
</update> </update>
<!-- 删除历史数据 -->
<delete id="delHistoryData">
DELETE FROM issue_vote_statistical_daily
WHERE CUSTOMER_ID = #{customerId}
AND STATISTICAL_DATE = #{dateId}
LIMIT 1000
</delete>
</mapper> </mapper>
Loading…
Cancel
Save