Browse Source

数据台账

main
wxc 1 year ago
parent
commit
89da23735a
  1. 12
      pom.xml
  2. 21
      sql/241231.sql
  3. 4
      src/main/java/com/biutag/supervision/config/InterceptorConfig.java
  4. 16
      src/main/java/com/biutag/supervision/controller/StatisticsController.java
  5. 41
      src/main/java/com/biutag/supervision/controller/api/plugin/CaseVerifController.java
  6. 2
      src/main/java/com/biutag/supervision/controller/api/plugin/PetitionComplainApiController.java
  7. 112
      src/main/java/com/biutag/supervision/controller/books/NegativeBookController.java
  8. 27
      src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaint12337Controller.java
  9. 158
      src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaintController.java
  10. 42
      src/main/java/com/biutag/supervision/controller/data/VideoInspectionController.java
  11. 8
      src/main/java/com/biutag/supervision/controller/sensitiveperception/ProfileDepartController.java
  12. 12
      src/main/java/com/biutag/supervision/controller/sensitiveperception/ProfilePoliceController.java
  13. 2
      src/main/java/com/biutag/supervision/controller/system/DepartMapingController.java
  14. 65
      src/main/java/com/biutag/supervision/controller/system/ProblemTypeMapingController.java
  15. 6
      src/main/java/com/biutag/supervision/controller/work/NegativeTaskController.java
  16. 60
      src/main/java/com/biutag/supervision/controller/work/NewsController.java
  17. 36
      src/main/java/com/biutag/supervision/job/Job.java
  18. 6
      src/main/java/com/biutag/supervision/mapper/DataAlarmDispositionInfoMapper.java
  19. 13
      src/main/java/com/biutag/supervision/mapper/MailMapper.java
  20. 6
      src/main/java/com/biutag/supervision/mapper/NegativeTaskMapper.java
  21. 8
      src/main/java/com/biutag/supervision/mapper/NewsMapper.java
  22. 8
      src/main/java/com/biutag/supervision/mapper/SupDictProblemTypeMapingMapper.java
  23. 2
      src/main/java/com/biutag/supervision/pojo/domain/CountersignApply.java
  24. 4
      src/main/java/com/biutag/supervision/pojo/domain/NegativeVo.java
  25. 86
      src/main/java/com/biutag/supervision/pojo/dto/DataPetition12337Distribute.java
  26. 7
      src/main/java/com/biutag/supervision/pojo/dto/DataPetition12337Dto.java
  27. 556
      src/main/java/com/biutag/supervision/pojo/dto/DataPetition12337ExportDto.java
  28. 68
      src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintGjImportDto.java
  29. 102
      src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintImportDto.java
  30. 56
      src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifPluginDto.java
  31. 2
      src/main/java/com/biutag/supervision/pojo/entity/BaseRole.java
  32. 3
      src/main/java/com/biutag/supervision/pojo/entity/DataCaseVerif.java
  33. 8
      src/main/java/com/biutag/supervision/pojo/entity/DataPetitionComplaint.java
  34. 2
      src/main/java/com/biutag/supervision/pojo/entity/ModelClueRecord.java
  35. 6
      src/main/java/com/biutag/supervision/pojo/entity/Negative.java
  36. 2
      src/main/java/com/biutag/supervision/pojo/entity/NegativeApprove.java
  37. 2
      src/main/java/com/biutag/supervision/pojo/entity/NegativeCountersign.java
  38. 2
      src/main/java/com/biutag/supervision/pojo/entity/NegativeHistory.java
  39. 4
      src/main/java/com/biutag/supervision/pojo/entity/NegativeTask.java
  40. 45
      src/main/java/com/biutag/supervision/pojo/entity/News.java
  41. 4
      src/main/java/com/biutag/supervision/pojo/entity/RiskTask.java
  42. 2
      src/main/java/com/biutag/supervision/pojo/entity/SupDictData.java
  43. 41
      src/main/java/com/biutag/supervision/pojo/entity/SupDictProblemTypeMaping.java
  44. 2
      src/main/java/com/biutag/supervision/pojo/entity/SupDictType.java
  45. 408
      src/main/java/com/biutag/supervision/pojo/entity/mailbox/Mail.java
  46. 4
      src/main/java/com/biutag/supervision/pojo/model/DataMigrationModel.java
  47. 2
      src/main/java/com/biutag/supervision/pojo/model/ModelClueModel.java
  48. 2
      src/main/java/com/biutag/supervision/pojo/model/ModelClueTaskModel.java
  49. 6
      src/main/java/com/biutag/supervision/pojo/model/NegativeFavModel.java
  50. 4
      src/main/java/com/biutag/supervision/pojo/model/NegativeWorkModel.java
  51. 2
      src/main/java/com/biutag/supervision/pojo/model/UserModel.java
  52. 28
      src/main/java/com/biutag/supervision/pojo/param/NewsQueryParam.java
  53. 19
      src/main/java/com/biutag/supervision/pojo/param/VideoInspectionQueryParam.java
  54. 82
      src/main/java/com/biutag/supervision/pojo/vo/DataPetitionComplaintExportGabxfVo.java
  55. 2
      src/main/java/com/biutag/supervision/pojo/vo/DataPetitionComplaintNegativeVo.java
  56. 2
      src/main/java/com/biutag/supervision/pojo/vo/DictContentTree.java
  57. 4
      src/main/java/com/biutag/supervision/pojo/vo/ExportNegativeVo.java
  58. 2
      src/main/java/com/biutag/supervision/pojo/vo/NegativeHdjq.java
  59. 6
      src/main/java/com/biutag/supervision/pojo/vo/NegativeQueryVo.java
  60. 13
      src/main/java/com/biutag/supervision/pojo/vo/VideoInspectionInfo.java
  61. 29
      src/main/java/com/biutag/supervision/pojo/vo/VideoInspectionVo.java
  62. 58
      src/main/java/com/biutag/supervision/service/DataPetition12337Service.java
  63. 6
      src/main/java/com/biutag/supervision/service/DataPetitionComplaintService.java
  64. 77
      src/main/java/com/biutag/supervision/service/NegativeBookService.java
  65. 5
      src/main/java/com/biutag/supervision/service/NegativeTaskService.java
  66. 11
      src/main/java/com/biutag/supervision/service/NewsService.java
  67. 11
      src/main/java/com/biutag/supervision/service/SupDictProblemTypeMapingService.java
  68. 7
      src/main/resources/application-prod.yml
  69. 18
      src/main/resources/mapper/DataAlarmDispositionInfoMapper.xml
  70. 3
      src/main/resources/mapper/DataPetitionComplaintMapper.xml
  71. 26
      src/main/resources/mapper/NegativeTaskMapper.xml
  72. BIN
      src/main/resources/static/templates/公安信访投诉数据导入模板.xls
  73. BIN
      src/main/resources/static/templates/国家信访投诉数据导入模板.xls
  74. BIN
      src/main/resources/static/templates/问题标准模板.xlsx
  75. 9
      src/test/java/com/biutag/supervision/StrUtil.java
  76. 2
      src/test/java/com/biutag/supervision/tools/GenCodeTests.java

12
pom.xml

@ -219,6 +219,18 @@
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.7.4</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.18.3</version>
</dependency>
</dependencies>
<build>

21
sql/241231.sql

@ -0,0 +1,21 @@
CREATE TABLE `news` (
`id` int NOT NULL AUTO_INCREMENT,
`source` varchar(255) DEFAULT NULL COMMENT '动态来源',
`work_type` varchar(255) DEFAULT NULL COMMENT '动态分类',
`release_time` datetime DEFAULT NULL COMMENT '发布时间',
`create_time` datetime DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
`content_txt` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
CREATE TABLE `sup_dict_problem_type_maping` (
`id` int NOT NULL AUTO_INCREMENT,
`external_name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`internal_name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL,
`internal_id` varchar(40) COLLATE utf8mb4_general_ci NOT NULL,
`create_time` datetime DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;

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

@ -36,8 +36,8 @@ public class InterceptorConfig implements WebMvcConfigurer {
.excludePathPatterns("/file/stream/**", "/templates/**")
.excludePathPatterns("/datav/risk/**")
.excludePathPatterns("/score/**")
.excludePathPatterns("/policeUpdateAvatar")
// excel导出
.excludePathPatterns("/data/petitionComplaint12337/export/result", "/negative/books/export/xf/**")
.excludePathPatterns(List.of("/doc.html", "/webjars/**", "/favicon.ico", "/v3/api-docs/**"));
registry.addInterceptor(new ApiInterceptor())
.addPathPatterns("/api/jwdc/**");

16
src/main/java/com/biutag/supervision/controller/StatisticsController.java

@ -52,7 +52,7 @@ public class StatisticsController {
.in(!user.getAuthSources().isEmpty(), Negative::getProblemSourcesCode, user.getAuthSources())
.and(nonAdminAuth, query -> {
query.in(Negative::getHandleSecondDepartId, user.getAuthDepartIds()).or()
.in(Negative::getThingDesc, user.getAuthDepartIds());
.in(Negative::getHandleThreeDepartId, user.getAuthDepartIds());
})
);
long verifyCount = negativeService.count(new LambdaUpdateWrapper<Negative>()
@ -60,7 +60,7 @@ public class StatisticsController {
.in(!user.getAuthSources().isEmpty(), Negative::getProblemSourcesCode, user.getAuthSources())
.and(nonAdminAuth, query -> {
query.in(Negative::getHandleSecondDepartId, user.getAuthDepartIds()).or()
.in(Negative::getThingDesc, user.getAuthDepartIds());
.in(Negative::getHandleThreeDepartId, user.getAuthDepartIds());
})
);
long delayCount = negativeService.count(new LambdaUpdateWrapper<Negative>()
@ -70,7 +70,7 @@ public class StatisticsController {
.in(!user.getAuthSources().isEmpty(), Negative::getProblemSourcesCode, user.getAuthSources())
.and(nonAdminAuth, query -> {
query.in(Negative::getHandleSecondDepartId, user.getAuthDepartIds()).or()
.in(Negative::getThingDesc, user.getAuthDepartIds());
.in(Negative::getHandleThreeDepartId, user.getAuthDepartIds());
})
);
long completedApproveCount = negativeService.count(new LambdaUpdateWrapper<Negative>()
@ -78,7 +78,7 @@ public class StatisticsController {
.in(!user.getAuthSources().isEmpty(), Negative::getProblemSourcesCode, user.getAuthSources())
.and(nonAdminAuth, query -> {
query.in(Negative::getHandleSecondDepartId, user.getAuthDepartIds()).or()
.in(Negative::getThingDesc, user.getAuthDepartIds());
.in(Negative::getHandleThreeDepartId, user.getAuthDepartIds());
})
);
@ -90,7 +90,7 @@ public class StatisticsController {
.in(!user.getAuthSources().isEmpty(), Negative::getProblemSourcesCode, user.getAuthSources())
.and(nonAdminAuth, query -> {
query.in(Negative::getHandleSecondDepartId, user.getAuthDepartIds()).or()
.in(Negative::getThingDesc, user.getAuthDepartIds());
.in(Negative::getHandleThreeDepartId, user.getAuthDepartIds());
})
);
long todayCompleted = negativeService.count(new LambdaUpdateWrapper<Negative>()
@ -98,14 +98,14 @@ public class StatisticsController {
.in(!user.getAuthSources().isEmpty(), Negative::getProblemSourcesCode, user.getAuthSources())
.and(nonAdminAuth, query -> {
query.in(Negative::getHandleSecondDepartId, user.getAuthDepartIds()).or()
.in(Negative::getThingDesc, user.getAuthDepartIds());
.in(Negative::getHandleThreeDepartId, user.getAuthDepartIds());
})
);
long totalNumber = negativeService.count(new LambdaUpdateWrapper<Negative>()
.in(!user.getAuthSources().isEmpty(), Negative::getProblemSourcesCode, user.getAuthSources())
.and(nonAdminAuth, query -> {
query.in(Negative::getHandleSecondDepartId, user.getAuthDepartIds()).or()
.in(Negative::getThingDesc, user.getAuthDepartIds());
.in(Negative::getHandleThreeDepartId, user.getAuthDepartIds());
})
);
long totalCompleted = negativeService.count(new LambdaUpdateWrapper<Negative>()
@ -113,7 +113,7 @@ public class StatisticsController {
.in(!user.getAuthSources().isEmpty(), Negative::getProblemSourcesCode, user.getAuthSources())
.and(nonAdminAuth, query -> {
query.in(Negative::getHandleSecondDepartId, user.getAuthDepartIds()).or()
.in(Negative::getThingDesc, user.getAuthDepartIds());
.in(Negative::getHandleThreeDepartId, user.getAuthDepartIds());
})
);

41
src/main/java/com/biutag/supervision/controller/api/plugin/CaseVerifController.java

@ -0,0 +1,41 @@
package com.biutag.supervision.controller.api.plugin;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.dto.DataPetitionComplaintDto;
import com.biutag.supervision.pojo.dto.plugin.CaseVerifPluginDto;
import com.biutag.supervision.pojo.entity.DataCaseVerif;
import com.biutag.supervision.service.DataCaseVerifService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author wxc
* @date 2025/1/6
*/
@Tag(name = "案件核查(插件)")
@RequiredArgsConstructor
@RequestMapping("plugin/caseVerif")
@RestController
public class CaseVerifController {
private final DataCaseVerifService dataCaseVerifService;
@Operation(summary = "推送案件核查数据")
@PostMapping
public Result<Boolean> add(@RequestBody @Validated CaseVerifPluginDto body) {
DataCaseVerif caseVerif = new DataCaseVerif();
caseVerif.setOriginId(body.getCaseNumber());
caseVerif.setResponderName(body.getReporterName());
caseVerif.setResponderPhone(body.getReporterContact());
caseVerif.setThingDesc(body.getBriefCase());
caseVerif.setSourceInvolveDepartName(body.getVerifiedObjectUnit());
dataCaseVerifService.save(caseVerif);
return Result.success();
}
}

2
src/main/java/com/biutag/supervision/controller/api/plugin/PetitionComplainApiController.java

@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Tag(name = "信访投诉(插件)")
@RequiredArgsConstructor
@RequestMapping("plugin/petitionComplain")
@RestController

112
src/main/java/com/biutag/supervision/controller/books/NegativeBookController.java

@ -2,24 +2,23 @@ package com.biutag.supervision.controller.books;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.constants.enums.DepartLevelEnum;
import com.biutag.supervision.constants.enums.ProblemSourcesEnum;
import com.biutag.supervision.constants.enums.SpecialSupervisionEnum;
import com.biutag.supervision.mapper.DataPetitionComplaintMapper;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.entity.DataPetitionComplaint;
import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.entity.NegativeBlame;
import com.biutag.supervision.pojo.param.NegativeQueryParam;
import com.biutag.supervision.pojo.vo.DataPetitionComplaintNegativeVo;
import com.biutag.supervision.pojo.vo.DepartTree;
import com.biutag.supervision.pojo.vo.NegativeHdjq;
import com.biutag.supervision.pojo.vo.*;
import com.biutag.supervision.service.NegativeBlameService;
import com.biutag.supervision.service.NegativeBookService;
import com.biutag.supervision.service.NegativeService;
import com.biutag.supervision.service.SupDepartService;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
@ -27,9 +26,12 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
@ -50,6 +52,9 @@ public class NegativeBookController {
private final DataPetitionComplaintMapper dataPetitionComplaintMapper;
private final NegativeBookService negativeBookService;
// 黄赌警情
@GetMapping("hdjq")
public Result<Page<NegativeHdjq>> page(NegativeQueryParam param) {
LambdaQueryWrapper<Negative> queryWrapper = new LambdaQueryWrapper<>();
@ -108,6 +113,7 @@ public class NegativeBookController {
return Result.success(new Page<NegativeHdjq>().setTotal(page.getTotal()).setRecords(list));
}
// 现场督察
@GetMapping("xcdc")
public Result<Page<NegativeHdjq>> pageByXcdc(NegativeQueryParam param) {
LambdaQueryWrapper<Negative> queryWrapper = new LambdaQueryWrapper<>();
@ -163,55 +169,61 @@ public class NegativeBookController {
return Result.success(new Page<NegativeHdjq>().setTotal(page.getTotal()).setRecords(list));
}
// 案件核查
@GetMapping("ajhc")
public Result<Page<NegativeHdjq>> pageByAjhc(NegativeQueryParam param) {
return Result.success();
public Result<Page<Negative>> pageByAjhc(NegativeQueryParam param) {
LambdaQueryWrapper<Negative> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper
.in(Negative::getProblemSourcesCode, List.of(ProblemSourcesEnum.A12389.getValue(), ProblemSourcesEnum.SLDJB.getValue(), ProblemSourcesEnum.ZDDJB.getValue(), ProblemSourcesEnum.SJJB.getValue()))
.in(!param.getProcessingStatus().isEmpty(), Negative::getProcessingStatus, param.getProcessingStatus())
.like(StrUtil.isNotBlank(param.getThingDesc()), Negative::getThingDesc, param.getThingDesc())
.like(StrUtil.isNotBlank(param.getCheckStatusDesc()), Negative::getCheckStatusDesc, param.getCheckStatusDesc())
.eq(Objects.nonNull(param.getCrtDepartLevel()), Negative::getCrtDepartLevel, param.getCrtDepartLevel())
.orderByDesc(Negative::getDiscoveryTime);
Page<Negative> page = negativeService.page(Page.of(param.getCurrent(), param.getSize()), queryWrapper);
return Result.success(page);
}
// 信访投诉
@GetMapping("xf/{problemSourcesCode}")
public Result<Page<DataPetitionComplaintNegativeVo>> pageByGabxf(@PathVariable String problemSourcesCode, NegativeQueryParam param) {
QueryWrapper<DataPetitionComplaint> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("pc.problem_sources_code", problemSourcesCode)
.in(!param.getProcessingStatus().isEmpty(), "n.Processing_Status", param.getProcessingStatus())
.like(StrUtil.isNotBlank(param.getThingDesc()), "pc.Thing_Desc", param.getThingDesc())
.like(StrUtil.isNotBlank(param.getCheckStatusDesc()), "n.checkStatusDesc", param.getCheckStatusDesc())
.like(StrUtil.isNotBlank(param.getInitialPetition()), "pc.Initial_Petition", param.getInitialPetition());
// 涉及单位
if (StrUtil.isNotBlank(param.getInvolveDepartId())) {
List<String> departIds = departService.getAllNodeIds(param.getInvolveDepartId());
queryWrapper.in("n.involveDepartId", departIds);
}
// 办理单位
if (StrUtil.isNotBlank(param.getHandleDepartId())) {
List<DepartTree> nodes = departService.getAllNode(List.of(param.getHandleDepartId()));
List<String> secondIds = nodes.stream().filter(node -> DepartLevelEnum.SECOND.getValue().equals(node.getLevel())).map(DepartTree::getId).toList();
if (!secondIds.isEmpty()) {
queryWrapper.in("n.Handle_second_depart_id", secondIds);
} else {
queryWrapper.in("n.Handle_three_depart_Id", nodes.stream().filter(node -> DepartLevelEnum.THREE.getValue().equals(node.getLevel())).map(DepartTree::getId).toList());
}
}
if (StrUtil.isNotBlank(param.getBlameKey()) && StrUtil.isNotBlank(param.getBlameValue())) {
LambdaQueryWrapper<NegativeBlame> qw = new LambdaQueryWrapper<>();
switch (param.getResponderKey()) {
case "name":
qw.like(NegativeBlame::getBlameName, param.getBlameValue());
break;
case "empNo":
qw.like(NegativeBlame::getBlameEmpNo, param.getBlameValue());
break;
case "idCode":
qw.like(NegativeBlame::getBlameIdCode, param.getBlameValue());
break;
}
List<NegativeBlame> blames = blameService.list(qw);
if (blames.isEmpty()) {
return Result.success(new Page<DataPetitionComplaintNegativeVo>().setTotal(0).setRecords(new ArrayList<>()));
}
queryWrapper.in("n.id", blames.stream().map(NegativeBlame::getNegativeId).collect(Collectors.toSet()));
}
Page<DataPetitionComplaintNegativeVo> page = dataPetitionComplaintMapper.queryBooks(Page.of(param.getCurrent(), param.getSize()), queryWrapper);
return Result.success(page);
public Result<Page<DataPetitionComplaintNegativeVo>> pageByXf(@PathVariable String problemSourcesCode, NegativeQueryParam param) {
return Result.success(negativeBookService.pageByXf(problemSourcesCode, param));
}
// 公安部信访导出
@GetMapping("export/xf/{problemSourcesCode}")
public void exportByXf(@PathVariable String problemSourcesCode, NegativeQueryParam param, HttpServletResponse response) throws IOException {
param.setCurrent(1);
param.setSize(100000);
Page<DataPetitionComplaintNegativeVo> page = negativeBookService.pageByXf(problemSourcesCode, param);
List<DataPetitionComplaintNegativeVo> records = page.getRecords();
AtomicInteger i = new AtomicInteger(1);
List<DataPetitionComplaintExportGabxfVo> list = records.stream().map(item -> {
DataPetitionComplaintExportGabxfVo exportGabxfVo = new DataPetitionComplaintExportGabxfVo();
BeanUtil.copyProperties(item, exportGabxfVo);
exportGabxfVo.setIndex(i.getAndIncrement());
return exportGabxfVo;
}).toList();
String headerValue = "attachment; filename=\"" + URLEncoder.encode("公安部信访台账.xlsx", "UTF-8") + "\"";
response.setHeader("Content-Disposition", headerValue);
response.setContentType("application/octet-stream");
EasyExcel.write(response.getOutputStream(), DataPetitionComplaintExportGabxfVo.class).inMemory(Boolean.TRUE).sheet("公安部信访台账").doWrite(list);
}
// 案件核查
@GetMapping("export/ajhc")
public void exportByAjhc(NegativeQueryParam param, HttpServletResponse response) throws IOException {
param.setCurrent(1);
param.setSize(100000);
List<DataPetitionComplaintExportGabxfVo> list = new ArrayList<>();
String headerValue = "attachment; filename=\"" + URLEncoder.encode("案件核查数据台账.xlsx", "UTF-8") + "\"";
response.setHeader("Content-Disposition", headerValue);
response.setContentType("application/octet-stream");
EasyExcel.write(response.getOutputStream(), DataPetitionComplaintExportGabxfVo.class).inMemory(Boolean.TRUE).sheet("案件核查数据台账").doWrite(list);
}
}

27
src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaint12337Controller.java

@ -1,20 +1,26 @@
package com.biutag.supervision.controller.data;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.read.metadata.ReadSheet;
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.DataPetition12337Distribute;
import com.biutag.supervision.pojo.dto.DataPetition12337Dto;
import com.biutag.supervision.pojo.dto.DataPetition12337ExportDto;
import com.biutag.supervision.pojo.entity.DataPetition12337;
import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.param.DataPetitionComplaintQueryParam;
import com.biutag.supervision.pojo.vo.DataPetition12337Vo;
import com.biutag.supervision.service.DataPetition12337Service;
import com.biutag.supervision.service.NegativeService;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
@ -22,7 +28,9 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Tag(name = "12337信访投诉菜单")
@ -35,6 +43,8 @@ public class DataPetitionComplaint12337Controller {
private final DataPetition12337Service dataPetition12337Service;
private final NegativeService negativeService;
/**
* 12337 分页列表
@ -102,5 +112,22 @@ public class DataPetitionComplaint12337Controller {
return Result.success(dataPetition12337Service.distribution(distributeData));
}
@GetMapping("export/result")
public void exportResult(String taskId, HttpServletResponse response) throws IOException {
List<Negative> negatives = negativeService.list(new LambdaUpdateWrapper<Negative>().eq(Negative::getTaskId, taskId));
List<DataPetition12337ExportDto> list = negatives.isEmpty() ? new ArrayList<>() : dataPetition12337Service.listByIds(negatives.stream().map(Negative::getOriginId).toList())
.stream().map(item -> {
DataPetition12337ExportDto dto = new DataPetition12337ExportDto();
BeanUtils.copyProperties(item, dto);
return dto;
}).toList();
String headerValue = "attachment; filename=\"" + URLEncoder.encode(String.format("12337信访投诉结果台账_%s.xlsx", DateUtil.format(new Date(), "yyMMdd")), "UTF-8") + "\"";
response.setHeader("Content-Disposition", headerValue);
response.setContentType("application/octet-stream");
EasyExcel.write(response.getOutputStream(), DataPetition12337ExportDto.class).inMemory(Boolean.TRUE).sheet("问题台账").doWrite(list);
}
}

158
src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaintController.java

@ -9,11 +9,12 @@ import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.read.metadata.ReadSheet;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.constants.enums.DepartLevelEnum;
import com.biutag.supervision.constants.enums.DistributionStateEnum;
import com.biutag.supervision.constants.enums.InitialPetition;
import com.biutag.supervision.constants.enums.ProblemSourcesEnum;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.dto.DataDataPetitionComplainDistribute;
import com.biutag.supervision.pojo.dto.DataPetitionComplaintAddDto;
import com.biutag.supervision.pojo.dto.DataPetitionComplaintGjImportDto;
import com.biutag.supervision.pojo.dto.DataPetitionComplaintImportDto;
import com.biutag.supervision.pojo.entity.DataPetitionComplaint;
import com.biutag.supervision.pojo.entity.SupDepart;
@ -21,18 +22,19 @@ import com.biutag.supervision.pojo.param.DataPetitionComplaintQueryParam;
import com.biutag.supervision.pojo.vo.DataPetitionComplaintVo;
import com.biutag.supervision.service.DataPetitionComplaintService;
import com.biutag.supervision.service.SupDepartService;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.Validator;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
*
@ -56,51 +58,90 @@ public class DataPetitionComplaintController {
return Result.success(dataPetitionComplaintService.page(queryParam));
}
@PostMapping("import")
// 公安部信访导入
@PostMapping("gab/import")
public Result<List<DataPetitionComplaintImportDto>> importExcel(@RequestPart("file") MultipartFile file) throws IOException {
log.info("文件导入中------------------------------");
String fileNameType = FileUtil.extName(file.getOriginalFilename());
if (!"xls".equals(fileNameType) && !"xlsx".equals(fileNameType)) {
throw new RuntimeException("仅支持 xls/xlsx 格式文件的导入");
}
List<SupDepart> secondDeparts = departService.listByLevel(List.of(DepartLevelEnum.SECOND.getValue()));
List<DataPetitionComplaintImportDto> list = new ArrayList<>();
ExcelReader excelReader = EasyExcel.read(file.getInputStream(), DataPetitionComplaintImportDto.class, new ReadListener<DataPetitionComplaintImportDto>() {
@Override
public void invoke(DataPetitionComplaintImportDto data, AnalysisContext analysisContext) {
if ("是".equals(data.getEntanglementVisitsLabel())) {
data.setEntanglementVisits(true);
if (StrUtil.isNotBlank(data.getInvolveDepartName())) {
List<SupDepart> departs = departService.list(new LambdaQueryWrapper<SupDepart>().eq(SupDepart::getShortName, data.getInvolveDepartName()));
if (departs.size() == 1) {
data.setDepartId(departs.get(0).getId());
}
}
if ("否".equals(data.getEntanglementVisitsLabel())) {
data.setEntanglementVisits(false);
}
if ("是".equals(data.getMassVisitsLabel())) {
data.setMassVisits(true);
}
if ("否".equals(data.getMassVisitsLabel())) {
data.setMassVisits(false);
}
data.setInitialPetition(InitialPetition.getValue(data.getInitialPetition()));
String secondDepartId = secondDeparts.stream()
.filter(item -> item.getShortName().equals(data.getInvolveSecondDepartName())).findFirst()
.map(SupDepart::getId).orElse("");
data.setInvolveSecondDepartId(secondDepartId);
if (StrUtil.isNotBlank(secondDepartId)) {
String complainedThirdDepartId = departService.list(new LambdaQueryWrapper<SupDepart>().eq(SupDepart::getPid, secondDepartId)
.like(SupDepart::getShortName, data.getInvolveThirdDepartName()))
.stream().findFirst().map(SupDepart::getId).orElse("");
data.setInvolveThirdDepartId(complainedThirdDepartId);
list.add(data);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}).build();
ReadSheet sheet = EasyExcel.readSheet(0).build();
excelReader.read(sheet);
excelReader.close();
return Result.success(list);
}
@PostMapping("gab")
public Result<Boolean> add(@RequestBody List<DataPetitionComplaintImportDto> list) {
List<DataPetitionComplaint> petitionComplaints = list.stream().map(item -> {
DataPetitionComplaint dataPetitionComplaint = new DataPetitionComplaint();
BeanUtils.copyProperties(item, dataPetitionComplaint);
dataPetitionComplaint.setProblemSourcesCode(ProblemSourcesEnum.GABXF.getValue());
dataPetitionComplaint.setCreateTime(LocalDateTime.now());
dataPetitionComplaint.setUpdateTime(LocalDateTime.now());
dataPetitionComplaint.setDistributionState(DistributionStateEnum.UNDISTRIBUTED.getValue());
if (StrUtil.isNotBlank(item.getDiscoveryTime())) {
try {
dataPetitionComplaint.setDiscoveryTime(LocalDate.parse(item.getDiscoveryTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay());
} catch (Exception e) {
log.error(e.getMessage(), e);
}
Set<ConstraintViolation<DataPetitionComplaintImportDto>> validate = validator.validate(data);
if (!validate.isEmpty()) {
String message = validate.stream().map(ConstraintViolation::getMessage).collect(Collectors.joining("\n"));
data.setErrMsg(message);
data.setState("fail");
} else {
data.setState("success");
}
SupDepart depart = departService.getById(item.getDepartId());
if (depart.getLevel() == 2) {
dataPetitionComplaint.setSecondDepartId(depart.getId());
dataPetitionComplaint.setSecondDepartName(depart.getShortName());
}
if (depart.getLevel() == 3) {
dataPetitionComplaint.setThirdDepartId(depart.getId());
dataPetitionComplaint.setThirdDepartName(depart.getShortName());
SupDepart parent = departService.getById(depart.getPid());
dataPetitionComplaint.setSecondDepartId(parent.getId());
dataPetitionComplaint.setSecondDepartName(parent.getShortName());
}
return dataPetitionComplaint;
}).toList();
dataPetitionComplaintService.saveOrUpdateBatch(petitionComplaints);
return Result.success();
}
@PostMapping("gj/import")
public Result<List<DataPetitionComplaintGjImportDto>> importExcelByGj(@RequestPart("file") MultipartFile file) throws IOException {
log.info("文件导入中------------------------------");
String fileNameType = FileUtil.extName(file.getOriginalFilename());
if (!"xls".equals(fileNameType) && !"xlsx".equals(fileNameType)) {
throw new RuntimeException("仅支持 xls/xlsx 格式文件的导入");
}
List<DataPetitionComplaintGjImportDto> list = new ArrayList<>();
ExcelReader excelReader = EasyExcel.read(file.getInputStream(), DataPetitionComplaintGjImportDto.class, new ReadListener<DataPetitionComplaintGjImportDto>() {
@Override
public void invoke(DataPetitionComplaintGjImportDto data, AnalysisContext analysisContext) {
if (StrUtil.isNotBlank(data.getHandleDepartName())) {
List<SupDepart> departs = departService.list(new LambdaQueryWrapper<SupDepart>().eq(SupDepart::getName, data.getHandleDepartName()));
if (departs.size() == 1) {
data.setDepartId(departs.get(0).getId());
}
}
list.add(data);
}
@ -114,12 +155,45 @@ public class DataPetitionComplaintController {
return Result.success(list);
}
@PostMapping()
public Result<Boolean> add(@RequestBody DataPetitionComplaintAddDto body) {
if (body.getData().isEmpty()) {
return Result.success();
}
return Result.success(dataPetitionComplaintService.save(body));
@PostMapping("gj")
public Result<Boolean> addByGj(@RequestBody List<DataPetitionComplaintGjImportDto> list) {
List<DataPetitionComplaint> petitionComplaints = list.stream().map(item -> {
DataPetitionComplaint dataPetitionComplaint = new DataPetitionComplaint();
BeanUtils.copyProperties(item, dataPetitionComplaint);
dataPetitionComplaint.setProblemSourcesCode(ProblemSourcesEnum.GJXFPT.getValue());
dataPetitionComplaint.setCreateTime(LocalDateTime.now());
dataPetitionComplaint.setUpdateTime(LocalDateTime.now());
dataPetitionComplaint.setDistributionState(DistributionStateEnum.UNDISTRIBUTED.getValue());
if (StrUtil.isNotBlank(item.getDiscoveryTime())) {
try {
dataPetitionComplaint.setDiscoveryTime(LocalDate.parse(item.getDiscoveryTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay());
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
if (StrUtil.isNotBlank(item.getInitialPetition())) {
if ("初件".equals(item.getInitialPetition())) {
dataPetitionComplaint.setInitialPetition(InitialPetition.THE_FIRST.getValue());
} else {
dataPetitionComplaint.setInitialPetition(InitialPetition.REPEAT.getValue());
}
}
SupDepart depart = departService.getById(item.getDepartId());
if (depart.getLevel() == 2) {
dataPetitionComplaint.setSecondDepartId(depart.getId());
dataPetitionComplaint.setSecondDepartName(depart.getShortName());
}
if (depart.getLevel() == 3) {
dataPetitionComplaint.setThirdDepartId(depart.getId());
dataPetitionComplaint.setThirdDepartName(depart.getShortName());
SupDepart parent = departService.getById(depart.getPid());
dataPetitionComplaint.setSecondDepartId(parent.getId());
dataPetitionComplaint.setSecondDepartName(parent.getShortName());
}
return dataPetitionComplaint;
}).toList();
dataPetitionComplaintService.saveOrUpdateBatch(petitionComplaints);
return Result.success();
}
@DeleteMapping("{id}")

42
src/main/java/com/biutag/supervision/controller/data/VideoInspectionController.java

@ -0,0 +1,42 @@
package com.biutag.supervision.controller.data;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.mapper.DataAlarmDispositionInfoMapper;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.entity.DataAlarmDispositionInfo;
import com.biutag.supervision.pojo.param.VideoInspectionQueryParam;
import com.biutag.supervision.pojo.vo.VideoInspectionInfo;
import com.biutag.supervision.pojo.vo.VideoInspectionVo;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author wxc
* @date 2025/1/2
*/
@RequiredArgsConstructor
@RequestMapping("videoInspection")
@RestController
public class VideoInspectionController {
private final DataAlarmDispositionInfoMapper dataAlarmDispositionInfoMapper;
@GetMapping
public Result<Page<VideoInspectionVo>> list(VideoInspectionQueryParam param) {
QueryWrapper<DataAlarmDispositionInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.like(StrUtil.isNotBlank(param.getSystemKeyName()), "d.systemKeyName", param.getSystemKeyName())
.like(StrUtil.isNotBlank(param.getSystemKeyName()), "d.title", param.getSystemKeyName());
return Result.success(dataAlarmDispositionInfoMapper.queryPage(Page.of(param.getCurrent(), param.getSize()), queryWrapper));
}
@GetMapping("{id}")
public Result<VideoInspectionInfo> get(@PathVariable String id) {
return Result.success();
}
}

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

@ -49,9 +49,11 @@ public class ProfileDepartController {
private final BusinessDepartService businessDepartService;
private final NegativeScoreService negativeScoreService;
private final NegativeScoreDepartService negativeScoreDepartService;
@GetMapping
public Result<Page<DepartNegativeModel>> list(DepartNegativeQueryParam param) {
Date beginTime = DateUtil.parse("1949", "YYYY");
Date beginTime = DateUtil.parse("1949", "yyyy");
Date endTime = new Date();
if (Objects.nonNull(param.getCrtTime()) && !param.getCrtTime().isEmpty()) {
beginTime = param.getCrtTime().get(0);
@ -62,12 +64,10 @@ public class ProfileDepartController {
return Result.success(page);
}
private final NegativeScoreDepartService negativeScoreDepartService;
@GetMapping("{departId}")
public Result<ProfileDepart> profile(@PathVariable String departId, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date beginTime, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime) {
if (Objects.isNull(beginTime)) {
beginTime = DateUtil.parse("1949", "YYYY");
beginTime = DateUtil.parse("1949", "yyyy");
}
if (Objects.isNull(endTime)) {
endTime = new Date();

12
src/main/java/com/biutag/supervision/controller/sensitiveperception/ProfilePoliceController.java

@ -51,9 +51,12 @@ public class ProfilePoliceController {
private final NegativeService negativeService;
private final NegativeScoreService negativeScoreService;
private final NegativeScorePoliceService negativeScorePoliceService;
private final NegativeProblemRelationService negativeProblemRelationService;
@GetMapping
public Result<Page<PoliceNegativeModel>> list(DepartPoliceQueryParam param) {
Date beginTime = DateUtil.parse("1949", "YYYY");
Date beginTime = DateUtil.parse("1949", "yyyy");
Date endTime = new Date();
if (Objects.nonNull(param.getCrtTime()) && !param.getCrtTime().isEmpty()) {
beginTime = param.getCrtTime().get(0);
@ -64,13 +67,10 @@ public class ProfilePoliceController {
return Result.success(page);
}
private final NegativeScorePoliceService negativeScorePoliceService;
private final NegativeProblemRelationService negativeProblemRelationService;
@GetMapping("{idCode}")
public Result<ProfilePolice> profile(@PathVariable String idCode, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date beginTime, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime) {
if (Objects.isNull(beginTime)) {
beginTime = DateUtil.parse("1949", "YYYY");
beginTime = DateUtil.parse("1949", "yyyy");
}
if (Objects.isNull(endTime)) {
endTime = new Date();
@ -152,7 +152,7 @@ public class ProfilePoliceController {
@GetMapping("{idCode}/negative")
public Result<Page<Negative>> profile(@PathVariable String idCode, Page<Negative> page, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date beginTime, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime) {
if (Objects.isNull(beginTime)) {
beginTime = DateUtil.parse("1949", "YYYY");
beginTime = DateUtil.parse("1949", "yyyy");
}
if (Objects.isNull(endTime)) {
endTime = new Date();

2
src/main/java/com/biutag/supervision/controller/system/DepartMapingController.java

@ -75,7 +75,7 @@ public class DepartMapingController {
}
@DeleteMapping("{id}")
public Result<Void> del(@PathVariable String id) {
public Result<Void> del(@PathVariable Integer id) {
externalDepartService.removeById(id);
return Result.success();
}

65
src/main/java/com/biutag/supervision/controller/system/ProblemTypeMapingController.java

@ -0,0 +1,65 @@
package com.biutag.supervision.controller.system;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.mapper.SupDictProblemTypeMapingMapper;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.entity.SupDictProblemTypeMaping;
import com.biutag.supervision.pojo.param.DepartMapingQueryParam;
import com.biutag.supervision.pojo.param.PoliceQueryParam;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
/**
* @author wxc
* @date 2024/12/31
*/
@RequestMapping("problemTypeMaping")
@RequiredArgsConstructor
@RestController
public class ProblemTypeMapingController {
private final SupDictProblemTypeMapingMapper problemTypeMapingMapper;
@GetMapping
public Result<Page<SupDictProblemTypeMaping>> list(DepartMapingQueryParam param) {
LambdaQueryWrapper<SupDictProblemTypeMaping> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StrUtil.isNotBlank(param.getExternalName()), SupDictProblemTypeMaping::getExternalName, param.getExternalName())
.eq(StrUtil.isNotBlank(param.getInternalId()), SupDictProblemTypeMaping::getInternalId, param.getInternalId())
.orderByDesc(SupDictProblemTypeMaping::getCreateTime);
return Result.success(problemTypeMapingMapper.selectPage(Page.of(param.getCurrent(), param.getSize()), queryWrapper));
}
@PostMapping
public Result<Void> add(@RequestBody SupDictProblemTypeMaping data) {
if (problemTypeMapingMapper.exists(new LambdaQueryWrapper<SupDictProblemTypeMaping>()
.eq(SupDictProblemTypeMaping::getExternalName, data.getExternalName()))) {
throw new RuntimeException(String.format("单位编码【%s】已存在", data.getExternalName()));
}
data.setUpdateTime(LocalDateTime.now());
data.setCreateTime(LocalDateTime.now());
problemTypeMapingMapper.insert(data);
return Result.success();
}
@PutMapping
public Result<Void> update(@RequestBody SupDictProblemTypeMaping data) {
if (problemTypeMapingMapper.exists(new LambdaQueryWrapper<SupDictProblemTypeMaping>()
.eq(SupDictProblemTypeMaping::getExternalName, data.getExternalName())
.ne(SupDictProblemTypeMaping::getId, data.getId()))) {
throw new RuntimeException(String.format("单位编码【%s】已存在", data.getExternalName()));
}
data.setUpdateTime(LocalDateTime.now());
problemTypeMapingMapper.updateById(data);
return Result.success();
}
@DeleteMapping("{id}")
public Result<Void> del(@PathVariable String id) {
problemTypeMapingMapper.deleteById(id);
return Result.success();
}
}

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

@ -19,6 +19,7 @@ import com.biutag.supervision.pojo.dto.NegativeImportDto;
import com.biutag.supervision.pojo.entity.NegativeTask;
import com.biutag.supervision.pojo.entity.SupDepart;
import com.biutag.supervision.pojo.entity.SupDictData;
import com.biutag.supervision.pojo.model.ModelClueTaskDepartModel;
import com.biutag.supervision.pojo.param.NegativeTaskQueryParam;
import com.biutag.supervision.service.NegativeTaskService;
import com.biutag.supervision.service.SupDepartService;
@ -153,4 +154,9 @@ public class NegativeTaskController {
return Result.success(negativeTaskService.distribution(distributeData));
}
@GetMapping("{taskId}/byDepart")
public Result<List<ModelClueTaskDepartModel>> detailGroupByDepart(@PathVariable String taskId) {
return Result.success(negativeTaskService.detailGroupByDepart(taskId));
}
}

60
src/main/java/com/biutag/supervision/controller/work/NewsController.java

@ -0,0 +1,60 @@
package com.biutag.supervision.controller.work;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.entity.News;
import com.biutag.supervision.pojo.param.NewsQueryParam;
import com.biutag.supervision.service.NewsService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
/**
* @author wxc
* @date 2024/12/31
*/
@RequiredArgsConstructor
@RequestMapping("news")
@RestController
public class NewsController {
private final NewsService newsService;
@GetMapping
public Result<Page<News>> list(NewsQueryParam param) {
LambdaQueryWrapper<News> queryWrapper = new LambdaQueryWrapper<>();
if (param != null && param.getReleaseTime().size() == 2) {
queryWrapper.between(News::getReleaseTime, param.getReleaseTime().get(0), param.getReleaseTime().get(1));
}
queryWrapper.eq(StrUtil.isNotBlank(param.getSource()), News::getSource, param.getSource())
.eq(StrUtil.isNotBlank(param.getWorkType()), News::getSource, param.getWorkType())
.like(StrUtil.isNotBlank(param.getContentTxt()), News::getContentTxt, param.getContentTxt())
.orderByDesc(News::getCreateTime);
Page<News> page = newsService.page(Page.of(param.getCurrent(), param.getSize()), queryWrapper);
return Result.success(page);
}
@PostMapping
public Result<Void> add(@RequestBody News data) {
data.setUpdateTime(LocalDateTime.now());
data.setCreateTime(LocalDateTime.now());
newsService.save(data);
return Result.success();
}
@PutMapping
public Result<Void> update(@RequestBody News data) {
data.setUpdateTime(LocalDateTime.now());
newsService.updateById(data);
return Result.success();
}
@DeleteMapping("{id}")
public Result<Void> del(@PathVariable Integer id) {
newsService.removeById(id);
return Result.success();
}
}

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

@ -3,9 +3,13 @@ package com.biutag.supervision.job;
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.ProblemSourcesEnum;
import com.biutag.supervision.constants.enums.ProcessingStatusEnum;
import com.biutag.supervision.mapper.MailMapper;
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.service.*;
import com.biutag.supervision.util.TimeUtil;
import lombok.RequiredArgsConstructor;
@ -99,4 +103,36 @@ public class Job {
public void executeModel() {
modelClueService.generate(1);
}
private final MailMapper mailMapper;
/**
* 凌晨1点执行
*/
@Scheduled(cron = "0 0 1 * * ?")
public void mailbox() {
List<Mail> mailList = mailMapper.selectList(new LambdaUpdateWrapper<Mail>().eq(Mail::getMailState, "completion")
.in(Mail::getVerifyIsTrue, List.of("属实", "基本属实")));
mailList.stream().map(item -> {
Negative negative = new Negative();
negative.setOriginId(item.getId());
negative.setResponderName(item.getContactName());
negative.setContactPhone(item.getContactPhone());
negative.setThingDesc(item.getContent());
negative.setProblemSources(ProblemSourcesEnum.JZXX.getLabel());
negative.setProblemSourcesCode(ProblemSourcesEnum.JZXX.getValue());
negative.setBusinessTypeCode(BusinessTypeEnum.QT.getValue());
negative.setBusinessTypeName(BusinessTypeEnum.QT.getLabel());
if ("属实".equals(item.getVerifyIsTrue())) {
negative.setCheckStatus("");
}
if ("基本属实".equals(item.getVerifyIsTrue())) {
}
negative.setCrtTime(LocalDateTime.now());
return negative;
}).toList();
}
}

6
src/main/java/com/biutag/supervision/mapper/DataAlarmDispositionInfoMapper.java

@ -1,8 +1,14 @@
package com.biutag.supervision.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.pojo.entity.DataAlarmDispositionInfo;
import com.biutag.supervision.pojo.vo.VideoInspectionVo;
import org.apache.ibatis.annotations.Param;
public interface DataAlarmDispositionInfoMapper extends BaseMapper<DataAlarmDispositionInfo> {
Page<VideoInspectionVo> queryPage(@Param("page") Page<DataAlarmDispositionInfo> page, @Param("ew") QueryWrapper<DataAlarmDispositionInfo> ew);
}

13
src/main/java/com/biutag/supervision/mapper/MailMapper.java

@ -0,0 +1,13 @@
package com.biutag.supervision.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervision.pojo.entity.mailbox.Mail;
/**
* @author wxc
* @date 2024/12/31
*/
@DS("mailbox")
public interface MailMapper extends BaseMapper<Mail> {
}

6
src/main/java/com/biutag/supervision/mapper/NegativeTaskMapper.java

@ -2,7 +2,13 @@ package com.biutag.supervision.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervision.pojo.entity.NegativeTask;
import com.biutag.supervision.pojo.model.ModelClueTaskDepartModel;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface NegativeTaskMapper extends BaseMapper<NegativeTask> {
List<ModelClueTaskDepartModel> selectGroupByDepart(@Param("taskId") String taskId);
}

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

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

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

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

2
src/main/java/com/biutag/supervision/pojo/domain/CountersignApply.java

@ -23,7 +23,7 @@ public class CountersignApply {
private String requirement;
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime createTime;
private String creatorName;

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

@ -27,11 +27,11 @@ public class NegativeVo {
private String serialNumber;
// 问题发生时间
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime happenTime;
// 问题发现时间
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime discoveryTime;
// 问题来源code

86
src/main/java/com/biutag/supervision/pojo/dto/DataPetition12337Distribute.java

@ -1,6 +1,9 @@
package com.biutag.supervision.pojo.dto;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.biutag.supervision.pojo.vo.FileVo;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Getter;
import lombok.Setter;
@ -42,4 +45,87 @@ public class DataPetition12337Distribute {
private String businessTypeName;
private List<FileVo> thingFiles = new ArrayList<>();
@Schema(description = "信访投诉")
@Setter
@Getter
public static class DataPetitionComplaintGjImportDto {
// 信件编号
@ExcelProperty({"信访件编号"})
private String originId;
// 信访形式
@ExcelProperty({"信访形式"})
private String channelForFilingComplaints;
// 投诉人
@ExcelProperty({"姓名"})
private String responderName;
// 投诉人
@ExcelProperty({"身份证号"})
private String responderIdCode;
// 投诉人
@ExcelProperty({"住址"})
private String responderAddress;
// 手机号码
@ExcelProperty({"手机号码"})
private String responderPhone;
// 信访日期
@ExcelProperty({"信访日期"})
private String discoveryTime;
// 问题发生地
@ExcelProperty({"问题发生地"})
private String occurred;
// 信访内容
@ExcelProperty({"信访内容"})
@NotBlank(message = "信访内容为空")
private String thingDesc;
// 异常动态
@ExcelProperty({"异常动态"})
private String abnormal;
@ExcelProperty({"问题发生日期"})
private String happenTime;
@ExcelProperty({"信访人数"})
private Integer peopleNumber;
@ExcelProperty({"信访诉求"})
private String appeal;
// 业务类别
@ExcelProperty({"公安业务分类"})
private String businessTypeName;
// 档案编号
@ExcelProperty({"档案编号"})
private String fileNo;
@ExcelProperty({"转往处"})
private String turnAround;
@ExcelProperty({"办理方式"})
private String handingMethod;
@ExcelProperty({"具体承办单位"})
private String handleDepartName;
@ExcelProperty({"责任部门"})
private String involveDepartName;
@ExcelIgnore
private String departId;
}
}

7
src/main/java/com/biutag/supervision/pojo/dto/DataPetition12337Dto.java

@ -16,11 +16,6 @@ import java.util.Date;
@Getter
public class DataPetition12337Dto {
/**
* 唯一编号
*/
private String onlyId;
/**
* 外网线索编号
*/
@ -109,7 +104,7 @@ public class DataPetition12337Dto {
/**
* 所属系统
*/
@ExcelProperty("")
@ExcelProperty("所属系统")
private String belongSystem;
/**

556
src/main/java/com/biutag/supervision/pojo/dto/DataPetition12337ExportDto.java

@ -0,0 +1,556 @@
package com.biutag.supervision.pojo.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
/**
* @author wxc
* @date 2025/1/2
*/
@Setter
@Getter
public class DataPetition12337ExportDto {
/**
* 外网线索编号
*/
@ExcelProperty("外网线索编号")
private String externalId;
/**
* 内网线索编号
*/
@ExcelProperty("内网线索编号")
private String innerId;
/**
* 单机版线索编号
*/
@ExcelProperty("单机版线索编号")
private String standAlone;
/**
* 信息受理登记时间
*/
@ExcelProperty("信息受理登记时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
private Date discoverTime;
/**
* 线索来源
*/
@ExcelProperty("线索来源")
private String letterSource;
/**
* 举报人姓名
*/
@ExcelProperty("举报人姓名")
private String name;
/**
* 手机号码
*/
@ExcelProperty("手机号码")
private String phone;
/**
* 身份证号
*/
@ExcelProperty("身份证号")
private String idCode;
/**
* 举报人
*/
@ExcelProperty("举报人(省)")
private String reporterProvincial;
/**
* 举报人
*/
@ExcelProperty("举报人(市)")
private String reporterCity;
/**
* 举报人
*/
@ExcelProperty("举报人(县)")
private String reporterCounty;
/**
* 现住地详址
*/
@ExcelProperty("现住地详址")
private String address;
/**
* 是否政法干警
*/
@ExcelProperty("是否政法干警")
private String isLawPolice;
/**
* 被举报人姓名
*/
@ExcelProperty("被举报人姓名")
private String reportedName;
/**
* 所属系统
*/
@ExcelProperty("所属系统")
private String belongSystem;
/**
* 人员类别
*/
@ExcelProperty("人员类别")
private String personType;
/**
* 被举报人所在地
*/
@ExcelProperty("被举报人所在地(省)")
private String reportedProvincial;
/**
* 被举报人所在地
*/
@ExcelProperty("被举报人所在地(市)")
private String reportedCity;
/**
* 被举报人所在地
*/
@ExcelProperty("被举报人所在地(县)")
private String reportedCounty;
/**
* 单位名称
*/
@ExcelProperty("单位名称")
private String orgName;
/**
* 被举报单位名称
*/
@ExcelProperty("被举报单位名称")
private String reportedOrgName;
/**
* 所属系统
*/
@ExcelProperty("所属系统")
private String reportedOrgBelong;
/**
* 被举报单位所在地
*/
@ExcelProperty("被举报单位所在地(省)")
private String reportedOrgProvincial;
/**
* 被举报单位所在地
*/
@ExcelProperty("被举报单位所在地(市)")
private String reportedOrgCity;
/**
* 被举报单位所在地
*/
@ExcelProperty("被举报单位所在地(县)")
private String reportedOrgCounty;
/**
* 单位所属层级
*/
@ExcelProperty("单位所属层级")
private String reportedOrgLevel;
/**
* 涉嫌违纪问题项目
*/
@ExcelProperty("涉嫌违纪问题项目")
private String againstProProject;
/**
* 涉嫌贪污贿赂类犯罪
*/
@ExcelProperty("涉嫌贪污贿赂类犯罪")
private String corruptionGuilt;
/**
* 涉嫌渎职类犯罪
*/
@ExcelProperty("涉嫌渎职类犯罪")
private String omissionGuilt;
/**
* 涉嫌侵犯公民人身权利类犯罪
*/
@ExcelProperty("涉嫌侵犯公民人身权利类犯罪")
private String invadeEntitlementGuilt;
/**
* 涉嫌侵犯财产类犯罪
*/
@ExcelProperty("涉嫌侵犯财产类犯罪")
private String invadeFinanceGuilt;
/**
* 其他
*/
@ExcelProperty("其他")
private String otherGuilt;
/**
* 顽瘴痼疾项目
*/
@ExcelProperty("顽瘴痼疾项目")
private String hardProProject;
/**
* 涉嫌违纪违法事项
*/
@ExcelProperty("涉嫌违纪违法事项")
private String wjwfProject;
/**
* 转办时间
*/
@ExcelProperty("转办时间")
private String passTime;
/**
* 转办单位
*/
@ExcelProperty("转办单位")
private String passOrg;
/**
* 核查时间
*/
@ExcelProperty("核查时间")
private String reviewTime;
/**
* 核查单位
*/
@ExcelProperty("核查单位")
private String reviewOrg;
/**
* 核查人
*/
@ExcelProperty("核查人")
private String reviewPersonName;
/**
* 核查人联系方式
*/
@ExcelProperty("核查人联系方式")
private String reviewPersonPhone;
/**
* 被核查人类别
*/
@ExcelProperty("被核查人类别")
private String reviewedPersonType;
/**
* 被核查人是否属于领导班子成员
*/
@ExcelProperty("被核查人是否属于领导班子成员")
private String reviewedPersonIsleader;
/**
* 是否核查完结
*/
@ExcelProperty("是否核查完结")
private String reviewedIsover;
/**
* 核查简要情况
*/
@ExcelProperty("核查简要情况")
private String reviewDes;
/**
* 办理结果
*/
@ExcelProperty("办理结果")
private String processResult;
/**
* 是否进行线索初核
*/
@ExcelProperty("是否进行线索初核")
private String isFirstView;
/**
* 核查组组长
*/
@ExcelProperty("核查组组长")
private String reviewLeader;
/**
* (核查组组长)联系方式
*/
@ExcelProperty("(核查组组长)联系方式")
private String reviewLeaderPhone;
/**
* 初核情况
*/
@ExcelProperty("初核情况")
private String firstViewDes;
/**
* 是否立案审查调查
*/
@ExcelProperty("是否立案审查调查")
private String isRegisterCase;
/**
* 立案审查调查情况
*/
@ExcelProperty("立案审查调查情况")
private String registerCaseDes;
/**
* 是否处分处理
*/
@ExcelProperty("是否处分处理")
private String isPunish;
/**
* 处理结论形态
*/
@ExcelProperty("处理结论形态")
private String processResType;
/**
* 处理结论结果
*/
@ExcelProperty("处理结论结果")
private String processResDes;
/**
* 处分处理情况
*/
@ExcelProperty("处分处理情况")
private String punishDes;
/**
* 是否适用自查从宽政策
*/
@ExcelProperty("是否适用自查从宽政策")
private String isTolerant;
/**
* 是否办结
*/
@ExcelProperty("是否办结")
private String isOver;
/**
* 联系时间
*/
@ExcelProperty("联系时间")
private String contactTime;
/**
* 联系单位
*/
@ExcelProperty("联系单位")
private String contactOrg;
/**
* 联系人
*/
@ExcelProperty("联系人")
private String contactPersonName;
/**
* 联系方式
*/
@ExcelProperty("联系方式")
private String contactType;
/**
* 与举报人联系沟通详情
*/
@ExcelProperty("与举报人联系沟通详情")
private String contactReporterDes;
/**
* 超期未反馈原因
*/
@ExcelProperty("超期未反馈原因")
private String overtimeReason;
/**
* 是否申请异议
*/
@ExcelProperty("是否申请异议")
private String isDissent;
/**
* 目标省份
*/
@ExcelProperty("目标省份")
private String aimProvincial;
/**
* 申请人
*/
@ExcelProperty("申请人")
private String applyPersonName;
/**
* 联系方式
*/
@ExcelProperty("联系方式")
private String applyPersonPhone;
/**
* 申请原因
*/
@ExcelProperty("申请原因")
private String applyReason;
/**
* 异议处理方式
*/
@ExcelProperty("异议处理方式")
private String dissentHandle;
/**
* 处理说明
*/
@ExcelProperty("处理说明")
private String dissentHandleExplain;
/**
* 是否存在附件
*/
@ExcelProperty("是否存在附件")
private String isAnnex;
/**
* 附件文件名
*/
@ExcelProperty("附件文件名")
private String annexName;
/**
* 线索举报时间
*/
@ExcelProperty("线索举报时间")
private String reportTime;
/**
* 导入时间
*/
@ExcelProperty("导入时间")
private String enterTime;
/**
* 分发时间
*/
@ExcelProperty("分发时间")
private String distributeTime;
/**
* 是否违纪违法线索
*/
@ExcelProperty("是否违纪违法线索")
private String isAgainstClue;
/**
* 是否涉法涉诉线索
*/
@ExcelProperty("是否涉法涉诉线索")
private String isAppealClue;
/**
* 是否范围外线索
*/
@ExcelProperty("是否范围外线索")
private String isOverroundClue;
/**
* 是否无效线索
*/
@ExcelProperty("是否无效线索")
private String isInvalidClue;
/**
* 是否重点线索
*/
@ExcelProperty("是否重点线索")
private String isImportantClue;
/**
* 线索是否重复
*/
@ExcelProperty("线索是否重复")
private String isRepeatClue;
/**
* 重复线索组别
*/
@ExcelProperty("重复线索组别")
private String repeatClueType;
/**
* 线索是否进行了机筛
*/
@ExcelProperty("线索是否进行了机筛")
private String isMachine;
/**
* 机筛线索时间
*/
@ExcelProperty("机筛线索时间")
private String machineTme;
/**
* 线索是否经过人工筛查
*/
@ExcelProperty("线索是否经过人工筛查")
private String isPerson;
/**
* 人工筛查线索时间
*/
@ExcelProperty("人工筛查线索时间")
private String personTime;
/**
* 是否关注线索
*/
@ExcelProperty("是否关注线索")
private String isCare;
/**
* 关注时间
*/
@ExcelProperty("关注时间")
private String careTime;
/**
* 操作时间
*/
@ExcelProperty("操作时间")
private String handleTime;
@ExcelProperty("唯一编号")
private String negativeId;
}

68
src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintGjImportDto.java

@ -0,0 +1,68 @@
package com.biutag.supervision.pojo.dto;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
@Schema(description = "信访投诉")
@Setter
@Getter
public class DataPetitionComplaintGjImportDto {
// 信件编号
@ExcelProperty({"信访件编号"})
private String originId;
// 信访日期
@ExcelProperty({"信访日期"})
private String discoveryTime;
// 投诉人
@ExcelProperty({"姓名"})
private String responderName;
// 投诉人
@ExcelProperty({"信访人住址"})
private String responderAddress;
// 投诉人
@ExcelProperty({"身份证号码"})
private String responderIdCode;
// 手机号码
@ExcelProperty({"手机号码"})
private String responderPhone;
// 问题属地
@ExcelProperty({"问题属地"})
private String occurred;
// 信访形式
@ExcelProperty({"信访形式"})
private String channelForFilingComplaints;
@ExcelProperty({"信访人数"})
private Integer peopleNumber;
// 信访内容
@ExcelProperty({"投诉内容"})
private String thingDesc;
// 初重信访
@ExcelProperty("是否重信")
private String initialPetition;
// 业务类别
@ExcelProperty({"内容分类"})
private String businessTypeName;
@ExcelProperty({"去向机构"})
private String handleDepartName;
@ExcelIgnore
private String departId;
}

102
src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintImportDto.java

@ -1,8 +1,8 @@
package com.biutag.supervision.pojo.dto;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Getter;
@ -15,75 +15,81 @@ import java.time.LocalDateTime;
@Getter
public class DataPetitionComplaintImportDto {
// 投诉渠道
@ExcelProperty({"信访基本信息", "投诉渠道"})
private String channelForFilingComplaints;
// 信件编号
@ExcelProperty({"信访基本信息", "信件编号"})
@ExcelProperty({"信访件编号"})
private String originId;
// 受理层级
@ExcelProperty({"信访基本信息", "受理层级"})
private String acceptanceLevel;
// 登记时间
@ExcelProperty({"信访基本信息", "登记时间"})
private String discoveryTime;
// 信访形式
@ExcelProperty({"信访形式"})
private String petitionType;
// 投诉人
@ExcelProperty({"信访基本信息", "投诉人"})
@ExcelProperty({"姓名"})
private String responderName;
// 投诉人电话
@ExcelProperty({"信访基本信息", "投诉人电话"})
private String contactPhone;
// 投诉人
@ExcelProperty({"身份证号"})
private String responderIdCode;
// 初重信访
@ExcelProperty({"信访基本信息", "初重信访"})
@NotBlank(message = "初重信访为空或值描述不准确")
private String initialPetition;
// 投诉人
@ExcelProperty({"住址"})
private String responderAddress;
// 缠访闹访
@ExcelProperty({"信访基本信息", "缠访闹访"})
private String entanglementVisitsLabel;
// 手机号码
@ExcelProperty({"手机号码"})
private String responderPhone;
private Boolean entanglementVisits;
// 信访日期
@ExcelProperty({"信访日期"})
private String discoveryTime;
// 群众集访
@ExcelProperty({"信访基本信息", "群众集访"})
private String massVisitsLabel;
private Boolean massVisits;
// 问题发生地
@ExcelProperty({"问题发生地"})
private String occurred;
// 涉嫌问题
@ExcelProperty({"信访基本信息", "涉嫌问题"})
private String involveProblem;
// 信访内容
@ExcelProperty({"信访内容"})
@NotBlank(message = "信访内容为空")
private String thingDesc;
// 异常动态
@ExcelProperty({"异常动态"})
private String abnormal;
@ExcelProperty({"问题发生日期"})
private String happenTime;
@ExcelProperty({"信访人数"})
private Integer peopleNumber;
@ExcelProperty({"信访诉求"})
private String appeal;
// 业务类别
@ExcelProperty({"信访基本信息", "业务类别"})
@ExcelProperty({"公安业务分类"})
private String businessTypeName;
@ExcelProperty({"信访基本信息", "被投诉二级机构"})
private String involveSecondDepartName;
// 档案编号
@ExcelProperty({"档案编号"})
private String fileNo;
// 被投诉机构
@ExcelProperty({"信访基本信息", "被投诉所队"})
private String involveThirdDepartName;
@ExcelProperty({"转往处"})
private String turnAround;
@ExcelProperty({"办理方式"})
private String handingMethod;
@NotBlank(message = "涉及二级机构为空或与系统未匹配上")
private String involveSecondDepartId;
@ExcelProperty({"具体承办单位"})
private String handleDepartName;
private String involveThirdDepartId;
@ExcelProperty({"责任部门"})
private String involveDepartName;
// 具体内容
@ExcelProperty({"信访基本信息", "具体内容"})
@NotBlank(message = "具体内容为空")
private String thingDesc;
private String state;
@ExcelIgnore
private String departId;
private String errMsg;
}

56
src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifPluginDto.java

@ -0,0 +1,56 @@
package com.biutag.supervision.pojo.dto.plugin;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
/**
* @author wxc
* @date 2025/1/6
*/
@Setter
@Getter
public class CaseVerifPluginDto {
// 案件编号
private String caseNumber;
// 投诉渠道
private String caseSource;
// 受理时间
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime complaintTime;
// 投诉人
private String reporterName;
// 电话
private String reporterContact;
// 被投诉机构
private String verifiedObjectUnit;
// 涉及人员姓名
private String verifiedObjectName;
// 涉及人员身份
private String verifiedObjectPosition;
// 具体内容
private String briefCase;
// 被投诉所队
private String organization;
// 问题类型
private String complaintIssueNature;
// 受理层级
private String acceptanceLevel;
}

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

@ -35,7 +35,7 @@ public class BaseRole {
@TableField("create_time")
private LocalDateTime createTime;
@JsonFormat(pattern = "YYYY-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("update_time")
private LocalDateTime updateTime;

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

@ -75,4 +75,7 @@ public class DataCaseVerif {
@TableField("is_real")
private Integer isReal;
// 源涉及单位
private String sourceInvolveDepartName;
}

8
src/main/java/com/biutag/supervision/pojo/entity/DataPetitionComplaint.java

@ -73,7 +73,7 @@ public class DataPetitionComplaint {
private String secondDepartName;
// 所
// 所
private String thirdDepartId;
private String thirdDepartName;
@ -88,4 +88,10 @@ public class DataPetitionComplaint {
// 分发状态
private String distributionState;
// negativeId
private String negativeId;
// 信访形式
private String petitionType;
}

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

@ -28,7 +28,7 @@ public class ModelClueRecord {
// 创建时间
@TableField("create_time")
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime createTime;
// 状态 success-成功 fail-失败

6
src/main/java/com/biutag/supervision/pojo/entity/Negative.java

@ -27,12 +27,12 @@ public class Negative {
private String serialNumber;
// 问题发生时间
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
@TableField("happenTime")
private LocalDateTime happenTime;
// 问题发现时间
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
@TableField("discoveryTime")
private LocalDateTime discoveryTime;
@ -118,7 +118,7 @@ public class Negative {
//
@TableField("crtTime")
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime crtTime;
//

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

@ -47,7 +47,7 @@ public class NegativeApprove {
@TableField("create_time")
private LocalDateTime createTime;
@JsonFormat(pattern = "YYYY-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
private String actionKey;

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

@ -43,7 +43,7 @@ public class NegativeCountersign {
@TableField("depart_name")
private String departName;
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
@TableField("create_time")
private LocalDateTime createTime;

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

@ -27,7 +27,7 @@ public class NegativeHistory {
private String negativeId;
// 创建时间
@JsonFormat(pattern = "YYYY-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("crtTime")
private LocalDateTime crtTime;

4
src/main/java/com/biutag/supervision/pojo/entity/NegativeTask.java

@ -40,7 +40,7 @@ public class NegativeTask {
@TableField("errorPath")
private String errorPath;
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
@TableField("crtTime")
private LocalDateTime crtTime;
@ -48,7 +48,7 @@ public class NegativeTask {
@TableField("crtUser")
private String crtUser;
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
@TableField("updTime")
private LocalDateTime updTime;

45
src/main/java/com/biutag/supervision/pojo/entity/News.java

@ -0,0 +1,45 @@
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 News {
//
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
// 动态来源
@TableField("source")
private String source;
// 动态分类
@TableField("work_type")
private String workType;
// 发布时间
@TableField("release_time")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm")
private LocalDateTime releaseTime;
//
@TableField("create_time")
private LocalDateTime createTime;
//
@TableField("update_time")
private LocalDateTime updateTime;
//
@TableField("content_txt")
private String contentTxt;
}

4
src/main/java/com/biutag/supervision/pojo/entity/RiskTask.java

@ -35,12 +35,12 @@ public class RiskTask {
// 开始时间
@TableField("start_time")
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime startTime;
// 结束时间
@TableField("end_time")
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime endTime;
// 0 进行中 1 已完成 -1 失败

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

@ -62,7 +62,7 @@ public class SupDictData {
private String updateBy;
// 更新时间
@JsonFormat(pattern = "YYYY-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("update_time")
private LocalDateTime updateTime;

41
src/main/java/com/biutag/supervision/pojo/entity/SupDictProblemTypeMaping.java

@ -0,0 +1,41 @@
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 SupDictProblemTypeMaping {
//
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
//
@TableField("external_name")
private String externalName;
//
@TableField("internal_name")
private String internalName;
//
@TableField("internal_id")
private String internalId;
//
@TableField("create_time")
private LocalDateTime createTime;
//
@TableField("update_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime updateTime;
}

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

@ -42,7 +42,7 @@ public class SupDictType {
private String updateBy;
// 更新时间
@JsonFormat(pattern = "YYYY-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("update_time")
private LocalDateTime updateTime;

408
src/main/java/com/biutag/supervision/pojo/entity/mailbox/Mail.java

@ -0,0 +1,408 @@
package com.biutag.supervision.pojo.entity.mailbox;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Accessors(chain = true)
@Setter
@Getter
public class Mail {
@TableId
private String id;
/**
* 联系人姓名
*/
private String contactName;
/**
* 联系人性别 M / F
*/
private String contactSex;
/**
* 联系人身份证号码
*/
private String contactIdCard;
/**
* 联系人手机号
*/
private String contactPhone;
/**
* 案件编号
*/
private String caseNumber;
/**
* 内容
*/
private String content;
/**
* 附件
*/
private String attachments;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 来信时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime mailTime;
/**
* 来源
*/
private String source;
/**
* 满意读(网络)
*/
private String satisfaction;
/**
* 满意读(短信)
*/
private String satisfactionSms;
/*-------------------------------*/
/**
* 信件状态
*/
private String mailState;
/**
* 信件当前流程
*/
private String flowKey;
/**
* 信件当前流程节点
*/
private String flowBeforeName;
private String flowName;
/**
* 流程限时最后操作时间
*/
private LocalDateTime flowLimitedLastHandlerTime;
/**
* 信件源数据ID 多个
*/
private String mailSourceId;
/**
* 信件类名
*/
private String mailCategory;
/**
* 信件一级类目
*/
private String mailFirstCategory;
/**
* 信件二级类目
*/
private String mailSecondCategory;
/**
* 信件三级类目
*/
private String mailThreeCategory;
/**
* 信件等级
*/
private String mailLevel;
/**
* 二级单位ID(主责)
*/
private Integer secondDeptId;
private String secondDeptName;
/**
* 三级单位ID(主责)
*/
private Integer threeDeptId;
private String threeDeptName;
/**
* 协办核查民警String
*/
private String coHandlingPolices;
/**
* 联系民警名称
*/
private String contactPoliceName;
/**
* 联系民警
*/
private String contactPoliceEmpNo;
/**
* 联系民警职位
*/
private String contactPolicePost;
/**
* 联系群众时间
*/
private LocalDateTime contactTime;
/**
* 联系时长
*/
private Long contactDuration;
/**
* 是否联系群众
*/
private Boolean contactFlag;
/**
* 接访形式
*/
private String interviewType;
/**
* 是否接访一把手
*/
private Boolean interviewIsLeader;
/**
* 接访人员警号
*/
private String interviewPoliceEmpNo;
/**
* 接访人员姓名
*/
private String interviewPoliceName;
/**
* 接访情况
*/
private String interviewDetails;
/**
* 接访附件佐证材料
*/
private String interviewAttachments;
/**
* 核办情况
*/
private String verifyDetails;
/**
* 核办-是否属实
*/
private String verifyIsTrue;
/**
* 核办-被举报对象json
*/
private String verifyReportedPolices;
/**
* 核办-查证属实问题json
*/
private String verifyProblem;
/**
* 核办-是否需要问责
*/
private Boolean verifyNeedAccountability;
/**
* 核办-责任追究json
*/
private String verifyPunish;
/**
* 核办-群众反映事项解决情况(是否已解决)
*/
private Boolean verifyIsResolved;
/**
* 核办-办理反馈情况
*/
private String verifyFeedback;
/**
* 核办-回访人信息(String)
*/
private String verifyFollowupPolice;
/**
* 核办-附件上传佐证
*/
private String verifyAttachments;
/**
* 办结方式
*/
private String completeMethod;
/**
* 办理合格情况
*/
private String qualifiedProcessingStatus;
/**
* 问题解决情况
*/
private Boolean problemSolvingStatus;
/**
* 群众回复情况
*/
private String satisfactionStatus;
/**
* 认定办结意见
*/
private String completionComment;
/**
* 是否是简易流程
*/
private Boolean simpleFlowFlag;
/**
* 涉及单位ID
*/
private Integer involvedDeptId;
/**
* 涉及单位名称
*/
private String involvedDeptName;
/**
* 会签部门总数
*/
private Integer countersignTotal;
/**
* 会签完成部门数量
*/
private Integer countersignCompleted;
/**
* 会签发起人
*/
private String countersignPromoterEmpNo;
/**
* 会签发起姓名
*/
private String countersignPromoterName;
/**
* 会签发起部门ID
*/
private Integer countersignPromoterDeptId;
/**
* 会签发起部门名称
*/
private String countersignPromoterDeptName;
/**
* 会签具体要求
*/
private String countersignRequirement;
/**
* 信件标签
*/
private String mailLabels;
/**
* 当前操作对象
*/
private String currentOperator;
/**
* 申请延期ID
*/
private String extensionRequestId;
/**
* 是否申请延期
*/
private Boolean extensionFlag;
/**
* 延期天数
*/
private Integer extensionDays;
/**
* 延期理由
*/
private String extensionReason;
/**
* 延期状态
*/
private String extensionState;
/**
* 无效判定理由
*/
private String invalidationReason;
/**
* 市局下发信息
*/
private String firstDistributeInfo;
/**
* 二级单位下发信息
*/
private String secondDistributeInfo;
/**
* 主办层级
*/
private Integer mainDeptLevel;
/**
* 信件后续审批流程
*/
private String returnOperate;
/**
* 不满意原因
*/
private String notSatisfiedReason;
/**
* 市局专班下发时间
*/
private LocalDateTime firstDistributeTime;
/**
* 市局下发意见
*/
private String firstDistributeComment;
/**
* 市局下发意见
*/
private String firstDistributeFiles;
/**
* 二级机构下发意见
*/
private String secondDistributeComment;
private String secondDistributeFiles;
/**
* 二级机构下发时间
*/
private LocalDateTime secondDistributeTime;
}

4
src/main/java/com/biutag/supervision/pojo/model/DataMigrationModel.java

@ -15,10 +15,10 @@ public class DataMigrationModel {
private String visitPhone;
private String orgName;
private String businessName;
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime sampleTime;
private String sampleContent;
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime visitTime;
private String resultName;
}

2
src/main/java/com/biutag/supervision/pojo/model/ModelClueModel.java

@ -39,7 +39,7 @@ public class ModelClueModel {
// 分发状态
private String distributionState;
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime createTime;
private String data;

2
src/main/java/com/biutag/supervision/pojo/model/ModelClueTaskModel.java

@ -23,7 +23,7 @@ public class ModelClueTaskModel {
private String modelName;
// 下发时间
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime distributionTime;
// 条数

6
src/main/java/com/biutag/supervision/pojo/model/NegativeFavModel.java

@ -15,11 +15,11 @@ public class NegativeFavModel {
private String originId;
// 问题发生时间
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime happenTime;
// 问题发现时间
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime discoveryTime;
// 问题来源
@ -61,7 +61,7 @@ public class NegativeFavModel {
private String involveProblem;
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime crtTime;

4
src/main/java/com/biutag/supervision/pojo/model/NegativeWorkModel.java

@ -19,11 +19,11 @@ public class NegativeWorkModel {
private String originId;
// 问题发生时间
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime happenTime;
// 问题发现时间
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime discoveryTime;
// 问题来源

2
src/main/java/com/biutag/supervision/pojo/model/UserModel.java

@ -35,7 +35,7 @@ public class UserModel {
private String userDesc;
// 更新时间
@JsonFormat(pattern = "YYYY-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
// 状态:0-禁用 1-正常 2-锁定

28
src/main/java/com/biutag/supervision/pojo/param/NewsQueryParam.java

@ -0,0 +1,28 @@
package com.biutag.supervision.pojo.param;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author wxc
* @date 2024/12/31
*/
@Setter
@Getter
public class NewsQueryParam extends BasePage {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private List<Date> releaseTime = new ArrayList<>();
private String source;
// 动态分类
private String workType;
private String contentTxt;
}

19
src/main/java/com/biutag/supervision/pojo/param/VideoInspectionQueryParam.java

@ -0,0 +1,19 @@
package com.biutag.supervision.pojo.param;
import lombok.Getter;
import lombok.Setter;
/**
* @author wxc
* @date 2025/1/2
*/
@Setter
@Getter
public class VideoInspectionQueryParam extends BasePage {
// 预警类型
private String systemKeyName;
// 案事件名称
private String title;
}

82
src/main/java/com/biutag/supervision/pojo/vo/DataPetitionComplaintExportGabxfVo.java

@ -0,0 +1,82 @@
package com.biutag.supervision.pojo.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
/**
* @author wxc
* @date 2024/12/27
*/
@Setter
@Getter
public class DataPetitionComplaintExportGabxfVo {
@ExcelProperty({"基本信息", "序号"})
private Integer index;
// 投诉渠道
@ExcelProperty({"基本信息", "投诉渠道"})
private String channelForFilingComplaints;
// 信件编号
@ExcelProperty({"基本信息", "信访件编号"})
private String originId;
// 受理层级
@ExcelProperty({"基本信息", "受理层级"})
private String acceptanceLevel;
// 信访日期
@ExcelProperty({"基本信息", "受理时间"})
@DateTimeFormat("yyyy年MM月dd日")
private LocalDateTime discoveryTime;
// 投诉人
@ExcelProperty({"基本信息", "投诉人"})
private String responderName;
// 手机号码
@ExcelProperty({"基本信息", "投诉人电话"})
private String responderPhone;
// 被投诉机构
@ExcelProperty({"基本信息", "被投诉机构"})
private String secondDepartName;
// 具体内容
@ExcelProperty({"基本信息", "具体内容"})
private String thingDesc;
// 问题类别
@ExcelProperty({"基本信息", "问题类别"})
private String wtlb;
// 业务类别
@ExcelProperty({"基本信息", "业务类别"})
private String ywlb;
//
@ExcelProperty({"处置情况", "情况反馈"})
private String qkfk;
//
@ExcelProperty({"处置情况", "涉及二级机构及所队"})
private String sjejsd;
//
@ExcelProperty({"处置情况", "涉及人员姓名"})
private String ryxm;
//
@ExcelProperty({"处置情况", "涉及人员身份"})
private String rysf;
// 初重信访
@ExcelProperty({"", "初重信访"})
private String initialPetition;
}

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

@ -14,7 +14,7 @@ import java.time.LocalDateTime;
@Getter
public class DataPetitionComplaintNegativeVo {
private String id;
private String originId;
// 投诉渠道
private String channelForFilingComplaints;

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

@ -41,7 +41,7 @@ public class DictContentTree {
// 是否开启严重等级
private Boolean isActiveLevel;
@JsonFormat(pattern = "YYYY-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updTime;
private List<DictContentTree> children = new ArrayList<>();

4
src/main/java/com/biutag/supervision/pojo/vo/ExportNegativeVo.java

@ -17,12 +17,12 @@ public class ExportNegativeVo {
// 问题发生时间
@ExcelProperty("问题发生时间")
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime happenTime;
// 问题发现时间
@ExcelProperty("问题发现时间")
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime discoveryTime;
// 问题来源

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

@ -32,7 +32,7 @@ public class NegativeHdjq {
private String handleThreeDepartName;
// 发现时间
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime discoveryTime;
// 涉及案件/警情编号

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

@ -19,11 +19,11 @@ public class NegativeQueryVo {
private String serialNumber;
// 问题发生时间
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime happenTime;
// 问题发现时间
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime discoveryTime;
// 问题来源code
@ -78,7 +78,7 @@ public class NegativeQueryVo {
// 审核人身份证
private String checkIdCode;
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime crtTime;

13
src/main/java/com/biutag/supervision/pojo/vo/VideoInspectionInfo.java

@ -0,0 +1,13 @@
package com.biutag.supervision.pojo.vo;
import lombok.Getter;
import lombok.Setter;
/**
* @author wxc
* @date 2025/1/2
*/
@Setter
@Getter
public class VideoInspectionInfo {
}

29
src/main/java/com/biutag/supervision/pojo/vo/VideoInspectionVo.java

@ -0,0 +1,29 @@
package com.biutag.supervision.pojo.vo;
import lombok.Getter;
import lombok.Setter;
/**
* @author wxc
* @date 2025/1/2
*/
@Setter
@Getter
public class VideoInspectionVo {
// 预警级别
private String alarmLevel;
// 预警类别
private String systemKeyName;
// 预警时间
private String rqsj;
// 案事件名称
private String title;
// 发生单位名称
private String fsdwGajgmc;
}

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

@ -1,7 +1,6 @@
package com.biutag.supervision.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -15,6 +14,7 @@ import com.biutag.supervision.pojo.dto.DataPetition12337Distribute;
import com.biutag.supervision.pojo.dto.DataPetition12337Dto;
import com.biutag.supervision.pojo.dto.NegativeDto;
import com.biutag.supervision.pojo.entity.DataPetition12337;
import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.entity.NegativeTask;
import com.biutag.supervision.pojo.entity.SupDepart;
import com.biutag.supervision.pojo.model.UserAuth;
@ -77,27 +77,43 @@ public class DataPetition12337Service extends ServiceImpl<DataPetition12337Mappe
List<DataPetition12337> list = data.stream().map(item -> {
DataPetition12337 dataPetition12337 = new DataPetition12337();
BeanUtil.copyProperties(item, dataPetition12337);
dataPetition12337.setOnlyId(IdUtil.getSnowflakeNextIdStr());
dataPetition12337.setOnlyId(item.getExternalId());
dataPetition12337.setDistributionState(DistributionStateEnum.DISTRIBUTED.getValue());
if (item.getDiscoverTime() != null) {
dataPetition12337.setDiscoverTime(item.getDiscoverTime().toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDateTime());
}
SupDepart depart = departService.getById(item.getDepartId());
if (depart.getLevel() == 2) {
dataPetition12337.setSecondDepartId(depart.getId());
dataPetition12337.setSecondDepartName(depart.getShortName());
}
if (depart.getLevel() == 3) {
dataPetition12337.setThirdDepartId(depart.getId());
dataPetition12337.setThirdDepartName(depart.getShortName());
SupDepart parent = departService.getById(depart.getPid());
dataPetition12337.setSecondDepartId(parent.getId());
dataPetition12337.setSecondDepartName(parent.getShortName());
}
return dataPetition12337;
}).toList();
saveBatch(list);
saveOrUpdateBatch(list);
NegativeTask negativeTask = new NegativeTask();
negativeTask.setTaskName(distributeData.getTaskName());
negativeTask.setImportRow(list.size());
negativeTask.setCrtTime(LocalDateTime.now());
negativeTask.setStatus("12337");
negativeTask.setSource("12337");
UserAuth user = UserContextHolder.getCurrentUser();
negativeTask.setCrtUser(user.getNickName());
negativeTaskService.save(negativeTask);
data.forEach(item -> {
for (DataPetition12337 item : list) {
// 如果存在就不重复下发
if (negativeService.exists(new LambdaQueryWrapper<Negative>().eq(Negative::getOriginId, item.getExternalId()))) {
continue;
}
NegativeDto negativeDto = new NegativeDto();
negativeDto.setOriginId(item.getExternalId()); // 设置数据源id
if (item.getDiscoverTime() != null) {
negativeDto.setDiscoveryTime(item.getDiscoverTime().toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDateTime());
}
negativeDto.setProblemSourcesCode(ProblemSourcesEnum.XF12337.getValue()); // 来源分类
negativeDto.setProblemSources(ProblemSourcesEnum.XF12337.getLabel());
negativeDto.setBusinessTypeCode(distributeData.getBusinessTypeCode());
@ -106,13 +122,20 @@ public class DataPetition12337Service extends ServiceImpl<DataPetition12337Mappe
negativeDto.setContactPhone(item.getPhone());
negativeDto.setThingDesc(item.getWjwfProject());
negativeDto.setThingFiles(distributeData.getThingFiles());
String departId;
String departName;
if (StrUtil.isNotBlank(item.getThirdDepartId())) {
departId = item.getThirdDepartId();
departName = item.getThirdDepartName();
} else {
departId = item.getSecondDepartId();
departName = item.getSecondDepartName();
}
SupDepart depart = departService.getById(item.getDepartId());
negativeDto.setInvolveDepartId(item.getDepartId()); // 涉及单位
negativeDto.setInvolveDepartName(depart.getShortName());
negativeDto.setDepartId(item.getDepartId());
negativeDto.setDepartName(depart.getShortName());
negativeDto.setInvolveDepartId(departId); // 涉及单位
negativeDto.setInvolveDepartName(departName);
negativeDto.setDepartId(departId);
negativeDto.setDepartName(departName);
negativeDto.setHostLevel(HostLevelEnums.SECOND.getValue());
negativeDto.setApprovalFlow(distributeData.getApprovalFlow()); // 审批流程
@ -120,8 +143,9 @@ public class DataPetition12337Service extends ServiceImpl<DataPetition12337Mappe
negativeDto.setMaxSignDuration(distributeData.getMaxSignDuration());
negativeDto.setMaxHandleDuration(distributeData.getMaxHandleDuration());
negativeDto.setMaxExtensionDuration(distributeData.getMaxExtensionDuration());
negativeDto.setTaskId(negativeTask.getId());
negativeService.save(negativeDto);
});
}
return true;
}
}

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

@ -14,6 +14,7 @@ import com.biutag.supervision.mapper.DataPetitionComplaintMapper;
import com.biutag.supervision.pojo.dto.*;
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.param.DataPetitionComplaintQueryParam;
import com.biutag.supervision.pojo.vo.DataPetitionComplaintVo;
import com.biutag.supervision.pojo.vo.RecentMailTrendByDayVo;
@ -126,9 +127,10 @@ public class DataPetitionComplaintService extends ServiceImpl<DataPetitionCompla
negativeDto.setMaxHandleDuration(dataDistribute.getMaxHandleDuration());
negativeDto.setMaxExtensionDuration(dataDistribute.getMaxExtensionDuration());
negativeDto.setCaseNumber(item.getOriginId());
negativeService.save(negativeDto);
Negative negative = negativeService.save(negativeDto);
update(new LambdaUpdateWrapper<DataPetitionComplaint>().eq(DataPetitionComplaint::getOriginId, item.getOriginId())
.set(DataPetitionComplaint::getDistributionState, DistributionStateEnum.DISTRIBUTED.getValue()));
.set(DataPetitionComplaint::getDistributionState, DistributionStateEnum.DISTRIBUTED.getValue())
.set(DataPetitionComplaint::getNegativeId, negative.getId()));
});
return true;
}

77
src/main/java/com/biutag/supervision/service/NegativeBookService.java

@ -0,0 +1,77 @@
package com.biutag.supervision.service;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.constants.enums.DepartLevelEnum;
import com.biutag.supervision.mapper.DataPetitionComplaintMapper;
import com.biutag.supervision.pojo.entity.DataPetitionComplaint;
import com.biutag.supervision.pojo.entity.NegativeBlame;
import com.biutag.supervision.pojo.param.NegativeQueryParam;
import com.biutag.supervision.pojo.vo.DataPetitionComplaintNegativeVo;
import com.biutag.supervision.pojo.vo.DepartTree;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author wxc
* @date 2025/1/3
*/
@RequiredArgsConstructor
@Service
public class NegativeBookService {
private final SupDepartService departService;
private final NegativeBlameService blameService;
private final DataPetitionComplaintMapper dataPetitionComplaintMapper;
public Page<DataPetitionComplaintNegativeVo> pageByXf(@PathVariable String problemSourcesCode, NegativeQueryParam param) {
QueryWrapper<DataPetitionComplaint> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("pc.problem_sources_code", problemSourcesCode)
.in(!param.getProcessingStatus().isEmpty(), "n.Processing_Status", param.getProcessingStatus())
.like(StrUtil.isNotBlank(param.getThingDesc()), "pc.Thing_Desc", param.getThingDesc())
.like(StrUtil.isNotBlank(param.getCheckStatusDesc()), "n.checkStatusDesc", param.getCheckStatusDesc())
.like(StrUtil.isNotBlank(param.getInitialPetition()), "pc.Initial_Petition", param.getInitialPetition());
// 涉及单位
if (StrUtil.isNotBlank(param.getInvolveDepartId())) {
List<String> departIds = departService.getAllNodeIds(param.getInvolveDepartId());
queryWrapper.in("n.involveDepartId", departIds);
}
// 办理单位
if (StrUtil.isNotBlank(param.getHandleDepartId())) {
List<DepartTree> nodes = departService.getAllNode(List.of(param.getHandleDepartId()));
List<String> secondIds = nodes.stream().filter(node -> DepartLevelEnum.SECOND.getValue().equals(node.getLevel())).map(DepartTree::getId).toList();
if (!secondIds.isEmpty()) {
queryWrapper.in("n.Handle_second_depart_id", secondIds);
} else {
queryWrapper.in("n.Handle_three_depart_Id", nodes.stream().filter(node -> DepartLevelEnum.THREE.getValue().equals(node.getLevel())).map(DepartTree::getId).toList());
}
}
if (StrUtil.isNotBlank(param.getBlameKey()) && StrUtil.isNotBlank(param.getBlameValue())) {
LambdaQueryWrapper<NegativeBlame> qw = new LambdaQueryWrapper<>();
switch (param.getResponderKey()) {
case "name":
qw.like(NegativeBlame::getBlameName, param.getBlameValue());
break;
case "empNo":
qw.like(NegativeBlame::getBlameEmpNo, param.getBlameValue());
break;
case "idCode":
qw.like(NegativeBlame::getBlameIdCode, param.getBlameValue());
break;
}
List<NegativeBlame> blames = blameService.list(qw);
if (blames.isEmpty()) {
return new Page<DataPetitionComplaintNegativeVo>().setTotal(0).setRecords(new ArrayList<>());
}
queryWrapper.in("n.id", blames.stream().map(NegativeBlame::getNegativeId).collect(Collectors.toSet()));
}
return dataPetitionComplaintMapper.queryBooks(Page.of(param.getCurrent(), param.getSize()), queryWrapper);
}
}

5
src/main/java/com/biutag/supervision/service/NegativeTaskService.java

@ -15,6 +15,7 @@ import com.biutag.supervision.pojo.dto.*;
import com.biutag.supervision.pojo.entity.DataPetition12337;
import com.biutag.supervision.pojo.entity.NegativeTask;
import com.biutag.supervision.pojo.entity.SupDepart;
import com.biutag.supervision.pojo.model.ModelClueTaskDepartModel;
import com.biutag.supervision.pojo.model.UserAuth;
import com.biutag.supervision.pojo.param.NegativeTaskQueryParam;
import com.biutag.supervision.pojo.vo.ExportNegativeVo;
@ -150,4 +151,8 @@ public class NegativeTaskService extends ServiceImpl<NegativeTaskMapper, Negativ
return true;
}
public List<ModelClueTaskDepartModel> detailGroupByDepart(String taskId) {
return baseMapper.selectGroupByDepart(taskId);
}
}

11
src/main/java/com/biutag/supervision/service/NewsService.java

@ -0,0 +1,11 @@
package com.biutag.supervision.service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervision.pojo.entity.News;
import com.biutag.supervision.mapper.NewsMapper;
import org.springframework.stereotype.Service;
@Service
public class NewsService extends ServiceImpl<NewsMapper, News> {
}

11
src/main/java/com/biutag/supervision/service/SupDictProblemTypeMapingService.java

@ -0,0 +1,11 @@
package com.biutag.supervision.service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervision.pojo.entity.SupDictProblemTypeMaping;
import com.biutag.supervision.mapper.SupDictProblemTypeMapingMapper;
import org.springframework.stereotype.Service;
@Service
public class SupDictProblemTypeMapingService extends ServiceImpl<SupDictProblemTypeMapingMapper, SupDictProblemTypeMaping> {
}

7
src/main/resources/application-prod.yml

@ -26,6 +26,13 @@ spring:
url: jdbc:dm://65.47.22.243:5236?SCHEMA=JSDZ_4GDB
username: DCZD
password: DCZD@2024
mailbox:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://65.47.60.178:5432/mailbox?currentSchema=mailbox
username: dba
password: Ip12341234
druid:
min-evictable-idle-time-millis: 300000
test-on-borrow: false

18
src/main/resources/mapper/DataAlarmDispositionInfoMapper.xml

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.biutag.supervision.mapper.DataAlarmDispositionInfoMapper">
<select id="queryPage" resultType="com.biutag.supervision.pojo.vo.VideoInspectionVo">
SELECT
d.alarmLevel alarm_Level,
d.systemKeyName system_Key_Name,
d.title,
i.rqsj,
i.FSDW_GAJGMC
FROM
data_alarm_disposition_info d
LEFT JOIN data_alarm_alarm_info i ON d.alarm_info_id = i.id
${ew.getCustomSqlSegment}
</select>
</mapper>

3
src/main/resources/mapper/DataPetitionComplaintMapper.xml

@ -6,10 +6,9 @@
<select id="queryPage" resultType="com.biutag.supervision.pojo.vo.DataPetitionComplaintVo">
SELECT
pc.*, n.id negative_id
pc.*
FROM
data_petition_complaint pc
LEFT JOIN negative n ON n.originId = pc.origin_id
${ew.getCustomSqlSegment}
</select>

26
src/main/resources/mapper/NegativeTaskMapper.xml

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.biutag.supervision.mapper.NegativeTaskMapper">
<select id="selectGroupByDepart" resultType="com.biutag.supervision.pojo.model.ModelClueTaskDepartModel">
SELECT
n.involveDepartId,
n.involveDepartName depart_name,
count( n.id ) size,
sum( CASE WHEN n.processing_status = 'completed' THEN 1 ELSE 0 END ) completed_size,
sum( CASE WHEN n.processing_status = 'completed' THEN 1 ELSE 0 END ) / count( n.id ) * 100 completed_rate,
sum( CASE WHEN n.checkStatus IN ( '1', '2' ) THEN 1 ELSE 0 END ) verify_size,
count( DISTINCT nb.blameIdCode ) personal_size
FROM
negative n
LEFT JOIN negative_blame nb ON n.id = nb.negativeId
AND type = 'personal'
WHERE
n.taskId = #{taskId}
GROUP BY
n.involveDepartId
</select>
</mapper>

BIN
src/main/resources/static/templates/公安信访投诉数据导入模板.xls

Binary file not shown.

BIN
src/main/resources/static/templates/国家信访投诉数据导入模板.xls

Binary file not shown.

BIN
src/main/resources/static/templates/问题标准模板.xlsx

Binary file not shown.

9
src/test/java/com/biutag/supervision/StrUtil.java

@ -7,16 +7,17 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import java.io.File;
import java.io.FileNotFoundException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
public class StrUtil {
@Test
public void testSubstr() throws FileNotFoundException {
List<File> files = FileUtil.loopFiles("D:\\deploy\\test2");
for (File file : files) {
System.out.println(file.getPath());
}
LocalDateTime parse = LocalDateTime.parse("2025-01-03", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
System.out.println(parse);
}
}

2
src/test/java/com/biutag/supervision/tools/GenCodeTests.java

@ -25,7 +25,7 @@ public class GenCodeTests {
@Test
public void genEntity() throws TemplateException, IOException {
String tableName = "risk_tag_map";
String tableName = "data_alarm_alarm_info";
String tableSchema = "negative";
boolean genMapper = true;
boolean genService = true;

Loading…
Cancel
Save