diff --git a/src/main/java/com/biutag/supervision/controller/datav/DataVMailViewController.java b/src/main/java/com/biutag/supervision/controller/datav/DataVMailViewController.java index ce7fa6a..e6b027e 100644 --- a/src/main/java/com/biutag/supervision/controller/datav/DataVMailViewController.java +++ b/src/main/java/com/biutag/supervision/controller/datav/DataVMailViewController.java @@ -2,25 +2,26 @@ package com.biutag.supervision.controller.datav; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; -import com.biutag.supervision.constants.enums.ProblemSourcesEnum; -import com.biutag.supervision.constants.enums.RepeatEnum; import com.biutag.supervision.mapper.DataPetition12337Mapper; -import com.biutag.supervision.mapper.DataPetitionComplaintMapper; import com.biutag.supervision.mapper.NegativeBlameMapper; import com.biutag.supervision.mapper.NegativeMapper; import com.biutag.supervision.pojo.Result; -import com.biutag.supervision.pojo.vo.*; +import com.biutag.supervision.pojo.request.datav.DataVRequest; +import com.biutag.supervision.pojo.vo.BlameStats; +import com.biutag.supervision.pojo.vo.EchartsVo; +import com.biutag.supervision.pojo.vo.MailMapIconVo; import com.biutag.supervision.service.DataMailService; +import com.biutag.supervision.service.datav.DatavService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.format.annotation.DateTimeFormat; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -35,78 +36,34 @@ import java.util.*; public class DataVMailViewController { private final DataMailService dataMailService; - private final DataPetitionComplaintMapper dataPetitionComplaintMapper; private final DataPetition12337Mapper dataPetition12337Mapper; private final NegativeMapper negativeMapper; private final NegativeBlameMapper negativeBlameMapper; - // region 左边 + private final DatavService datavService; - /** - * 初访重访情况 - * - * @param beginTime 开始时间 - * @param endTime 结束时间 - * @return Result - */ + // region 左边 @Operation(summary = "初访重访情况") - @GetMapping("/getFirstAndRepeatMail") - public Result getFirstAndRepeatMail(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime, - @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) { - endTime = DateUtil.endOfDay(endTime); - //查询条件国家信访和公安部信访 - List codes = List.of(ProblemSourcesEnum.GJXFPT.getValue(),ProblemSourcesEnum.GABXF.getValue()); - // 初访重访情况总览 - MailFirstAndRepeatOverviewVo fxjsFirstAndRepeatOverview = dataPetitionComplaintMapper.getFirstAndRepeatOverview(beginTime, endTime, 3,codes); - MailFirstAndRepeatOverviewVo bwzdFirstAndRepeatOverview = dataPetitionComplaintMapper.getFirstAndRepeatOverview(beginTime, endTime, 4,codes); - - //未知数据 - int nullNumber = dataPetitionComplaintMapper.getNullObjectData(beginTime, endTime, codes); -// fxjsFirstAndRepeatOverview.setFirstMail(fxjsFirstAndRepeatOverview.getFirstMail() + nullNumber); - // 初访重访分类数据排行 - List fxsjFirstRankList = dataPetitionComplaintMapper.getMailRank(beginTime, endTime, 3, RepeatEnum.FIRST_MAIL.getId(),codes); // 1 - List fxsjRepeatRankList = dataPetitionComplaintMapper.getMailRank(beginTime, endTime, 3, RepeatEnum.REPEAT_MAIL.getId(),codes); // 2 - List fxsjLeaderViewRankList = dataPetitionComplaintMapper.getMailLeaderRank(beginTime, endTime, 3,codes); - - List bwzdFirstRankList = dataPetitionComplaintMapper.getMailRank(beginTime, endTime, 4, RepeatEnum.FIRST_MAIL.getId(),codes); - List bwzdRepeatRankList = dataPetitionComplaintMapper.getMailRank(beginTime, endTime, 4, RepeatEnum.REPEAT_MAIL.getId(),codes); - List bwzdLeaderViewRankList = dataPetitionComplaintMapper.getMailLeaderRank(beginTime, endTime, 4,codes); - JSONObject data = new JSONObject() - .fluentPut("fxjsFirstAndRepeatOverview", fxjsFirstAndRepeatOverview) - .fluentPut("bwzdFirstAndRepeatOverview", bwzdFirstAndRepeatOverview) - .fluentPut("fxsjFirstRankList", fxsjFirstRankList) - .fluentPut("fxsjRepeatRankList", fxsjRepeatRankList) - .fluentPut("fxsjLeaderViewRankList", fxsjLeaderViewRankList) - .fluentPut("bwzdFirstRankList", bwzdFirstRankList) - .fluentPut("bwzdRepeatRankList", bwzdRepeatRankList) - .fluentPut("nullNumber",nullNumber) - .fluentPut("bwzdLeaderViewRankList", bwzdLeaderViewRankList); - return Result.success(data); + @PostMapping("/getFirstAndRepeatMail") + public Result getFirstAndRepeatMail(@RequestBody DataVRequest request) { + return datavService.getFirstAndRepeatMail(request); + } + + + @Operation(summary = "信访投诉占比") + @PostMapping("/getComplaintRate") + public Result getComplaintRate(@RequestBody DataVRequest request) { + return datavService.getAllMailCount(request); } // endregion // region 中间 - /** - * 信访数据中央总览统计 - * - * @param beginTime 开始时间 - * @param endTime 结束时间 - * @return Result - */ @Operation(summary = "中央数据统计") - @GetMapping("/getAllMailCount") - public Result getAllMailCount(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime, - @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) { - // 信访数据总数概览 - MailOverviewVo overview = dataMailService.allMailCount(beginTime, DateUtil.endOfDay(endTime)); - System.out.println("信访总览================================"); - System.out.println(overview); -// MailOverviewVo overview = dataMailService.getAllMailCount(beginTime, endTime); - JSONObject data = new JSONObject().fluentPut("overview", overview); - return Result.success(data); + @PostMapping("/getAllMailCount") + public Result getAllMailCount(@RequestBody DataVRequest request) { + return datavService.getAllMailCount(request); } - /** * 信访数据中央地图小图标数据 * @@ -149,42 +106,10 @@ public class DataVMailViewController { // endregion // region 右边 - - /** - * 缠访集访情况 - * - * @param beginTime 开始时间 - * @param endTime 结束时间 - * @return Result - */ - @Operation(summary = "缠访集访情况") - @GetMapping("/getEntanglementAndMassMail") - public Result getEntanglementAndMassMail(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime, - @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) { - //查询国家信访和公安部信访 - List codes = List.of(ProblemSourcesEnum.GJXFPT.getValue(),ProblemSourcesEnum.GABXF.getValue()); - // 缠访集访情况总览 - MailEntanglementMassOverviewVo fxsjMailEntanglementMassOverview = dataPetitionComplaintMapper.getEntanglementAndMassOverview(beginTime, endTime, 3,codes); - MailEntanglementMassOverviewVo bwzdMailEntanglementMassOverview = dataPetitionComplaintMapper.getEntanglementAndMassOverview(beginTime, endTime, 4,codes); - - List fxsjLeaderReviewList = dataPetitionComplaintMapper.getMailLeaderRank(beginTime, endTime, 3,codes); - List fxsjEntanglementList = dataPetitionComplaintMapper.getEntanglementMailRank(beginTime, endTime, 3,codes); - List fxsjMassList = dataPetitionComplaintMapper.getMassMailRank(beginTime, endTime, 3,codes); - - List bwzdLeaderReviewList = dataPetitionComplaintMapper.getMailLeaderRank(beginTime, endTime, 4,codes); - List bwzdEntanglementList = dataPetitionComplaintMapper.getEntanglementMailRank(beginTime, endTime, 4,codes); - List bwzdMassList = dataPetitionComplaintMapper.getMassMailRank(beginTime, endTime, 4,codes); - - JSONObject data = new JSONObject() - .fluentPut("fxsjMailEntanglementMassOverview", fxsjMailEntanglementMassOverview) - .fluentPut("bwzdMailEntanglementMassOverview", bwzdMailEntanglementMassOverview) - .fluentPut("fxsjLeaderReviewList", fxsjLeaderReviewList) - .fluentPut("fxsjEntanglementList", fxsjEntanglementList) - .fluentPut("fxsjMassList", fxsjMassList) - .fluentPut("bwzdLeaderReviewList", bwzdLeaderReviewList) - .fluentPut("bwzdEntanglementList", bwzdEntanglementList) - .fluentPut("bwzdMassList", bwzdMassList); - return Result.success(data); + @Operation(summary = "群众集访情况") + @PostMapping("/getEntanglementAndMassMail") + public Result getEntanglementAndMassMail(@RequestBody DataVRequest request) { + return datavService.getEntanglementAndMassMail(request); } /** diff --git a/src/main/java/com/biutag/supervision/mapper/DataPetitionComplaintMapper.java b/src/main/java/com/biutag/supervision/mapper/DataPetitionComplaintMapper.java index b90f1c9..e0125b6 100644 --- a/src/main/java/com/biutag/supervision/mapper/DataPetitionComplaintMapper.java +++ b/src/main/java/com/biutag/supervision/mapper/DataPetitionComplaintMapper.java @@ -103,8 +103,22 @@ public interface DataPetitionComplaintMapper extends BaseMapper") List getMailRank(Date beginTime, Date endTime, Integer groupId, Integer isRepeat,List codes); + @Select("SELECT " + + "sd.short_name as label, " + + "count(*) as `value` " + + "FROM data_petition_complaint dpc " + + "LEFT JOIN sup_depart sd on dpc.second_depart_id = sd.id " + + "WHERE dpc.create_time >=#{beginTime} AND dpc.create_time <= #{endTime} " + + "AND initial_petition=#{repeat} " + + "AND sd.statistics_group_id=#{groupId} " + + "AND dpc.problem_sources_code IN (21, 22) " + + "GROUP BY name " + + "HAVING `name` is not NULL " + + "ORDER BY `value` DESC") + List getMailRank(Date beginTime, Date endTime, Integer groupId, Integer repeat); + -// @Select( "" ) List getMassMailRank(Date beginTime, Date endTime, Integer groupId,List codes); + @Select("SELECT " + + "sd.short_name as label, " + + "count(*) as `value` " + + "FROM data_petition_complaint dpc " + + "LEFT JOIN sup_depart sd on dpc.second_depart_id = sd.id " + + "WHERE dpc.create_time >=#{beginTime} AND dpc.create_time <=#{endTime} " + + "AND dpc.mass_visits='1' " + + "AND sd.statistics_group_id=#{groupId} " + + "AND dpc.problem_sources_code IN (21, 22) " + + "GROUP BY name " + + "HAVING `name` is not NULL " + + "ORDER BY `value` DESC ") + List getMassMailRank(Date beginTime, Date endTime, Integer groupId); @Select("select count(*) " + diff --git a/src/main/java/com/biutag/supervision/pojo/vo/OrganizeProblemRankVo.java b/src/main/java/com/biutag/supervision/pojo/vo/OrganizeProblemRankVo.java index 64edc1e..4ce170b 100644 --- a/src/main/java/com/biutag/supervision/pojo/vo/OrganizeProblemRankVo.java +++ b/src/main/java/com/biutag/supervision/pojo/vo/OrganizeProblemRankVo.java @@ -1,7 +1,11 @@ package com.biutag.supervision.pojo.vo; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Optional; /** * @Auther: sh @@ -10,6 +14,8 @@ import lombok.Data; */ @Data @Schema(description = "机构问题排名VO") +@AllArgsConstructor +@NoArgsConstructor public class OrganizeProblemRankVo { @Schema(description = "部门名") @@ -34,7 +40,23 @@ public class OrganizeProblemRankVo { + public int getValueAsInt() { + return Optional.ofNullable(value) + .filter(v -> !v.isEmpty()) + .map(v -> { + try { + return Integer.parseInt(v); + } catch (Exception e) { + return 0; + } + }) + .orElse(0); + } + public OrganizeProblemRankVo(String label, String value) { + this.label = label; + this.value = value; + } } diff --git a/src/main/java/com/biutag/supervision/service/datav/DatavService.java b/src/main/java/com/biutag/supervision/service/datav/DatavService.java index 10b0a68..2769183 100644 --- a/src/main/java/com/biutag/supervision/service/datav/DatavService.java +++ b/src/main/java/com/biutag/supervision/service/datav/DatavService.java @@ -150,4 +150,25 @@ public interface DatavService { */ Result getSubHitState(SubDataVRequest request); + /** + * 信访一级 初访重访情况 + * @param request + * @return + */ + Result getFirstAndRepeatMail(DataVRequest request); + + /** + * 信访一级 中央总览 + * @param request + * @return + */ + Result getAllMailCount(DataVRequest request); + + /** + * 信访一级 群众集访情况 + * @param request + * @return + */ + Result getEntanglementAndMassMail(DataVRequest request); + } diff --git a/src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java b/src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java index 2ec509c..1f7936e 100644 --- a/src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java +++ b/src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java @@ -5,12 +5,10 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.NumberUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.biutag.supervision.constants.enums.BlameType; -import com.biutag.supervision.constants.enums.DepartGroupEnum; -import com.biutag.supervision.constants.enums.InspectCaseEnum; -import com.biutag.supervision.constants.enums.ProblemSourcesEnum; +import com.biutag.supervision.constants.enums.*; import com.biutag.supervision.constants.enums.invest.DeleteStatusEnum; import com.biutag.supervision.constants.enums.invest.ReportProjectNodeEnum; +import com.biutag.supervision.mapper.DataPetitionComplaintMapper; import com.biutag.supervision.mapper.RpcApplyMapper; import com.biutag.supervision.mapper.RpcComfortPacksMapper; import com.biutag.supervision.pojo.Result; @@ -36,6 +34,7 @@ import com.biutag.supervision.service.*; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import java.math.BigDecimal; import java.math.RoundingMode; @@ -107,6 +106,12 @@ public class DatavServiceImpl implements DatavService { @Resource private RpcApplyPersonService rpcApplyPersonService; + + @Resource + private DataPetitionComplaintMapper dataPetitionComplaintMapper; + + @Resource + private DataMailService dataMailService; @Override public Result getAuditMap(DataVRequest request) { List auditSuperviseMapIconVoList = new ArrayList<>(); @@ -733,4 +738,76 @@ public class DatavServiceImpl implements DatavService { return Result.success(data); } + + + + @Override + public Result getFirstAndRepeatMail(DataVRequest request) { + Date beginTime = request.getBeginTime(); + Date endTime = request.getEndTime(); + // 分县市局 + List fxsjFirstRankList = dataPetitionComplaintMapper.getMailRank(beginTime, endTime, 3, RepeatEnum.FIRST_MAIL.getId()); + List fxsjRepeatRankList = dataPetitionComplaintMapper.getMailRank(beginTime, endTime, 3, RepeatEnum.REPEAT_MAIL.getId()); + // 局属单位 + List bwzdFirstRankList = dataPetitionComplaintMapper.getMailRank(beginTime, endTime, 4, RepeatEnum.FIRST_MAIL.getId()); + List bwzdRepeatRankList = dataPetitionComplaintMapper.getMailRank(beginTime, endTime, 4, RepeatEnum.REPEAT_MAIL.getId()); + // 汇总(分县市局) + MailFirstAndRepeatOverviewVo fxsjOverview = new MailFirstAndRepeatOverviewVo(); + fxsjOverview.setFirstMail(fxsjFirstRankList.stream().mapToInt(OrganizeProblemRankVo::getValueAsInt).sum()); + fxsjOverview.setRepeatMail(fxsjRepeatRankList.stream().mapToInt(OrganizeProblemRankVo::getValueAsInt).sum()); + fxsjOverview.setLeaderMail(0); + // 汇总(局属单位) + MailFirstAndRepeatOverviewVo bwzdOverview = new MailFirstAndRepeatOverviewVo(); + bwzdOverview.setFirstMail(bwzdFirstRankList.stream().mapToInt(OrganizeProblemRankVo::getValueAsInt).sum()); + bwzdOverview.setRepeatMail(bwzdRepeatRankList.stream().mapToInt(OrganizeProblemRankVo::getValueAsInt).sum()); + bwzdOverview.setLeaderMail(0); + JSONObject data = new JSONObject() + .fluentPut("fxsjOverview", fxsjOverview) + .fluentPut("bwzdOverview", bwzdOverview) + .fluentPut("fxsjFirstRankList", fxsjFirstRankList) + .fluentPut("fxsjRepeatRankList", fxsjRepeatRankList) + .fluentPut("bwzdFirstRankList", bwzdFirstRankList) + .fluentPut("bwzdRepeatRankList", bwzdRepeatRankList); + + return Result.success(data); + } + + @Override + public Result getAllMailCount(DataVRequest request) { + MailOverviewVo overview = dataMailService.mailCount(request.getBeginTime(), request.getEndTime()); + long totalMail = overview.getCountryMail() + overview.getPoliceMail() + overview.getNumberMail(); + overview.setTotalMail(totalMail); + JSONObject data = new JSONObject().fluentPut("overview", overview); + return Result.success(data); + } + + @Override + public Result getEntanglementAndMassMail(DataVRequest request) { + Date beginTime = request.getBeginTime(); + Date endTime = request.getEndTime(); + // 分县市局 + List fxsjMassMailList = dataPetitionComplaintMapper.getMassMailRank(beginTime, endTime, 3); + List fxsjLeaderReviewMailList = dataPetitionComplaintMapper.getMailLeaderRank(beginTime, endTime, 3); + // 局属单位 + List bwzdMassMailList = dataPetitionComplaintMapper.getMassMailRank(beginTime, endTime, 4); + List bwzdLeaderReviewMailList = dataPetitionComplaintMapper.getMailLeaderRank(beginTime, endTime, 4); + // 汇总(分县市局) + MailEntanglementMassOverviewVo fxsjOverview = new MailEntanglementMassOverviewVo(); + fxsjOverview.setEntanglement(0); + fxsjOverview.setMass(fxsjMassMailList.stream().mapToInt(OrganizeProblemRankVo::getValueAsInt).sum()); + fxsjOverview.setLeaderReview(fxsjLeaderReviewMailList.stream().mapToInt(OrganizeProblemRankVo::getValueAsInt).sum()); + // 汇总(局属单位) + MailEntanglementMassOverviewVo bwzdOverview = new MailEntanglementMassOverviewVo(); + bwzdOverview.setEntanglement(0); + bwzdOverview.setMass(bwzdMassMailList.stream().mapToInt(OrganizeProblemRankVo::getValueAsInt).sum()); + bwzdOverview.setLeaderReview(bwzdLeaderReviewMailList.stream().mapToInt(OrganizeProblemRankVo::getValueAsInt).sum()); + JSONObject data = new JSONObject() + .fluentPut("fxsjOverview", fxsjOverview) + .fluentPut("bwzdOverview", bwzdOverview) + .fluentPut("fxsjMassMailList", fxsjMassMailList) + .fluentPut("bwzdMassMailList", bwzdMassMailList) + .fluentPut("fxsjLeaderReviewMailList", fxsjLeaderReviewMailList) + .fluentPut("bwzdLeaderReviewMailList", bwzdLeaderReviewMailList); + return Result.success(data); + } }