From 67d1bb682c7df4071380af957b301c4dc2a1d62b Mon Sep 17 00:00:00 2001 From: wxc <191104855@qq.com> Date: Thu, 9 Jan 2025 09:28:45 +0800 Subject: [PATCH] 250108 --- .../supervision/config/InterceptorConfig.java | 8 +- .../constants/enums/CaseVerifSource.java | 11 ++ .../constants/enums/ProblemSourcesEnum.java | 2 +- .../controller/LoginController.java | 15 ++- .../api/plugin/CaseVerifController.java | 106 ++++++++++++++++-- .../books/NegativeBookController.java | 14 +++ .../data/DataCaseVerifController.java | 11 +- .../DataPetitionComplaint12337Controller.java | 11 +- .../data/DataPetitionComplaintController.java | 78 ++++++++----- .../controller/work/NegativeController.java | 18 +++ .../mapper/DataCaseVerifExtFileMapper.java | 8 ++ .../mapper/DataCaseVerifExtMapper.java | 8 ++ .../pojo/dto/DataPetition12337Distribute.java | 82 -------------- .../pojo/dto/DataPetition12337Dto.java | 9 +- .../pojo/dto/NegativeImportDto.java | 11 +- .../dto/plugin/CaseVerifDisposalDetails.java | 30 +++++ .../dto/plugin/CaseVerifDisposalOpinion.java | 25 +++++ .../pojo/dto/plugin/CaseVerifFile.java | 22 ++++ .../pojo/dto/plugin/CaseVerifOuterId.java | 17 +++ .../pojo/entity/DataCaseVerif.java | 10 ++ .../pojo/entity/DataCaseVerifExt.java | 40 +++++++ .../pojo/entity/DataCaseVerifExtFile.java | 40 +++++++ .../service/DataCaseVerifExtFileService.java | 11 ++ .../service/DataCaseVerifExtService.java | 11 ++ src/main/resources/application.yml | 3 + .../问题批量导入标准模板.xlsx | Bin 0 -> 41514 bytes .../static/templates/问题标准模板.xlsx | Bin 29288 -> 0 bytes .../supervision/tools/GenCodeTests.java | 2 +- 28 files changed, 464 insertions(+), 139 deletions(-) create mode 100644 src/main/java/com/biutag/supervision/constants/enums/CaseVerifSource.java create mode 100644 src/main/java/com/biutag/supervision/mapper/DataCaseVerifExtFileMapper.java create mode 100644 src/main/java/com/biutag/supervision/mapper/DataCaseVerifExtMapper.java create mode 100644 src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifDisposalDetails.java create mode 100644 src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifDisposalOpinion.java create mode 100644 src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifFile.java create mode 100644 src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifOuterId.java create mode 100644 src/main/java/com/biutag/supervision/pojo/entity/DataCaseVerifExt.java create mode 100644 src/main/java/com/biutag/supervision/pojo/entity/DataCaseVerifExtFile.java create mode 100644 src/main/java/com/biutag/supervision/service/DataCaseVerifExtFileService.java create mode 100644 src/main/java/com/biutag/supervision/service/DataCaseVerifExtService.java create mode 100644 src/main/resources/static/templates/问题批量导入标准模板.xlsx delete mode 100644 src/main/resources/static/templates/问题标准模板.xlsx diff --git a/src/main/java/com/biutag/supervision/config/InterceptorConfig.java b/src/main/java/com/biutag/supervision/config/InterceptorConfig.java index 178f575..91d32f0 100644 --- a/src/main/java/com/biutag/supervision/config/InterceptorConfig.java +++ b/src/main/java/com/biutag/supervision/config/InterceptorConfig.java @@ -8,6 +8,7 @@ import com.biutag.supervision.util.SpringUtil; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.servlet.HandlerInterceptor; @@ -26,6 +27,9 @@ import java.util.concurrent.TimeUnit; @Configuration public class InterceptorConfig implements WebMvcConfigurer { + @Value("${token.timeout}") + private Integer tokenTimeout; + @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new DefaultInterceptor()) @@ -43,7 +47,7 @@ public class InterceptorConfig implements WebMvcConfigurer { .addPathPatterns("/api/jwdc/**"); } - static class DefaultInterceptor implements HandlerInterceptor { + class DefaultInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { @@ -54,7 +58,7 @@ public class InterceptorConfig implements WebMvcConfigurer { throw new AuthException(); } // 更新 会话 有效期 - redisTemplate.expire(String.format(RedisKeyConstants.LOGIN_USERINFO_KEY, authorization), 24, TimeUnit.HOURS); + redisTemplate.expire(String.format(RedisKeyConstants.LOGIN_USERINFO_KEY, authorization), tokenTimeout, TimeUnit.HOURS); return true; } diff --git a/src/main/java/com/biutag/supervision/constants/enums/CaseVerifSource.java b/src/main/java/com/biutag/supervision/constants/enums/CaseVerifSource.java new file mode 100644 index 0000000..1e7ad83 --- /dev/null +++ b/src/main/java/com/biutag/supervision/constants/enums/CaseVerifSource.java @@ -0,0 +1,11 @@ +package com.biutag.supervision.constants.enums; + +/** + * @author wxc + * @date 2025/1/8 + */ +public enum CaseVerifSource { + + excel_import, + plugin +} diff --git a/src/main/java/com/biutag/supervision/constants/enums/ProblemSourcesEnum.java b/src/main/java/com/biutag/supervision/constants/enums/ProblemSourcesEnum.java index 45b0153..e71fa5c 100644 --- a/src/main/java/com/biutag/supervision/constants/enums/ProblemSourcesEnum.java +++ b/src/main/java/com/biutag/supervision/constants/enums/ProblemSourcesEnum.java @@ -21,7 +21,7 @@ public enum ProblemSourcesEnum { GABXF("公安部信访", "22"), JZXX("局长信箱", "23"), XF12337("12337信访", "24"), - XF_QT("其他", "25"), + XF_QT("信访投诉/其他", "25"), SJJD("审计监督", "26"), ZFTZSJ("政府投资审计", "27"), diff --git a/src/main/java/com/biutag/supervision/controller/LoginController.java b/src/main/java/com/biutag/supervision/controller/LoginController.java index 41d4624..8b7ffae 100644 --- a/src/main/java/com/biutag/supervision/controller/LoginController.java +++ b/src/main/java/com/biutag/supervision/controller/LoginController.java @@ -5,23 +5,23 @@ import com.biutag.supervision.common.UserContextHolder; import com.biutag.supervision.constants.RedisKeyConstants; import com.biutag.supervision.pojo.Result; import com.biutag.supervision.pojo.dto.AccountDto; -import com.biutag.supervision.pojo.entity.*; +import com.biutag.supervision.pojo.entity.BaseAccount; import com.biutag.supervision.pojo.model.UserAuth; import com.biutag.supervision.pojo.vo.TokenVo; -import com.biutag.supervision.service.*; +import com.biutag.supervision.service.BaseAccountService; +import com.biutag.supervision.service.UserLoginService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.security.crypto.bcrypt.BCrypt; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; -import java.util.List; import java.util.Objects; -import java.util.Optional; import java.util.concurrent.TimeUnit; @Tag(name = "登录接口") @@ -36,13 +36,16 @@ public class LoginController { private final RedisTemplate redisTemplate; + @Value("${token.timeout}") + private Integer tokenTimeout; + @Operation(summary = "登录") @PostMapping("login") public Result login(@RequestBody AccountDto account) { BaseAccount baseAccount = accountService.getByLogin(account.getAccount()); try { if (Objects.isNull(baseAccount) || !BCrypt.checkpw(account.getPassword(), baseAccount.getPassword())) { - throw new RuntimeException("用户名或密码有误,请重新输入"); + throw new RuntimeException(); } } catch (RuntimeException e) { log.error(e.getMessage(), e); @@ -50,7 +53,7 @@ public class LoginController { } UserAuth userAuth = userLoginService.buildUserAuth(baseAccount.getAccount()); String token = IdUtil.fastSimpleUUID(); - redisTemplate.opsForValue().set(String.format(RedisKeyConstants.LOGIN_USERINFO_KEY, token), userAuth, 24, TimeUnit.HOURS); + redisTemplate.opsForValue().set(String.format(RedisKeyConstants.LOGIN_USERINFO_KEY, token), userAuth, tokenTimeout, TimeUnit.HOURS); return Result.success(new TokenVo().setToken(token)); } diff --git a/src/main/java/com/biutag/supervision/controller/api/plugin/CaseVerifController.java b/src/main/java/com/biutag/supervision/controller/api/plugin/CaseVerifController.java index 8768b67..ed3605a 100644 --- a/src/main/java/com/biutag/supervision/controller/api/plugin/CaseVerifController.java +++ b/src/main/java/com/biutag/supervision/controller/api/plugin/CaseVerifController.java @@ -1,18 +1,32 @@ package com.biutag.supervision.controller.api.plugin; +import cn.hutool.core.io.FileUtil; +import cn.hutool.http.HttpResponse; +import cn.hutool.http.HttpUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.biutag.supervision.common.UserContextHolder; +import com.biutag.supervision.constants.enums.CaseVerifSource; +import com.biutag.supervision.constants.enums.InspectCaseEnum; 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.dto.plugin.*; import com.biutag.supervision.pojo.entity.DataCaseVerif; +import com.biutag.supervision.pojo.entity.DataCaseVerifExt; +import com.biutag.supervision.pojo.entity.DataCaseVerifExtFile; +import com.biutag.supervision.service.DataCaseVerifExtFileService; +import com.biutag.supervision.service.DataCaseVerifExtService; import com.biutag.supervision.service.DataCaseVerifService; +import com.biutag.supervision.service.FileService; 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; +import org.springframework.web.bind.annotation.*; + +import java.io.InputStream; +import java.time.LocalDateTime; +import java.util.List; /** * @author wxc @@ -20,12 +34,18 @@ import org.springframework.web.bind.annotation.RestController; */ @Tag(name = "案件核查(插件)") @RequiredArgsConstructor -@RequestMapping("plugin/caseVerif") +@RequestMapping("crx/ajhc") @RestController public class CaseVerifController { private final DataCaseVerifService dataCaseVerifService; + private final DataCaseVerifExtService dataCaseVerifExtService; + + private final FileService fileService; + + private final DataCaseVerifExtFileService dataCaseVerifExtFileService; + @Operation(summary = "推送案件核查数据") @PostMapping public Result add(@RequestBody @Validated CaseVerifPluginDto body) { @@ -35,7 +55,79 @@ public class CaseVerifController { caseVerif.setResponderPhone(body.getReporterContact()); caseVerif.setThingDesc(body.getBriefCase()); caseVerif.setSourceInvolveDepartName(body.getVerifiedObjectUnit()); + caseVerif.setSource(CaseVerifSource.plugin.name()); + caseVerif.setCreator(UserContextHolder.getCurrentUserId()); + caseVerif.setCrxState("1"); dataCaseVerifService.save(caseVerif); return Result.success(); } + + @Operation(summary = "案件核查数据列表") + @GetMapping + public Result> list() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(DataCaseVerif::getSource, CaseVerifSource.plugin.name()) + .eq(DataCaseVerif::getCreator, UserContextHolder.getCurrentUserId()) + .orderByDesc(DataCaseVerif::getCreateTime); + Page page = dataCaseVerifService.page(Page.of(1, 10), queryWrapper); + return Result.success(page.getRecords()); + } + + @Operation(summary = "处置意见上传") + @PostMapping("disposalOpinion") + public Result disposalOpinion(@RequestBody CaseVerifDisposalOpinion body) { + DataCaseVerifExt dataCaseVerifExt = new DataCaseVerifExt(); + dataCaseVerifExt.setOuterId(body.getOuterId()); + if ("属实".equals(body.getTrueSituation())) { + dataCaseVerifExt.setCheckStatus(InspectCaseEnum.TRUE.getValue()); + dataCaseVerifExt.setCheckStatusName(InspectCaseEnum.TRUE.getLabel()); + } + if ("部分属实".equals(body.getTrueSituation()) || "查明其他情况".equals(body.getTrueSituation())) { + dataCaseVerifExt.setCheckStatus(InspectCaseEnum.PARTIALLY_TRUE.getValue()); + dataCaseVerifExt.setCheckStatusName(InspectCaseEnum.PARTIALLY_TRUE.getLabel()); + } + if ("不属实".equals(body.getTrueSituation())) { + dataCaseVerifExt.setCheckStatus(InspectCaseEnum.FALSE.getValue()); + dataCaseVerifExt.setCheckStatusName(InspectCaseEnum.FALSE.getLabel()); + } + // 处置意见 + dataCaseVerifExt.setCheckStatusDesc(body.getHandlingSuggestions()); + dataCaseVerifExt.setCreateTime(LocalDateTime.now()); + dataCaseVerifExtService.saveOrUpdate(dataCaseVerifExt); + return Result.success(); + } + + @Operation(summary = "ID列表更新") + @PostMapping("outerIds") + public Result outerIds(@RequestBody List outerIds) { + for (CaseVerifOuterId outerId : outerIds) { + dataCaseVerifService.update(new LambdaUpdateWrapper().eq(DataCaseVerif::getOriginId, outerId.getCaseNumber()) + .set(DataCaseVerif::getOuterId, outerId.getOuterId())); + } + return Result.success(); + } + + @Operation(summary = "附件上传") + @PostMapping("file") + public Result file(@RequestBody CaseVerifFile caseVerifFile) { + HttpResponse httpResponse = HttpUtil.createGet(caseVerifFile.getFileUrl()).execute(); + InputStream is = httpResponse.bodyStream(); + String filePath = fileService.upload(is, 0L, FileUtil.extName(caseVerifFile.getFileName())); + DataCaseVerifExtFile dataCaseVerifExtFile = new DataCaseVerifExtFile(); + dataCaseVerifExtFile.setOuterId(caseVerifFile.getOuterId()); + dataCaseVerifExtFile.setFilePath(filePath); + dataCaseVerifExtFile.setFileName(caseVerifFile.getFileName()); + dataCaseVerifExtFile.setCreateTime(LocalDateTime.now()); + dataCaseVerifExtFile.setFileClassName(caseVerifFile.getFileType()); + dataCaseVerifExtFileService.save(dataCaseVerifExtFile); + return Result.success(); + } + + @Operation(summary = "处置明细上传") + @PostMapping("disposalDetails") + public Result disposalDetails(@RequestBody CaseVerifDisposalDetails body) { + DataCaseVerifExt dataCaseVerifExt = new DataCaseVerifExt(); + return Result.success(); + } + } diff --git a/src/main/java/com/biutag/supervision/controller/books/NegativeBookController.java b/src/main/java/com/biutag/supervision/controller/books/NegativeBookController.java index 6fce5ba..fb5808d 100644 --- a/src/main/java/com/biutag/supervision/controller/books/NegativeBookController.java +++ b/src/main/java/com/biutag/supervision/controller/books/NegativeBookController.java @@ -226,4 +226,18 @@ public class NegativeBookController { } + + @GetMapping("export/mail12337") + public void exportByMail12337(NegativeQueryParam param, HttpServletResponse response) throws IOException { + param.setCurrent(1); + param.setSize(100000); + List list = new ArrayList<>(); + + String headerValue = "attachment; filename=\"" + URLEncoder.encode("12337信访投诉数据台账.xlsx", "UTF-8") + "\""; + response.setHeader("Content-Disposition", headerValue); + response.setContentType("application/octet-stream"); + EasyExcel.write(response.getOutputStream(), DataPetitionComplaintExportGabxfVo.class).inMemory(Boolean.TRUE).sheet("12337信访投诉数据台账").doWrite(list); + + } + } diff --git a/src/main/java/com/biutag/supervision/controller/data/DataCaseVerifController.java b/src/main/java/com/biutag/supervision/controller/data/DataCaseVerifController.java index fc6021c..4bb893a 100644 --- a/src/main/java/com/biutag/supervision/controller/data/DataCaseVerifController.java +++ b/src/main/java/com/biutag/supervision/controller/data/DataCaseVerifController.java @@ -5,9 +5,7 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelReader; import com.alibaba.excel.context.AnalysisContext; -import com.alibaba.excel.exception.ExcelDataConvertException; 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; @@ -86,14 +84,7 @@ public class DataCaseVerifController { public void doAfterAllAnalysed(AnalysisContext analysisContext) { } - }).build(); - ReadSheet sheet = EasyExcel.readSheet(0).build(); - try { - excelReader.read(sheet); - } catch (ExcelDataConvertException e) { - log.error(e.getMessage(), e); - throw new RuntimeException("日期格式错误"); - } + }).build().read(EasyExcel.readSheet(0).build()); excelReader.close(); return Result.success(list); } diff --git a/src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaint12337Controller.java b/src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaint12337Controller.java index d58cce9..f8cfa6e 100644 --- a/src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaint12337Controller.java +++ b/src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaint12337Controller.java @@ -2,6 +2,7 @@ package com.biutag.supervision.controller.data; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelReader; import com.alibaba.excel.context.AnalysisContext; @@ -15,10 +16,12 @@ 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.entity.SupDepart; 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 com.biutag.supervision.service.SupDepartService; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; @@ -82,6 +85,7 @@ public class DataPetitionComplaint12337Controller { return Result.success(dataPetition12337Service.removeById(id)); } + private final SupDepartService departService; @PostMapping("import") public Result> importExcel(@RequestPart("file") MultipartFile file) throws IOException { log.info("文件导入中------------------------------"); @@ -94,7 +98,12 @@ public class DataPetitionComplaint12337Controller { @Override public void invoke(DataPetition12337Dto data, AnalysisContext analysisContext) { - + if (StrUtil.isNotBlank(data.getReviewOrg())) { + List departs = departService.list(new LambdaUpdateWrapper().eq(SupDepart::getShortName, data.getReviewOrg())); + if (departs.size() == 1) { + data.setDepartId(departs.get(0).getId()); + } + } list.add(data); } @Override diff --git a/src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaintController.java b/src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaintController.java index 143aac5..80b188f 100644 --- a/src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaintController.java +++ b/src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaintController.java @@ -72,10 +72,27 @@ public class DataPetitionComplaintController { @Override public void invoke(DataPetitionComplaintImportDto data, AnalysisContext analysisContext) { + // 处理单位 if (StrUtil.isNotBlank(data.getInvolveDepartName())) { - List departs = departService.list(new LambdaQueryWrapper().eq(SupDepart::getShortName, data.getInvolveDepartName())); + String[] departParts = data.getInvolveDepartName().replace("长沙市公安局", "").split("-"); + String departName = departParts[departParts.length - 1]; + List departs = departService.list(new LambdaQueryWrapper().eq(SupDepart::getShortName, departName)); if (departs.size() == 1) { data.setDepartId(departs.get(0).getId()); + } else if (departParts.length > 1) { + String departPart = departParts[0].replace("公安", ""); + List departs2 = departService.list(new LambdaQueryWrapper().eq(SupDepart::getShortName, departPart)); + if (departs2.size() == 1) { + data.setDepartId(departs2.get(0).getId()); + } + } + } else { + if (StrUtil.isNotBlank(data.getTurnAround())) { + String departPart = data.getTurnAround().replace("公安", ""); + List departs = departService.list(new LambdaQueryWrapper().eq(SupDepart::getShortName, departPart)); + if (departs.size() == 1) { + data.setDepartId(departs.get(0).getId()); + } } } list.add(data); @@ -106,17 +123,19 @@ public class DataPetitionComplaintController { log.error(e.getMessage(), e); } } - 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()); + if (StrUtil.isNotBlank(item.getDepartId())) { + 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(); @@ -138,9 +157,13 @@ public class DataPetitionComplaintController { @Override public void invoke(DataPetitionComplaintGjImportDto data, AnalysisContext analysisContext) { if (StrUtil.isNotBlank(data.getHandleDepartName())) { - List departs = departService.list(new LambdaQueryWrapper().eq(SupDepart::getName, data.getHandleDepartName())); - if (departs.size() == 1) { - data.setDepartId(departs.get(0).getId()); + // 处理单位 + if (StrUtil.isNotBlank(data.getHandleDepartName())) { + String departName = data.getHandleDepartName().replace("长沙市公安局", ""); + List departs = departService.list(new LambdaQueryWrapper().eq(SupDepart::getShortName, departName)); + if (departs.size() == 1) { + data.setDepartId(departs.get(0).getId()); + } } } list.add(data); @@ -178,18 +201,21 @@ public class DataPetitionComplaintController { 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()); + if (StrUtil.isNotBlank(item.getDepartId())) { + 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); diff --git a/src/main/java/com/biutag/supervision/controller/work/NegativeController.java b/src/main/java/com/biutag/supervision/controller/work/NegativeController.java index 0530980..bdc2b17 100644 --- a/src/main/java/com/biutag/supervision/controller/work/NegativeController.java +++ b/src/main/java/com/biutag/supervision/controller/work/NegativeController.java @@ -17,6 +17,7 @@ import com.biutag.supervision.pojo.domain.NegativeDetail; import com.biutag.supervision.pojo.dto.ActionDto; import com.biutag.supervision.pojo.dto.NegativeDto; import com.biutag.supervision.pojo.dto.NegativeSpotCheckDto; +import com.biutag.supervision.pojo.dto.flow.VerifyData; import com.biutag.supervision.pojo.entity.*; import com.biutag.supervision.pojo.model.UserAuth; import com.biutag.supervision.pojo.param.NegativeQueryParam; @@ -70,6 +71,11 @@ public class NegativeController { return Result.success(negativeService.get(id, workId)); } + @GetMapping("outer/{id}") + public Result outerDetail(@PathVariable String id) { + return Result.success(negativeService.get(id, null)); + } + @PostMapping public Result add(@Validated(AddGroup.class) @RequestBody NegativeDto negativeDto) { negativeService.save(negativeDto); @@ -255,4 +261,16 @@ public class NegativeController { return Result.success(); } + @PostMapping("{id}/verifySubmit") + @Transactional(rollbackFor = Exception.class) + public Result verifySubmit(@PathVariable String id, @RequestBody VerifyData verifyData) { + Negative negative = negativeService.getById(id); + applyCompletionAction.updateNegative(negative, verifyData); + negativeService.update(new LambdaUpdateWrapper() + .eq(Negative::getId, id) + .set(Negative::getProcessingStatus, ProcessingStatusEnum.completed.name()) + .set(Negative::getFlowKey, FlowNodeEnum.COMPLETED.getKey())); + return Result.success(); + } + } diff --git a/src/main/java/com/biutag/supervision/mapper/DataCaseVerifExtFileMapper.java b/src/main/java/com/biutag/supervision/mapper/DataCaseVerifExtFileMapper.java new file mode 100644 index 0000000..94a6800 --- /dev/null +++ b/src/main/java/com/biutag/supervision/mapper/DataCaseVerifExtFileMapper.java @@ -0,0 +1,8 @@ +package com.biutag.supervision.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.biutag.supervision.pojo.entity.DataCaseVerifExtFile; + +public interface DataCaseVerifExtFileMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/mapper/DataCaseVerifExtMapper.java b/src/main/java/com/biutag/supervision/mapper/DataCaseVerifExtMapper.java new file mode 100644 index 0000000..2303283 --- /dev/null +++ b/src/main/java/com/biutag/supervision/mapper/DataCaseVerifExtMapper.java @@ -0,0 +1,8 @@ +package com.biutag.supervision.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.biutag.supervision.pojo.entity.DataCaseVerifExt; + +public interface DataCaseVerifExtMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/pojo/dto/DataPetition12337Distribute.java b/src/main/java/com/biutag/supervision/pojo/dto/DataPetition12337Distribute.java index 2b12389..fbf0518 100644 --- a/src/main/java/com/biutag/supervision/pojo/dto/DataPetition12337Distribute.java +++ b/src/main/java/com/biutag/supervision/pojo/dto/DataPetition12337Distribute.java @@ -46,86 +46,4 @@ public class DataPetition12337Distribute { private List 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; - - - } } diff --git a/src/main/java/com/biutag/supervision/pojo/dto/DataPetition12337Dto.java b/src/main/java/com/biutag/supervision/pojo/dto/DataPetition12337Dto.java index 62882d1..b329acc 100644 --- a/src/main/java/com/biutag/supervision/pojo/dto/DataPetition12337Dto.java +++ b/src/main/java/com/biutag/supervision/pojo/dto/DataPetition12337Dto.java @@ -1,7 +1,10 @@ package com.biutag.supervision.pojo.dto; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Getter; import lombok.Setter; @@ -38,7 +41,8 @@ public class DataPetition12337Dto { * 信息受理登记时间 */ @ExcelProperty("信息受理登记时间") - @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss") + @NotNull(message = "信息受理登记时间不能为空") private Date discoverTime; /** @@ -219,6 +223,7 @@ public class DataPetition12337Dto { * 涉嫌违纪违法事项 */ @ExcelProperty("涉嫌违纪违法事项") + @NotBlank(message = "涉嫌违纪违法事项不能为空") private String wjwfProject; /** @@ -551,6 +556,8 @@ public class DataPetition12337Dto { @ExcelProperty("操作时间") private String handleTime; + @ExcelIgnore + @NotBlank(message = "核查办理单位不能为空") private String departId; } diff --git a/src/main/java/com/biutag/supervision/pojo/dto/NegativeImportDto.java b/src/main/java/com/biutag/supervision/pojo/dto/NegativeImportDto.java index 436405f..9c54247 100644 --- a/src/main/java/com/biutag/supervision/pojo/dto/NegativeImportDto.java +++ b/src/main/java/com/biutag/supervision/pojo/dto/NegativeImportDto.java @@ -1,5 +1,6 @@ package com.biutag.supervision.pojo.dto; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.fasterxml.jackson.annotation.JsonFormat; import jakarta.validation.constraints.NotBlank; @@ -23,6 +24,7 @@ public class NegativeImportDto { @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm") + @ExcelProperty("问题发生时间") private LocalDateTime happenTime; // 问题来源 @@ -30,6 +32,7 @@ public class NegativeImportDto { @NotBlank(message = "问题来源不能为空") private String problemSources; + @ExcelIgnore private String problemSourcesCode; // 业务类别 @@ -37,11 +40,13 @@ public class NegativeImportDto { @ExcelProperty("业务类别") private String businessTypeName; + @ExcelIgnore private String businessTypeCode; @ExcelProperty("涉及警种") private String policeTypeName; + @ExcelIgnore private String policeType; // 涉嫌问题 @@ -49,7 +54,7 @@ public class NegativeImportDto { @NotBlank(message = "涉嫌问题不能为空") private String involveProblemStr; - // 涉嫌问题 + @ExcelIgnore private List involveProblem = new ArrayList<>(); // 反映人姓名 @@ -68,6 +73,7 @@ public class NegativeImportDto { @ExcelProperty("涉及单位") private String involveDepartName; + @ExcelIgnore private String involveDepartId; // 涉及案件/警情编号 @@ -78,7 +84,8 @@ public class NegativeImportDto { @ExcelProperty("专项督察") private String specialSupervisionName; - private String specialSupervision; + @ExcelIgnore + private String SpecialSupervision; // 通报期数 @ExcelProperty("通报期数") diff --git a/src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifDisposalDetails.java b/src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifDisposalDetails.java new file mode 100644 index 0000000..fe414ef --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifDisposalDetails.java @@ -0,0 +1,30 @@ +package com.biutag.supervision.pojo.dto.plugin; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author wxc + * @date 2025/1/7 + */ +@Setter +@Getter +public class CaseVerifDisposalDetails { + + private String outerId; + + // 警号 + private String disposalAlarm; + + // 单位 + private String disposalDepart; + + // 处置人身份证号 + private String disposalIdNo; + + // 0:已处置人,1:未处置人,2:暂未处置 + private String disposalSituation; + + // 处置情况说明 + private String disposalSituationDescription; +} diff --git a/src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifDisposalOpinion.java b/src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifDisposalOpinion.java new file mode 100644 index 0000000..19ab12e --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifDisposalOpinion.java @@ -0,0 +1,25 @@ +package com.biutag.supervision.pojo.dto.plugin; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author wxc + * @date 2025/1/7 + */ +@Setter +@Getter +public class CaseVerifDisposalOpinion { + + private String outerId; + + // 投诉性质 + private String complaintNature; + + // 处置意见 + private String handlingSuggestions; + + // 问题查实情况 属实、查明其他情况、不属实、部分属实 + private String trueSituation; + +} diff --git a/src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifFile.java b/src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifFile.java new file mode 100644 index 0000000..a6843b7 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifFile.java @@ -0,0 +1,22 @@ +package com.biutag.supervision.pojo.dto.plugin; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author wxc + * @date 2025/1/7 + */ +@Setter +@Getter +public class CaseVerifFile { + + private String outerId; + + private String fileUrl; + + private String fileName; + + private String fileType; + +} diff --git a/src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifOuterId.java b/src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifOuterId.java new file mode 100644 index 0000000..e167155 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/dto/plugin/CaseVerifOuterId.java @@ -0,0 +1,17 @@ +package com.biutag.supervision.pojo.dto.plugin; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author wxc + * @date 2025/1/7 + */ +@Setter +@Getter +public class CaseVerifOuterId { + + private String caseNumber; + + private String outerId; +} diff --git a/src/main/java/com/biutag/supervision/pojo/entity/DataCaseVerif.java b/src/main/java/com/biutag/supervision/pojo/entity/DataCaseVerif.java index 8ee9e1e..dcb994b 100644 --- a/src/main/java/com/biutag/supervision/pojo/entity/DataCaseVerif.java +++ b/src/main/java/com/biutag/supervision/pojo/entity/DataCaseVerif.java @@ -78,4 +78,14 @@ public class DataCaseVerif { // 源涉及单位 private String sourceInvolveDepartName; + private String outerId; + + // 来源 + private String source; + + private String creator; + + // 状态 + private String crxState; + } \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/pojo/entity/DataCaseVerifExt.java b/src/main/java/com/biutag/supervision/pojo/entity/DataCaseVerifExt.java new file mode 100644 index 0000000..cd4afe3 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/entity/DataCaseVerifExt.java @@ -0,0 +1,40 @@ +package com.biutag.supervision.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; + +@Setter +@Getter +public class DataCaseVerifExt { + + // + @TableId(value = "outer_id") + private String outerId; + + // 核查情况(是否属实) + @TableField("check_status") + private String checkStatus; + + // 核查情况(是否属实) + @TableField("check_status_name") + private String checkStatusName; + + // 问题核查情况 + @TableField("check_status_desc") + private String checkStatusDesc; + + private String involveDepartName; + + private String blameEmpNo; + + private String blameIdCode; + + private String disposalSituationDescription; + + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/pojo/entity/DataCaseVerifExtFile.java b/src/main/java/com/biutag/supervision/pojo/entity/DataCaseVerifExtFile.java new file mode 100644 index 0000000..9bff3cd --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/entity/DataCaseVerifExtFile.java @@ -0,0 +1,40 @@ +package com.biutag.supervision.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; + +@Setter +@Getter +public class DataCaseVerifExtFile { + + @TableId(type = IdType.AUTO) + private Integer id; + + private String outerId; + + // + @TableField("file_path") + private String filePath; + + // + @TableField("file_name") + private String fileName; + + // + @TableField("file_class_name") + private String fileClassName; + + // + @TableField("file_class_id") + private Integer fileClassId; + + // + @TableField("create_time") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/service/DataCaseVerifExtFileService.java b/src/main/java/com/biutag/supervision/service/DataCaseVerifExtFileService.java new file mode 100644 index 0000000..3c095ea --- /dev/null +++ b/src/main/java/com/biutag/supervision/service/DataCaseVerifExtFileService.java @@ -0,0 +1,11 @@ +package com.biutag.supervision.service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.biutag.supervision.pojo.entity.DataCaseVerifExtFile; +import com.biutag.supervision.mapper.DataCaseVerifExtFileMapper; +import org.springframework.stereotype.Service; + +@Service +public class DataCaseVerifExtFileService extends ServiceImpl { + +} diff --git a/src/main/java/com/biutag/supervision/service/DataCaseVerifExtService.java b/src/main/java/com/biutag/supervision/service/DataCaseVerifExtService.java new file mode 100644 index 0000000..655a8c1 --- /dev/null +++ b/src/main/java/com/biutag/supervision/service/DataCaseVerifExtService.java @@ -0,0 +1,11 @@ +package com.biutag.supervision.service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.biutag.supervision.pojo.entity.DataCaseVerifExt; +import com.biutag.supervision.mapper.DataCaseVerifExtMapper; +import org.springframework.stereotype.Service; + +@Service +public class DataCaseVerifExtService extends ServiceImpl { + +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index d387389..38c3f62 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -46,3 +46,6 @@ fdfs: knife4j: setting: language: zh_cn + +token: + timeout: 168 # 7 * 24 小时 \ No newline at end of file diff --git a/src/main/resources/static/templates/问题批量导入标准模板.xlsx b/src/main/resources/static/templates/问题批量导入标准模板.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6ea143a8abc31b62a3c9d366833a457c1e13ee04 GIT binary patch literal 41514 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/static/templates/问题标准模板.xlsx b/src/main/resources/static/templates/问题标准模板.xlsx deleted file mode 100644 index e8fe3b3fceb47ecf3f88bfb6911afea23dc6a696..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29288 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 diff --git a/src/test/java/com/biutag/supervision/tools/GenCodeTests.java b/src/test/java/com/biutag/supervision/tools/GenCodeTests.java index 99bece2..abdf0af 100644 --- a/src/test/java/com/biutag/supervision/tools/GenCodeTests.java +++ b/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 = "data_alarm_alarm_info"; + String tableName = "data_case_verif_ext_file"; String tableSchema = "negative"; boolean genMapper = true; boolean genService = true;