springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java
@@ -168,7 +168,7 @@ AnalyticStatisticsOneVo analyticStatisticsOneVo = complaintService.analyticStatisticsOne(query,complaints,simpleDateFormat); // 第二部分数据 List<AnalyticStatisticsTwoVo> analyticStatisticsTwoVos =complaintService.analyticStatisticsTwo(query,complaints,simpleDateFormat); List<AnalyticStatisticsTwoVo> analyticStatisticsTwoVos =complaintService.analyticStatisticsTwo(query.getTime(),complaints,simpleDateFormat); // 第三部分数据 List<AnalyticStatisticsThreeVo> analyticStatisticsThreeVos =complaintService.analyticStatisticsThree(query,complaints); springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/StaticsController.java
@@ -9,6 +9,7 @@ import com.panzhihua.sangeshenbian.model.query.AnalyticStatisticsQuery; import com.panzhihua.sangeshenbian.model.query.AppStaticsQuery; import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsOneVo; import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsTwoVo; import com.panzhihua.sangeshenbian.model.vo.RegionVO; import com.panzhihua.sangeshenbian.service.IdentityInformationService; import com.panzhihua.sangeshenbian.service.impl.StaticsService; @@ -36,7 +37,6 @@ @RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class StaticsController extends BaseController { private final StaticsService staticsService; private final IdentityInformationService identityInformationService; @GetMapping("/region-tree") @ApiOperation("获取区域树") @@ -45,9 +45,15 @@ return R.ok(staticsService.queryRegionTree(loginUserInfo)); } @PostMapping("/part-one") @ApiOperation("获取统计分析-第一部分") @ApiOperation("获取统计分析-第一部分(处理满意率+诉求单量统计上面部分)") public R<AnalyticStatisticsOneVo> queryStaticsPartOne(@RequestBody AppStaticsQuery query) { LoginUserInfoVO loginUserInfo = getLoginUserInfo(); return R.ok(staticsService.queryStaticsPartOne(query,loginUserInfo)); } @PostMapping("/part-two") @ApiOperation("获取统计分析-第二部分(诉求单量统计柱状图)") public R<List<AnalyticStatisticsTwoVo>> queryStaticsPartTwo(@RequestBody AppStaticsQuery query) { LoginUserInfoVO loginUserInfo = getLoginUserInfo(); return R.ok(staticsService.queryStaticsPartTwo(query,loginUserInfo)); } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java
@@ -187,12 +187,13 @@ /** * 数据统计第二部分 * @param query * * @param time * @param complaints * @param simpleDateFormat * @return */ List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(@Valid AnalyticStatisticsQuery query, List<Complaint> complaints, SimpleDateFormat simpleDateFormat); List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(String time, List<Complaint> complaints, SimpleDateFormat simpleDateFormat); /**+ @@ -212,8 +213,7 @@ /** * 查询党员或上级对应的诉求列表 * @param targetId * @param accountLevel * @param query * @param loginUserInfo * @return */ springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
@@ -1551,12 +1551,17 @@ return vo; } public static void main(String[] args) { String time = "2022-02-02 - 2023-02-02"; String[] split = time.split(" - "); System.out.println(split[0]); } @Override public List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(AnalyticStatisticsQuery query, List<Complaint> complaints, SimpleDateFormat simpleDateFormat) { public List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(String time, List<Complaint> complaints, SimpleDateFormat simpleDateFormat) { ArrayList<AnalyticStatisticsTwoVo> list = new ArrayList<>(); try { if (StringUtils.isNotEmpty(query.getTime())) { String[] split = query.getTime().split(" - "); if (StringUtils.isNotEmpty(time)) { String[] split = time.split(" - "); Date parse = simpleDateFormat.parse(split[0] + " 00:00:00"); Date parse1 = simpleDateFormat.parse(split[1] + " 23:59:59"); complaints = complaints.stream().filter(e -> e.getCreateTime().getTime() <= parse1.getTime() && e.getCreateTime().getTime() >= parse.getTime()).collect(Collectors.toList()); @@ -1587,7 +1592,7 @@ } } else { String time = DateUtils.getBeforeDay(6) + " 00:00:00"; time = DateUtils.getBeforeDay(6) + " 00:00:00"; Date parse = simpleDateFormat.parse(time); // 近7天数据 complaints = complaints.stream().filter(e -> e.getCreateTime().getTime() <= new Date().getTime() && e.getCreateTime().getTime() >= parse.getTime()).collect(Collectors.toList()); springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/StaticsService.java
@@ -1,8 +1,11 @@ package com.panzhihua.sangeshenbian.service.impl; import cn.hutool.core.date.DateUtil; import com.beust.jcommander.internal.Lists; import com.fasterxml.jackson.databind.ser.std.ObjectArraySerializer; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.sangeshenbian.dao.SystemUserMapper; import com.panzhihua.sangeshenbian.model.entity.ComAct; @@ -12,6 +15,7 @@ import com.panzhihua.sangeshenbian.model.entity.SystemUserLevel; import com.panzhihua.sangeshenbian.model.query.AppStaticsQuery; import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsOneVo; import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsTwoVo; import com.panzhihua.sangeshenbian.model.vo.RegionVO; import com.panzhihua.sangeshenbian.service.IBcRegionService; import com.panzhihua.sangeshenbian.service.IComActService; @@ -26,7 +30,9 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Objects; /** * @author mitao @@ -139,4 +145,31 @@ List<Complaint> complaints = complaintService.queryCompliantList(query,loginUserInfo); return complaintService.analyticStatisticsOne(null, complaints, simpleDateFormat); } public List<AnalyticStatisticsTwoVo> queryStaticsPartTwo(AppStaticsQuery query, LoginUserInfoVO loginUserInfo) { List<Complaint> complaints = complaintService.queryCompliantList(query,loginUserInfo); //时间范围 String time = ""; if (Objects.nonNull(query.getTimeType())) { Date now = new Date(); Date start = null; switch (query.getTimeType()) { case 2: start = DateUtils.addDay(now, -15); break; case 3: start = DateUtils.addDay(now, -30); break; default: start = DateUtils.addDay(now, -7); break; } //格式化 String startStr = DateUtils.format(start, DateUtils.yyyyMMdd_format); String endStr = DateUtils.format(now, DateUtils.yyyyMMdd_format); time = startStr + " - " + endStr; } return complaintService.analyticStatisticsTwo(time, complaints, simpleDateFormat); } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml
@@ -720,6 +720,19 @@ <if test="5 == accountLevel"> and (sc.party_member_id = #{targetId} || sc.id in (select complaint_id from sgsb_complaint_audit_record where audit_type = 3 and audit_status = 1 and report_type = #{accountLevel} and superior_id = #{targetId})) </if> <if test="query.timeType !=null"> <choose> <when test="query.timeType == 1"> and date_sub(curdate(), INTERVAL 7 DAY) <= date(sc.create_time) </when> <when test="query.timeType == 2"> and date_sub(curdate(), INTERVAL 15 DAY) <= date(sc.create_time) </when> <when test="query.timeType == 3"> and date_sub(curdate(), INTERVAL 30 DAY) <= date(sc.create_time) </when> </choose> </if> </where> ORDER BY sc.create_time DESC </select>