Browse Source

20250512

main
wxc 9 months ago
parent
commit
2293aa8e7d
  1. 1978
      demo.json
  2. 2
      src/main/java/com/biutag/supervision/SupervisionApplication.java
  3. 33
      src/main/java/com/biutag/supervision/config/CorsConfig.java
  4. 5
      src/main/java/com/biutag/supervision/config/InterceptorConfig.java
  5. 5
      src/main/java/com/biutag/supervision/constants/enums/TaskTypeEnum.java
  6. 3
      src/main/java/com/biutag/supervision/constants/enums/TestingAlcoholStateEnum.java
  7. 73
      src/main/java/com/biutag/supervision/controller/AppController.java
  8. 37
      src/main/java/com/biutag/supervision/controller/FileController.java
  9. 14
      src/main/java/com/biutag/supervision/controller/LoginController.java
  10. 41
      src/main/java/com/biutag/supervision/controller/datav/DataVAuditController.java
  11. 20
      src/main/java/com/biutag/supervision/controller/datav/DataVGlobalController.java
  12. 4
      src/main/java/com/biutag/supervision/controller/datav/DataVMailViewController.java
  13. 156
      src/main/java/com/biutag/supervision/controller/datav/DataVRightsComfortController.java
  14. 57
      src/main/java/com/biutag/supervision/controller/datav/DataVSupervisionNotifyController.java
  15. 10
      src/main/java/com/biutag/supervision/controller/datav/DataVVideoSuperviseController.java
  16. 51
      src/main/java/com/biutag/supervision/controller/mobileSupervision/InspectionController.java
  17. 54
      src/main/java/com/biutag/supervision/controller/mobileSupervision/PhotoController.java
  18. 47
      src/main/java/com/biutag/supervision/controller/mobileSupervision/SelfexaminationController.java
  19. 43
      src/main/java/com/biutag/supervision/controller/mobileSupervision/TaskController.java
  20. 40
      src/main/java/com/biutag/supervision/controller/mobileSupervision/TaskProblemController.java
  21. 44
      src/main/java/com/biutag/supervision/controller/mobileSupervision/TestingAlcoholController.java
  22. 2
      src/main/java/com/biutag/supervision/controller/rightsComfort/RightPersonController.java
  23. 4
      src/main/java/com/biutag/supervision/controller/sensitiveperception/ProfileDepartController.java
  24. 2
      src/main/java/com/biutag/supervision/controller/subdatav/SubOneRightsController.java
  25. 2
      src/main/java/com/biutag/supervision/controller/subdatav/SubOneSupervisionNotifyController.java
  26. 4
      src/main/java/com/biutag/supervision/controller/subdatav/SubOneVideoSuperviseController.java
  27. 1
      src/main/java/com/biutag/supervision/controller/system/PoliceController.java
  28. 21
      src/main/java/com/biutag/supervision/controller/system/UserController.java
  29. 1
      src/main/java/com/biutag/supervision/controller/system/VideoConfigController.java
  30. 3
      src/main/java/com/biutag/supervision/controller/work/NegativeController.java
  31. 2
      src/main/java/com/biutag/supervision/controller/work/NegativeImportController.java
  32. 1
      src/main/java/com/biutag/supervision/controller/work/NegativeTaskController.java
  33. 11
      src/main/java/com/biutag/supervision/job/DepartJob.java
  34. 51
      src/main/java/com/biutag/supervision/job/Job.java
  35. 23
      src/main/java/com/biutag/supervision/job/ScoreJob.java
  36. 2
      src/main/java/com/biutag/supervision/mapper/DataCaseVerifMapper.java
  37. 51
      src/main/java/com/biutag/supervision/mapper/DataPetitionComplaintMapper.java
  38. 374
      src/main/java/com/biutag/supervision/mapper/NegativeMapper.java
  39. 35
      src/main/java/com/biutag/supervision/mapper/RpcApplyMapper.java
  40. 1
      src/main/java/com/biutag/supervision/mapper/StatisticsGroupMapper.java
  41. 8
      src/main/java/com/biutag/supervision/mapper/SupPhotoMapper.java
  42. 10
      src/main/java/com/biutag/supervision/mapper/SupTaskMapper.java
  43. 8
      src/main/java/com/biutag/supervision/mapper/SupTaskProblemMapper.java
  44. 8
      src/main/java/com/biutag/supervision/mapper/SupTaskSelfexaminationContentMapper.java
  45. 16
      src/main/java/com/biutag/supervision/mapper/SupTaskSelfexaminationMapper.java
  46. 8
      src/main/java/com/biutag/supervision/mapper/SupTaskTestingAlcoholPeopleMapper.java
  47. 21
      src/main/java/com/biutag/supervision/pojo/domain/AppUser.java
  48. 6
      src/main/java/com/biutag/supervision/pojo/domain/NegativeVo.java
  49. 17
      src/main/java/com/biutag/supervision/pojo/dto/FileBase64Dto.java
  50. 3
      src/main/java/com/biutag/supervision/pojo/dto/NegativeDto.java
  51. 2
      src/main/java/com/biutag/supervision/pojo/dto/TaskInspectionDto.java
  52. 16
      src/main/java/com/biutag/supervision/pojo/dto/TaskInspectionProblemQueryParam.java
  53. 43
      src/main/java/com/biutag/supervision/pojo/dto/TaskProblemDto.java
  54. 39
      src/main/java/com/biutag/supervision/pojo/dto/TaskSelfexaminationDto.java
  55. 44
      src/main/java/com/biutag/supervision/pojo/dto/TaskTestingAlcoholPeopleDto.java
  56. 16
      src/main/java/com/biutag/supervision/pojo/dto/UserPasswordDto.java
  57. 4
      src/main/java/com/biutag/supervision/pojo/dto/common/BarItem.java
  58. 3
      src/main/java/com/biutag/supervision/pojo/entity/DataPetition12337.java
  59. 38
      src/main/java/com/biutag/supervision/pojo/entity/SupPhoto.java
  60. 2
      src/main/java/com/biutag/supervision/pojo/entity/SupTask.java
  61. 5
      src/main/java/com/biutag/supervision/pojo/entity/SupTaskInspection.java
  62. 61
      src/main/java/com/biutag/supervision/pojo/entity/SupTaskProblem.java
  63. 32
      src/main/java/com/biutag/supervision/pojo/entity/SupTaskSelfexamination.java
  64. 38
      src/main/java/com/biutag/supervision/pojo/entity/SupTaskSelfexaminationContent.java
  65. 16
      src/main/java/com/biutag/supervision/pojo/entity/SupTaskTestingAlcoholPeople.java
  66. 30
      src/main/java/com/biutag/supervision/pojo/model/DataRightsComfortModel.java
  67. 5
      src/main/java/com/biutag/supervision/pojo/model/UserAuth.java
  68. 1
      src/main/java/com/biutag/supervision/pojo/param/DataPetitionComplaintQueryParam.java
  69. 7
      src/main/java/com/biutag/supervision/pojo/param/NegativeQueryParam.java
  70. 2
      src/main/java/com/biutag/supervision/pojo/param/TaskInspectionQueryParam.java
  71. 13
      src/main/java/com/biutag/supervision/pojo/param/TaskProblemQueryParam.java
  72. 18
      src/main/java/com/biutag/supervision/pojo/param/TaskQueryParam.java
  73. 26
      src/main/java/com/biutag/supervision/pojo/param/TaskTestingAlcoholPeopleQueryParam.java
  74. 19
      src/main/java/com/biutag/supervision/pojo/vo/AuditOverview.java
  75. 2
      src/main/java/com/biutag/supervision/pojo/vo/ComfortCountVO.java
  76. 6
      src/main/java/com/biutag/supervision/pojo/vo/DayTimeSuperviseVo.java
  77. 1
      src/main/java/com/biutag/supervision/pojo/vo/FileVo.java
  78. 2
      src/main/java/com/biutag/supervision/pojo/vo/GlobalOverViewVo.java
  79. 1
      src/main/java/com/biutag/supervision/pojo/vo/MailOverviewVo.java
  80. 21
      src/main/java/com/biutag/supervision/pojo/vo/PhotoGroupVo.java
  81. 6
      src/main/java/com/biutag/supervision/pojo/vo/SuperviseMapIconVo.java
  82. 16
      src/main/java/com/biutag/supervision/pojo/vo/SupervisionNotifyOverView.java
  83. 22
      src/main/java/com/biutag/supervision/pojo/vo/TaskCountVo.java
  84. 47
      src/main/java/com/biutag/supervision/pojo/vo/TaskInspectionProblemVo.java
  85. 6
      src/main/java/com/biutag/supervision/pojo/vo/TaskInspectionVo.java
  86. 51
      src/main/java/com/biutag/supervision/pojo/vo/TaskSelfexaminationDetailVo.java
  87. 42
      src/main/java/com/biutag/supervision/pojo/vo/TaskSelfexaminationVo.java
  88. 60
      src/main/java/com/biutag/supervision/pojo/vo/TaskTestingAlcoholPeopleVo.java
  89. 56
      src/main/java/com/biutag/supervision/pojo/vo/TaskVo.java
  90. 6
      src/main/java/com/biutag/supervision/pojo/vo/VideoSuperviseCountVo.java
  91. 6
      src/main/java/com/biutag/supervision/pojo/vo/VideoSuperviseMapIconVo.java
  92. 31
      src/main/java/com/biutag/supervision/service/BusinessDepartService.java
  93. 2
      src/main/java/com/biutag/supervision/service/DataCaseVerifService.java
  94. 34
      src/main/java/com/biutag/supervision/service/DataMailService.java
  95. 2
      src/main/java/com/biutag/supervision/service/DataPetition12337Service.java
  96. 3
      src/main/java/com/biutag/supervision/service/DataPetitionComplaintService.java
  97. 85
      src/main/java/com/biutag/supervision/service/DataRightsComfortService.java
  98. 1
      src/main/java/com/biutag/supervision/service/ModelClueService.java
  99. 8
      src/main/java/com/biutag/supervision/service/NegativeCountersignService.java
  100. 27
      src/main/java/com/biutag/supervision/service/NegativeQueryService.java
  101. Some files were not shown because too many files have changed in this diff Show More

1978
demo.json

File diff suppressed because it is too large Load Diff

2
src/main/java/com/biutag/supervision/SupervisionApplication.java

@ -18,4 +18,4 @@ public class SupervisionApplication {
SpringApplication.run(SupervisionApplication.class, args);
}
}
}

33
src/main/java/com/biutag/supervision/config/CorsConfig.java

@ -0,0 +1,33 @@
package com.biutag.supervision.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
/**
* @author wxc
* @date 2025/4/12
*/
@Configuration
public class CorsConfig {
private CorsConfiguration corsConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOriginPattern("*"); //允许所有域名访问
corsConfiguration.addAllowedHeader("*"); //允许所有请求头
corsConfiguration.addAllowedMethod("*"); //允许所有的请求类型
corsConfiguration.setMaxAge(3600L);
corsConfiguration.setAllowCredentials(true); //允许请求携带验证信息(cookie)
return corsConfiguration;
}
@Bean
public CorsFilter corsFilter() {
//存储request与跨域配置信息的容器,基于url的映射
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", corsConfig());
return new CorsFilter(source);
}
}

5
src/main/java/com/biutag/supervision/config/InterceptorConfig.java

@ -14,6 +14,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@ -37,12 +38,14 @@ public class InterceptorConfig implements WebMvcConfigurer {
registry.addInterceptor(new DefaultInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/api/**")
.excludePathPatterns("/crx/ajhc/**")
// 登录
.excludePathPatterns("/login", "/jit/**")
.excludePathPatterns("/login", "/jit/**", "/app/login")
.excludePathPatterns("/file/stream/**", "/templates/**")
.excludePathPatterns("/datav/risk/**")
.excludePathPatterns("/score/**")
.excludePathPatterns("/common/**")
.excludePathPatterns("/app/**")
// excel导出
.excludePathPatterns("/data/petitionComplaint12337/export/result", "/negative/books/export/**")
.excludePathPatterns(List.of("/doc.html", "/webjars/**", "/favicon.ico", "/v3/api-docs/**"));

5
src/main/java/com/biutag/supervision/constants/enums/TaskTypeEnum.java

@ -10,5 +10,8 @@ public enum TaskTypeEnum {
testing_alcohol,
// 督察任务
inspection;
inspection,
// 自查任务
selfexamination;
}

3
src/main/java/com/biutag/supervision/constants/enums/TestingAlcoholStateEnum.java

@ -7,9 +7,6 @@ package com.biutag.supervision.constants.enums;
*/
public enum TestingAlcoholStateEnum {
// 未检测
not_detected,
// 未饮酒
not_drinking,

73
src/main/java/com/biutag/supervision/controller/AppController.java

@ -0,0 +1,73 @@
package com.biutag.supervision.controller;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.Method;
import io.swagger.v3.oas.annotations.Operation;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.Objects;
/**
* @author wxc
* @date 2025/4/18
*/
@Slf4j
@RequestMapping("app")
@Controller
public class AppController {
@Operation(summary = "数据入口")
@ResponseBody
@PostMapping("forward")
public String forward(@RequestBody Request request) {
log.info("APP 请求地址:{} 请求方式:{} 授权码:{}", request.getUrl(), request.getMethod(), request.getToken());
if (Objects.nonNull(request.getBody())) {
log.info("APP 请求参数:{}", request.getBody());
}
HttpResponse httpResponse = HttpRequest.of(String.format("http://127.0.0.1:8080" + request.getUrl()))
.method(getMethod(request.getMethod()))
.auth(request.getToken())
.body(request.body)
.execute();
return httpResponse.body();
}
@Operation(summary = "文件预览")
@GetMapping("file/stream/forward")
public String fileSteamForward(String filepath) {
log.info("APP 文件预览,文件路径:{}", filepath);
return "forward:/file/stream" + filepath;
}
public Method getMethod(String method) {
if ("GET".equals(method)) {
return Method.GET;
}
if ("DELETE".equals(method)) {
return Method.DELETE;
}
if ("PUT".equals(method)) {
return Method.PUT;
}
return Method.POST;
}
@Setter
@Getter
public static class Request {
private String url;
private String method;
private String token;
private String body;
}
}

37
src/main/java/com/biutag/supervision/controller/FileController.java

@ -1,9 +1,13 @@
package com.biutag.supervision.controller;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.StrUtil;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.dto.FileBase64Dto;
import com.biutag.supervision.pojo.vo.FileVo;
import com.biutag.supervision.service.FileService;
import com.biutag.supervision.util.ImgUtil;
import com.biutag.supervision.util.WordUtil;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@ -13,8 +17,10 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Base64;
@Slf4j
@RequiredArgsConstructor
@ -34,6 +40,23 @@ public class FileController {
.setFilePath(filePath));
}
@ResponseBody
@PostMapping("upload/base64")
public Result<FileVo> upload(@RequestBody FileBase64Dto file) {
log.info("文件BASE64上传 upload------------------------------");
String base64 = file.getBase64();
if (base64.contains(",")) {
base64 = base64.substring(base64.indexOf(",") + 1);
}
byte[] decodedBytes = Base64.getDecoder().decode(base64);
ByteArrayInputStream is = new ByteArrayInputStream(decodedBytes);
String filePath = fileService.upload(is, is.available(), FileUtil.extName(file.getOriginalFilename()));
return Result.success(new FileVo()
.setFileName(file.getOriginalFilename())
.setFilePath(filePath));
}
@GetMapping("stream/**")
public void download(HttpServletRequest request, HttpServletResponse response) throws IOException {
String filePath = request.getRequestURI().substring(12);
@ -49,4 +72,18 @@ public class FileController {
IoUtil.copy(is, response.getOutputStream());
}
@ResponseBody
@GetMapping("base64")
public Result<String> getBase64(String filepath) throws IOException {
if (StrUtil.isBlank(filepath)) {
return Result.success(null);
}
InputStream is = fileService.download(filepath);
String base64 = Base64.getEncoder().encodeToString(is.readAllBytes());
if (ImgUtil.isImg(filepath)) {
base64 = String.format("data:image/%s;base64,", FileUtil.extName(filepath).toLowerCase()) + base64;
}
return Result.success(base64);
}
}

14
src/main/java/com/biutag/supervision/controller/LoginController.java

@ -4,11 +4,13 @@ import cn.com.jit.JitAuthClient;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.domain.AppUser;
import com.biutag.supervision.pojo.dto.AccountDto;
import com.biutag.supervision.pojo.entity.BaseAccount;
import com.biutag.supervision.pojo.entity.SupPolice;
import com.biutag.supervision.pojo.vo.TokenVo;
import com.biutag.supervision.service.BaseAccountService;
import com.biutag.supervision.service.SupPoliceService;
import com.biutag.supervision.service.UserLoginService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@ -33,6 +35,8 @@ public class LoginController {
private final UserLoginService userLoginService;
private final SupPoliceService policeService;
@Operation(summary = "登录")
@PostMapping("login")
public Result<TokenVo> login(@RequestBody AccountDto account) {
@ -87,4 +91,12 @@ public class LoginController {
String token = userLoginService.login(idCode);
return Result.success(new TokenVo().setToken(token));
}
@Operation(summary = "App登录")
@PostMapping("app/login")
public Result<AppUser> appLogin(String empNo) {
SupPolice police = policeService.getByEmpNo(empNo);
return Result.success(userLoginService.loginByApp(police.getIdCode()));
}
}

41
src/main/java/com/biutag/supervision/controller/datav/DataVAuditController.java

@ -2,9 +2,19 @@ package com.biutag.supervision.controller.datav;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervision.constants.enums.ProblemSourcesEnum;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.dto.common.PieItem;
import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.entity.NegativeBlame;
import com.biutag.supervision.pojo.entity.NegativeProblemRelation;
import com.biutag.supervision.pojo.entity.News;
import com.biutag.supervision.pojo.vo.AuditOverview;
import com.biutag.supervision.pojo.vo.NewsVo;
import com.biutag.supervision.service.NegativeBlameService;
import com.biutag.supervision.service.NegativeProblemRelationService;
import com.biutag.supervision.service.NegativeService;
import com.biutag.supervision.service.NewsService;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
@ -16,6 +26,8 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static com.biutag.supervision.constants.WorkDynamicConstants.SJGZDT;
@ -34,6 +46,23 @@ public class DataVAuditController {
private final NewsService newsService;
private final NegativeService negativeService;
private final NegativeBlameService negativeBlameService;
@GetMapping("/overview")
public Result<AuditOverview> overview(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
List<Negative> negatives = negativeService.list(new LambdaQueryWrapper<Negative>().between(Negative::getCrtTime, beginTime, DateUtil.endOfDay(endTime))
.in(Negative::getProblemSourcesCode, List.of(ProblemSourcesEnum.ZFTZSJ.getValue(), ProblemSourcesEnum.ZFSACFSS.getValue(), ProblemSourcesEnum.JJZRSJ.getValue(), ProblemSourcesEnum.ZXSJ.getValue())));
long accountableNumber = negativeBlameService.count(new LambdaQueryWrapper<NegativeBlame>().in(NegativeBlame::getNegativeId, negatives.stream().map(Negative::getId).collect(Collectors.toSet()))
.ne(NegativeBlame::getHandleResultName, "不予追责"));
AuditOverview overview = new AuditOverview();
overview.setNegativeNumber(negatives.size());
overview.setAccountableNumber(accountableNumber);
return Result.success(overview);
}
@GetMapping("/getWorkDynamics")
public Result<List<News>> getWorkDynamics(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
@ -41,5 +70,17 @@ public class DataVAuditController {
return Result.success(newsList);
}
@GetMapping("/problems")
public Result<List<PieItem>> problems(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
endTime = DateUtil.endOfDay(endTime);
List<Negative> negatives = negativeService.list(new LambdaQueryWrapper<Negative>().between(Negative::getCrtTime, beginTime, endTime)
.in(Negative::getProblemSourcesCode, List.of(ProblemSourcesEnum.ZFTZSJ.getValue(), ProblemSourcesEnum.ZFSACFSS.getValue(), ProblemSourcesEnum.JJZRSJ.getValue(), ProblemSourcesEnum.ZXSJ.getValue())));
Map<String, List<Negative>> collect = negatives.stream().collect(Collectors.groupingBy(Negative::getProblemSources));
List<PieItem> result = collect.keySet().stream().map(name -> {
return new PieItem(name, collect.get(name).size());
}).toList();
return Result.success(result);
}
}

20
src/main/java/com/biutag/supervision/controller/datav/DataVGlobalController.java

@ -1,10 +1,16 @@
package com.biutag.supervision.controller.datav;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervision.constants.enums.ProblemSourcesEnum;
import com.biutag.supervision.mapper.NegativeMapper;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.vo.*;
import com.biutag.supervision.service.DataMailService;
import com.biutag.supervision.service.NegativeService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
@ -33,6 +39,10 @@ public class DataVGlobalController {
private final NegativeMapper negativeMapper;
private final DataMailService dataMailService;
private final NegativeService negativeService;
//region 左边
/**
@ -46,6 +56,7 @@ public class DataVGlobalController {
@GetMapping("/getOrganizationRank")
public Result<JSONObject> getOrganizationRank(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
endTime = DateUtil.endOfDay(endTime);
List<OrganizeProblemRankVo> fxsjlist = negativeMapper.selectOrganizeProblemRank(3, beginTime, endTime);
List<OrganizeProblemRankVo> jsdwlist = negativeMapper.selectOrganizeProblemRank(4, beginTime, endTime);
JSONObject res = new JSONObject()
@ -87,8 +98,14 @@ public class DataVGlobalController {
@GetMapping("/getAllGlobalCount")
public Result<JSONObject> getAllGlobalCount(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
endTime = DateUtil.endOfDay(endTime);
// 获取数据大屏中央总数概览
GlobalOverViewVo overview = negativeMapper.getAllGlobalCount(beginTime, endTime);
MailOverviewVo vo = dataMailService.mailCount(beginTime, endTime);
// 局长信箱
long mailboxNumber = negativeService.count(new LambdaQueryWrapper<Negative>().between(Negative::getCrtTime, beginTime, endTime).eq(Negative::getProblemSourcesCode, ProblemSourcesEnum.JZXX.getValue()));
overview.setMailboxNumber(mailboxNumber);
overview.setComplaintPro(vo.getCountryMail() + vo.getPoliceMail() + vo.getNumberMail());
JSONObject data = new JSONObject().fluentPut("overview", overview);
return Result.success(data);
}
@ -141,6 +158,7 @@ public class DataVGlobalController {
@GetMapping("/getStrongProblemRate")
public Result<JSONObject> getStrongProblemRate(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
endTime = DateUtil.endOfDay(endTime);
// 突出问题排名
List<StrongProblemRank> tcwtlist = negativeMapper.selectStrongProblemRank(beginTime, endTime);
for (int i = 1; i <= tcwtlist.size(); i++) {
@ -167,7 +185,5 @@ public class DataVGlobalController {
JSONObject res = new JSONObject().fluentPut("wtlxlist", wtlxlist);
return Result.success(res);
}
//endregion
}

4
src/main/java/com/biutag/supervision/controller/datav/DataVMailViewController.java

@ -1,5 +1,6 @@
package com.biutag.supervision.controller.datav;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.biutag.supervision.constants.enums.RepeatEnum;
import com.biutag.supervision.mapper.DataPetition12337Mapper;
@ -50,6 +51,7 @@ public class DataVMailViewController {
@GetMapping("/getFirstAndRepeatMail")
public Result<JSONObject> getFirstAndRepeatMail(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
endTime = DateUtil.endOfDay(endTime);
// 初访重访情况总览
MailFirstAndRepeatOverviewVo fxjsFirstAndRepeatOverview = dataPetitionComplaintMapper.getFirstAndRepeatOverview(beginTime, endTime, 3);
MailFirstAndRepeatOverviewVo bwzdFirstAndRepeatOverview = dataPetitionComplaintMapper.getFirstAndRepeatOverview(beginTime, endTime, 4);
@ -88,7 +90,7 @@ public class DataVMailViewController {
public Result<JSONObject> getAllMailCount(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
// 信访数据总数概览
MailOverviewVo overview = dataMailService.allMailCount(beginTime, endTime);
MailOverviewVo overview = dataMailService.allMailCount(beginTime, DateUtil.endOfDay(endTime));
System.out.println("信访总览================================");
System.out.println(overview);
// MailOverviewVo overview = dataMailService.getAllMailCount(beginTime, endTime);

156
src/main/java/com/biutag/supervision/controller/datav/DataVRightsComfortController.java

@ -1,19 +1,20 @@
package com.biutag.supervision.controller.datav;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervision.constants.enums.RpcApplyTypeEnum;
import com.biutag.supervision.mapper.RpcApplyMapper;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.dto.common.PieItem;
import com.biutag.supervision.pojo.entity.RpcApply;
import com.biutag.supervision.pojo.model.DataRightsComfortModel;
import com.biutag.supervision.pojo.vo.ComfortCountVO;
import com.biutag.supervision.pojo.vo.EchartsVo;
import com.biutag.supervision.pojo.vo.OrganizeProblemRankVo;
import com.biutag.supervision.pojo.vo.RightsComfortMapVo;
import com.biutag.supervision.service.DataRightsComfortService;
import com.biutag.supervision.service.RpcApplyService;
import com.biutag.supervision.util.CompletableUtils.CompletableFutureUtil;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@ -21,6 +22,8 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
/**
* 维权抚慰大屏相关
@ -35,98 +38,61 @@ public class DataVRightsComfortController {
private final DataRightsComfortService dataRightsComfortService;
private final RpcApplyService rpcApplyService;
private final RpcApplyMapper rpcApplyMapper;
@GetMapping
public Result<DataRightsComfortModel> rightsComfort(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime, @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
// DataRightsComfortModel result = new DataRightsComfortModel();
// 维权案件总数
// 受侵害人数
// 抚慰人数
// result.setComfortPersonNumber(dataRightsComfortService.countComfortPersonNumber(beginTime, endTime));
// 打击处理人数
// result.setHitPersonNumber(dataRightsComfortService.countHitPersonNumber(beginTime, endTime));
// 抚慰金额(万元)
// result.setComfortMoney(dataRightsComfortService.countComfortMoney(beginTime, endTime));
// 维权案件情况
// 案件类别占比
// 打处情况
// result.setPunishmentSituation(dataRightsComfortService.selectPunishmentSituation(beginTime, endTime));
// 抚慰情况
// result.setComfortSituation(dataRightsComfortService.selectComfortSituation(beginTime, endTime));
// 民辅警受伤情况
// 发案情况占比
// return Result.success(result);
return null;
}
// region 左边
// 维权案件和抚慰金情况
@GetMapping("/getRightsAndComfortRank")
public Result<JSONObject> getRightsAndComfortRank(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
List<OrganizeProblemRankVo> fxsjRightsRankList = rpcApplyMapper.getRightsRank(beginTime, endTime, 3);; // 分县市局维权排名
List<OrganizeProblemRankVo> jsdwRightsRankList = rpcApplyMapper.getRightsRank(beginTime, endTime, 4);; // 分县市局维权排名
JSONObject data = new JSONObject()
.fluentPut("fxsjRightsRankList", fxsjRightsRankList)
.fluentPut("jsdwRightsRankList", jsdwRightsRankList);
return Result.success(data);
}
// 案件类别占比
@GetMapping("/getCaseTypeRate")
public Result<JSONObject> getCaseTypeRate(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
return null;
}
// endregion
// region 中间
// 抚慰大屏中央总览数据
@GetMapping("/getALlComfortCount")
public Result<JSONObject> getALlComfortCount(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
Integer comfortTotal = dataRightsComfortService.countComfortPersonNumber(beginTime, endTime); // 抚慰人数
Integer hitTotal = dataRightsComfortService.countHitPersonNumber(beginTime, endTime); // 打击处理人数
Double comfortMoney = dataRightsComfortService.countComfortMoney(beginTime, endTime); // 抚慰金额
ComfortCountVO comfortOverview = new ComfortCountVO();
comfortOverview.setComfortTotal(comfortTotal);
comfortOverview.setHitTotal(hitTotal);
comfortOverview.setComfortMoney(comfortMoney);
comfortOverview.setComfortCaseTotal(0);
comfortOverview.setHurtTotal(0);
JSONObject data = new JSONObject().fluentPut("comfortOverview", comfortOverview);
return Result.success(data);
}
// 地图图标数据
@GetMapping("/getComfortMapIcon")
@Cacheable(cacheNames = "Supervision:Screen:ComfortMap", key = "#beginTime.getTime()+'_'+#endTime.getTime()")
public Result<JSONObject> getComfortMapIcon(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
List<RightsComfortMapVo> comfortMapVoList = dataRightsComfortService.getComfortMapIcon(beginTime, endTime);
JSONObject jsonObject = new JSONObject();
jsonObject.fluentPut("comfortMapVoList", comfortMapVoList);
return Result.success(jsonObject);
}
// 打处情况
@GetMapping("/getPunishmentSituation")
public Result<JSONObject> getPunishmentSituation(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
List<PieItem> punishmentSituationList = dataRightsComfortService.selectPunishmentSituation(beginTime, endTime);
JSONObject data = new JSONObject().fluentPut("punishmentSituationList", punishmentSituationList);
return Result.success(data);
public Result<DataRightsComfortModel> rightsComfort(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
DataRightsComfortModel result = new DataRightsComfortModel();
// 异步
Date finalEndTime = DateUtil.endOfDay(endTime);
CompletableFuture.allOf(
CompletableFutureUtil.runSyncObject(() -> {
List<RpcApply> list = rpcApplyService.list(new LambdaQueryWrapper<RpcApply>()
.between(RpcApply::getCrtTime, beginTime, finalEndTime)
.eq(RpcApply::getType, RpcApplyTypeEnum.RIGHTS_PROTECTION.getValue()));
Set<String> caseNumbers = list.stream().map(RpcApply::getCaseNumber).collect(Collectors.toSet());
// 维权案件总数
result.setRightsNumber(caseNumbers.size());
// 受侵害人数
result.setVictimNumber(list.size());
// 打击处理人数
result.setHitPersonNumber(list.size() + 1);
Map<String, List<RpcApply>> collect = list.stream().collect(Collectors.groupingBy(RpcApply::getInfringerHandle));
// 打处情况
result.setPunishmentSituation(collect.keySet().stream().map(name -> {
return new PieItem(name, collect.get(name).size());
}).toList());
}),
CompletableFutureUtil.runSyncObject(() -> {
// 抚慰人数
result.setComfortPersonNumber(rpcApplyService.count(beginTime, finalEndTime, RpcApplyTypeEnum.COMFORT.getValue()));
}),
CompletableFutureUtil.runSyncObject(() -> {
// 抚慰金额(万元)
result.setComfortMoney(dataRightsComfortService.countComfortMoney(beginTime, finalEndTime));
}),
CompletableFutureUtil.runSyncObject(() -> {
// 抚慰金额情况 - 分县市局
result.setCountyComfortMoneyBarList(rpcApplyMapper.selectComfortMoneyBarList(beginTime, finalEndTime, 3));
}),
CompletableFutureUtil.runSyncObject(() -> {
// 抚慰金额情况 - 局属单位
result.setBureauComfortMoneyBarList(rpcApplyMapper.selectComfortMoneyBarList(beginTime, finalEndTime, 4));
}),
CompletableFutureUtil.runSyncObject(() -> {
// 民辅警受伤情况
result.setComfortPoliceInjurySituation(rpcApplyMapper.selectComfortPoliceInjurySituation(beginTime, finalEndTime));
}),
CompletableFutureUtil.runSyncObject(() -> {
// 民辅警受伤类别
result.setComfortInjuryCategory(rpcApplyMapper.selectComfortInjuryCategory(beginTime, finalEndTime));
})
).join();
return Result.success(result);
}
// 抚慰情况
@ -170,6 +136,6 @@ public class DataVRightsComfortController {
.fluentPut("incidentOrgList", incidentOrgList);
return Result.success(data);
}
// endregion
}

57
src/main/java/com/biutag/supervision/controller/datav/DataVSupervisionNotifyController.java

@ -1,17 +1,25 @@
package com.biutag.supervision.controller.datav;
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.InspectCaseEnum;
import com.biutag.supervision.constants.enums.ProblemSourcesEnum;
import com.biutag.supervision.constants.enums.ProcessingStatusEnum;
import com.biutag.supervision.mapper.NegativeMapper;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.entity.NegativeBlame;
import com.biutag.supervision.pojo.entity.News;
import com.biutag.supervision.pojo.vo.*;
import com.biutag.supervision.service.NegativeBlameService;
import com.biutag.supervision.service.NewsService;
import com.biutag.supervision.util.CompletableUtils.CompletableFutureUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@ -20,9 +28,9 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import static com.biutag.supervision.constants.WorkDynamicConstants.DCGZDT;
import static com.biutag.supervision.constants.WorkDynamicConstants.SJGZDT;
import static com.biutag.supervision.constants.enums.ProblemSourcesEnum.XCDC;
import static com.biutag.supervision.constants.enums.ProblemSourcesEnum.ZXDC;
@ -40,6 +48,7 @@ public class DataVSupervisionNotifyController {
private final NegativeMapper negativeMapper;
private final NewsService newsService;
private final NegativeBlameService negativeBlameService;
// region 左边
@ -78,14 +87,10 @@ public class DataVSupervisionNotifyController {
public Result<JSONObject> getProblemTypeRate(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
List<EchartsVo> wtlxList = negativeMapper.getProblemTypeRatio(beginTime, endTime);
// List<EchartsVo> wtlxList = dataSupervisionNotifyService.getProblemTypeRatio(beginTime, endTime);
JSONObject data = new JSONObject().fluentPut("wtlxList", wtlxList);
return Result.success(data);
}
// endregion
// region 中间
/**
* 获取现场督察大屏中央总览
@ -96,11 +101,38 @@ public class DataVSupervisionNotifyController {
*/
@Operation(summary = "中央总览数据")
@GetMapping("/getSupervisionNotifyCount")
public Result<JSONObject> getSupervisionNotifyCount(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
public Result<SupervisionNotifyOverView> getSupervisionNotifyCount(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
SupervisionNotifyOverView overview = negativeMapper.getAllSupervisionNotifyCount(beginTime, endTime);
JSONObject data = new JSONObject().fluentPut("overview", overview);
return Result.success(data);
endTime = DateUtil.endOfDay(endTime);
List<Negative> negatives = negativeMapper.selectList(new LambdaQueryWrapper<Negative>().between(Negative::getCrtTime, beginTime, endTime)
.in(Negative::getProblemSourcesCode, List.of(ProblemSourcesEnum.XCDC.getValue(), ProblemSourcesEnum.LMGZ.getValue(), ProblemSourcesEnum.ZXDC.getValue(), ProblemSourcesEnum.SPDC.getValue())));
SupervisionNotifyOverView overView = new SupervisionNotifyOverView();
List<String> negativeIds = negatives.stream().filter(item -> InspectCaseEnum.isItTure(item.getCheckStatus())).map(Negative::getId).toList();
overView.setProblemNumber(negatives.size());
overView.setCompletedNumber(negatives.stream().filter(item -> ProcessingStatusEnum.completed.name().equals(item.getProcessingStatus())).count());
overView.setProcessingNumber(negatives.size() - overView.getCompletedNumber());
// 办结率
overView.setCompletedRate(overView.getProblemNumber() == 0 ? 0: NumberUtil.roundHalfEven(NumberUtil.mul(NumberUtil.div(overView.getCompletedNumber(), overView.getProblemNumber()), 100), 0).doubleValue());
CompletableFuture.allOf(
CompletableFutureUtil.runSyncObject(() -> {
long personNumber = negativeIds.isEmpty() ? 0 : negativeBlameService.count(new LambdaQueryWrapper<NegativeBlame>().in(NegativeBlame::getNegativeId, negativeIds)
.eq(NegativeBlame::getType, "personal")
.ne(NegativeBlame::getHandleResultName, "不予追责")
.isNotNull(NegativeBlame::getHandleResultName)
.ne(NegativeBlame::getHandleResultName, ""));
overView.setPersonNumber(personNumber);
}),
CompletableFutureUtil.runSyncObject(() -> {
long departNumber = negativeIds.isEmpty() ? 0 : negativeBlameService.count(new LambdaQueryWrapper<NegativeBlame>().in(NegativeBlame::getNegativeId, negativeIds)
.eq(NegativeBlame::getType, "department")
.ne(NegativeBlame::getHandleResultName, "不予追责")
.isNotNull(NegativeBlame::getHandleResultName)
.ne(NegativeBlame::getHandleResultName, ""));
overView.setDepartNumber(departNumber);
})
).join();
return Result.success(overView);
}
/**
@ -108,11 +140,10 @@ public class DataVSupervisionNotifyController {
*
* @param beginTime 开始时间
* @param endTime 结束时间
* @return List<SuperviseMapIconVo>
*/
@Operation(summary = "地图Icon数据")
@GetMapping("/getSupervisionNotifyMap")
@Cacheable(cacheNames = "Supervision:Screen:SupervisionNotifyMap", key = "#beginTime.getTime()+'_'+#endTime.getTime()")
public Result<JSONObject> getSupervisionNotifyMap(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
//地图数据
@ -180,8 +211,6 @@ public class DataVSupervisionNotifyController {
return Result.success(newsList);
}
// endregion
}

10
src/main/java/com/biutag/supervision/controller/datav/DataVVideoSuperviseController.java

@ -1,5 +1,6 @@
package com.biutag.supervision.controller.datav;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.biutag.supervision.mapper.NegativeMapper;
import com.biutag.supervision.mapper.WvpDeviceChannelMapper;
@ -9,7 +10,6 @@ import com.biutag.supervision.pojo.vo.EchartsVo;
import com.biutag.supervision.pojo.vo.OrganizeProblemRankVo;
import com.biutag.supervision.pojo.vo.VideoSuperviseCountVo;
import com.biutag.supervision.pojo.vo.VideoSuperviseMapIconVo;
import com.biutag.supervision.service.VideoSuperviseService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
@ -38,7 +38,6 @@ import static com.biutag.supervision.constants.enums.ProblemSourcesEnum.SPDC;
@RequestMapping("datav/videoSupervise")
public class DataVVideoSuperviseController {
private final VideoSuperviseService videoSuperviseService;
private final NegativeMapper negativeMapper;
private final WvpDeviceChannelMapper wvpDeviceChannelMapper;
@ -83,6 +82,7 @@ public class DataVVideoSuperviseController {
@GetMapping("/getVideoSuperviseProblemRank")
public Result<JSONObject> getVideoSuperviseProblemRank(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
endTime = DateUtil.endOfDay(endTime);
List<OrganizeProblemRankVo> fxsjVideoSuperviseProblemRankList = negativeMapper.getVideoSuperviseProblemRank(beginTime, endTime, 3);
List<OrganizeProblemRankVo> jsdwVideoSuperviseProblemRankList = negativeMapper.getVideoSuperviseProblemRank(beginTime, endTime, 4);
JSONObject data = new JSONObject();
@ -107,7 +107,6 @@ public class DataVVideoSuperviseController {
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
// 获取视频督察中央数据
VideoSuperviseCountVo overview = negativeMapper.getAllVideoSuperviseCount(beginTime, endTime);
// VideoSuperviseCountVo overview = videoSuperviseService.getAllVideoSuperviseCount(beginTime, endTime);
JSONObject data = new JSONObject().fluentPut("overview", overview);
return Result.success(data);
}
@ -121,10 +120,8 @@ public class DataVVideoSuperviseController {
*/
@Operation(summary = "地图Icon数据")
@GetMapping("/getVideoSuperviseMap")
@Cacheable(cacheNames = "Supervision:Screen:VideoSuperviseMap", key = "#beginTime.getTime()+'_'+#endTime.getTime()")
public Result<JSONObject> getVideoSuperviseMap(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
// 地图数据
List<VideoSuperviseMapIconVo> videoSuperviseMapIconVoList = Optional.ofNullable(negativeMapper.getVideoSuperviseMapIconInfo(beginTime, endTime)).
orElseGet(ArrayList::new);
@ -155,8 +152,5 @@ public class DataVVideoSuperviseController {
return Result.success(jsonObject);
}
// endregion
}

51
src/main/java/com/biutag/supervision/controller/mobileSupervision/InspectionController.java

@ -1,14 +1,28 @@
package com.biutag.supervision.controller.mobileSupervision;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.dto.TaskInspectionDto;
import com.biutag.supervision.pojo.dto.TaskProblemDto;
import com.biutag.supervision.pojo.dto.TaskInspectionProblemQueryParam;
import com.biutag.supervision.pojo.entity.SupTaskInspection;
import com.biutag.supervision.pojo.entity.SupTaskProblem;
import com.biutag.supervision.pojo.param.TaskInspectionQueryParam;
import com.biutag.supervision.pojo.vo.FileVo;
import com.biutag.supervision.pojo.vo.TaskInspectionProblemVo;
import com.biutag.supervision.pojo.vo.TaskInspectionVo;
import com.biutag.supervision.service.SupTaskProblemService;
import com.biutag.supervision.service.SupTaskInspectionService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author wxc
* @date 2025/4/9
@ -20,6 +34,8 @@ public class InspectionController {
private final SupTaskInspectionService taskInspectionService;
private final SupTaskProblemService taskProblemService;
@GetMapping
public Result<Page<TaskInspectionVo>> page(TaskInspectionQueryParam queryParam) {
return Result.success(taskInspectionService.page(queryParam));
@ -30,5 +46,40 @@ public class InspectionController {
return Result.success(taskInspectionService.save(dto));
}
@GetMapping("{taskId}")
public Result<SupTaskInspection> get(@PathVariable Integer taskId) {
return Result.success(taskInspectionService.getById(taskId));
}
@GetMapping("{taskId}/problem")
public Result<Page<TaskInspectionProblemVo>> listProblem(@PathVariable Integer taskId, TaskInspectionProblemQueryParam queryParam) {
LambdaQueryWrapper<SupTaskProblem> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SupTaskProblem::getTaskId, taskId)
.orderByDesc(SupTaskProblem::getCreateTime);
Page<SupTaskProblem> page = taskProblemService.page(Page.of(queryParam.getCurrent(), queryParam.getSize()), queryWrapper);
List<TaskInspectionProblemVo> records = page.getRecords().stream().map(item -> {
TaskInspectionProblemVo vo = new TaskInspectionProblemVo();
BeanUtils.copyProperties(item, vo);
if (StrUtil.isNotBlank(item.getPeoples())) {
vo.setPeoples(JSON.parseArray(item.getPeoples(), TaskProblemDto.People.class));
}
if (StrUtil.isNotBlank(item.getFiles())) {
vo.setFiles(JSON.parseArray(item.getFiles(), FileVo.class));
}
return vo;
}).toList();
return Result.success(new Page<TaskInspectionProblemVo>().setRecords(records).setTotal(page.getTotal()));
}
@PostMapping("{taskId}/sign")
public Result<Void> sign(@PathVariable Integer taskId) {
taskInspectionService.update(new LambdaUpdateWrapper<SupTaskInspection>().eq(SupTaskInspection::getTaskId, taskId).set(SupTaskInspection::getHasSign, true));
return Result.success();
}
@PostMapping("{taskId}/problem")
public Result<Boolean> addProblem(@PathVariable Integer taskId, @RequestBody TaskProblemDto dto) {
dto.setTaskId(taskId);
return Result.success(taskProblemService.save(dto));
}
}

54
src/main/java/com/biutag/supervision/controller/mobileSupervision/PhotoController.java

@ -0,0 +1,54 @@
package com.biutag.supervision.controller.mobileSupervision;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervision.common.UserContextHolder;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.entity.SupPhoto;
import com.biutag.supervision.pojo.model.UserAuth;
import com.biutag.supervision.pojo.vo.PhotoGroupVo;
import com.biutag.supervision.service.SupPhotoService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author wxc
* @date 2025/4/20
*/
@RequestMapping("photo")
@RequiredArgsConstructor
@RestController
public class PhotoController {
private final SupPhotoService photoService;
@GetMapping
public Result<List<PhotoGroupVo>> list() {
UserAuth user = UserContextHolder.getCurrentUser();
List<SupPhoto> list = photoService.list(new LambdaQueryWrapper<SupPhoto>().eq(SupPhoto::getCreateUsername, user.getUserName()).orderByDesc(SupPhoto::getCreateTime));
Map<String, List<SupPhoto>> collect = list.stream().collect(Collectors.groupingBy(SupPhoto::getDate));
List<PhotoGroupVo> result = collect.keySet().stream().sorted(Comparator.reverseOrder()).map(date -> {
PhotoGroupVo vo = new PhotoGroupVo();
vo.setDate(date);
vo.setPhotos(collect.get(date));
return vo;
}).toList();
return Result.success(result);
}
@PostMapping
public Result<Boolean> add(@RequestBody SupPhoto photo) {
photo.setCreateTime(LocalDateTime.now());
photo.setDate(LocalDate.now().toString());
UserAuth user = UserContextHolder.getCurrentUser();
photo.setCreateUsername(user.getUserName());
return Result.success(photoService.save(photo));
}
}

47
src/main/java/com/biutag/supervision/controller/mobileSupervision/SelfexaminationController.java

@ -0,0 +1,47 @@
package com.biutag.supervision.controller.mobileSupervision;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.dto.TaskSelfexaminationDto;
import com.biutag.supervision.pojo.entity.SupTaskSelfexamination;
import com.biutag.supervision.pojo.param.TaskInspectionQueryParam;
import com.biutag.supervision.pojo.vo.TaskSelfexaminationDetailVo;
import com.biutag.supervision.pojo.vo.TaskSelfexaminationVo;
import com.biutag.supervision.service.SupTaskSelfexaminationService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
/**
* @author wxc
* @date 2025/4/30
*/
@RequiredArgsConstructor
@RestController
@RequestMapping("task/selfexamination")
public class SelfexaminationController {
private final SupTaskSelfexaminationService taskSelfexaminationService;
@GetMapping
public Result<Page<TaskSelfexaminationVo>> page(TaskInspectionQueryParam queryParam) {
return Result.success(taskSelfexaminationService.page(queryParam));
}
@GetMapping("{taskId}")
public Result<TaskSelfexaminationDetailVo> get(@PathVariable Integer taskId) {
return Result.success(taskSelfexaminationService.get(taskId));
}
@PostMapping
public Result<Boolean> add(@RequestBody TaskSelfexaminationDto dto) {
return Result.success(taskSelfexaminationService.save(dto));
}
@PostMapping("{taskId}/sign")
public Result<Void> sign(@PathVariable Integer taskId) {
taskSelfexaminationService.update(new LambdaUpdateWrapper<SupTaskSelfexamination>().eq(SupTaskSelfexamination::getTaskId, taskId).set(SupTaskSelfexamination::getHasSign, true));
return Result.success();
}
}

43
src/main/java/com/biutag/supervision/controller/mobileSupervision/TaskController.java

@ -0,0 +1,43 @@
package com.biutag.supervision.controller.mobileSupervision;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.constants.enums.TaskStatusEnum;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.entity.SupTask;
import com.biutag.supervision.pojo.vo.TaskCountVo;
import com.biutag.supervision.pojo.vo.TaskVo;
import com.biutag.supervision.pojo.param.TaskQueryParam;
import com.biutag.supervision.service.SupTaskService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
/**
* @author wxc
* @date 2025/4/11
*/
@RequiredArgsConstructor
@RequestMapping("task")
@RestController
public class TaskController {
private final SupTaskService taskService;
@GetMapping
public Result<Page<TaskVo>> myTodo(TaskQueryParam queryParam) {
return Result.success(taskService.pageTask(queryParam));
}
@GetMapping("count")
public Result<TaskCountVo> count() {
return Result.success(taskService.getTaskCount());
}
@PostMapping("{taskId}/submit")
public Result<Void> submit(@PathVariable String taskId) {
taskService.update(new LambdaUpdateWrapper<SupTask>().eq(SupTask::getId, taskId).set(SupTask::getTaskStatus, TaskStatusEnum.done.name()));
return Result.success();
}
}

40
src/main/java/com/biutag/supervision/controller/mobileSupervision/TaskProblemController.java

@ -0,0 +1,40 @@
package com.biutag.supervision.controller.mobileSupervision;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.entity.SupTaskPerson;
import com.biutag.supervision.pojo.entity.SupTaskProblem;
import com.biutag.supervision.pojo.param.TaskProblemQueryParam;
import com.biutag.supervision.service.SupTaskProblemService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.stream.Collectors;
/**
* @author wxc
* @date 2025/5/7
*/
@RequestMapping("task/problem")
@RequiredArgsConstructor
@RestController
public class TaskProblemController {
private final SupTaskProblemService taskProblemService;
@GetMapping
public Result<Page<SupTaskProblem>> page(TaskProblemQueryParam queryParam) {
Page<SupTaskProblem> page = taskProblemService.page(Page.of(queryParam.getCurrent(), queryParam.getSize()));
page.getRecords().forEach(item -> {
if (StrUtil.isNotBlank(item.getPeoples())) {
item.setPeoples(JSON.parseArray(item.getPeoples(), SupTaskPerson.class).stream().map(SupTaskPerson::getName).collect(Collectors.joining("、")));
}
});
return Result.success(page);
}
}

44
src/main/java/com/biutag/supervision/controller/mobileSupervision/TestingAlcoholController.java

@ -2,17 +2,22 @@ package com.biutag.supervision.controller.mobileSupervision;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.constants.enums.TaskStatusEnum;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.dto.TaskTestingAlcoholDto;
import com.biutag.supervision.pojo.dto.TaskTestingAlcoholPeopleDto;
import com.biutag.supervision.pojo.dto.TestingAlcoholFilter;
import com.biutag.supervision.pojo.entity.SupPolice;
import com.biutag.supervision.pojo.entity.SupTask;
import com.biutag.supervision.pojo.entity.SupTaskTestingAlcoholPeople;
import com.biutag.supervision.pojo.param.TaskTestingAlcoholPeopleQueryParam;
import com.biutag.supervision.pojo.param.TaskTestingAlcoholQueryParam;
import com.biutag.supervision.pojo.vo.TaskCountVo;
import com.biutag.supervision.pojo.vo.TaskTestingAlcoholPeopleVo;
import com.biutag.supervision.pojo.vo.TaskTestingAlcoholVo;
import com.biutag.supervision.service.SupDepartService;
import com.biutag.supervision.service.SupPoliceService;
import com.biutag.supervision.service.SupTaskTestingAlcoholService;
import com.biutag.supervision.service.*;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
@ -33,6 +38,8 @@ public class TestingAlcoholController {
private final SupDepartService departService;
private final SupTaskTestingAlcoholPeopleService testingAlcoholPeopleService;
@GetMapping
public Result<Page<TaskTestingAlcoholVo>> page(TaskTestingAlcoholQueryParam queryParam) {
return Result.success(taskTestingAlcoholService.page(queryParam));
@ -41,9 +48,11 @@ public class TestingAlcoholController {
@GetMapping("getPersonNumber")
public Result<List<SupTaskTestingAlcoholPeople>> getPersonNumber(TestingAlcoholFilter condition) {
List<String> departIds = departService.getAllNodeIds(condition.getDepartId());
List<SupTaskTestingAlcoholPeople> polices = policeService.list(new LambdaQueryWrapper<SupPolice>().in(SupPolice::getOrgId, departIds)
.in(CollectionUtil.isNotEmpty(condition.getPersonType()), SupPolice::getPersonType, condition.getPersonType())
.in(CollectionUtil.isNotEmpty(condition.getPosition()), SupPolice::getPosition, condition.getPosition()))
List<SupTaskTestingAlcoholPeople> polices = policeService.list(new LambdaQueryWrapper<SupPolice>()
.in(SupPolice::getOrgId, departIds)
.isNotNull(SupPolice::getEmpNo)
.in(CollectionUtil.isNotEmpty(condition.getPersonType()), SupPolice::getPersonType, condition.getPersonType())
.in(CollectionUtil.isNotEmpty(condition.getPosition()), SupPolice::getPosition, condition.getPosition()))
.stream().map(item -> {
SupTaskTestingAlcoholPeople people = new SupTaskTestingAlcoholPeople();
people.setName(item.getName());
@ -55,14 +64,29 @@ public class TestingAlcoholController {
return Result.success(polices);
}
@GetMapping("{taskId}/people")
public Result<Page<TaskTestingAlcoholPeopleVo>> page(@PathVariable String taskId, TaskTestingAlcoholPeopleQueryParam queryParam) {
return Result.success(testingAlcoholPeopleService.page(taskId, queryParam));
}
@GetMapping("{taskId}/people/count")
public Result<TaskCountVo> count(@PathVariable String taskId) {
long todoCount = testingAlcoholPeopleService.count(new LambdaQueryWrapper<SupTaskTestingAlcoholPeople>().eq(SupTaskTestingAlcoholPeople::getTaskId, taskId).eq(SupTaskTestingAlcoholPeople::getStatus, TaskStatusEnum.todo.name()));
long doneCount = testingAlcoholPeopleService.count(new LambdaQueryWrapper<SupTaskTestingAlcoholPeople>().eq(SupTaskTestingAlcoholPeople::getTaskId, taskId).eq(SupTaskTestingAlcoholPeople::getStatus, TaskStatusEnum.done.name()));
return Result.success(new TaskCountVo(todoCount, doneCount));
}
@PutMapping("{taskId}/people")
public Result<Boolean> update(@PathVariable String taskId, @RequestBody TaskTestingAlcoholPeopleDto dto) {
dto.setTaskId(taskId);
return Result.success(testingAlcoholPeopleService.update(dto));
}
@PostMapping
public Result<Boolean> add(@RequestBody TaskTestingAlcoholDto dto) {
return Result.success(taskTestingAlcoholService.save(dto));
}
@PostMapping("genPeople")
public Result<List<SupTaskTestingAlcoholPeople>> genPeople(@RequestBody TaskTestingAlcoholDto dto) {
return Result.success();
}
}

2
src/main/java/com/biutag/supervision/controller/rightsComfort/RightPersonController.java

@ -63,7 +63,7 @@ public class RightPersonController {
@PutMapping
public Result<Void> update(@RequestBody RpcRightPerson rpcRightPerson) {
rpcRightPersonService.save(rpcRightPerson);
rpcRightPersonService.updateById(rpcRightPerson);
return Result.success();
}

4
src/main/java/com/biutag/supervision/controller/sensitiveperception/ProfileDepartController.java

@ -137,7 +137,7 @@ public class ProfileDepartController {
profileDepart.setPoliceBarList(policeBarList);
List<BarItem> problemTypeList = profileDepartMapper.selectProblemType(departId, beginTime, endTime);
int max = problemTypeList.stream().mapToInt(BarItem::getValue).max().getAsInt();
int max = problemTypeList.stream().mapToInt(item -> item.getValue().intValue()).max().getAsInt();
List<ProfileDepart.RadarIndicatorItem> problemTypeRadarIndicator = problemTypeList.stream().map(item -> {
ProfileDepart.RadarIndicatorItem radarIndicatorItem = new ProfileDepart.RadarIndicatorItem();
radarIndicatorItem.setMax(max);
@ -150,7 +150,7 @@ public class ProfileDepartController {
List<NegativeProblemRelation> negativeProblemRelations = negativeProblemRelationService.list(new LambdaQueryWrapper<NegativeProblemRelation>().in(NegativeProblemRelation::getNegativeId, negativeIds));
Map<String, List<NegativeProblemRelation>> collect = negativeProblemRelations.stream().collect(Collectors.groupingBy(item -> item.getOneLevelContent() + " / " + item.getTwoLevelContent() + " / " + item.getThreeLevelContent()));
List<BarItem> problemTypeBarList = collect.keySet().stream().map(key -> {
return new BarItem(key, collect.get(key).size());
return new BarItem(key, new BigDecimal(collect.get(key).size()));
}).sorted(Comparator.comparing(BarItem::getValue).reversed()).toList();
profileDepart.setProblemTypeBarList(problemTypeBarList);

2
src/main/java/com/biutag/supervision/controller/subdatav/SubOneRightsController.java

@ -40,7 +40,7 @@ public class SubOneRightsController {
public Result<JSONObject> getALlComfortCount(@RequestParam Integer departId,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
Integer comfortTotal = rpcApplyMapper.countSubOneComfortPersonNumber(beginTime, endTime, departId);
Long comfortTotal = rpcApplyMapper.countSubOneComfortPersonNumber(beginTime, endTime, departId);
// Integer comfortTotal = dataRightsComfortService.countComfortPersonNumber(beginTime, endTime); // 抚慰人数
Integer hitTotal = dataRightsComfortService.countSubOneHitPersonNumber(beginTime, endTime, departId); // 打击处理人数
Double comfortMoney = rpcApplyMapper.countSubOneComfortMoney(beginTime, endTime, departId);

2
src/main/java/com/biutag/supervision/controller/subdatav/SubOneSupervisionNotifyController.java

@ -113,11 +113,9 @@ public class SubOneSupervisionNotifyController {
* @param departId 部门id (分县市局ID)
* @param beginTime 开始时间
* @param endTime 结束时间
* @return List<SuperviseMapIconVo>
*/
@Operation(summary = "地图小卡片")
@GetMapping("/getSubOneSupervisionMap")
@Cacheable(cacheNames = "Supervision:Screen:SubOneSupervisionMap", key = "#departId+'_'+#beginTime.getTime() + '_' +#endTime.getTime()")
public Result<JSONObject> getSubOneSupervisionMap(@RequestParam Integer departId,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {

4
src/main/java/com/biutag/supervision/controller/subdatav/SubOneVideoSuperviseController.java

@ -1,5 +1,6 @@
package com.biutag.supervision.controller.subdatav;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.biutag.supervision.mapper.NegativeMapper;
import com.biutag.supervision.pojo.Result;
@ -78,7 +79,7 @@ public class SubOneVideoSuperviseController {
public Result<JSONObject> getSubOneAllVideoSuperviseCount(@RequestParam Integer departId,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
VideoSuperviseCountVo overview = subOneVideoSuperviseService.getSubOneAllVideoSuperviseCount(beginTime, endTime, departId);
VideoSuperviseCountVo overview = subOneVideoSuperviseService.getSubOneAllVideoSuperviseCount(beginTime, DateUtil.endOfDay(endTime), departId);
JSONObject data = new JSONObject().fluentPut("overview", overview);
return Result.success(data);
}
@ -94,7 +95,6 @@ public class SubOneVideoSuperviseController {
*/
@Operation(summary = "地图Icon数据")
@GetMapping("/getSubOneVideoSuperviseMap")
@Cacheable(cacheNames = "Supervision:Screen:SubOneVideoSuperviseMap", key = "#departId+'_'+#beginTime.getTime() + '_' +#endTime.getTime()")
public Result<JSONObject> getSubOneVideoSuperviseMap(@RequestParam Integer departId,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {

1
src/main/java/com/biutag/supervision/controller/system/PoliceController.java

@ -119,6 +119,7 @@ public class PoliceController {
.set(SupPolice::getPoliceRole, police.getPoliceRole())
.set(SupPolice::getMobile, police.getMobile())
.set(SupPolice::getEmploymentDate, police.getEmploymentDate())
.set(SupPolice::getAvatarUrl, police.getAvatarUrl())
.set(SupPolice::getUpdatedAt, DateUtil.format(new Date(), DatePattern.NORM_DATETIME_FORMAT));
return Result.success(policeService.update(updateWrapper));
}

21
src/main/java/com/biutag/supervision/controller/system/UserController.java

@ -1,12 +1,19 @@
package com.biutag.supervision.controller.system;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.dto.UserDto;
import com.biutag.supervision.pojo.dto.UserPasswordDto;
import com.biutag.supervision.pojo.entity.BaseAccount;
import com.biutag.supervision.pojo.model.UserModel;
import com.biutag.supervision.pojo.param.UserQueryParam;
import com.biutag.supervision.service.BaseAccountService;
import com.biutag.supervision.service.BaseUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.security.crypto.bcrypt.BCrypt;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.web.bind.annotation.*;
@RequiredArgsConstructor
@ -16,6 +23,8 @@ public class UserController {
private final BaseUserService baseUserService;
private final BaseAccountService accountService;
@GetMapping
public Result<Page<UserModel>> list(UserQueryParam queryParam) {
Page<UserModel> baseUserPage = baseUserService.page(queryParam);
@ -32,4 +41,16 @@ public class UserController {
return Result.success(baseUserService.update(userDto));
}
@PutMapping("password")
public Result<Boolean> updatePsd(@RequestBody UserPasswordDto userPasswordDto) {
BaseAccount baseAccount = accountService.getByAccount(userPasswordDto.getAccount());
if (!BCrypt.checkpw(userPasswordDto.getPassword(), baseAccount.getPassword())) {
throw new RuntimeException("密码错误!");
}
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
String passwordEncoder = encoder.encode(userPasswordDto.getNewPassword());
accountService.update(new LambdaUpdateWrapper<BaseAccount>().eq(BaseAccount::getAccount, userPasswordDto.getAccount()).set(BaseAccount::getPassword, passwordEncoder));
return Result.success();
}
}

1
src/main/java/com/biutag/supervision/controller/system/VideoConfigController.java

@ -40,6 +40,7 @@ public class VideoConfigController {
public Result<Page<VideoConfig>> list(VideoConfigQueryParam queryParam) {
LambdaQueryWrapper<VideoConfig> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(StrUtil.isNotBlank(queryParam.getDepartId()), VideoConfig::getDepartId, queryParam.getDepartId())
.orderByAsc(VideoConfig::getDepartId)
.orderByDesc(VideoConfig::getCreateTime);
return Result.success(videoConfigService.page(Page.of(queryParam.getCurrent(), queryParam.getSize()), queryWrapper));
}

3
src/main/java/com/biutag/supervision/controller/work/NegativeController.java

@ -120,7 +120,6 @@ public class NegativeController {
.set(Negative::getProblemSources, negativeDto.getProblemSources())
.set(Negative::getProblemSourcesCode, negativeDto.getProblemSourcesCode())
.set(Negative::getBusinessTypeCode, negativeDto.getBusinessTypeCode())
.set(Negative::getBusinessTypeName, negativeDto.getBusinessTypeName())
.set(Negative::getCaseNumber, negativeDto.getCaseNumber())
.set(Negative::getInvolveProblem, JSON.toJSONString(negativeDto.getInvolveProblem()))
.set(Negative::getPoliceType, negativeDto.getPoliceType())
@ -142,6 +141,8 @@ public class NegativeController {
updateWrapper.set(Negative::getInvolveProblem, null);
}
negativeService.update(updateWrapper);
// 更新问题来源
negativeWorkService.update(new LambdaUpdateWrapper<NegativeWork>().set(NegativeWork::getProblemSourcesCode, negativeDto.getProblemSourcesCode()).eq(NegativeWork::getNegativeId, negativeDto.getId()));
return Result.success();
}

2
src/main/java/com/biutag/supervision/controller/work/NegativeImportController.java

@ -125,10 +125,8 @@ public class NegativeImportController {
BusinessTypeEnum businessTypeEnum = BusinessTypeEnum.getByLabel(item.getBusinessTypeName());
if (businessTypeEnum != null) {
negativeDto.setBusinessTypeCode(businessTypeEnum.getValue());
negativeDto.setBusinessTypeName(businessTypeEnum.getLabel());
} else {
negativeDto.setBusinessTypeCode(BusinessTypeEnum.QT.getValue());
negativeDto.setBusinessTypeName(BusinessTypeEnum.QT.getLabel());
}
ProblemSourcesEnum problemSourcesEnum = ProblemSourcesEnum.getByLabel(item.getProblemSources());
if (problemSourcesEnum != null) {

1
src/main/java/com/biutag/supervision/controller/work/NegativeTaskController.java

@ -1,6 +1,5 @@
package com.biutag.supervision.controller.work;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.EasyExcel;

11
src/main/java/com/biutag/supervision/job/DepartJob.java

@ -40,17 +40,6 @@ public class DepartJob {
private final NegativeService negativeService;
@Async
public void updateDepartPath() {
List<SupDepart> departs = departService.list();
departs.forEach(item -> {
String pathTrace = departService.getPathTrace(item);
if (!pathTrace.equals(item.getPathTrace())) {
departService.update(new LambdaUpdateWrapper<SupDepart>().eq(SupDepart::getId, item.getId()).set(SupDepart::getPathTrace, pathTrace));
}
});
}
/**
* 每天更新一次

51
src/main/java/com/biutag/supervision/job/Job.java

@ -1,26 +1,15 @@
package com.biutag.supervision.job;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.NumberUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.biutag.supervision.constants.enums.BusinessTypeEnum;
import com.biutag.supervision.constants.enums.InspectCaseEnum;
import com.biutag.supervision.constants.enums.ProblemSourcesEnum;
import com.biutag.supervision.constants.enums.ProcessingStatusEnum;
import com.biutag.supervision.mapper.MailBlameMapper;
import com.biutag.supervision.mapper.MailMapper;
import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.entity.NegativeBlame;
import com.biutag.supervision.pojo.entity.SupDepart;
import com.biutag.supervision.pojo.entity.SupPolice;
import com.biutag.supervision.pojo.entity.mailbox.Mail;
import com.biutag.supervision.pojo.entity.mailbox.MailBlame;
import com.biutag.supervision.service.*;
import com.biutag.supervision.util.TimeUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@ -29,7 +18,6 @@ import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import static com.biutag.supervision.util.TimeUtil.SECONDS_OF_A_DAY;
@ -40,45 +28,10 @@ public class Job {
private final NegativeService negativeService;
private final SupDepartService departService;
private final BusinessPoliceService businessPoliceService;
private final BusinessDepartService businessDepartService;
private final ModelClueService modelClueService;
// 10分钟
// 更新流程状态
@Scheduled(fixedRate = 600000)
public void updateNegativeProcessingStatus() {
List<Negative> list = negativeService.list(new LambdaQueryWrapper<Negative>().isNull(Negative::getProcessingStatus).isNotNull(Negative::getCheckStatus));
list.forEach(item -> {
negativeService.update(new LambdaUpdateWrapper<Negative>().set(Negative::getProcessingStatus, ProcessingStatusEnum.completed).eq(Negative::getId, item.getId()));
});
}
// 更新办理单位
@Scheduled(fixedRate = 600000)
public void updateHandleDepart() {
List<Negative> list = negativeService.list(new LambdaQueryWrapper<Negative>()
.isNotNull(Negative::getInvolveDepartId)
.isNull(Negative::getHandleThreeDepartId)
.isNull(Negative::getFlowKey));
list.forEach(item -> {
SupDepart depart = departService.getById(item.getInvolveDepartId());
if (depart.getLevel() == 3) {
SupDepart parent = departService.getById(depart.getPid());
negativeService.update(new LambdaUpdateWrapper<Negative>()
.set(Negative::getHandleThreeDepartId, depart.getId())
.set(Negative::getHandleThreeDepartName, depart.getShortName())
.set(Negative::getHandleSecondDepartId, parent.getId())
.set(Negative::getHandleSecondDepartName, parent.getShortName())
.eq(Negative::getId, item.getId()));
}
});
}
// 更新办理超时
@Scheduled(fixedRate = 600000)
public void updateHandleTimeout() {
@ -98,7 +51,7 @@ public class Job {
}
// 每日04:00更新基础数据
// @Scheduled(cron = "0 0 4 * * ?")
@Scheduled(cron = "0 0 4 * * ?")
public void updateBaseData() {
List<Date> happenTime = new ArrayList<>();
Date start = Date.from(LocalDateTime.now().minusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(0).atZone(ZoneId.systemDefault()).toInstant());
@ -139,7 +92,7 @@ public class Job {
// 每天一次 23:30:00
//@Scheduled(cron = "0 30 23 * * ?")
public void rights() {
}

23
src/main/java/com/biutag/supervision/job/ScoreJob.java

@ -1,23 +0,0 @@
package com.biutag.supervision.job;
import com.biutag.supervision.service.*;
import lombok.RequiredArgsConstructor;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
* @author wxc
* @date 2024/11/10
*/
@RequiredArgsConstructor
@Component
public class ScoreJob {
private final NegativeScoreService negativeScoreService;
// @Scheduled(fixedRate = 600000)
public void updateScore() {
}
}

2
src/main/java/com/biutag/supervision/mapper/DataCaseVerifMapper.java

@ -32,7 +32,7 @@ public interface DataCaseVerifMapper extends BaseMapper<DataCaseVerif> {
"FROM negative ng " +
"INNER JOIN negative_problem_relation npr ON ng.id=npr.negativeId " +
"WHERE ng.checkStatus <>3 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.problemSourcesCode IN (17, 18, 19, 20) " +
"AND businessTypeCode = #{businessId} " +
"GROUP BY threeLevelContent ")

51
src/main/java/com/biutag/supervision/mapper/DataPetitionComplaintMapper.java

@ -16,7 +16,6 @@ import java.util.List;
public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComplaint> {
Page<DataPetitionComplaintVo> queryPage(@Param("page") Page<DataPetitionComplaint> page, @Param(Constants.WRAPPER) QueryWrapper<DataPetitionComplaint> queryWrapper);
/**
@ -61,21 +60,19 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"IFNULL(SUM( IF( initial_petition=2, 1, 0) ), 0) AS repeatMail, " +
"IFNULL(SUM( IF(receiving_leader_name is NOT NULL, 1, 0) ), 0) AS leaderMail " +
"FROM data_petition_complaint dpc " +
"LEFT JOIN sup_depart sd on dpc.third_depart_id=sd.id " +
"LEFT JOIN sup_depart sd1 ON sd.pid=sd1.id " +
"WHERE discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"AND sd1.statistics_group_id=#{groupId}; ")
"LEFT JOIN sup_depart sd on dpc.second_depart_id=sd.id " +
"WHERE dpc.create_time BETWEEN #{beginTime} AND #{endTime} " +
"AND sd.statistics_group_id=#{groupId}")
MailFirstAndRepeatOverviewVo getFirstAndRepeatOverview(Date beginTime, Date endTime, Integer groupId);
@Select("SELECT " +
"sd1.short_name AS label, " +
"sd.short_name AS label, " +
"count(*) AS `value` FROM data_petition_complaint dpc " +
"LEFT JOIN sup_depart sd on dpc.third_depart_id=sd.id " +
"LEFT JOIN sup_depart sd1 ON sd.pid=sd1.id " +
"LEFT JOIN sup_depart sd on dpc.second_depart_id=sd.id " +
"WHERE dpc.initial_petition=#{isRepeat} " +
"AND sd1.statistics_group_id=#{groupId} " +
"AND discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd1.short_name " +
"AND sd.statistics_group_id=#{groupId} " +
"AND dpc.create_time BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd.short_name " +
"HAVING label is not NULL " +
"ORDER BY `value` DESC; ")
List<OrganizeProblemRankVo> getMailRank(Date beginTime, Date endTime, Integer groupId, Integer isRepeat);
@ -88,7 +85,7 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"LEFT JOIN sup_depart sd1 ON sd.pid=sd1.id " +
"WHERE dpc.receiving_leader_name is NOT NULL " +
"AND sd1.statistics_group_id=#{groupId} " +
"AND discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"AND dpc.create_time BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd1.short_name " +
"HAVING label is not NULL " +
"ORDER BY `value` DESC; ")
@ -102,7 +99,7 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"FROM data_petition_complaint dpc " +
"LEFT JOIN sup_depart sd on dpc.third_depart_id=sd.id " +
"LEFT JOIN sup_depart sd1 on sd.pid=sd1.id " +
"WHERE discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"WHERE create_time BETWEEN #{beginTime} AND #{endTime} " +
"AND sd1.statistics_group_id=#{groupId}; ")
MailEntanglementMassOverviewVo getEntanglementAndMassOverview(Date beginTime, Date endTime, Integer groupId);
@ -115,7 +112,7 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"LEFT JOIN sup_depart sd1 ON sd.pid=sd1.id " +
"WHERE sd1.statistics_group_id=#{groupId} " +
"AND dpc.entanglement_visits =1 " +
"AND discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"AND create_time BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd1.short_name " +
"HAVING label is not NULL " +
"ORDER BY `value` DESC;")
@ -129,7 +126,7 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"LEFT JOIN sup_depart sd1 ON sd.pid=sd1.id " +
"WHERE sd1.statistics_group_id=#{groupId} " +
"AND dpc.mass_visits =1 " +
"AND discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"AND create_time BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd1.short_name " +
"HAVING label is not NULL " +
"ORDER BY `value` DESC;")
@ -152,7 +149,7 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"COALESCE(SUM(IF(receiving_leader_name IS NOT NULL, 1, 0)), 0) AS leaderMail " +
"FROM data_petition_complaint dpc " +
"LEFT JOIN sup_depart sd on dpc.third_depart_id=sd.id " +
"WHERE discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"WHERE create_time BETWEEN #{beginTime} AND #{endTime} " +
"AND sd.pid=#{departId} " +
"AND sd.statistics_group_id = 10;")
MailFirstAndRepeatOverviewVo getSubOnePoliceFirstAndRepeatOverview(Date beginTime, Date endTime, Integer departId);
@ -163,7 +160,7 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"COALESCE(SUM(IF(receiving_leader_name IS NOT NULL, 1, 0)), 0) AS leaderMail " +
"FROM data_petition_complaint dpc " +
"LEFT JOIN sup_depart sd on dpc.third_depart_id=sd.id " +
"WHERE discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"WHERE create_time BETWEEN #{beginTime} AND #{endTime} " +
"AND sd.pid=#{departId} " +
"AND sd.statistics_group_id != 10;")
MailFirstAndRepeatOverviewVo getTeamFirstAndRepeatOverview(Date beginTime, Date endTime, Integer departId);
@ -177,7 +174,7 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"AND sd.pid = #{departId} " +
"AND sd.statistics_group_id=10 " +
"AND dpc.second_depart_name is not NULL " +
"AND discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"AND create_time BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd.short_name " +
"HAVING label is not NULL " +
"ORDER BY `value` DESC")
@ -192,7 +189,7 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"AND sd.pid = #{departId} " +
"AND sd.statistics_group_id!=10 " +
"AND dpc.second_depart_name is not NULL " +
"AND discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"AND create_time BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd.short_name " +
"HAVING label is not NULL " +
"ORDER BY `value` DESC")
@ -204,7 +201,7 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"WHERE dpc.receiving_leader_name is NOT NULL " +
"AND sd.pid=#{departId} " +
"AND sd.statistics_group_id = 10 " +
"AND discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"AND create_time BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd.short_name " +
"HAVING label is not NULL " +
"ORDER BY `value` DESC; ")
@ -217,7 +214,7 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"WHERE dpc.receiving_leader_name is NOT NULL " +
"AND sd.pid=#{departId} " +
"AND sd.statistics_group_id != 10 " +
"AND discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"AND create_time BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd.short_name " +
"HAVING label is not NULL " +
"ORDER BY `value` DESC; ")
@ -244,7 +241,7 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"COALESCE(SUM(IF(mass_visits=1, 1, 0)), 0) AS mass " +
"FROM data_petition_complaint dpc " +
"LEFT JOIN sup_depart sd on dpc.third_depart_id=sd.id " +
"WHERE discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"WHERE create_time BETWEEN #{beginTime} AND #{endTime} " +
"AND sd.pid=#{departId} " +
"AND sd.statistics_group_id=10;")
MailEntanglementMassOverviewVo getPoliceEntanglementAndMassOverview(Date beginTime, Date endTime, Integer departId);
@ -254,7 +251,7 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"COALESCE(SUM(IF(mass_visits=1, 1, 0)), 0) AS mass " +
"FROM data_petition_complaint dpc " +
"LEFT JOIN sup_depart sd on dpc.third_depart_id=sd.id " +
"WHERE discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"WHERE create_time BETWEEN #{beginTime} AND #{endTime} " +
"AND sd.pid=#{departId} " +
"AND sd.statistics_group_id!=10;")
MailEntanglementMassOverviewVo getTeamEntanglementAndMassOverview(Date beginTime, Date endTime, Integer departId);
@ -267,7 +264,7 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"WHERE sd.statistics_group_id=10 " +
"AND sd.pid=#{departId} " +
"AND dpc.entanglement_visits =1 " +
"AND discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"AND create_time BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd.short_name " +
"HAVING label is not NULL " +
"ORDER BY `value` DESC;")
@ -281,7 +278,7 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"WHERE sd.statistics_group_id!=10 " +
"AND sd.pid=#{departId} " +
"AND dpc.entanglement_visits =1 " +
"AND discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"AND create_time BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd.short_name " +
"HAVING label is not NULL " +
"ORDER BY `value` DESC;")
@ -295,7 +292,7 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"WHERE sd.statistics_group_id=10 " +
"AND dpc.mass_visits =1 " +
"AND sd.pid=#{departId} " +
"AND discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"AND create_time BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd.short_name " +
"HAVING label is not NULL " +
"ORDER BY `value` DESC;")
@ -310,7 +307,7 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"WHERE sd.statistics_group_id!=10 " +
"AND dpc.mass_visits =1 " +
"AND sd.pid=#{departId} " +
"AND discovery_time BETWEEN #{beginTime} AND #{endTime} " +
"AND create_time BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd.short_name " +
"HAVING label is not NULL " +
"ORDER BY `value` DESC;")

374
src/main/java/com/biutag/supervision/mapper/NegativeMapper.java

@ -33,9 +33,8 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"COUNT(DISTINCT ng.id ) AS `value` " +
"FROM negative ng " +
"LEFT JOIN sup_depart sd ON ng.second_involve_depart_id=sd.id " +
"WHERE ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND sd.statistics_group_id=#{groupType} " +
"AND problemSourcesCode IN (2,13,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30) " +
"GROUP BY sd.short_name " +
"ORDER BY `value` DESC; ")
List<OrganizeProblemRankVo> selectOrganizeProblemRank(Integer groupType, Date beginTime, Date endTime);
@ -44,7 +43,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
@Select("SELECT " +
"businessTypeName as name, " +
"count(*) value FROM negative " +
"WHERE discoveryTime BETWEEN #{beginTime} and #{endTime} " +
"WHERE crtTime BETWEEN #{beginTime} and #{endTime} " +
"and checkStatus in (1, 2) " +
"GROUP BY businessTypeName")
List<EchartsVo> selectBusinessRate(Date beginTime, Date endTime);
@ -52,14 +51,13 @@ public interface NegativeMapper extends BaseMapper<Negative> {
// 中央总览
@Select("SELECT " +
"COALESCE(SUM(IF(problemSourcesCode IN (2,13,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30), 1, 0)), 0) AS totalPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (13,15,16), 1, 0)), 0) AS supervisionPro, " +
"count(ng.id) AS totalPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (13,14,15,16), 1, 0)), 0) AS supervisionPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (17,18,19,20), 1, 0)), 0) AS caseVerificationPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (21,22,23,24,25), 1, 0)), 0) AS complaintPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (2), 1, 0)), 0) AS talkPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (27,28,29,30), 1, 0)), 0) AS auditPro " +
// "COALESCE(SUM(IF(problemSourcesCode IN (27,28,29,30), 1, 0)), 0) AS auditPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (2), 1, 0)), 0) AS talkPro " +
"FROM negative ng " +
"WHERE ng.discoveryTime BETWEEN #{beginTime} AND #{endTime}; ")
"WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime}; ")
GlobalOverViewVo getAllGlobalCount(Date beginTime, Date endTime);
@ -68,7 +66,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"sd.short_name AS `name`, " +
"sd.id AS departId, " +
"COUNT( DISTINCT ng.id ) AS totalPro, " +
"SUM( IF(problemSourcesCode IN (13,15,16), 1, 0) ) AS supervisePro, " +
"SUM( IF(problemSourcesCode IN (13,15,16, 14), 1, 0) ) AS supervisePro, " +
"SUM( IF(problemSourcesCode IN (17,18,19,20), 1, 0) ) AS caseVerifyPro, " +
"SUM( IF(problemSourcesCode IN (21,22,23,24,25),1, 0) ) AS mailPro, " +
"SUM( IF(problemSourcesCode IN (2),1, 0) ) AS policePro, " +
@ -76,7 +74,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"FROM sup_depart sd " +
"LEFT JOIN negative ng ON ng.second_involve_depart_id=sd.id " +
"AND problemSourcesCode IN (2,13,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30) " +
"AND ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"WHERE sd.statistics_group_id=3 " +
"GROUP BY sd.short_name " +
"ORDER BY totalPro DESC;")
@ -98,7 +96,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"FROM negative_problem_relation npr INNER JOIN negative ng ON npr.negativeId=ng.id " +
"WHERE npr.threeLevelContent is not NULL " +
"AND checkStatus IN (1, 2) " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY npr.threeLevelContent " +
"ORDER BY `value` desc " +
" LIMIT 10 OFFSET 1 ")
@ -111,14 +109,14 @@ public interface NegativeMapper extends BaseMapper<Negative> {
@Select("SELECT " +
"COUNT(DISTINCT ng.id) AS proTotal, " +
"COUNT( DISTINCT IF(ng.isRectifyCode=0, ng.id, NULL) ) AS changing, " +
"COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL) ) AS changed, " +
"ROUND( COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL) )/COUNT( DISTINCT ng.id )*100, 1) AS correctionRate " +
"COUNT( DISTINCT IF(ng.processing_status in ('signing', 'processing', 'approval'), ng.id, NULL) ) AS processingNumber, " +
"COUNT( DISTINCT IF(ng.processing_status='completed', ng.id, NULL) ) AS completedNumber, " +
"IFNULL(ROUND( COUNT( DISTINCT IF(ng.processing_status='completed', ng.id, NULL) )/COUNT( DISTINCT ng.id )*100, 1), 0) AS completedRate " +
"FROM negative ng " +
"LEFT JOIN sup_depart sd ON ng.second_involve_depart_id=sd.id " +
"WHERE problemSourcesCode IN (13) " +
"AND sd.statistics_group_id=#{groupId} " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime};")
"AND crtTime BETWEEN #{beginTime} AND #{endTime};")
DayTimeSuperviseVo getSupervisionRank(Date beginTime, Date endTime, Integer groupId);
@Select("SELECT " +
@ -126,48 +124,37 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"sd.id AS departId, " +
"COUNT(DISTINCT ng.id) AS denominator, " +
"COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL) ) AS numerator, " +
"ROUND( COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL) )/COUNT( DISTINCT ng.id )*100, 1) AS rate, " +
"ROUND( COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL) )/COUNT( DISTINCT ng.id )*100, 1) AS `value` " +
"ROUND( COUNT( DISTINCT IF(ng.processing_status='completed', ng.id, NULL) )/COUNT( DISTINCT ng.id )*100, 1) AS rate, " +
"ROUND( COUNT( DISTINCT IF(ng.processing_status='completed', ng.id, NULL) )/COUNT( DISTINCT ng.id )*100, 1) AS `value` " +
"FROM negative ng " +
"LEFT JOIN sup_depart sd ON ng.second_involve_depart_id=sd.id " +
"WHERE problemSourcesCode IN (13) " +
"AND sd.statistics_group_id=#{groupId} " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd.short_name " +
"ORDER BY rate desc")
"ORDER BY rate desc, denominator desc")
List<RankVo> getChangedRateRank(Date beginTime, Date endTime, Integer groupId);
@Select("SELECT npr.oneLevelContent as name, count(*) value FROM negative ng, negative_problem_relation npr " +
"WHERE ng.id = npr.negativeId " +
"AND ng.problemSourcesCode in (13, 15) " +
"and ng.checkStatus<>3 " +
"AND ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND oneLevelContent is NOT NULL " +
"GROUP BY oneLevelContent ")
List<EchartsVo> getProblemTypeRatio(Date beginTime, Date endTime);
@Select("SELECT COUNT(DISTINCT c.id) AS problem_number, " +
"COUNT(DISTINCT IF(c.isRectifyCode = 0, c.id, 0)) - 1 AS rectifing_number, " +
"COUNT(DISTINCT IF(c.isRectifyCode = 1, c.id, 0)) - 1 AS rectifed_number, " +
"COUNT(DISTINCT c.involveDepartId) AS depart_number, " +
"COUNT(DISTINCT d.blameIdCode) AS person_number, " +
"ROUND((COUNT(DISTINCT IF(c.isRectifyCode = 1, c.id, 0)) - 1) / COUNT(DISTINCT c.id) * 100, 1) AS rectify_rate " +
"FROM sup_depart b INNER JOIN negative c ON b.id = c.involveDepartId " +
" LEFT JOIN negative_blame d ON c.id = d.negativeId " +
"WHERE discoveryTime BETWEEN #{beginTime} AND #{endTime} AND checkStatus IN ('1', '2') AND problemSourcesCode IN (13, 15)")
RankVoSupTwo getTemp(Date beginTime, Date endTime);
@Select("SELECT " +
"COALESCE(COUNT(DISTINCT ng.id), 0) AS problemNumber, " +
"COALESCE(COUNT(DISTINCT IF(ng.isRectifyCode=0, ng.id, NULL)), 0) AS rectifingNumber, " +
"COALESCE(COUNT(DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL)), 0) AS rectifedNumber, " +
"COALESCE(COUNT(DISTINCT ng.involveDepartId), 0) AS departNumber, " +
"COALESCE(COUNT(DISTINCT nb.blameIdCode), 0) AS personNumber, " +
"COALESCE(ROUND(COUNT(DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL)) / COUNT(DISTINCT ng.id) * 100, 1), 0) AS rectifyRate " +
"COALESCE(COUNT(DISTINCT IF(ng.processing_status in ('signing', 'processing', 'approval'), ng.id, NULL)), 0) AS processingNumber, " +
"COALESCE(COUNT(DISTINCT IF(ng.processing_status='completed', ng.id, NULL)), 0) AS completedNumber, " +
"COUNT(IF(nb.type ='department' and ng.checkStatus IN ('1','2') and nb.handleResultName != '不予追责' and nb.handleResultCode is not null and nb.handleResultCode != '', nb.blameId, NULL)) AS departNumber, " +
"COUNT(IF(nb.type ='personal' and ng.checkStatus IN ('1','2') and nb.handleResultName != '不予追责' and nb.handleResultCode is not null and nb.handleResultCode != '', nb.blameId, NULL)) AS personNumber, " +
"COALESCE(ROUND(COUNT(DISTINCT IF(ng.processing_status='completed', ng.id, NULL)) / COUNT(DISTINCT ng.id) * 100, 1), 0) AS completedRate " +
"FROM negative ng " +
"LEFT JOIN negative_blame nb ON ng.id = nb.negativeId " +
"WHERE ng.problemSourcesCode IN (13, 15) " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime}; ")
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime}; ")
SupervisionNotifyOverView getAllSupervisionNotifyCount(Date beginTime, Date endTime);
@ -177,15 +164,15 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"COUNT( DISTINCT ng.id ) AS totalPro, " +
"COUNT( DISTINCT IF(ng.problemSourcesCode=13, ng.id, NULL) ) AS xc, " +
"COUNT( DISTINCT IF(ng.problemSourcesCode=15, ng.id, NULL) ) AS zx, " +
"COUNT( DISTINCT IF(ng.isRectifyCode=0, ng.id, NULL) ) AS changing, " +
"COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL) ) AS changed , " +
"COUNT( DISTINCT IF(ng.processing_status in ('signing', 'processing', 'approval'), ng.id, NULL) ) AS processingNumber, " +
"COUNT( DISTINCT IF(ng.processing_status='completed', ng.id, NULL) ) AS completedNumber , " +
"COUNT( DISTINCT ng.involveDepartId ) AS relationOrg, " +
"COUNT( DISTINCT nb.blameIdCode ) AS personNum, " +
"IFNULL( ROUND( COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL) )/COUNT( DISTINCT ng.id )*100, 1), 0) AS changedRate " +
"IFNULL( ROUND( COUNT( DISTINCT IF(ng.processing_status='completed', ng.id, NULL) )/COUNT( DISTINCT ng.id )*100, 1), 0) AS completedRate " +
"FROM sup_depart sd " +
"LEFT JOIN negative ng ON ng.second_involve_depart_id=sd.id " +
"AND ng.problemSourcesCode IN (13, 15)" +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"LEFT JOIN negative_blame nb ON ng.id=nb.negativeId " +
"WHERE sd.statistics_group_id=3 " +
"GROUP BY sd.short_name " +
@ -195,15 +182,15 @@ public interface NegativeMapper extends BaseMapper<Negative> {
@Select("SELECT " +
"COUNT(DISTINCT ng.id) AS proTotal, " +
"COUNT( DISTINCT IF(ng.isRectifyCode=0, ng.id, NULL) ) AS changing, " +
"COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL) ) AS changed, " +
"ROUND( COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL) )/COUNT( DISTINCT ng.id )*100, 1) AS correctionRate " +
"COUNT( DISTINCT IF(ng.processing_status in ('signing', 'processing', 'approval'), ng.id, NULL) ) AS processingNumber, " +
"COUNT( DISTINCT IF(ng.processing_status='completed', ng.id, NULL) ) AS completedNumber , " +
"IFNULL( ROUND( COUNT( DISTINCT IF(ng.processing_status='completed', ng.id, NULL) )/COUNT( DISTINCT ng.id )*100, 1), 0) AS completedRate " +
"FROM negative ng " +
"LEFT JOIN sup_depart sd ON ng.second_involve_depart_id=sd.id " +
"WHERE problemSourcesCode IN (15) " +
"AND ng.special_supervision=#{queryType} " +
"AND sd.statistics_group_id=#{groupId} " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime}; ")
"AND crtTime BETWEEN #{beginTime} AND #{endTime}; ")
DayTimeSuperviseVo getYellowBetOverview(Date beginTime, Date endTime, Integer groupId, String queryType);
@Select("SELECT " +
@ -214,26 +201,25 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"WHERE problemSourcesCode IN (15) " +
"AND ng.special_supervision=#{queryType} " +
"AND sd.statistics_group_id=#{groupId} " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd.short_name " +
"ORDER BY `value` DESC;")
List<OrganizeProblemRankVo> getYellowBetRankList(Date beginTime, Date endTime, Integer groupId, String queryType);
// endregion
// region 视频督察大屏
@Select("SELECT COUNT(DISTINCT ng.id) AS discoverProblem, " +
"COUNT(DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL)) AS changedProblem, " +
"COUNT(DISTINCT ng.involveDepartId) AS relativeOrg, " +
"COUNT(DISTINCT nb.blameName) AS relativePer, " +
"IFNULL( ROUND((COUNT(DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL)) / COUNT(DISTINCT ng.id)) * 100, 1), 0) AS changedRate " +
@Select("SELECT " +
"COUNT(DISTINCT ng.id) total," +
"COUNT(DISTINCT IF(ng.checkStatus IN ('1','2'), ng.id, NULL)) AS discoverProblem, " +
"COUNT(DISTINCT IF(ng.processing_status='completed', ng.id, NULL)) AS completionProblem, " +
"COUNT(IF(nb.type ='department' and ng.checkStatus IN ('1','2') and nb.handleResultName != '不予追责' and nb.handleResultCode is not null and nb.handleResultCode != '', nb.blameId, NULL)) AS relativeOrg, " +
"COUNT(IF(nb.type ='personal' and ng.checkStatus IN ('1','2') and nb.handleResultName != '不予追责' and nb.handleResultCode is not null and nb.handleResultCode != '', nb.blameId, NULL)) AS relativePer, " +
"IFNULL( ROUND((COUNT(DISTINCT IF(ng.processing_status='completed', ng.id, NULL)) / COUNT(DISTINCT ng.id)) * 100, 1), 0) AS completionRate " +
"FROM sup_depart sd " +
"INNER JOIN negative ng ON sd.id = ng.involveDepartId " +
"LEFT JOIN negative_blame nb ON ng.id = nb.negativeId " +
"WHERE ng.checkStatus IN ('1','2') " +
"AND problemSourcesCode = 16 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime}")
"WHERE problemSourcesCode = 16 " +
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime}")
VideoSuperviseCountVo getAllVideoSuperviseCount(Date beginTime, Date endTime);
@Select("SELECT npr.threeLevelContent AS `name`, " +
@ -243,19 +229,19 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"on ng.id=npr.negativeId " +
"WHERE ng.problemSourcesCode=16 " +
"AND checkStatus <> 3 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY npr.threeLevelContent ")
List<EchartsVo> getVideoSuperviseProblemTypeRate(Date beginTime, Date endTime);
@Select("SELECT sd1.short_name AS label, " +
"count(*) as `value`" +
@Select("SELECT d.short_name AS label, " +
"count(ng.id) as `value`" +
" FROM negative ng " +
"INNER JOIN sup_depart sd ON ng.involveDepartId=sd.id " +
"INNER JOIN sup_depart sd1 ON sd.pid=sd1.id AND sd1.statistics_group_id=#{groupId} " +
"WHERE checkStatus <> 3 " +
"AND problemSourcesCode=16 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd1.short_name " +
"INNER JOIN sup_depart d ON ng.second_involve_depart_id = d.id " +
"WHERE ng.checkStatus in (1, 2) " +
"AND ng.problemSourcesCode = 16 " +
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND d.statistics_group_id = #{groupId} " +
"GROUP BY d.short_name " +
"ORDER BY `value` DESC")
List<OrganizeProblemRankVo> getVideoSuperviseProblemRank(Date beginTime, Date endTime, Integer groupId);
@ -263,15 +249,15 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"sd.short_name AS `name`, " +
"sd.id AS departId, " +
"COUNT( DISTINCT ng.id) AS discoverProblem, " +
"COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL) ) AS changedProblem, " +
"COUNT( DISTINCT IF(ng.processing_status='completed', ng.id, NULL) ) AS completionProblem, " +
"COUNT( DISTINCT ng.involveDepartId) AS relativeOrg, " +
"COUNT( DISTINCT nb.blameName ) AS relativePer, " +
"IFNULL(ROUND( COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL) )/COUNT( DISTINCT ng.id)*100, 1 ),0) AS changedRate " +
"IFNULL(ROUND( COUNT( DISTINCT IF(ng.processing_status='completed', ng.id, NULL) )/COUNT( DISTINCT ng.id)*100, 1 ),0) AS completionRate " +
"FROM sup_depart sd " +
"LEFT JOIN negative ng ON sd.id=ng.second_involve_depart_id " +
"AND checkStatus <>3 " +
"AND problemSourcesCode =16 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"LEFT JOIN negative_blame nb ON ng.id=nb.negativeId " +
"WHERE sd.statistics_group_id=3 " +
"GROUP BY sd.short_name; ")
@ -286,7 +272,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"COUNT( DISTINCT ng.id ) AS `value` " +
"FROM negative ng " +
"LEFT JOIN sup_depart sd ON ng.second_involve_depart_id = sd.id " +
"WHERE ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND sd.statistics_group_id=#{groupId} " +
"AND ng.problemSourcesCode IN (17,18,19,20) " +
"GROUP BY sd.short_name " +
@ -295,14 +281,14 @@ public interface NegativeMapper extends BaseMapper<Negative> {
@Select("SELECT count(DISTINCT ng.id) AS total, " +
"COUNT( DISTINCT IF(ng.checkStatus <> 3, ng.id, NULL) ) AS confirmed, " +
"COUNT( DISTINCT IF(nb.handleResultCode!=14, nb.blameId, NULL) ) AS dealCasePro, " +
"COUNT( DISTINCT nb.blameName ) AS punishPre, " +
"COUNT( DISTINCT ng.involveDepartId ) AS punishOrg, " +
"IFNULL( ROUND( COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL) ) / count(DISTINCT ng.id)*100, 1 ), 0 ) AS rate " +
"COUNT( DISTINCT IF(ng.checkStatus IN (1, 2), ng.id, NULL) ) AS confirmed, " +
"COUNT( DISTINCT IF(ng.checkStatus IN (1, 2), ng.id, NULL) ) AS dealCasePro, " +
"COUNT( DISTINCT IF(ng.checkStatus IN (1, 2) && nb.type = 'personal' and ng.checkStatus IN ('1','2') and nb.handleResultName != '不予追责' and nb.handleResultCode is not null and nb.handleResultCode != '', nb.blameId, NULL) ) AS punishPre, " +
"COUNT( DISTINCT IF(ng.checkStatus IN (1, 2) && nb.type = 'department' and ng.checkStatus IN ('1','2') and nb.handleResultName != '不予追责' and nb.handleResultCode is not null and nb.handleResultCode != '', nb.blameId, NULL) ) AS punishOrg, " +
"IFNULL( ROUND( COUNT( DISTINCT IF(ng.checkStatus IN (1, 2), ng.id, NULL) ) / count(DISTINCT ng.id)*100, 1 ), 0 ) AS rate " +
"FROM negative ng " +
"LEFT JOIN negative_blame nb ON ng.id=nb.negativeId " +
"WHERE discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND problemSourcesCode in (17, 18, 19, 20) ")
CaseVerificationCountVo getAllCaseVerificationCount(Date beginTime, Date endTime);
@ -319,7 +305,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"FROM sup_depart sd " +
"LEFT JOIN negative ng ON ng.second_involve_depart_id=sd.id " +
"AND ng.problemSourcesCode IN (17,18,19,20) " +
"AND ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"LEFT JOIN negative_blame nb ON ng.id=nb.negativeId " +
"WHERE sd.statistics_group_id=3 " +
"GROUP BY sd.short_name;")
@ -329,7 +315,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"FROM negative ng " +
"INNER JOIN negative_blame nb ON nb.negativeId=ng.id " +
"WHERE handleResultName is NOT NULL " +
"AND ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.problemSourcesCode in (17, 18, 19, 20) " +
"AND ng.checkStatus <>3 " +
"GROUP BY nb.handleResultName")
@ -339,20 +325,11 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"count(DISTINCT(ng.id)) as `value` FROM negative ng " +
"INNER JOIN negative_blame nb ON nb.negativeId=ng.id AND nb.superviseMeasuresCode=#{type} " +
"INNER JOIN negative_problem_relation npr ON ng.id=npr.negativeId " +
"WHERE ng.checkStatus<>3 " +
"AND ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"WHERE ng.checkStatus in (1, 2) " +
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY npr.threeLevelContent")
List<EchartsVo> getConfinementAndPause(Date beginTime, Date endTime, Integer type);
@Select("SELECT count(DISTINCT ng.id) AS totalMail, " +
"COUNT( ng.problemSourcesCode=21 ) AS countryMail, " +
"COUNT( ng.problemSourcesCode=22 ) AS policeMail, " +
"COUNT( ng.problemSourcesCode=24 ) AS numberMail, " +
"COUNT( ng.problemSourcesCode=23 ) AS manageMail " +
"FROM negative ng WHERE ng.checkStatus <> 3 " +
"AND ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.problemSourcesCode in(21, 22, 23, 24)")
MailOverviewVo getAllMailCount(Date beginTime, Date endTime);
List<EchartsVo> getMailTrend(Integer year, Integer type);
@ -368,7 +345,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"COUNT(DISTINCT ng.id ) AS `value` " +
"FROM negative ng " +
"LEFT JOIN sup_depart sd ON ng.three_involve_depart_id=sd.id " +
"WHERE ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND sd.statistics_group_id=10 " +
"AND sd.pid=#{departId} " +
"AND problemSourcesCode IN (2,13,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30) " +
@ -381,7 +358,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"COUNT(DISTINCT ng.id ) AS `value` " +
"FROM negative ng " +
"LEFT JOIN sup_depart sd ON ng.three_involve_depart_id=sd.id " +
"WHERE ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND sd.statistics_group_id!=10 " +
"AND sd.pid=#{departId} " +
"AND problemSourcesCode IN (2,13,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30) " +
@ -394,7 +371,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"count(*) value " +
"FROM negative " +
"WHERE checkStatus in (1, 2) " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND negative.second_involve_depart_id=#{departId} " +
"GROUP BY businessTypeName")
List<EchartsVo> selectSubOneBusinessRate(Integer departId, Date beginTime, Date endTime);
@ -406,7 +383,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"COALESCE(SUM(IF(problemSourcesCode IN (21, 22, 23, 24, 25), 1, 0)), 0) AS complaintPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (2), 1, 0)), 0) AS talkPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (27, 28, 29, 30), 1, 0)), 0) AS auditPro " +
"FROM negative ng WHERE ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"FROM negative ng WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.second_involve_depart_id=#{departId} ")
GlobalOverViewVo getSuoOneAllGlobalCount(Integer departId, Date beginTime, Date endTime);
@Select("SELECT " +
@ -422,7 +399,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"SUM( IF(problemSourcesCode IN (27,28,29,30),1, 0) ) AS reviewPro " +
"FROM county_street_dept csd " +
"LEFT JOIN negative ng ON ng.three_involve_depart_id=csd.dept_id " +
"AND ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.second_involve_depart_id=#{departId} " +
"GROUP BY csd.dept_name " +
"HAVING csd.dept_pid=#{departId} ")
@ -435,7 +412,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"FROM negative_problem_relation npr INNER JOIN negative ng ON npr.negativeId=ng.id " +
"WHERE npr.threeLevelContent is not NULL " +
"AND checkStatus IN (1, 2) " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime}" +
"AND crtTime BETWEEN #{beginTime} AND #{endTime}" +
"AND ng.second_involve_depart_id=#{departId} " +
"GROUP BY npr.threeLevelContent " +
"ORDER BY `value` desc " +
@ -448,138 +425,13 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"FROM negative_problem_relation npr " +
"LEFT JOIN negative ng ON ng.id=npr.negativeId " +
"WHERE checkStatus in (1,2) " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND npr.oneLevelContent is not NULL " +
"AND ng.second_involve_depart_id=#{departId} " +
"GROUP BY npr.oneLevelContent " +
"ORDER BY `value` desc")
List<EchartsVo> selectSubOneProblemRate(Integer departId, Date beginTime, Date endTime);
@Select("SELECT " +
"COUNT( DISTINCT ng.id ) AS one, " +
"COUNT( DISTINCT IF(ng.isRectifyCode=0, ng.id, NULL ) ) AS two, " +
"COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL ) ) AS three, " +
"IFNULL( ROUND( COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL ) ) / COUNT( DISTINCT ng.id ) , 1 )*100, 0) AS four " +
"FROM negative ng " +
"LEFT JOIN sup_depart sd ON ng.involveDepartId=sd.id " +
"WHERE ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.problemSourcesCode IN (13,15,16) " +
"AND ng.second_involve_depart_id = #{departId} " +
"AND sd.statistics_group_id=10 ")
SubOneOverViewVo getSubOneGlobalPoliceSupervisionRankOverView(Integer departId, Date beginTime, Date endTime);
@Select("SELECT " +
"COUNT( DISTINCT ng.id ) AS one, " +
"COUNT( DISTINCT IF(ng.isRectifyCode=0, ng.id, NULL ) ) AS two, " +
"COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL ) ) AS three, " +
"IFNULL( ROUND( COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL ) ) / COUNT( DISTINCT ng.id ) , 1 )*100, 0) AS four " +
"FROM negative ng " +
"LEFT JOIN sup_depart sd ON ng.involveDepartId=sd.id " +
"WHERE ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.problemSourcesCode IN (13,15,16) " +
"AND ng.second_involve_depart_id = #{departId} " +
"AND sd.statistics_group_id!=10")
SubOneOverViewVo getSubOneGlobalTeamSupervisionRankOverView(Integer departId, Date beginTime, Date endTime);
@Select("SELECT " +
"ng.involveDepartName AS label, " +
"COUNT(DISTINCT ng.id) AS denominator, " +
"COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL )) AS numerator, " +
"IFNULL( ROUND( COUNT(DISTINCT if(ng.isRectifyCode=1, ng.id, NULL)) / count(DISTINCT ng.id)*100, 1), 0) AS rate, " +
"IFNULL( ROUND( COUNT(DISTINCT if(ng.isRectifyCode=1, ng.id, NULL)) / count(DISTINCT ng.id)*100, 1), 0) AS `value` " +
"FROM negative ng " +
"LEFT JOIN sup_depart sd ON ng.involveDepartId=sd.id " +
"WHERE ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.problemSourcesCode IN (13,15,16) " +
"AND ng.second_involve_depart_id = #{departPId} " +
"AND sd.statistics_group_id=10 " +
"GROUP BY ng.involveDepartName " +
"ORDER BY rate DESC, denominator DESC")
List<RankVo> getSubOneGlobalPrecinctSupervisionRank(Integer departPId, Date beginTime, Date endTime);
@Select("SELECT " +
"ng.involveDepartName AS label, " +
"COUNT(DISTINCT ng.id) AS denominator, " +
"COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL )) AS numerator, " +
"IFNULL( ROUND( COUNT(DISTINCT if(ng.isRectifyCode=1, ng.id, NULL)) / count(DISTINCT ng.id)*100, 1), 0) AS rate, " +
"IFNULL( ROUND( COUNT(DISTINCT if(ng.isRectifyCode=1, ng.id, NULL)) / count(DISTINCT ng.id)*100, 1), 0) AS `value` " +
"FROM negative ng " +
"LEFT JOIN sup_depart sd ON ng.involveDepartId=sd.id " +
"WHERE ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.problemSourcesCode IN (13,15,16)" +
"AND ng.second_involve_depart_id = #{departPId} " +
"AND sd.statistics_group_id!=10 " +
"GROUP BY ng.involveDepartName " +
"ORDER BY rate DESC, denominator DESC")
List<RankVo> getSubOneGlobalTeamSupervisionRank(Integer departPId, Date beginTime, Date endTime);
@Select("SELECT count(DISTINCT ng.id) AS one, " +
"COUNT( DISTINCT( if(processing_status='processing', ng.id, NULL) ) ) AS two, " +
"count(DISTINCT involveDepartId) AS three, " +
"count(DISTINCT nb.blameIdCode) AS four, " +
"ifnull(ROUND( COUNT( DISTINCT( if(processing_status='completed', ng.id, NULL) ) ) / count(DISTINCT ng.id)*100, 1),0) AS five " +
"FROM negative ng " +
"INNER JOIN sup_depart sd ON ng.involveDepartId = sd.id " +
"LEFT JOIN negative_blame nb ON ng.id=nb.negativeId " +
"WHERE sd.pid= #{departPId} " +
"AND ng.discoveryTime BETWEEN #{beginTime} and #{endTime} ")
SubOneOverViewVo getSubOneOverView(Integer departPId, Date beginTime, Date endTime);
@Select("SELECT " +
"COUNT( DISTINCT ng.id ) AS one," +
"COUNT( DISTINCT IF(ng.checkStatus IN (1,2) , ng.id, NULL ) ) AS two," +
"ifnull(ROUND( COUNT( DISTINCT IF(ng.checkStatus IN (1,2) , ng.id, NULL ) ) / COUNT( DISTINCT ng.id ) , 1 ) ,0) AS three " +
"FROM negative ng " +
"LEFT JOIN sup_depart sd ON ng.involveDepartId=sd.id " +
"WHERE ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.problemSourcesCode IN (17,18,19,20)" +
"AND ng.second_involve_depart_id = #{departPId} " +
"AND sd.statistics_group_id=10")
SubOneOverViewVo getGlobalPoliceCaseVerifyOverView(Integer departPId, Date beginTime, Date endTime);
@Select("SELECT " +
"COUNT( DISTINCT ng.id ) AS one," +
"COUNT( DISTINCT IF(ng.checkStatus IN (1,2) , ng.id, NULL ) ) AS two," +
"ifnull(ROUND( COUNT( DISTINCT IF(ng.checkStatus IN (1,2) , ng.id, NULL ) ) / COUNT( DISTINCT ng.id ) , 1 ) ,0) AS three " +
"FROM negative ng " +
"LEFT JOIN sup_depart sd ON ng.involveDepartId=sd.id " +
"WHERE ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.problemSourcesCode IN (17,18,19,20)" +
"AND ng.second_involve_depart_id = #{departPId} " +
"AND sd.statistics_group_id!=10")
SubOneOverViewVo getGlobalTeamCaseVerifyOverView(Integer departPId, Date beginTime, Date endTime);
@Select("SELECT " +
"ng.involveDepartName AS label, " +
"COUNT( DISTINCT ng.id ) AS value," +
"COUNT( DISTINCT ng.id ) AS numerator, " +
"COUNT( DISTINCT IF(ng.checkStatus IN (1,2) , ng.id, NULL ) ) AS denominator " +
"FROM negative ng " +
"LEFT JOIN sup_depart sd ON ng.involveDepartId=sd.id " +
"WHERE ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.problemSourcesCode IN (17,18,19,20) " +
"AND ng.second_involve_depart_id = #{departPId} " +
"AND sd.statistics_group_id=10 " +
"GROUP BY ng.involveDepartName " +
"ORDER BY value DESC ")
List<RankVo> getGlobalPoliceCaseVerifyRank(Integer departPId, Date beginTime, Date endTime);
@Select("SELECT " +
"ng.involveDepartName AS label, " +
"COUNT( DISTINCT ng.id ) AS value," +
"COUNT( DISTINCT ng.id ) AS numerator, " +
"COUNT( DISTINCT IF(ng.checkStatus IN (1,2) , ng.id, NULL ) ) AS denominator " +
"FROM negative ng " +
"LEFT JOIN sup_depart sd ON ng.involveDepartId=sd.id " +
"WHERE ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.problemSourcesCode IN (17,18,19,20) " +
"AND ng.second_involve_depart_id = #{departPId} " +
"AND sd.statistics_group_id!=10 " +
"GROUP BY ng.involveDepartName " +
"ORDER BY value DESC ")
List<RankVo> getGlobalTeamCaseVerifyRank(Integer departPId, Date beginTime, Date endTime);
// endregion
// region 二级大屏视频督察
@ -590,7 +442,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"AND sd.pid=#{departId} AND sd.statistics_group_id=10 " +
"WHERE checkStatus <> 3 " +
"AND problemSourcesCode=16 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd.short_name " +
"ORDER BY `value` DESC ")
List<OrganizeProblemRankVo> getSuboOneVideoSupervisePoliceProblemRank(Date beginTime, Date endTime, Integer groupId, Integer departId);
@ -602,7 +454,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"AND sd.pid=#{departId} AND sd.statistics_group_id!=10 " +
"WHERE checkStatus <> 3 " +
"AND problemSourcesCode=16 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd.short_name " +
"ORDER BY `value` DESC ")
List<OrganizeProblemRankVo> getSuboOneVideoSuperviseTeamProblemRank(Date beginTime, Date endTime, Integer groupId, Integer departId);
@ -610,16 +462,16 @@ public interface NegativeMapper extends BaseMapper<Negative> {
List<EchartsVo> getSubOneVideoSuperviseTrend(String year, String problemCode, String departId);
@Select("SELECT COUNT(DISTINCT ng.id) AS discoverProblem, " +
"COUNT(DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL)) AS changedProblem, " +
"COUNT(DISTINCT IF(ng.processing_status='completed', ng.id, NULL)) AS completionProblem, " +
"COUNT(DISTINCT ng.involveDepartId) AS relativeOrg, " +
"COUNT(DISTINCT nb.blameName) AS relativePer, " +
"IFNULL( ROUND((COUNT(DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL)) / COUNT(DISTINCT ng.id)) * 100, 1), 0) AS changedRate " +
"IFNULL( ROUND((COUNT(DISTINCT IF(ng.processing_status='completed', ng.id, NULL)) / COUNT(DISTINCT ng.id)) * 100, 1), 0) AS completionRate " +
"FROM sup_depart sd " +
"INNER JOIN negative ng ON sd.id = ng.involveDepartId AND sd.pid=#{departId} " +
"LEFT JOIN negative_blame nb ON ng.id = nb.negativeId " +
"WHERE ng.checkStatus IN ('1','2') " +
"AND problemSourcesCode = 16 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime}; ")
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime}; ")
VideoSuperviseCountVo getSubOneAllVideoSuperviseCount(Date beginTime, Date endTime, Integer departId);
@Select("SELECT npr.threeLevelContent AS `name`, " +
@ -630,13 +482,11 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"on ng.id=npr.negativeId " +
"WHERE ng.problemSourcesCode=16 " +
"AND checkStatus <> 3 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY npr.threeLevelContent ")
List<EchartsVo> getSubOneVideoSuperviseProblemTypeRate(Integer departId, Date beginTime, Date endTime);
// endregion
// region 二级大屏现场督察
@Select("SELECT " +
@ -649,7 +499,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"WHERE ng.problemSourcesCode IN (13) " +
"AND ng.second_involve_depart_id=#{departId} " +
"AND sd.statistics_group_id=10 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} ")
"AND crtTime BETWEEN #{beginTime} AND #{endTime} ")
DayTimeSuperviseVo getPoliceRankOverview(Integer departId, Date beginTime, Date endTime);
@Select("SELECT " +
@ -662,7 +512,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"WHERE ng.problemSourcesCode IN (13) " +
"AND ng.second_involve_depart_id=#{departId} " +
"AND sd.statistics_group_id!=10 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} ")
"AND crtTime BETWEEN #{beginTime} AND #{endTime} ")
DayTimeSuperviseVo getTeamRankOverview(Integer departId, Date beginTime, Date endTime);
@Select("SELECT " +
@ -676,7 +526,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"WHERE ng.problemSourcesCode IN (13) " +
"AND ng.second_involve_depart_id=#{departId} " +
"AND sd.statistics_group_id=10 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd.short_name " +
"ORDER BY value DESC;")
List<RankVo> getPoliceChangedRankList(Integer departId, Date beginTime, Date endTime);
@ -692,21 +542,11 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"WHERE ng.problemSourcesCode IN (13) " +
"AND ng.second_involve_depart_id=#{departId} " +
"AND sd.statistics_group_id!=10 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd.short_name " +
"ORDER BY value DESC;")
List<RankVo> getTeamChangedRankList(Integer departId, Date beginTime, Date endTime);
// @Select("SELECT count(DISTINCT(ng.id)) as proTotal, " +
// "count(DISTINCT IF(ng.isRectifyCode = 1, ng.id, null) ) as changed, " +
// "count(DISTINCT IF(ng.isRectifyCode = 0, ng.id, null) ) as changing, " +
// "COALESCE( ROUND( COUNT(DISTINCT IF(ng.isRectifyCode = 1, ng.id, NULL)) / NULLIF(COUNT(DISTINCT ng.id), 0) * 100, 1 ), 0 ) AS correctionRate FROM sup_depart sd " +
// "INNER JOIN negative ng on ng.involveDepartId=sd.id AND sd.statistics_group_id!=10 AND sd.pid=#{departId} " +
// "WHERE ng.problemSourcesCode=13 AND ng.checkStatus<>3 " +
// "AND discoveryTime BETWEEN #{beginTime} AND #{endTime} ")
// DayTimeSuperviseVo getTeamChangedRankOverView(Integer departId, Date beginTime, Date endTime);
@Select("SELECT sd.short_name as label, " +
"sd.id AS departId, " +
"count( DISTINCT ng.id) AS denominator, " +
@ -718,7 +558,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"LEFT JOIN negative_blame nb on ng.id=nb.negativeId " +
"WHERE ng.problemSourcesCode=13 " +
"AND ng.checkStatus<>3 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY label " +
"order by rate desc;")
List<RankVo> getSubOnePoliceChangedRateRank(Integer departId, Date beginTime, Date endTime);
@ -734,7 +574,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"LEFT JOIN negative_blame nb on ng.id=nb.negativeId " +
"WHERE ng.problemSourcesCode=13 " +
"AND ng.checkStatus<>3 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY label " +
"order by rate desc;")
List<RankVo> getSubOneTeamChangedRateRank(Integer departId, Date beginTime, Date endTime);
@ -746,23 +586,23 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"INNER JOIN sup_depart sd ON ng.involveDepartId=sd.id AND sd.pid=#{departId} " +
"WHERE ng.problemSourcesCode in (13, 15) " +
"and ng.checkStatus<>3 " +
"AND ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND oneLevelContent is NOT NULL " +
"GROUP BY oneLevelContent ")
List<EchartsVo> getSubOneProblemTypeRatio(Integer departId, Date beginTime, Date endTime);
@Select("SELECT " +
"COUNT( DISTINCT ng.id ) AS problemNumber, " +
"COUNT( DISTINCT IF(ng.isRectifyCode=0, ng.id, NULL) ) AS rectifingNumber, " +
"COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL) ) AS rectifedNumber, " +
"COUNT( DISTINCT IF(ng.processing_status in ('signing', 'processing', 'approval'), ng.id, NULL) ) AS processingNumber, " +
"COUNT( DISTINCT IF(ng.processing_status='completed', ng.id, NULL) ) AS completedNumber , " +
"COUNT( DISTINCT ng.involveDepartId ) AS departNumber, " +
"COUNT( DISTINCT nb.blameIdCode ) AS personNumber, " +
"ROUND( COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL) )/COUNT( DISTINCT ng.id )*100, 1) AS rectifyRate " +
"ROUND( COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL) )/COUNT( DISTINCT ng.id) * 100, 1) AS rectifyRate " +
"FROM negative ng " +
"LEFT JOIN negative_blame nb ON ng.id=nb.negativeId " +
"WHERE ng.problemSourcesCode IN (13, 15) " +
"AND ng.second_involve_depart_id=#{departId} " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} ")
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime} ")
SupervisionNotifyOverView getAllSubOneSupervisionNotifyCount(Integer departId, Date beginTime, Date endTime);
@ -770,8 +610,8 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"LEFT JOIN " +
"( " +
"SELECT ng.* FROM negative ng INNER JOIN sup_depart sd ON ng.involveDepartId=sd.id WHERE sd.pid=#{departId} AND ng.checkStatus != 3 AND ng.problemSourcesCode IN (13, 15) " +
") AS temp ON DATE_FORMAT(temp.discoveryTime, '%m') = m.month " +
"AND YEAR(temp.discoveryTime) = #{year} " +
") AS temp ON DATE_FORMAT(temp.crtTime, '%m') = m.month " +
"AND YEAR(temp.crtTime) = #{year} " +
"GROUP by m.month_name " +
"ORDER BY m.month ASC;")
List<EchartsVo> getSubOneSupervisionTrend(Integer departId, String year);
@ -788,7 +628,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"AND ng.special_supervision=#{specialType} " +
"AND ng.second_involve_depart_id=#{departId} " +
"AND sd.statistics_group_id=10 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime}; ")
"AND crtTime BETWEEN #{beginTime} AND #{endTime}; ")
DayTimeSuperviseVo getSubOnePoliceYellowBetOverview(Date beginTime, Date endTime, Integer departId, Integer specialType);
@Select("SELECT " +
@ -802,7 +642,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"AND ng.special_supervision=#{specialType} " +
"AND ng.second_involve_depart_id=#{departId} " +
"AND sd.statistics_group_id!=10 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime}; ")
"AND crtTime BETWEEN #{beginTime} AND #{endTime}; ")
DayTimeSuperviseVo getSubOneTeamYellowBetOverview(Date beginTime, Date endTime, Integer departId, Integer specialType);
@Select("SELECT " +
@ -814,7 +654,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"AND ng.special_supervision=#{specialType} " +
"AND ng.second_involve_depart_id=#{departId} " +
"AND sd.statistics_group_id=10 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd.short_name " +
"ORDER BY `value` DESC; ")
List<OrganizeProblemRankVo> getSubOnePoliceYellowBetRankList(Date beginTime, Date endTime, Integer departId, Integer specialType);
@ -828,7 +668,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"AND ng.special_supervision=#{specialType} " +
"AND ng.second_involve_depart_id=#{departId} " +
"AND sd.statistics_group_id!=10 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY sd.short_name " +
"ORDER BY `value` DESC; ")
List<OrganizeProblemRankVo> getSubOneTeamYellowBetRankList(Date beginTime, Date endTime, Integer departId, Integer specialType);
@ -842,7 +682,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"COUNT( DISTINCT ng.id ) AS `value` " +
"FROM negative ng " +
"LEFT JOIN sup_depart sd ON ng.involveDepartId = sd.id " +
"WHERE ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.problemSourcesCode IN (17, 18, 19, 20)" +
"AND ng.second_involve_depart_id=#{departId} " +
"AND sd.statistics_group_id=10 " +
@ -855,7 +695,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"COUNT( DISTINCT ng.id ) AS `value` " +
"FROM negative ng " +
"LEFT JOIN sup_depart sd ON ng.involveDepartId = sd.id " +
"WHERE ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.problemSourcesCode IN (17, 18, 19, 20)" +
"AND ng.second_involve_depart_id=#{departId} " +
"AND sd.statistics_group_id!=10 " +
@ -870,7 +710,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"WHERE ng.checkStatus!=3 " +
"AND sd.pid = #{departId} " +
"AND ng.problemSourcesCode IN (17,18,19,20) " +
"AND ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.businessTypeCode = #{businessType} " +
"GROUP BY npr.threeLevelContent " +
"ORDER BY `value` DESC ")
@ -884,7 +724,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"IFNULL( ROUND( COUNT( DISTINCT IF(ng.isRectifyCode=1, ng.id, NULL) ) / count(DISTINCT ng.id)*100, 1 ), 0 ) AS rate " +
"FROM negative ng " +
"LEFT JOIN negative_blame nb ON ng.id=nb.negativeId " +
"WHERE ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.second_involve_depart_id=#{departId} " +
"AND ng.problemSourcesCode in (17, 18, 19, 20); ")
CaseVerificationCountVo getSuboOneAllCaseVerificationCount(Date beginTime, Date endTime, Integer departId);
@ -903,7 +743,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"FROM county_street_dept csd " +
"LEFT JOIN negative ng ON ng.three_involve_depart_id=csd.dept_id " +
"AND ng.problemSourcesCode IN (17,18,19,20) " +
"AND ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.second_involve_depart_id=#{departId} " +
"LEFT JOIN negative_blame nb ON ng.id=nb.negativeId " +
"GROUP BY csd.dept_name " +
@ -916,7 +756,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"FROM negative ng " +
"LEFT JOIN sup_dict_problem_source sdps ON ng.problemSourcesCode= sdps.id " +
"INNER JOIN sup_depart sd ON ng.involveDepartId=sd.id AND sd.pid=#{departId} " +
"WHERE discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"WHERE crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.problemSourcesCode IN (17,18,19,20) " +
"GROUP BY sdps.label")
List<EchartsVo> getSuboOneCaseSourceRate(Date beginTime, Date endTime, Integer departId);
@ -927,7 +767,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"inner JOIN sup_depart sd on ng.involveDepartId=sd.id AND sd.pid=#{departId} " +
"INNER JOIN negative_blame nb ON ng.id=nb.negativeId " +
"WHERE nb.handleResultName IS NOT NULL " +
"AND ng.discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.problemSourcesCode IN (17,18,19,20) " +
"AND ng.checkStatus <>3 " +
"GROUP BY nb.handleResultName")
@ -938,7 +778,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
@Select("SELECT problemSources AS name, count(ng.id) AS value " +
"FROM negative ng " +
"WHERE problemSourcesCode IN (17, 18, 19, 20) AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"WHERE problemSourcesCode IN (17, 18, 19, 20) AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"GROUP BY problemSources")
List<EchartsVo> getCaseSourceRate(Date beginTime, Date endTime);
@ -954,7 +794,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"count(*) `value` FROM negative_problem_relation npr " +
"LEFT JOIN negative ng ON ng.id=npr.negativeId " +
"WHERE checkStatus in (1, 2) " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND npr.oneLevelContent is not NULL " +
"GROUP BY npr.oneLevelContent " +
"ORDER BY `value` desc")
@ -974,7 +814,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"LEFT JOIN negative ng ON csd.dept_id=ng.three_involve_depart_id " +
"AND checkStatus <>3 " +
"AND problemSourcesCode =16 " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"LEFT JOIN negative_blame nb ON ng.id=nb.negativeId " +
"GROUP BY csd.dept_name " +
"HAVING csd.dept_pid=#{departId}; ")
@ -997,7 +837,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"FROM county_street_dept csd " +
"LEFT JOIN negative ng ON ng.three_involve_depart_id=csd.dept_id " +
"AND ng.problemSourcesCode IN (13, 15) " +
"AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " +
"AND crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.second_involve_depart_id=#{departId} " +
"LEFT JOIN negative_blame nb ON ng.id=nb.negativeId " +
"GROUP BY csd.dept_name " +

35
src/main/java/com/biutag/supervision/mapper/RpcApplyMapper.java

@ -4,11 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.pojo.dto.common.BarItem;
import com.biutag.supervision.pojo.dto.common.PieItem;
import com.biutag.supervision.pojo.entity.RpcApply;
import com.biutag.supervision.pojo.entity.RpcInfringerResult;
import com.biutag.supervision.pojo.vo.EchartsVo;
import com.biutag.supervision.pojo.vo.OrganizeProblemRankVo;
import com.biutag.supervision.pojo.vo.RpcApplyVo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -18,39 +18,16 @@ import java.util.List;
public interface RpcApplyMapper extends BaseMapper<RpcApply> {
@Select("SELECT COUNT(a.rpc_id) FROM rpc_apply_person a LEFT JOIN rpc_apply b ON a.rpc_id = b.rpc_id " +
"WHERE b.apply_date BETWEEN #{beginTime} AND #{endTime} AND b.type = 2")
Integer countComfortPersonNumber(Date beginTime, Date endTime);
@Select("SELECT a.tort_name FROM rpc_infringer_result a LEFT JOIN rpc_apply b ON a.rpc_id = b.rpc_id " +
"WHERE b.apply_date BETWEEN #{beginTime} AND #{endTime} AND b.type = 2")
List<String> getHitPeople(Date beginTime, Date endTime);
@Select("SELECT COALESCE(SUM(a.provide_relief), 0.0) FROM rpc_apply_person a LEFT JOIN rpc_apply b ON a.rpc_id = b.rpc_id " +
"WHERE b.apply_date BETWEEN #{beginTime} AND #{endTime} AND b.type = 2")
Double countComfortMoney(Date beginTime, Date endTime);
@Select("select tort_name, defend_handle_way_name from rpc_infringer_result a LEFT JOIN rpc_apply b ON a.rpc_id = b.rpc_id " +
"WHERE b.apply_date BETWEEN #{beginTime} AND #{endTime} AND b.type = 2")
List<RpcInfringerResult> selectPunishmentSituation(Date beginTime, Date endTime);
@Select("SELECT c.job name, COUNT(c.job) value FROM sup_police c JOIN " +
"(SELECT a.emp_no FROM rpc_apply_person a LEFT JOIN rpc_apply b ON a.rpc_id = b.rpc_id " +
"WHERE b.apply_date BETWEEN #{beginTime} AND #{endTime} AND b.type = 2) d on c.emp_no = d.emp_no " +
"GROUP BY c.job")
List<PieItem> selectComfortSituation(Date beginTime, Date endTime);
@Select("SELECT sd1.short_name AS label, " +
"count(*) AS VALUE " +
"FROM sup_depart sd1 inner JOIN " +
"(SELECT ra.depart_name, sd.short_name, sd.pid, ra.apply_date, ra.type FROM rpc_apply ra INNER JOIN sup_depart sd on ra.depart_id=sd.id) temp " +
"on sd1.id = temp.pid AND sd1.statistics_group_id=#{groupId} " +
"WHERE temp.apply_date BETWEEN #{beginTime} AND #{endTime} " +
"AND temp.type=1 " +
"GROUP BY sd1.short_name " +
"ORDER BY `value` DESC")
List<OrganizeProblemRankVo> getRightsRank(Date beginTime, Date endTime, Integer groupId);
@Select("SELECT " +
"sdd.dict_label AS `name`, " +
"count(*) AS `value` " +
@ -104,7 +81,7 @@ public interface RpcApplyMapper extends BaseMapper<RpcApply> {
"WHERE ra.apply_date BETWEEN #{beginTime} AND #{endTime} " +
"AND sd.pid=#{departId} " +
"AND ra.type=2;")
Integer countSubOneComfortPersonNumber(Date beginTime, Date endTime, Integer departId);
Long countSubOneComfortPersonNumber(Date beginTime, Date endTime, Integer departId);
@Select("SELECT count(*) " +
"FROM rpc_infringer_result rir " +
@ -180,5 +157,13 @@ public interface RpcApplyMapper extends BaseMapper<RpcApply> {
@Select("select max(number_index) from rpc_apply where year = #{year}")
Integer selectMaxNuberIndex(Integer year);
@Select("select d.short_name label, ROUND(sum(p.provide_relief) / 10000, 2) value from rpc_apply_person p left join rpc_apply r on p.rpc_id = r.rpc_id left join sup_depart d on r.second_depart_id = d.id where d.statistics_group_id = #{departGroupId} and r.crt_time between #{beginTime} and #{endTime} and r.type = 2 GROUP BY d.short_name order by value desc")
List<BarItem> selectComfortMoneyBarList(Date beginTime, Date endTime, Integer departGroupId);
@Select("select p.person_type_name name, count(r.rpc_id) value from rpc_apply r left join rpc_apply_person p on r.rpc_id = p.rpc_id where r.crt_time between #{beginTime} and #{endTime} and r.type = 2 GROUP BY p.person_type_name")
List<PieItem> selectComfortPoliceInjurySituation(Date beginTime, Date endTime);
@Select("select p.injury_severity_name name, count(r.rpc_id) value from rpc_apply r left join rpc_apply_person p on r.rpc_id = p.rpc_id where r.crt_time between #{beginTime} and #{endTime} and r.type = 2 GROUP BY p.injury_severity_name")
List<PieItem> selectComfortInjuryCategory(Date beginTime, Date endTime);
}

1
src/main/java/com/biutag/supervision/mapper/StatisticsGroupMapper.java

@ -27,4 +27,5 @@ public interface StatisticsGroupMapper extends BaseMapper<StatisticsGroup> {
@Select("${newSql}")
List<Map<String, Object>> selectByUniqueKeys(@org.apache.ibatis.annotations.Param("newSql") String newSql);
}

8
src/main/java/com/biutag/supervision/mapper/SupPhotoMapper.java

@ -0,0 +1,8 @@
package com.biutag.supervision.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervision.pojo.entity.SupPhoto;
public interface SupPhotoMapper extends BaseMapper<SupPhoto> {
}

10
src/main/java/com/biutag/supervision/mapper/SupTaskMapper.java

@ -1,8 +1,18 @@
package com.biutag.supervision.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.pojo.vo.TaskCountVo;
import com.biutag.supervision.pojo.vo.TaskVo;
import com.biutag.supervision.pojo.entity.SupTask;
import org.apache.ibatis.annotations.Param;
public interface SupTaskMapper extends BaseMapper<SupTask> {
Page<TaskVo> queryTask(@Param("page") Page<SupTask> page, @Param(Constants.WRAPPER) QueryWrapper<SupTask> queryWrapper);
TaskCountVo queryTaskCount(@Param(Constants.WRAPPER) QueryWrapper<SupTask> queryWrapper);
}

8
src/main/java/com/biutag/supervision/mapper/SupTaskProblemMapper.java

@ -0,0 +1,8 @@
package com.biutag.supervision.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervision.pojo.entity.SupTaskProblem;
public interface SupTaskProblemMapper extends BaseMapper<SupTaskProblem> {
}

8
src/main/java/com/biutag/supervision/mapper/SupTaskSelfexaminationContentMapper.java

@ -0,0 +1,8 @@
package com.biutag.supervision.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervision.pojo.entity.SupTaskSelfexaminationContent;
public interface SupTaskSelfexaminationContentMapper extends BaseMapper<SupTaskSelfexaminationContent> {
}

16
src/main/java/com/biutag/supervision/mapper/SupTaskSelfexaminationMapper.java

@ -0,0 +1,16 @@
package com.biutag.supervision.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.pojo.entity.SupTaskSelfexamination;
import com.biutag.supervision.pojo.entity.SupTaskTestingAlcoholPeople;
import com.biutag.supervision.pojo.vo.TaskSelfexaminationVo;
import org.apache.ibatis.annotations.Param;
public interface SupTaskSelfexaminationMapper extends BaseMapper<SupTaskSelfexamination> {
Page<TaskSelfexaminationVo> queryPage(@Param("page") Page<SupTaskSelfexamination> page, @Param(Constants.WRAPPER) QueryWrapper<SupTaskSelfexamination> queryWrapper);
}

8
src/main/java/com/biutag/supervision/mapper/SupTaskTestingAlcoholPeopleMapper.java

@ -1,8 +1,16 @@
package com.biutag.supervision.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.pojo.entity.SupTaskTestingAlcohol;
import com.biutag.supervision.pojo.vo.TaskTestingAlcoholPeopleVo;
import com.biutag.supervision.pojo.entity.SupTaskTestingAlcoholPeople;
import org.apache.ibatis.annotations.Param;
public interface SupTaskTestingAlcoholPeopleMapper extends BaseMapper<SupTaskTestingAlcoholPeople> {
Page<TaskTestingAlcoholPeopleVo> queryPage(@Param("page") Page<SupTaskTestingAlcoholPeople> page, @Param(Constants.WRAPPER) QueryWrapper<SupTaskTestingAlcoholPeople> queryWrapper);
}

21
src/main/java/com/biutag/supervision/pojo/domain/AppUser.java

@ -0,0 +1,21 @@
package com.biutag.supervision.pojo.domain;
import com.biutag.supervision.pojo.model.UserAuth;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
/**
* @author wxc
* @date 2025/4/11
*/
@AllArgsConstructor
@Setter
@Getter
public class AppUser {
private String token;
private UserAuth user;
}

6
src/main/java/com/biutag/supervision/pojo/domain/NegativeVo.java

@ -164,6 +164,12 @@ public class NegativeVo {
// 延期天数
private Integer extensionDays;
// 最大签收时长(天)
private Integer maxSignDuration;
// 最大办理时长(天)
private Integer maxHandleDuration;
// 最大延期时长(天)
private Integer maxExtensionDuration;

17
src/main/java/com/biutag/supervision/pojo/dto/FileBase64Dto.java

@ -0,0 +1,17 @@
package com.biutag.supervision.pojo.dto;
import lombok.Getter;
import lombok.Setter;
/**
* @author wxc
* @date 2025/4/15
*/
@Setter
@Getter
public class FileBase64Dto {
private String originalFilename;
private String base64;
}

3
src/main/java/com/biutag/supervision/pojo/dto/NegativeDto.java

@ -43,9 +43,6 @@ public class NegativeDto {
@NotBlank(message = "业务类别不能为空", groups = {AddGroup.class, EditGroup.class})
private String businessTypeCode;
// 业务类别名称
@NotBlank(message = "业务类别不能为空", groups = {AddGroup.class, EditGroup.class})
private String businessTypeName;
private String policeTypeName;

2
src/main/java/com/biutag/supervision/pojo/dto/TaskInspectionDto.java

@ -27,6 +27,8 @@ public class TaskInspectionDto {
// 督察内容
private String taskContent;
private String taskContentHtml;
private List<LocalDateTime> times = new ArrayList<>();

16
src/main/java/com/biutag/supervision/pojo/dto/TaskInspectionProblemQueryParam.java

@ -0,0 +1,16 @@
package com.biutag.supervision.pojo.dto;
import com.biutag.supervision.pojo.param.BasePage;
import lombok.Getter;
import lombok.Setter;
/**
* @author wxc
* @date 2025/4/17
*/
@Setter
@Getter
public class TaskInspectionProblemQueryParam extends BasePage {
}

43
src/main/java/com/biutag/supervision/pojo/dto/TaskProblemDto.java

@ -0,0 +1,43 @@
package com.biutag.supervision.pojo.dto;
import com.biutag.supervision.pojo.vo.FileVo;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* @author wxc
* @date 2025/4/17
*/
@Setter
@Getter
public class TaskProblemDto {
private Integer taskId;
// 是否存在督察问题
private Boolean hasProblem;
private String departId;
private String problemType;
private List<People> peoples;
// 具体情况
private String thingDesc;
// 附件
private List<FileVo> files;
private Integer contentId;
@Setter
@Getter
public static class People {
private String name;
private String empNo;
private String idCode;
}
}

39
src/main/java/com/biutag/supervision/pojo/dto/TaskSelfexaminationDto.java

@ -0,0 +1,39 @@
package com.biutag.supervision.pojo.dto;
import com.biutag.supervision.pojo.entity.SupTaskSelfexamination;
import com.biutag.supervision.pojo.entity.SupTaskSelfexaminationContent;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
* @author wxc
* @date 2025/4/30
*/
@Setter
@Getter
public class TaskSelfexaminationDto {
private String taskName;
// 自查单位
private Integer supDepartId;
// 自查类型
private String type;
private List<LocalDateTime> times = new ArrayList<>();
// 任务要求
private String requirement;
// 任务要求
private String requirementHtml;
// 内容
private List<SupTaskSelfexaminationContent> contents = new ArrayList<>();
}

44
src/main/java/com/biutag/supervision/pojo/dto/TaskTestingAlcoholPeopleDto.java

@ -0,0 +1,44 @@
package com.biutag.supervision.pojo.dto;
import com.biutag.supervision.pojo.vo.FileVo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
* @author wxc
* @date 2025/4/15
*/
@Setter
@Getter
public class TaskTestingAlcoholPeopleDto {
// 警号
private String empNo;
private String taskId;
// 检测情况
private String testingResult;
// 饮酒结果
private String drinkResult;
// 酒精含量
private Double alcoholContent;
// 测酒时间
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime testingTime;
// 未检测情况说明
private String unTestingDesc;
// 检测照片
private List<FileVo> testingFiles = new ArrayList<>();
}

16
src/main/java/com/biutag/supervision/pojo/dto/UserPasswordDto.java

@ -0,0 +1,16 @@
package com.biutag.supervision.pojo.dto;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class UserPasswordDto {
private String account;
private String password;
private String newPassword;
}

4
src/main/java/com/biutag/supervision/pojo/dto/common/BarItem.java

@ -4,6 +4,8 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
/**
* @author wxc
* @date 2024/10/29
@ -14,5 +16,5 @@ import lombok.Setter;
public class BarItem {
private String label;
private Integer value;
private BigDecimal value;
}

3
src/main/java/com/biutag/supervision/pojo/entity/DataPetition12337.java

@ -612,4 +612,7 @@ public class DataPetition12337 implements Serializable {
@TableField(value="is_real")
private Integer isReal;
private LocalDateTime createTime;
}

38
src/main/java/com/biutag/supervision/pojo/entity/SupPhoto.java

@ -0,0 +1,38 @@
package com.biutag.supervision.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
@Setter
@Getter
public class SupPhoto {
//
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
//
@TableField("file_path")
private String filePath;
//
@TableField("file_name")
private String fileName;
//
@TableField("create_time")
private LocalDateTime createTime;
//
@TableField("date")
private String date;
// 创建用户
private String createUsername;
}

2
src/main/java/com/biutag/supervision/pojo/entity/SupTask.java

@ -22,7 +22,7 @@ public class SupTask {
// 督察单位
@TableField("sup_depart_id")
private Integer supDepartId;
private String supDepartId;
// 督察单位
@TableField("sup_depart_name")

5
src/main/java/com/biutag/supervision/pojo/entity/SupTaskInspection.java

@ -21,4 +21,9 @@ public class SupTaskInspection {
@TableField("task_content")
private String taskContent;
private String taskContentHtml;
private Boolean hasSign;
}

61
src/main/java/com/biutag/supervision/pojo/entity/SupTaskProblem.java

@ -0,0 +1,61 @@
package com.biutag.supervision.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
@Setter
@Getter
public class SupTaskProblem {
//
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
//
@TableField("task_id")
private Integer taskId;
// 是否存在督察问题
@TableField("has_problem")
private Boolean hasProblem;
//
@TableField("depart_id")
private String departId;
private String departName;
//
@TableField("problem_type")
private String problemType;
private String problemTypeCode;
// 被督察人员 json
@TableField("peoples")
private String peoples;
private Integer peopleNumber;
// 具体情况
private String thingDesc;
// 附件
@TableField("files")
private String files;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
@TableField("create_time")
private LocalDateTime createTime;
private String distributionState;
private String taskType;
}

32
src/main/java/com/biutag/supervision/pojo/entity/SupTaskSelfexamination.java

@ -0,0 +1,32 @@
package com.biutag.supervision.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
@Setter
@Getter
public class SupTaskSelfexamination {
//
@TableId(value = "task_id")
private Integer taskId;
//
@TableField("type")
private String type;
// 任务要求
@TableField("requirement")
private String requirement;
private String requirementHtml;
private Boolean hasSign;
}

38
src/main/java/com/biutag/supervision/pojo/entity/SupTaskSelfexaminationContent.java

@ -0,0 +1,38 @@
package com.biutag.supervision.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
@Setter
@Getter
public class SupTaskSelfexaminationContent {
//
@TableId(type = IdType.AUTO)
private Integer id;
//
@TableField("task_id")
private Integer taskId;
//
@TableField("title")
private String title;
//
@TableField("content")
private String content;
//
@TableField("create_time")
private LocalDateTime createTime;
private String status;
}

16
src/main/java/com/biutag/supervision/pojo/entity/SupTaskTestingAlcoholPeople.java

@ -37,10 +37,24 @@ public class SupTaskTestingAlcoholPeople {
private String departId;
// 状态
@TableField("status")
private String status;
// 检测情况
private String testingResult;
// 饮酒结果
private String drinkResult;
// 酒精含量
private Double alcoholContent;
// 测酒时间
private LocalDateTime testingTime;
// 未检测情况说明
private String unTestingDesc;
// 检测照片
private String testingFiles;
}

30
src/main/java/com/biutag/supervision/pojo/model/DataRightsComfortModel.java

@ -1,28 +1,46 @@
package com.biutag.supervision.pojo.model;
import com.biutag.supervision.pojo.dto.common.BarItem;
import com.biutag.supervision.pojo.dto.common.PieItem;
import lombok.Getter;
import lombok.Setter;
import java.util.ArrayList;
import java.util.List;
@Setter
@Getter
public class DataRightsComfortModel {
// 维权案件总数
private Integer rightsNumber;
// 受侵害人数
private Integer victimNumber;
// 抚慰人数
private Integer comfortPersonNumber;
private Long comfortPersonNumber;
// 打击处理人数
Integer hitPersonNumber;
// 抚慰金额(万元)
Double comfortMoney;
// 维权案件情况
// 维权案件情况 - 分县市局
// List<BarItem> countyRightsBarList = new ArrayList<>();
// // 维权案件情况 - 局属单位
// List<BarItem> bureauRightsBarList = new ArrayList<>();
// 抚慰金额情况 - 分县市局
List<BarItem> countyComfortMoneyBarList = new ArrayList<>();
// 抚慰金额情况 - 局属单位
List<BarItem> bureauComfortMoneyBarList = new ArrayList<>();
// 案件类别占比
// 打处情况
List<PieItem> punishmentSituation;
// 抚慰情况
List<PieItem> comfortSituation;
List<PieItem> punishmentSituation = new ArrayList<>();
// 民辅警抚慰情况占比
List<PieItem> comfortPoliceTypeProportion = new ArrayList<>();
// 民辅警受伤情况
// 发案情况占比
List<PieItem> comfortPoliceInjurySituation = new ArrayList<>();
// 民辅警受伤类别
List<PieItem> comfortInjuryCategory = new ArrayList<>();
}

5
src/main/java/com/biutag/supervision/pojo/model/UserAuth.java

@ -26,12 +26,17 @@ public class UserAuth implements Serializable {
private String departName;
// 职位
private String position;
// 警号
private String empNo;
// 手机号
private String mobile;
private String avatarUrl;
// 角色编号
private List<String> roleCodes;

1
src/main/java/com/biutag/supervision/pojo/param/DataPetitionComplaintQueryParam.java

@ -1,6 +1,5 @@
package com.biutag.supervision.pojo.param;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

7
src/main/java/com/biutag/supervision/pojo/param/NegativeQueryParam.java

@ -41,7 +41,7 @@ public class NegativeQueryParam extends BasePage {
private String businessTypeCode;
private String checkStatus;
private List<String> checkStatus;
private String isRectifyCode;
@ -49,9 +49,6 @@ public class NegativeQueryParam extends BasePage {
// 办结是否超时
private Boolean timeoutFlag;
// 办理中是否超时
private Boolean handleTimeoutFlag;
private String involveDepartId;
private String handleDepartId;
@ -83,5 +80,7 @@ public class NegativeQueryParam extends BasePage {
private String initialPetition;
// 操作人姓名
private String operator;
}

2
src/main/java/com/biutag/supervision/pojo/param/TaskInspectionQueryParam.java

@ -15,4 +15,6 @@ public class TaskInspectionQueryParam extends BasePage {
private String supDepartId;
private String type;
}

13
src/main/java/com/biutag/supervision/pojo/param/TaskProblemQueryParam.java

@ -0,0 +1,13 @@
package com.biutag.supervision.pojo.param;
import lombok.Getter;
import lombok.Setter;
/**
* @author wxc
* @date 2025/5/7
*/
@Setter
@Getter
public class TaskProblemQueryParam extends BasePage {
}

18
src/main/java/com/biutag/supervision/pojo/param/TaskQueryParam.java

@ -0,0 +1,18 @@
package com.biutag.supervision.pojo.param;
import lombok.Getter;
import lombok.Setter;
/**
* @author wxc
* @date 2025/4/11
*/
@Setter
@Getter
public class TaskQueryParam extends BasePage {
private String taskStatus;
private String taskName;
}

26
src/main/java/com/biutag/supervision/pojo/param/TaskTestingAlcoholPeopleQueryParam.java

@ -0,0 +1,26 @@
package com.biutag.supervision.pojo.param;
import lombok.Getter;
import lombok.Setter;
/**
* @author wxc
* @date 2025/4/7
*/
@Setter
@Getter
public class TaskTestingAlcoholPeopleQueryParam extends BasePage {
private String status;
private String name;
private String empNo;
// 检测情况
private String testingResult;
// 饮酒结果
private String drinkResult;
}

19
src/main/java/com/biutag/supervision/pojo/vo/AuditOverview.java

@ -0,0 +1,19 @@
package com.biutag.supervision.pojo.vo;
import lombok.Getter;
import lombok.Setter;
/**
* @author wxc
* @date 2025/4/24
*/
@Setter
@Getter
public class AuditOverview {
// 查出问题数
private Integer negativeNumber;
// 追责问责数
private Long accountableNumber;
}

2
src/main/java/com/biutag/supervision/pojo/vo/ComfortCountVO.java

@ -11,7 +11,7 @@ import lombok.Data;
public class ComfortCountVO {
private Integer comfortCaseTotal; // 维权案件总数
private Integer hurtTotal; // 受侵害人数
private Integer comfortTotal; // 抚慰人数
private Long comfortTotal; // 抚慰人数
private Integer hitTotal; // 打击处理人数
private Double comfortMoney; // 抚慰金额
}

6
src/main/java/com/biutag/supervision/pojo/vo/DayTimeSuperviseVo.java

@ -14,8 +14,8 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
public class DayTimeSuperviseVo {
private Integer proTotal;
private Integer changing;
private Integer changed;
private Double correctionRate;
private Long processingNumber;
private Long completedNumber;
private Double completedRate;
}

1
src/main/java/com/biutag/supervision/pojo/vo/FileVo.java

@ -15,5 +15,4 @@ public class FileVo {
private Integer fileClassId;
}

2
src/main/java/com/biutag/supervision/pojo/vo/GlobalOverViewVo.java

@ -15,5 +15,7 @@ public class GlobalOverViewVo {
Long talkPro; // 民意感知
Long auditPro;
Long totalPro;
private Long mailboxNumber;
}

1
src/main/java/com/biutag/supervision/pojo/vo/MailOverviewVo.java

@ -11,6 +11,7 @@ import java.io.Serializable;
*/
@Data
public class MailOverviewVo implements Serializable {
// 信访总问题数
private Long totalMail;
private Long countryMail;
private Long policeMail;

21
src/main/java/com/biutag/supervision/pojo/vo/PhotoGroupVo.java

@ -0,0 +1,21 @@
package com.biutag.supervision.pojo.vo;
import com.biutag.supervision.pojo.entity.SupPhoto;
import lombok.Getter;
import lombok.Setter;
import java.util.ArrayList;
import java.util.List;
/**
* @author wxc
* @date 2025/4/20
*/
@Setter
@Getter
public class PhotoGroupVo {
private String date;
private List<SupPhoto> photos = new ArrayList<>();
}

6
src/main/java/com/biutag/supervision/pojo/vo/SuperviseMapIconVo.java

@ -14,10 +14,10 @@ public class SuperviseMapIconVo implements Serializable {
private String name; // 分县市局名
private String departId;
private String totalPro;
private String changing;
private String changed;
private Long processingNumber;
private Long completedNumber;
private String relationOrg;
private String personNum;
private String changedRate;
private String completedRate;
}

16
src/main/java/com/biutag/supervision/pojo/vo/SupervisionNotifyOverView.java

@ -9,11 +9,17 @@ import lombok.Data;
*/
@Data
public class SupervisionNotifyOverView {
// 问题数
private Integer problemNumber;
private Integer rectifingNumber;
private Integer rectifedNumber;
private Integer departNumber;
private Integer personNumber;
private Integer rectifyRate;
// 办理中
private Long processingNumber;
// 已办结
private Long completedNumber;
// 问责单位数
private Long departNumber;
// 问责人数
private Long personNumber;
// 办结率
private Double completedRate;
}

22
src/main/java/com/biutag/supervision/pojo/vo/TaskCountVo.java

@ -0,0 +1,22 @@
package com.biutag.supervision.pojo.vo;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
/**
* @author wxc
* @date 2025/4/12
*/
@AllArgsConstructor
@Setter
@Getter
public class TaskCountVo {
private Long todoCount;
private Long doneCount;
public TaskCountVo() {
}
}

47
src/main/java/com/biutag/supervision/pojo/vo/TaskInspectionProblemVo.java

@ -0,0 +1,47 @@
package com.biutag.supervision.pojo.vo;
import com.biutag.supervision.pojo.dto.TaskProblemDto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
* @author wxc
* @date 2025/4/17
*/
@Setter
@Getter
public class TaskInspectionProblemVo {
private Integer id;
private Integer taskId;
// 是否存在督察问题
private Boolean hasProblem;
private String departId;
private String departName;
private String problemType;
private String problemTypeCode;
// 具体情况
private String detail;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime createTime;
// 附件
private List<FileVo> files = new ArrayList<>();
private List<TaskProblemDto.People> peoples = new ArrayList<>();
}

6
src/main/java/com/biutag/supervision/pojo/vo/TaskInspectionVo.java

@ -45,4 +45,10 @@ public class TaskInspectionVo {
private Integer drinkNumber;
private String taskStatus;
private Integer departNumber;
private Integer problemNumber;
}

51
src/main/java/com/biutag/supervision/pojo/vo/TaskSelfexaminationDetailVo.java

@ -0,0 +1,51 @@
package com.biutag.supervision.pojo.vo;
import com.biutag.supervision.pojo.entity.SupTaskSelfexaminationContent;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
* @author wxc
* @date 2025/5/6
*/
@Setter
@Getter
public class TaskSelfexaminationDetailVo {
private Integer id;
// 任务名称
private String taskName;
private String supDepartId;
// 督察单位
private String supDepartName;
// 开始时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime beginTime;
// 结束时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime endTime;
private String type;
// 任务要求
private String requirement;
private String requirementHtml;
private String taskStatus;
private Boolean hasSign;
private List<SupTaskSelfexaminationContent> contents = new ArrayList<>();
}

42
src/main/java/com/biutag/supervision/pojo/vo/TaskSelfexaminationVo.java

@ -0,0 +1,42 @@
package com.biutag.supervision.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
/**
* @author wxc
* @date 2025/5/6
*/
@Setter
@Getter
public class TaskSelfexaminationVo {
private Integer id;
// 任务名称
private String taskName;
// 督察单位
private String supDepartName;
// 开始时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime beginTime;
// 结束时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime endTime;
private String type;
// 任务要求
private String requirement;
private String taskStatus;
}

60
src/main/java/com/biutag/supervision/pojo/vo/TaskTestingAlcoholPeopleVo.java

@ -0,0 +1,60 @@
package com.biutag.supervision.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
* @author wxc
* @date 2025/4/14
*/
@Setter
@Getter
public class TaskTestingAlcoholPeopleVo {
private String taskId;
private String name;
// 警号
private String empNo;
// 身份证
private String idCode;
// 测酒状态
private String status;
private String departName;
// 职位
private String position = "/";
private String avatarUrl;
// 检测情况
private String testingResult;
// 饮酒结果
private String drinkResult;
// 酒精含量
private Double alcoholContent;
// 测酒时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime testingTime;
// 未检测情况说明
private String unTestingDesc;
// 检测照片
private String testingFiles;
private List<FileVo> testingFileList = new ArrayList<>();
}

56
src/main/java/com/biutag/supervision/pojo/vo/TaskVo.java

@ -0,0 +1,56 @@
package com.biutag.supervision.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
/**
* @author wxc
* @date 2025/4/11
*/
@Setter
@Getter
public class TaskVo {
private Integer id;
private String taskName;
// 督察单位
private String supDepartName;
// 任务类型
private String taskType;
// 开始时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime beginTime;
// 结束时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime endTime;
// 创建时间
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime createTime;
// 任务状态
private String taskStatus;
// 督察类型
private String supervisionType;
private String taskContent;
private Boolean hasSign;
// 抽检人员
private Integer totalNumber;
private String requirement;
private String type;
}

6
src/main/java/com/biutag/supervision/pojo/vo/VideoSuperviseCountVo.java

@ -14,10 +14,12 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
public class VideoSuperviseCountVo {
private Long total;
private Integer discoverProblem;
private Integer changedProblem;
private Integer completionProblem;
private Integer relativeOrg;
private Integer relativePer;
private Double changedRate;
private Double completionRate;
}

6
src/main/java/com/biutag/supervision/pojo/vo/VideoSuperviseMapIconVo.java

@ -16,14 +16,14 @@ import java.io.Serializable;
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class VideoSuperviseMapIconVo implements Serializable {
public class VideoSuperviseMapIconVo {
private String name;
private String departId;
private Integer discoverProblem;
private Integer changedProblem;
private Integer completionProblem;
private Integer relativeOrg;
private Integer relativePer;
private Integer changedRate;
private Integer completionRate;
}

31
src/main/java/com/biutag/supervision/service/BusinessDepartService.java

@ -1,5 +1,6 @@
package com.biutag.supervision.service;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -7,9 +8,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervision.mapper.*;
import com.biutag.supervision.pojo.entity.*;
import com.biutag.supervision.pojo.entity.BusinessDepart;
import com.biutag.supervision.pojo.entity.BusinessLog;
import com.biutag.supervision.pojo.entity.GBaseAJJBXX;
import com.biutag.supervision.pojo.entity.GBaseJJD;
import com.biutag.supervision.pojo.model.BusinessPoliceModel;
import com.biutag.supervision.pojo.model.DataRightsComfortModel;
import com.biutag.supervision.pojo.param.BusinessQueryParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -44,19 +47,18 @@ public class BusinessDepartService extends ServiceImpl<BusinessDepartMapper, Bus
private final SupExternalDepartMapper supExternalDepartMapper;
private final DataRightsComfortService dataRightsComfortService;
private final DataMigrationServiceImpl dataMigrationServiceImpl;
public Page<BusinessPoliceModel> page(BusinessQueryParam businessQueryParam) {
// 测基础数据
if (businessQueryParam.getDepartName() != null && businessQueryParam.getDepartName().equals("开始导入今年所有的数据")) {
LocalDate start = LocalDate.parse("2024-01-01");
LocalDate end = LocalDate.parse("2024-12-25");
Date now = new Date();
LocalDate start = DateUtil.beginOfYear(now).toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate end = now.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
for (LocalDate date = start; !date.isAfter(end); date = date.plusDays(1)) {
List<Date> happenTime = new ArrayList<>();
Date startDate = Date.from(date.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
Date endDate = Date.from(date.atTime(23, 59, 59).atZone(ZoneId.systemDefault()).toInstant());
Date from = Date.from(date.atStartOfDay(ZoneId.systemDefault()).toInstant());
Date startDate = DateUtil.beginOfDay(from);
Date endDate = DateUtil.endOfDay(from);
happenTime.add(startDate);
happenTime.add(endDate);
generate(happenTime);
@ -64,8 +66,8 @@ public class BusinessDepartService extends ServiceImpl<BusinessDepartMapper, Bus
}
} else if (businessQueryParam.getDepartName() != null && businessQueryParam.getDepartName().equals("开始导入今天所有的数据")) {
List<Date> happenTime = new ArrayList<>();
Date start = Date.from(LocalDateTime.parse("2024-09-17T00:00:00", DateTimeFormatter.ISO_DATE_TIME).atZone(ZoneId.systemDefault()).toInstant());
Date end = Date.from(LocalDateTime.parse("2024-09-17T23:59:59", DateTimeFormatter.ISO_DATE_TIME).atZone(ZoneId.systemDefault()).toInstant());
Date start = DateUtil.beginOfDay(new Date());
Date end = DateUtil.endOfDay(new Date());
happenTime.add(start);
happenTime.add(end);
generate(happenTime);
@ -78,13 +80,6 @@ public class BusinessDepartService extends ServiceImpl<BusinessDepartMapper, Bus
modelClueService.generate(testNumber);
System.out.println("测试" + testNumber + "执行完毕");
}
if (departName != null && departName.equals("测大屏")) {
Date beginTime = Date.from(LocalDateTime.parse("2024-10-01T00:00:00", DateTimeFormatter.ISO_DATE_TIME).atZone(ZoneId.systemDefault()).toInstant());
Date endTime = Date.from(LocalDateTime.parse("2024-10-02T00:00:00", DateTimeFormatter.ISO_DATE_TIME).atZone(ZoneId.systemDefault()).toInstant());
DataRightsComfortModel result = new DataRightsComfortModel();
int i = 0;
}
// 测导入单位关联表
if (businessQueryParam.getDepartName() != null && businessQueryParam.getDepartName().equals("导入单位")) {

2
src/main/java/com/biutag/supervision/service/DataCaseVerifService.java

@ -92,7 +92,7 @@ public class DataCaseVerifService extends ServiceImpl<DataCaseVerifMapper, DataC
// negativeDto.setBusinessTypeCode(BusinessTypeEnum.ABWW);
// negativeDto.setBusinessTypeName();
negativeDto.setBusinessTypeCode(BusinessTypeEnum.getByLabel(item.getBusinessTypeName()).getValue());
negativeDto.setBusinessTypeName(item.getBusinessTypeName());
negativeDto.setResponderName(item.getResponderName()); // 投诉人
negativeDto.setContactPhone(item.getResponderPhone());
negativeDto.setThingDesc(item.getThingDesc()); // 投诉详情

34
src/main/java/com/biutag/supervision/service/DataMailService.java

@ -1,10 +1,13 @@
package com.biutag.supervision.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervision.constants.enums.ProblemSourcesEnum;
import com.biutag.supervision.mapper.*;
import com.biutag.supervision.pojo.entity.DataPetition12337;
import com.biutag.supervision.pojo.entity.DataPetitionComplaint;
import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.entity.SupDepart;
import com.biutag.supervision.pojo.entity.mailbox.Mail;
import com.biutag.supervision.pojo.vo.EchartsVo;
@ -29,44 +32,43 @@ public class DataMailService extends ServiceImpl<DataPetitionComplaintMapper, Da
private final DataPetition12337Mapper dataPetition12337Mapper;
private final SupDepartMapper supDepartMapper;
private final MailMapper mailMapper;
private final NegativeService negativeService;
private final String VALID_SIGN = "terminated"; // 有效标识
private final String EX_SOURCE = "局长信箱"; // 映射来源
// 一级信访大屏数据中央统计
public MailOverviewVo allMailCount(Date beginTime, Date endTime) {
MailOverviewVo temp = new MailOverviewVo();
MailOverviewVo vo = mailCount(beginTime, endTime);
long totalMail = vo.getCountryMail() + vo.getPoliceMail() + vo.getNumberMail();
vo.setTotalMail(totalMail);
return vo;
}
public MailOverviewVo mailCount(Date beginTime, Date endTime) {
MailOverviewVo temp = new MailOverviewVo();
// 国家信访
QueryWrapper<DataPetitionComplaint> countryQueryWrapper = new QueryWrapper<>();
countryQueryWrapper.eq("problem_sources_code", 21);
countryQueryWrapper.between("discovery_time", beginTime, endTime);
countryQueryWrapper.between("create_time", beginTime, endTime);
Long countryMail = dataPetitionComplaintMapper.selectCount(countryQueryWrapper);
// 公安部信访
QueryWrapper<DataPetitionComplaint> policeQueryWrapper = new QueryWrapper<>();
policeQueryWrapper.eq("problem_sources_code", 22);
policeQueryWrapper.between("discovery_time", beginTime, endTime);
policeQueryWrapper.between("create_time", beginTime, endTime);
Long policeMail = dataPetitionComplaintMapper.selectCount(policeQueryWrapper);
// 12337
QueryWrapper<DataPetition12337> queryWrapper12337 = new QueryWrapper<>();
queryWrapper12337.between("discover_time", beginTime, endTime);
Long numberMail = dataPetition12337Mapper.selectCount(queryWrapper12337);
long mail12337 = negativeService.count(new LambdaQueryWrapper<Negative>().between(Negative::getCrtTime, beginTime, endTime).eq(Negative::getProblemSourcesCode, ProblemSourcesEnum.XF12337.getValue()));
// 局长信箱
QueryWrapper<Mail> mailQueryWrapper = new QueryWrapper<>();
mailQueryWrapper.ne("mail_state", VALID_SIGN);
mailQueryWrapper.between("create_time", beginTime, endTime);
Long manageMail = mailMapper.selectCount(mailQueryWrapper);
long mailCount = negativeService.count(new LambdaQueryWrapper<Negative>().between(Negative::getCrtTime, beginTime, endTime).eq(Negative::getProblemSourcesCode, ProblemSourcesEnum.JZXX.getValue()));
// 总数
Long totalMail = countryMail + policeMail + numberMail;
temp.setCountryMail(countryMail);
temp.setPoliceMail(policeMail);
temp.setNumberMail(numberMail);
temp.setTotalMail(totalMail);
temp.setManageMail(manageMail);
temp.setNumberMail(mail12337);
temp.setManageMail(mailCount);
return temp;
}

2
src/main/java/com/biutag/supervision/service/DataPetition12337Service.java

@ -119,6 +119,7 @@ public class DataPetition12337Service extends ServiceImpl<DataPetition12337Mappe
dataPetition12337.setSecondDepartId(parent.getId());
dataPetition12337.setSecondDepartName(parent.getShortName());
}
dataPetition12337.setCreateTime(LocalDateTime.now());
return dataPetition12337;
}).toList();
saveOrUpdateBatch(list);
@ -142,7 +143,6 @@ public class DataPetition12337Service extends ServiceImpl<DataPetition12337Mappe
negativeDto.setProblemSourcesCode(ProblemSourcesEnum.XF12337.getValue()); // 来源分类
negativeDto.setProblemSources(ProblemSourcesEnum.XF12337.getLabel());
negativeDto.setBusinessTypeCode(distributeData.getBusinessTypeCode());
negativeDto.setBusinessTypeName(distributeData.getBusinessTypeName());
negativeDto.setResponderName(item.getName()); // 投诉人
negativeDto.setContactPhone(item.getPhone());
negativeDto.setThingDesc(item.getWjwfProject());

3
src/main/java/com/biutag/supervision/service/DataPetitionComplaintService.java

@ -52,7 +52,7 @@ public class DataPetitionComplaintService extends ServiceImpl<DataPetitionCompla
queryWrapper.eq("pc.third_Depart_Id", queryParam.getDepartId());
}
}
queryWrapper.eq("pc.problem_sources_code", queryParam.getProblemSourcesCode())
queryWrapper.eq(StrUtil.isNotBlank(queryParam.getProblemSourcesCode()), "pc.problem_sources_code", queryParam.getProblemSourcesCode())
.like(StrUtil.isNotBlank(queryParam.getOriginId()), "pc.origin_Id", queryParam.getOriginId())
.like(StrUtil.isNotBlank(queryParam.getThingDesc()), "pc.thing_desc", queryParam.getThingDesc())
.eq(StrUtil.isNotBlank(queryParam.getDistributionState()), "pc.distribution_state", queryParam.getDistributionState())
@ -115,7 +115,6 @@ public class DataPetitionComplaintService extends ServiceImpl<DataPetitionCompla
negativeDto.setProblemSourcesCode(item.getProblemSourcesCode());
negativeDto.setProblemSources(ProblemSourcesEnum.get(item.getProblemSourcesCode()).getLabel());
negativeDto.setBusinessTypeCode(dataDistribute.getBusinessTypeCode());
negativeDto.setBusinessTypeName(dataDistribute.getBusinessTypeName());
negativeDto.setPoliceType(dataDistribute.getPoliceType());
negativeDto.setInvolveProblem(dataDistribute.getInvolveProblem());
negativeDto.setResponderName(item.getResponderName());

85
src/main/java/com/biutag/supervision/service/DataRightsComfortService.java

@ -1,18 +1,11 @@
package com.biutag.supervision.service;
import com.biutag.supervision.mapper.RpcApplyMapper;
import com.biutag.supervision.mapper.SupDepartMapper;
import com.biutag.supervision.pojo.dto.common.PieItem;
import com.biutag.supervision.pojo.entity.RpcInfringerResult;
import com.biutag.supervision.pojo.entity.SupDepart;
import com.biutag.supervision.pojo.vo.RightsComfortMapVo;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
import static com.biutag.supervision.constants.enums.DepartGroupEnum.COUNTY_CITY_BUREAUS;
import java.util.Date;
import java.util.List;
@RequiredArgsConstructor
@Service
@ -20,85 +13,11 @@ public class DataRightsComfortService {
private final RpcApplyMapper rpcApplyMapper;
private final SupDepartMapper supDepartMapper;
// 抚慰人数
public Integer countComfortPersonNumber(Date beginTime, Date endTime) {
return rpcApplyMapper.countComfortPersonNumber(beginTime, endTime);
}
// 打击处理人数
public Integer countHitPersonNumber(Date beginTime, Date endTime) {
List<String> hitPeople = rpcApplyMapper.getHitPeople(beginTime, endTime);
int totalPeople = 0;
if (hitPeople == null || hitPeople.isEmpty()) {
return 0;
}
for (String hitPerson : hitPeople) {
if (hitPerson.isEmpty()) {
continue;
}
if (hitPerson.contains(",")) {
String[] people = hitPerson.split(",");
totalPeople += people.length;
} else {
totalPeople += 1;
}
}
return totalPeople;
}
public Double countComfortMoney(Date beginTime, Date endTime) {
return rpcApplyMapper.countComfortMoney(beginTime, endTime) / 10000.0;
}
public List<PieItem> selectPunishmentSituation(Date beginTime, Date endTime) {
List<RpcInfringerResult> rpcInfringerResults = rpcApplyMapper.selectPunishmentSituation(beginTime, endTime);
if (rpcInfringerResults == null || rpcInfringerResults.isEmpty()) {
return new ArrayList<>();
}
Map<String, Integer> countMap = new HashMap<>();
for (RpcInfringerResult rpcInfringerResult : rpcInfringerResults) {
String defendHandleWayName = rpcInfringerResult.getDefendHandleWayName();
String tortName = rpcInfringerResult.getTortName();
String[] names = tortName.split(",");
int count = names.length;
countMap.put(defendHandleWayName, countMap.getOrDefault(defendHandleWayName, 0) + count);
}
return countMap.entrySet().stream().map(entry -> new PieItem(entry.getKey(), entry.getValue())).collect(Collectors.toList());
}
public List<PieItem> selectComfortSituation(Date beginTime, Date endTime) {
return rpcApplyMapper.selectComfortSituation(beginTime, endTime);
}
// 维权抚慰地图图标数据
public List<RightsComfortMapVo> getComfortMapIcon(Date beginTime, Date endTime) {
List<RightsComfortMapVo> res = new ArrayList<>();
// 查询所有区县局
List<SupDepart> supDeparts = supDepartMapper.selectDepartsByGroupType(COUNTY_CITY_BUREAUS.getId());
for (SupDepart supDepart : supDeparts) {
RightsComfortMapVo mapIconVo = new RightsComfortMapVo();
mapIconVo.setName(supDepart.getShortName());
mapIconVo.setDepartId(supDepart.getId());
res.add(mapIconVo);
}
for (RightsComfortMapVo re : res) {
String departId = re.getDepartId();
re.setTotalCase(0);
re.setHitPro(0);
re.setComfortPer(0);
re.setVictimPer(0);
re.setComfortMon(0.0);
}
return res;
}
// 打击处理人数
public Integer countSubOneHitPersonNumber(Date beginTime, Date endTime, Integer departId) {
List<String> hitPeople = rpcApplyMapper.getSubOneHitPeople(beginTime, endTime, departId);

1
src/main/java/com/biutag/supervision/service/ModelClueService.java

@ -168,7 +168,6 @@ public class ModelClueService extends ServiceImpl<ModelClueMapper, ModelClue> {
negative.setBusinessTypeCode(model.getBusinessTypeCode());
} else {
negative.setBusinessTypeCode(BusinessTypeEnum.QT.getValue());
negative.setBusinessTypeName(BusinessTypeEnum.QT.getLabel());
}
negative.setPoliceType(model.getPoliceType());

8
src/main/java/com/biutag/supervision/service/NegativeCountersignService.java

@ -8,17 +8,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervision.common.UserContextHolder;
import com.biutag.supervision.constants.enums.DepartLevelEnum;
import com.biutag.supervision.constants.enums.OrderEnum;
import com.biutag.supervision.constants.enums.ProcessingStatusEnum;
import com.biutag.supervision.constants.enums.RoleCodeEnum;
import com.biutag.supervision.mapper.NegativeCountersignMapper;
import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.entity.NegativeBlame;
import com.biutag.supervision.pojo.entity.NegativeCountersign;
import com.biutag.supervision.mapper.NegativeCountersignMapper;
import com.biutag.supervision.pojo.model.UserAuth;
import com.biutag.supervision.pojo.param.NegativeQueryParam;
import com.biutag.supervision.pojo.vo.DepartTree;
import com.biutag.supervision.pojo.vo.NegativeQueryVo;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@ -53,7 +50,6 @@ public class NegativeCountersignService extends ServiceImpl<NegativeCountersignM
} else {
q.in("a.create_role_code", user.getRoleCodes()).in("a.create_depart_id", user.getAuthDepartIds());
}
});
});
queryWrapper.and(StrUtil.isNotBlank(param.getOriginId()), (qw) -> {
@ -64,7 +60,7 @@ public class NegativeCountersignService extends ServiceImpl<NegativeCountersignM
.like(StrUtil.isNotBlank(param.getThingDesc()), "n.thingDesc", param.getThingDesc())
.in(CollectionUtil.isNotEmpty(param.getProblemSourcesCode()), "n.problemSourcesCode", param.getProblemSourcesCode())
.eq(StrUtil.isNotBlank(param.getBusinessTypeCode()), "n.businessTypeCode", param.getBusinessTypeCode())
.eq(StrUtil.isNotBlank(param.getCheckStatus()), "n.checkStatus", param.getCheckStatus())
.in(CollectionUtil.isNotEmpty(param.getCheckStatus()), "n.checkStatus", param.getCheckStatus())
.eq(StrUtil.isNotBlank(param.getIsRectifyCode()), "n.isRectifyCode", param.getIsRectifyCode())
.eq(StrUtil.isNotBlank(param.getSpecialSupervision()), "n.special_Supervision", param.getSpecialSupervision())
.like(StrUtil.isNotBlank(param.getReportNumber()), "n.report_Number", param.getReportNumber())

27
src/main/java/com/biutag/supervision/service/NegativeQueryService.java

@ -77,7 +77,7 @@ public class NegativeQueryService {
// 通报期数
.like(StrUtil.isNotBlank(param.getReportNumber()), Negative::getReportNumber, param.getReportNumber())
// 是否属实
.eq(StrUtil.isNotBlank(param.getCheckStatus()), Negative::getCheckStatus, param.getCheckStatus())
.in(CollectionUtil.isNotEmpty(param.getCheckStatus()), Negative::getCheckStatus, param.getCheckStatus())
// 是否整改
.eq(StrUtil.isNotBlank(param.getIsRectifyCode()), Negative::getIsRectifyCode, param.getIsRectifyCode());
// 涉及单位
@ -135,22 +135,25 @@ public class NegativeQueryService {
break;
}
}
// 办理中是否超时
if (Objects.nonNull(param.getHandleTimeoutFlag())) {
if (param.getHandleTimeoutFlag()) {
queryWrapper.ne(Negative::getProcessingStatus, ProcessingStatusEnum.completed.name()).lt(Negative::getHandleRemainingTime, 0);
} else {
queryWrapper.ne(Negative::getProcessingStatus, ProcessingStatusEnum.completed.name()).ge(Negative::getHandleRemainingTime, 0);
}
}
// 办结是否超时
// 是否超时
if (Objects.nonNull(param.getTimeoutFlag())) {
if (param.getTimeoutFlag()) {
queryWrapper.eq(Negative::getProcessingStatus, ProcessingStatusEnum.completed.name()).gt(Negative::getHandleTimeout, 0);
queryWrapper
.and(query -> {
query.and(q -> {
q.lt(Negative::getHandleRemainingTime, 0).ne(Negative::getProcessingStatus, ProcessingStatusEnum.completed.name());
}).or().gt(Negative::getHandleTimeout, 0).eq(Negative::getProcessingStatus, ProcessingStatusEnum.completed.name());
});
} else {
queryWrapper
.and(query -> {
query.ne(Negative::getProcessingStatus, ProcessingStatusEnum.completed.name()).or().gt(Negative::getHandleTimeout, 0);
query.and(q -> {
q.ge(Negative::getHandleRemainingTime, 0).ne(Negative::getProcessingStatus, ProcessingStatusEnum.completed.name());
}).or().eq(Negative::getProcessingStatus, ProcessingStatusEnum.completed.name())
.and(q -> {
q.eq(Negative::getHandleTimeout, 0).or().isNull(Negative::getHandleTimeout);
});
});
}
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save