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 0000000..6ea143a Binary files /dev/null and b/src/main/resources/static/templates/问题批量导入标准模板.xlsx differ diff --git a/src/main/resources/static/templates/问题标准模板.xlsx b/src/main/resources/static/templates/问题标准模板.xlsx deleted file mode 100644 index e8fe3b3..0000000 Binary files a/src/main/resources/static/templates/问题标准模板.xlsx and /dev/null differ 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;