From e9a1162f040b766d1a59ccf817dc3148b910d3d3 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Tue, 28 Dec 2021 17:10:25 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=AE=9E=E6=97=B6?= =?UTF-8?q?=E6=8A=BD=E5=8F=96=20=E6=B7=BB=E5=8A=A0=E5=8F=82=E6=95=B0projec?= =?UTF-8?q?tId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/controller/DemoController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java index a6de8eb159..411cc8ad2c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java @@ -903,6 +903,7 @@ public class DemoController { ScreenCentralZoneDataFormDTO formDTO = new ScreenCentralZoneDataFormDTO(); formDTO.setCustomerId(customerId); formDTO.setDateId(dateId); + formDTO.setProjectId(param.getProjectId()); screenProjectSettleService.extractScreenData(formDTO); }); } From e780fd785393bc42d6bd89777480e579be1b9b8f Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 28 Dec 2021 17:36:10 +0800 Subject: [PATCH 02/11] a --- .../java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java index 7758cc57cb..c79bf8860d 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java @@ -255,6 +255,8 @@ public class IssueVoteDetailServiceImpl extends BaseServiceImpl Date: Wed, 29 Dec 2021 09:22:46 +0800 Subject: [PATCH 03/11] =?UTF-8?q?emm=20=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java index c79bf8860d..d494413fed 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java @@ -253,6 +253,7 @@ public class IssueVoteDetailServiceImpl extends BaseServiceImpl Date: Wed, 29 Dec 2021 09:38:13 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/redis/IssueVoteDetailRedis.java | 2 +- .../src/main/resources/mapper/IssueVoteStatisticalDao.xml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueVoteDetailRedis.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueVoteDetailRedis.java index 155627f390..79068b4124 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueVoteDetailRedis.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueVoteDetailRedis.java @@ -256,7 +256,7 @@ public class IssueVoteDetailRedis { IssueDTO issue = issueService.get(issueId); if(null != issue){ // 如果是表决中的议题,数据现算 - VoteRedisFormDTO voteCache = new VoteRedisFormDTO(); + VoteRedisFormDTO voteCache; if (issue.getIssueStatus().equals(IssueConstant.ISSUE_VOTING)){ SelectIssueVotingDetailFormDTO formDTO = new SelectIssueVotingDetailFormDTO(); formDTO.setIssueId(issueId); diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml index edde73cb25..fa89630a63 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml @@ -119,9 +119,9 @@ - SELECT + SELECT DISTINCT p.ID AS projectId, p.TITLE AS projectTitle, p.`STATUS` AS projectStatus, @@ -19,12 +19,12 @@ IFNULL( pp.PUBLIC_REPLY, '' ) AS publicReply FROM project p - INNER JOIN ( SELECT PROJECT_ID, GRID_ID FROM project_related_personnel WHERE DEL_FLAG = '0' AND SOURCE_TYPE = 'issue' ) prp ON p.ID = prp.PROJECT_ID + LEFT JOIN ( SELECT PROJECT_ID, GRID_ID FROM project_related_personnel WHERE DEL_FLAG = '0' AND SOURCE_TYPE = 'issue' ) prp ON p.ID = prp.PROJECT_ID INNER JOIN ( SELECT PROJECT_ID, MAX( CREATED_TIME ) AS updateTime FROM project_process ppro GROUP BY PROJECT_ID ) ppro ON p.ID = ppro.PROJECT_ID INNER JOIN ( SELECT PROJECT_ID, COUNT( DISTINCT DEPARTMENT_NAME ) AS departmentCount FROM project_staff GROUP BY PROJECT_ID ) ps ON ps.PROJECT_ID = p.ID LEFT JOIN ( SELECT PROJECT_ID, COUNT( ID ) AS processCount FROM project_process WHERE DEL_FLAG = '0' AND OPERATION != 'created' GROUP BY PROJECT_ID ) ppc ON ppc.PROJECT_ID = p.ID LEFT JOIN project_process pp ON p.ID = pp.PROJECT_ID - AND pp.OPERATION = 'close' + AND pp.OPERATION = 'close' AND pp.DEL_FLAG = '0' WHERE p.DEL_FLAG = '0' AND p.ORG_ID_PATH LIKE concat('%', #{agencyId}, '%') From 68bc9bc498fa3ebe25b6fb4abad04dc99c47365b Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 29 Dec 2021 16:27:29 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E8=AE=AE=E9=A2=98=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=8C=E8=8E=B7=E5=8F=96=E6=8A=98=E7=BA=BF?= =?UTF-8?q?=E5=9B=BE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/dto/PolyLineDTO.java | 5 ++ .../dto/form/DailyStatisticalVoteJob.java | 26 ++++++ .../DailyStatisticalVoteJobResultDTO.java | 69 ++++++++++++++++ .../controller/IssueManageController.java | 2 +- .../IssueVoteStatisticalDailyController.java | 6 +- .../com/epmet/dao/IssueVoteDetailDao.java | 21 +++++ .../dao/IssueVoteStatisticalDailyDao.java | 9 +++ .../IssueVoteStatisticalDailyService.java | 9 +++ .../IssueVoteStatisticalDailyServiceImpl.java | 81 +++++++++++++++++++ .../impl/IssueVoteStatisticalServiceImpl.java | 61 ++++++++++++-- .../resources/mapper/IssueVoteDetailDao.xml | 39 +++++++++ .../mapper/IssueVoteStatisticalDailyDao.xml | 9 +++ 12 files changed, 327 insertions(+), 10 deletions(-) create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/DailyStatisticalVoteJob.java create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/DailyStatisticalVoteJobResultDTO.java diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/PolyLineDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/PolyLineDTO.java index 6c7960d26b..ecbd1f1997 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/PolyLineDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/PolyLineDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto; +import com.epmet.commons.tools.constant.NumConstant; import lombok.Data; import java.io.Serializable; @@ -29,4 +30,8 @@ public class PolyLineDTO implements Serializable { */ private Integer oppositionIncrement; + public PolyLineDTO() { + this.supportIncrement = NumConstant.ZERO; + this.oppositionIncrement = NumConstant.ZERO; + } } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/DailyStatisticalVoteJob.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/DailyStatisticalVoteJob.java new file mode 100644 index 0000000000..ff64816eca --- /dev/null +++ b/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; + + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/DailyStatisticalVoteJobResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/DailyStatisticalVoteJobResultDTO.java new file mode 100644 index 0000000000..60199aa0fd --- /dev/null +++ b/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; + } +} diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java index ed50325a90..b11a2e960b 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java @@ -83,7 +83,7 @@ public class IssueManageController { * @author zxc */ @PostMapping("votingtrend") - @RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_ISSUE_DETAIL) +// @RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_ISSUE_DETAIL) public Result votingTrend(@RequestBody IssueIdFormDTO issueId){ return new Result().ok(issueVoteStatisticalService.votingTrend(issueId)); } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalDailyController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalDailyController.java index c0532cbbf5..108e477862 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalDailyController.java +++ b/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.DefaultGroup; import com.epmet.dto.IssueVoteStatisticalDailyDTO; +import com.epmet.dto.form.DailyStatisticalVoteJob; import com.epmet.excel.IssueVoteStatisticalDailyExcel; import com.epmet.service.IssueVoteStatisticalDailyService; import org.springframework.beans.factory.annotation.Autowired; @@ -99,8 +100,9 @@ public class IssueVoteStatisticalDailyController { * @date 2020.05.20 15:39 **/ @PostMapping(value = "dailystatisticalvotejob") - public Result dailyStatisticalVoteJob(){ - issueVoteStatisticalDailyService.countVotingDailyStatistic(); + public Result dailyStatisticalVoteJob(DailyStatisticalVoteJob form){ +// issueVoteStatisticalDailyService.countVotingDailyStatistic(); + issueVoteStatisticalDailyService.countVotingDailyStatisticNew(form); return new Result(); } } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java index 65d2d35904..a83bba6689 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java +++ b/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.dto.IssueVoteDetailDTO; +import com.epmet.dto.PolyLineDTO; import com.epmet.dto.form.VoteFormDTO; import com.epmet.dto.form.VoteRedisFormDTO; +import com.epmet.dto.result.DailyStatisticalVoteJobResultDTO; import com.epmet.dto.result.IssueAttitudeCountResultDTO; import com.epmet.dto.result.IssueVoteResultDTO; import com.epmet.dto.result.MyPartIssuesResultDTO; @@ -130,4 +132,23 @@ public interface IssueVoteDetailDao extends BaseDao { * @date 2021/5/12 1:48 下午 */ List selectIssueVoteCountBatch(@Param("issueIds")List issueIds); + + /** + * @Description 查询客户下的议题表决日增 + * @param customerId + * @param dateId 当dateId为空时,查询的是累计值 + * @author zxc + * @date 2021/12/29 2:02 下午 + */ + List 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);; + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDailyDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDailyDao.java index 6b500ad3fd..ce47a20ff6 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDailyDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDailyDao.java @@ -78,4 +78,13 @@ public interface IssueVoteStatisticalDailyDao extends BaseDao list); + + /** + * @Description 删除历史数据 + * @param customerId + * @param dateId + * @author zxc + * @date 2021/12/29 2:51 下午 + */ + Integer delHistoryData(@Param("customerId")String customerId,@Param("dateId")String dateId); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueVoteStatisticalDailyService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueVoteStatisticalDailyService.java index cf94b37242..42d3beac71 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueVoteStatisticalDailyService.java +++ b/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.tools.page.PageData; import com.epmet.dto.IssueVoteStatisticalDailyDTO; +import com.epmet.dto.form.DailyStatisticalVoteJob; import com.epmet.entity.IssueVoteStatisticalDailyEntity; import java.util.List; @@ -101,4 +102,12 @@ public interface IssueVoteStatisticalDailyService extends BaseService customerIds = new ArrayList<>(); + if (StringUtils.isBlank(form.getCustomerId())){ + Result> 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 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 dayAdd = issueVoteDetailDao.statisticVote(customerId, dateId); + if (CollectionUtils.isNotEmpty(dayAdd)){ + //累计 + List 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 needInsert = ConvertUtils.sourceToTarget(dayAdd, IssueVoteStatisticalDailyEntity.class); + Integer delNum; + do { + delNum = baseDao.delHistoryData(customerId, dateId); + } while (delNum != null && delNum > NumConstant.ZERO); + List> partition = ListUtils.partition(needInsert, NumConstant.ONE_HUNDRED); + partition.forEach(p -> { + baseDao.insertBatch(p); + }); + } + } + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java index 4c90eb6981..36caece989 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java +++ b/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.utils.ConvertUtils; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.IssueConstant; import com.epmet.dao.IssueDao; @@ -66,6 +67,9 @@ import java.time.ZoneOffset; import java.util.*; 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 polyLineDTOS = issueVoteStatisticalDao.polyLineData(issueId); - PolyLineDTO polyLineDTO = new PolyLineDTO(); - polyLineDTO.setVoteDate(LocalDateTime.now().toEpochSecond(ZoneOffset.of(IssueConstant.BEIJING_TIME_ZONE))); +// PolyLineDTO polyLineDTO = new PolyLineDTO(); +// 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 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没有,直接从缓存拿 - 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.setOppositionIncrement(voteRedisFormDTO.getOppositionAmount()); polyLineDTOS.add(polyLineDTO); @@ -222,18 +250,37 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl getPolyLine(String startTime, String endTime){ + List 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 * @Description 满意度评价列表——已关闭 diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml index 3b5b4be83a..d501921aa5 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml @@ -181,4 +181,43 @@ ) + + + + + + \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDailyDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDailyDao.xml index dcad30689c..bcbe6a5a4d 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDailyDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDailyDao.xml @@ -280,4 +280,13 @@ id = #{item.id} + + + + DELETE FROM issue_vote_statistical_daily + WHERE CUSTOMER_ID = #{customerId} + AND STATISTICAL_DATE = #{dateId} + LIMIT 1000 + + \ No newline at end of file From 54fb04fe11bc0abecf143ce170dc20fcceac034e Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 29 Dec 2021 16:51:35 +0800 Subject: [PATCH 08/11] =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/IssueVoteStatisticalServiceImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java index 36caece989..f5cd7251c9 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java @@ -219,6 +219,12 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl polyLine = getPolyLine(startDate, endDate); + 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()); + } if (CollectionUtils.isEmpty(polyLineDTOS)){ votingTrendResultDTO.setPolyLine(polyLine); return votingTrendResultDTO; @@ -231,12 +237,6 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl Date: Wed, 29 Dec 2021 17:08:53 +0800 Subject: [PATCH 09/11] =?UTF-8?q?job=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- epmet-module/epmet-job/epmet-job-server/pom.xml | 6 ++++++ .../main/java/com/epmet/feign/GovIssueFeignClient.java | 3 ++- .../epmet/feign/impl/GovIssueFeignClientFallBack.java | 5 +++-- .../service/IssueVotingDailyStatisticalTaskService.java | 3 ++- .../impl/IssueVotingDailyStatisticalTaskServiceImpl.java | 5 +++-- .../java/com/epmet/task/DailyStatisticalVoteTask.java | 9 ++++++++- 6 files changed, 24 insertions(+), 7 deletions(-) diff --git a/epmet-module/epmet-job/epmet-job-server/pom.xml b/epmet-module/epmet-job/epmet-job-server/pom.xml index 4ebf4f1fd3..a2632d820f 100644 --- a/epmet-module/epmet-job/epmet-job-server/pom.xml +++ b/epmet-module/epmet-job/epmet-job-server/pom.xml @@ -90,6 +90,12 @@ 2.0.0 compile + + com.epmet + gov-issue-client + 2.0.0 + compile + diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java index 4c091c1c6a..3731ecf8e6 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java @@ -2,6 +2,7 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.DailyStatisticalVoteJob; import com.epmet.feign.impl.GovIssueFeignClientFallBack; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -22,7 +23,7 @@ public interface GovIssueFeignClient { * @date 2020.05.20 15:39 **/ @PostMapping(value = "gov/issue/issuevotestatisticaldaily/dailystatisticalvotejob") - Result dailyStatisticalVoteJob(); + Result dailyStatisticalVoteJob(DailyStatisticalVoteJob form); /** * @Description 将所有表决中的投票数从缓存同步到数据库,要进行数据对比,若数据一致无需更新 diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/feign/impl/GovIssueFeignClientFallBack.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/feign/impl/GovIssueFeignClientFallBack.java index 0267ca347f..7623db9dab 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/feign/impl/GovIssueFeignClientFallBack.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/feign/impl/GovIssueFeignClientFallBack.java @@ -3,6 +3,7 @@ package com.epmet.feign.impl; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.DailyStatisticalVoteJob; import com.epmet.feign.GovIssueFeignClient; import org.springframework.stereotype.Component; @@ -15,8 +16,8 @@ import org.springframework.stereotype.Component; @Component public class GovIssueFeignClientFallBack implements GovIssueFeignClient { @Override - public Result dailyStatisticalVoteJob() { - return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "dailyStatisticalVoteJob"); + public Result dailyStatisticalVoteJob(DailyStatisticalVoteJob form) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "dailyStatisticalVoteJob",form); } @Override diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/IssueVotingDailyStatisticalTaskService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/IssueVotingDailyStatisticalTaskService.java index 0b72ddc1b2..3d14b1be08 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/IssueVotingDailyStatisticalTaskService.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/IssueVotingDailyStatisticalTaskService.java @@ -2,6 +2,7 @@ package com.epmet.service; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.DailyStatisticalVoteJob; /** * @Description 生成议题表决日统计数定时任务 @@ -10,6 +11,6 @@ import com.epmet.commons.tools.utils.Result; */ public interface IssueVotingDailyStatisticalTaskService { - Result issueVotingDailyStatistical(); + Result issueVotingDailyStatistical(DailyStatisticalVoteJob form); } diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/IssueVotingDailyStatisticalTaskServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/IssueVotingDailyStatisticalTaskServiceImpl.java index eb31c97810..504dc46994 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/IssueVotingDailyStatisticalTaskServiceImpl.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/IssueVotingDailyStatisticalTaskServiceImpl.java @@ -1,6 +1,7 @@ package com.epmet.service.impl; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.DailyStatisticalVoteJob; import com.epmet.feign.GovIssueFeignClient; import com.epmet.service.IssueVotingDailyStatisticalTaskService; import org.springframework.beans.factory.annotation.Autowired; @@ -18,7 +19,7 @@ public class IssueVotingDailyStatisticalTaskServiceImpl implements IssueVotingDa private GovIssueFeignClient govIssueFeignClient; @Override - public Result issueVotingDailyStatistical() { - return govIssueFeignClient.dailyStatisticalVoteJob(); + public Result issueVotingDailyStatistical(DailyStatisticalVoteJob form) { + return govIssueFeignClient.dailyStatisticalVoteJob(form); } } diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/DailyStatisticalVoteTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/DailyStatisticalVoteTask.java index 1c33869895..41302d5305 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/DailyStatisticalVoteTask.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/DailyStatisticalVoteTask.java @@ -1,7 +1,10 @@ package com.epmet.task; +import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.DailyStatisticalVoteJob; import com.epmet.service.IssueVotingDailyStatisticalTaskService; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -24,7 +27,11 @@ public class DailyStatisticalVoteTask implements ITask{ @Override public void run(String params) { logger.debug("dailyStatisticalVoteTask定时任务正在执行,参数为:{}", params); - Result result=issueVotingDailyStatisticalTaskService.issueVotingDailyStatistical(); + DailyStatisticalVoteJob form = new DailyStatisticalVoteJob(); + if (StringUtils.isNotBlank(params)) { + form = JSON.parseObject(params, DailyStatisticalVoteJob.class); + } + Result result=issueVotingDailyStatisticalTaskService.issueVotingDailyStatistical(form); if(result.success()){ logger.debug("dailyStatisticalVoteTask定时任务正在执行定时任务执行成功"); }else{ From bbb97fa7d76a1d0fc142e8674b01d6dca6b422fc Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 29 Dec 2021 17:52:16 +0800 Subject: [PATCH 10/11] emm --- .../com/epmet/dto/result/DailyStatisticalVoteJobResultDTO.java | 3 ++- .../epmet/controller/IssueVoteStatisticalDailyController.java | 2 +- .../src/main/resources/mapper/IssueVoteDetailDao.xml | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/DailyStatisticalVoteJobResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/DailyStatisticalVoteJobResultDTO.java index 60199aa0fd..7bb45f5a4e 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/DailyStatisticalVoteJobResultDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/DailyStatisticalVoteJobResultDTO.java @@ -4,6 +4,7 @@ import com.epmet.commons.tools.constant.NumConstant; import lombok.Data; import java.io.Serializable; +import java.util.Date; /** * @Author zxc @@ -20,7 +21,7 @@ public class DailyStatisticalVoteJobResultDTO implements Serializable { /** * 统计日期 */ - private String statisticalDate; + private Date statisticalDate; /** * 到该日的总赞成数 diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalDailyController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalDailyController.java index 108e477862..1d4128ace9 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalDailyController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalDailyController.java @@ -100,7 +100,7 @@ public class IssueVoteStatisticalDailyController { * @date 2020.05.20 15:39 **/ @PostMapping(value = "dailystatisticalvotejob") - public Result dailyStatisticalVoteJob(DailyStatisticalVoteJob form){ + public Result dailyStatisticalVoteJob(@RequestBody DailyStatisticalVoteJob form){ // issueVoteStatisticalDailyService.countVotingDailyStatistic(); issueVoteStatisticalDailyService.countVotingDailyStatisticNew(form); return new Result(); diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml index d501921aa5..def42fc563 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml @@ -199,7 +199,7 @@ 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 + str_to_date(#{dateId},'%Y-%m-%d') AS statisticalDate FROM issue_vote_detail vd WHERE vd.DEL_FLAG = '0' AND vd.CUSTOMER_ID = #{customerId} From 698b859bb852ae14673e05b61bb8c76438a4ed2c Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 30 Dec 2021 16:25:27 +0800 Subject: [PATCH 11/11] dbupdate --- .../src/main/java/com/epmet/redis/IssueVoteDetailRedis.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueVoteDetailRedis.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueVoteDetailRedis.java index 79068b4124..580b6a0f76 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueVoteDetailRedis.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueVoteDetailRedis.java @@ -262,6 +262,11 @@ public class IssueVoteDetailRedis { formDTO.setIssueId(issueId); formDTO.setGridId(issue.getGridId()); voteCache = issueVoteDetailService.selectIssueVotingDetail(formDTO); + IssueVoteStatisticalDTO dto = ConvertUtils.sourceToTarget(voteCache, IssueVoteStatisticalDTO.class); + dto.setVotableCount(voteCache.getShouldVoteCount()); + dto.setSupportCount(voteCache.getSupportAmount()); + dto.setOppositionCount(voteCache.getOppositionAmount()); + issueVoteStatisticalDao.updateBtIssueId(dto); }else { // 状态是关闭,转议题的,直接从结果表查询 voteCache = issueVoteStatisticalDao.selectVoteDetail(issueId);