package com.example.demo.service; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.example.demo.domain.TsjbData; import com.example.demo.domain.TsjbDataAudit; import com.example.demo.entity.TongJi.TouSuJuBaoLv; import com.example.demo.entity.vo.DaPingScoreQX; import com.example.demo.entity.vo.ZHZSVo; import com.example.demo.entity.vo.ZhzsScoreVo; import com.example.demo.util.R; import com.example.demo.util.ZR; import com.fasterxml.jackson.core.JsonProcessingException; import org.springframework.util.ObjectUtils; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.List; /** * @author zhuYuChen * @description 针对表【TSJB_DATA】的数据库操作Service * @createDate 2023-12-25 15:35:03 */ @DS("db2") public interface TsjbDataService extends IService { void cleanShuQiu(); void cleanJuBao(); void cleanJuBaoTest(); void cleanZongJu(); /** * 投诉率 */ ZR> GetTouSuLv(String startTime, String endTime, String ly, String szqx); ZR> GetTouSuLvAll(String start, String end, String ly, String szqx); ZhzsScoreVo getTouSuLvAllVo(LocalDate startTime, LocalDate endTime, String ly, String szqx); //投诉举报大屏演示 ZR> getTouSuLvDaPing(String startTime, String endTime, String ly, String szqx); //投诉举报大屏演示 /** * 获取特定时间段内,指定区域和街道的投诉举报率 * 该方法用于统计在给定的开始和结束时间内,符合各类别和指定区域条件的投诉举报信息, * 并按街道分类返回这些信息的列表 * * @param startTime 开始时间,格式为"yyyy-MM-dd",用于限定查询的时间范围起点 * @param endTime 结束时间,格式为"yyyy-MM-dd",用于限定查询的时间范围终点 * @param hj 领域,表示投诉举报的类型,用于筛选特定类型的投诉举报信息 * @param szqx 区域,表示投诉举报发生的区域,用于筛选特定区域的投诉举报信息 * @param street 街道,表示投诉举报发生的街道,用于筛选特定街道的投诉举报信息 * @return 返回一个ZR对象,封装了List类型的列表,每个列表项代表一个街道的投诉举报率信息 */ ZR> getTouSuLvDaPingStreet(LocalDate startTime, LocalDate endTime, String hj, String szqx, String street); /** * 上面方法的重载 */ default ZR> getTouSuLvDaPingStreet(String startTime, String endTime, String hj, String szqx, String street) { // 定义日期格式解析器 DateTimeFormatter dateString = DateTimeFormatter.ofPattern("yyyy/M/d"); // 解析开始和结束日期 LocalDate start = !ObjectUtils.isEmpty(startTime) ? LocalDate.parse(startTime, dateString) : null; LocalDate end = !ObjectUtils.isEmpty(endTime) ? LocalDate.parse(endTime, dateString) : null; return getTouSuLvDaPingStreet(start, end, hj, szqx, street); } /** * 上面方法的重载 */ default ZR> getTouSuLvDaPingStreet(String startTime, String endTime, String hj, String szqx, String street, int littlemonth) { // 定义日期格式解析器 DateTimeFormatter dateString = DateTimeFormatter.ofPattern("yyyy/M/d"); // 解析开始和结束日期 LocalDate start = !ObjectUtils.isEmpty(startTime) ? LocalDate.parse(startTime, dateString) : null; LocalDate end = !ObjectUtils.isEmpty(endTime) ? LocalDate.parse(endTime, dateString) : null; start = start.plusMonths(littlemonth); end = end.plusMonths(littlemonth); return getTouSuLvDaPingStreet(start, end, hj, szqx, street); } //投诉举报环节界面大屏演示 ZR> getScoreByHuanJie(String szqx, String start, String end); //投诉举报区县界面大屏演示 List getScoreByQuAndHj(String hj, String szqx, LocalDate startTime, LocalDate endTime); //投诉举报区县界面大屏演示 List getScoreByStreetQuery(String hj, String szqx, LocalDate startTime, LocalDate endTime); /** * 投诉率详情导出 */ void getTouSuLvExport(String startTime, String endTime, String ly, String szqx, HttpServletResponse response); ZR> getTouSuLvYZ(Double lv); /** * 根据环节权重,求总分 */ List getAllScore(List tsjbLvList); IPage pageTsjb(String wherestr, int page, int limit); R updateData(TsjbDataAudit tsjbDataAudit); void exportByHuanJie(HttpServletResponse response, String startTime, String endTime, String ly, String szqx); /** * 根据条件导出数据 */ void export(HttpServletResponse response, String wherestr, int page, int limit); void Import(MultipartFile file); ZR> getScoreByQu() throws JsonProcessingException; void updateDataPending(TsjbDataAudit tsjbDataAudit); Integer selectAuditCount(String auditName); }