From c75d3cc6ca5d8392b0d57772830ba3b1d0b01f35 Mon Sep 17 00:00:00 2001 From: wxc <191104855@qq.com> Date: Thu, 10 Apr 2025 17:53:58 +0800 Subject: [PATCH] 20250410 --- sql/20250218.sql | 0 sql/20250401.sql | 5 + sql/20250410.sql | 16 +++ .../constants/enums/InspectCaseEnum.java | 2 +- .../constants/enums/TaskStatusEnum.java | 10 ++ .../constants/enums/TaskTypeEnum.java | 14 +++ .../enums/TestingAlcoholStateEnum.java | 19 +++ .../controller/StatisticsController.java | 1 + .../books/NegativeBookController.java | 27 ++++- .../data/DataPetitionComplaintController.java | 7 ++ .../data/VideoInspectionController.java | 4 +- .../InspectionController.java | 34 ++++++ .../TestingAlcoholController.java | 68 +++++++++++ .../controller/work/NegativeController.java | 8 +- .../work/NegativeTaskController.java | 99 ++++++++++++++++ .../supervision/flow/action/SaveAction.java | 7 +- .../supervision/mapper/RpcApplyMapper.java | 1 - .../mapper/SupTaskInspectionMapper.java | 15 +++ .../supervision/mapper/SupTaskMapper.java | 8 ++ .../mapper/SupTaskPersonMapper.java | 8 ++ .../mapper/SupTaskTestingAlcoholMapper.java | 15 +++ .../SupTaskTestingAlcoholPeopleMapper.java | 8 ++ .../supervision/pojo/domain/NegativeVo.java | 8 ++ .../dto/DataPetitionComplaintGjImportDto.java | 3 + .../dto/DataPetitionComplaintImportDto.java | 3 + .../supervision/pojo/dto/NegativeDto.java | 7 +- .../pojo/dto/NegativeImportAuditDto.java | 110 ++++++++++++++++++ .../dto/NegativeImportDistributeAuditDto.java | 45 +++++++ .../pojo/dto/TaskInspectionDto.java | 35 ++++++ .../pojo/dto/TaskTestingAlcoholDto.java | 51 ++++++++ .../pojo/dto/TestingAlcoholFilter.java | 37 ++++++ .../supervision/pojo/dto/flow/VerifyData.java | 8 +- .../pojo/entity/DataPetitionComplaint.java | 5 + .../supervision/pojo/entity/Negative.java | 12 ++ .../supervision/pojo/entity/SupTask.java | 50 ++++++++ .../pojo/entity/SupTaskInspection.java | 24 ++++ .../pojo/entity/SupTaskPerson.java | 39 +++++++ .../pojo/entity/SupTaskTestingAlcohol.java | 39 +++++++ .../entity/SupTaskTestingAlcoholPeople.java | 46 ++++++++ .../pojo/param/TaskInspectionQueryParam.java | 18 +++ .../param/TaskTestingAlcoholQueryParam.java | 18 +++ .../pojo/vo/DataPetition12337ExportVo.java | 18 ++- .../pojo/vo/DataPetitionComplaintVo.java | 9 +- .../supervision/pojo/vo/TaskInspectionVo.java | 48 ++++++++ .../pojo/vo/TaskTestingAlcoholVo.java | 44 +++++++ .../service/DataRightsComfortService.java | 5 - .../service/NegativeTaskService.java | 110 +++++++++++++++--- .../service/SupDictProblemTypeService.java | 31 +++++ .../supervision/service/SupPoliceService.java | 2 +- .../service/SupTaskInspectionService.java | 64 ++++++++++ .../service/SupTaskPersonService.java | 11 ++ .../supervision/service/SupTaskService.java | 11 ++ .../SupTaskTestingAlcoholPeopleService.java | 11 ++ .../service/SupTaskTestingAlcoholService.java | 72 ++++++++++++ .../mapper/DataPetition12337Mapper.xml | 2 +- .../mapper/SupTaskInspectionMapper.xml | 34 ++++++ ...tiveMapper.xml => SupTaskPersonMapper.xml} | 0 .../mapper/SupTaskTestingAlcoholMapper.xml | 50 ++++++++ .../公安信访投诉数据导入模板.xls | Bin 9700 -> 9784 bytes .../审计监督问题批量导入模板.xlsx | Bin 0 -> 41281 bytes .../问题批量导入标准模板.xlsx | Bin 41514 -> 48044 bytes .../java/com/biutag/supervision/StrUtil.java | 14 ++- .../supervision/tools/GenCodeTests.java | 2 +- 63 files changed, 1424 insertions(+), 48 deletions(-) delete mode 100644 sql/20250218.sql create mode 100644 sql/20250401.sql create mode 100644 sql/20250410.sql create mode 100644 src/main/java/com/biutag/supervision/constants/enums/TaskStatusEnum.java create mode 100644 src/main/java/com/biutag/supervision/constants/enums/TaskTypeEnum.java create mode 100644 src/main/java/com/biutag/supervision/constants/enums/TestingAlcoholStateEnum.java create mode 100644 src/main/java/com/biutag/supervision/controller/mobileSupervision/InspectionController.java create mode 100644 src/main/java/com/biutag/supervision/controller/mobileSupervision/TestingAlcoholController.java create mode 100644 src/main/java/com/biutag/supervision/mapper/SupTaskInspectionMapper.java create mode 100644 src/main/java/com/biutag/supervision/mapper/SupTaskMapper.java create mode 100644 src/main/java/com/biutag/supervision/mapper/SupTaskPersonMapper.java create mode 100644 src/main/java/com/biutag/supervision/mapper/SupTaskTestingAlcoholMapper.java create mode 100644 src/main/java/com/biutag/supervision/mapper/SupTaskTestingAlcoholPeopleMapper.java create mode 100644 src/main/java/com/biutag/supervision/pojo/dto/NegativeImportAuditDto.java create mode 100644 src/main/java/com/biutag/supervision/pojo/dto/NegativeImportDistributeAuditDto.java create mode 100644 src/main/java/com/biutag/supervision/pojo/dto/TaskInspectionDto.java create mode 100644 src/main/java/com/biutag/supervision/pojo/dto/TaskTestingAlcoholDto.java create mode 100644 src/main/java/com/biutag/supervision/pojo/dto/TestingAlcoholFilter.java create mode 100644 src/main/java/com/biutag/supervision/pojo/entity/SupTask.java create mode 100644 src/main/java/com/biutag/supervision/pojo/entity/SupTaskInspection.java create mode 100644 src/main/java/com/biutag/supervision/pojo/entity/SupTaskPerson.java create mode 100644 src/main/java/com/biutag/supervision/pojo/entity/SupTaskTestingAlcohol.java create mode 100644 src/main/java/com/biutag/supervision/pojo/entity/SupTaskTestingAlcoholPeople.java create mode 100644 src/main/java/com/biutag/supervision/pojo/param/TaskInspectionQueryParam.java create mode 100644 src/main/java/com/biutag/supervision/pojo/param/TaskTestingAlcoholQueryParam.java create mode 100644 src/main/java/com/biutag/supervision/pojo/vo/TaskInspectionVo.java create mode 100644 src/main/java/com/biutag/supervision/pojo/vo/TaskTestingAlcoholVo.java create mode 100644 src/main/java/com/biutag/supervision/service/SupTaskInspectionService.java create mode 100644 src/main/java/com/biutag/supervision/service/SupTaskPersonService.java create mode 100644 src/main/java/com/biutag/supervision/service/SupTaskService.java create mode 100644 src/main/java/com/biutag/supervision/service/SupTaskTestingAlcoholPeopleService.java create mode 100644 src/main/java/com/biutag/supervision/service/SupTaskTestingAlcoholService.java create mode 100644 src/main/resources/mapper/SupTaskInspectionMapper.xml rename src/main/resources/mapper/{NegativeMapper.xml => SupTaskPersonMapper.xml} (100%) create mode 100644 src/main/resources/mapper/SupTaskTestingAlcoholMapper.xml create mode 100644 src/main/resources/static/templates/审计监督问题批量导入模板.xlsx diff --git a/sql/20250218.sql b/sql/20250218.sql deleted file mode 100644 index e69de29..0000000 diff --git a/sql/20250401.sql b/sql/20250401.sql new file mode 100644 index 0000000..90b2006 --- /dev/null +++ b/sql/20250401.sql @@ -0,0 +1,5 @@ +ALTER TABLE `negative`.`negative` + ADD COLUMN `verify_time` datetime NULL COMMENT '核查时间', + ADD COLUMN `project_name` varchar(255) NULL COMMENT '项目名称', + ADD COLUMN `involve_money` decimal(10, 2) NULL COMMENT '问题涉及金额', + ; \ No newline at end of file diff --git a/sql/20250410.sql b/sql/20250410.sql new file mode 100644 index 0000000..765e0d0 --- /dev/null +++ b/sql/20250410.sql @@ -0,0 +1,16 @@ +ALTER TABLE `negative`.`negative` + ADD COLUMN `resolve_situation` varchar(255) NULL COMMENT '化解情况' AFTER `involve_money`; + +ALTER TABLE `negative`.`data_petition_complaint` + ADD COLUMN `petition_processing_status` varchar(255) NULL COMMENT '信访办理情况'; + +INSERT INTO `negative`.`sup_dict_type`(`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ('化解情况', 'resolveSituation', '0', '', '2025-04-10 16:09:19', '', '2025-04-10 16:09:19', ''); + +INSERT INTO `negative`.`sup_dict_data`(`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 0, '已化解', '已化解', 'resolveSituation', '', '', '0', '0', '', '2025-04-10 16:09:43', '', '2025-04-10 16:09:43', ''); +INSERT INTO `negative`.`sup_dict_data`(`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 0, '已化解再次信访', '已化解再次信访', 'resolveSituation', '', '', '0', '0', '', '2025-04-10 16:09:53', '', '2025-04-10 16:09:53', ''); +INSERT INTO `negative`.`sup_dict_data`(`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 0, '未化解', '未化解', 'resolveSituation', '', '', '0', '0', '', '2025-04-10 16:10:02', '', '2025-04-10 16:10:02', ''); +INSERT INTO `negative`.`sup_dict_data`(`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 0, '未化解再次信访', '未化解再次信访', 'resolveSituation', '', '', '0', '0', '', '2025-04-10 16:10:11', '', '2025-04-10 16:10:11', ''); +INSERT INTO `negative`.`sup_dict_data`(`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 0, '已终结', '已终结', 'resolveSituation', '', '', '0', '0', '', '2025-04-10 16:10:19', '', '2025-04-10 16:10:19', ''); +INSERT INTO `negative`.`sup_dict_data`(`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 0, '已终结再次信访', '已终结再次信访', 'resolveSituation', '', '', '0', '0', '', '2025-04-10 16:10:28', '', '2025-04-10 16:10:28', ''); +INSERT INTO `negative`.`sup_dict_data`(`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 0, '停访息访', '停访息访', 'resolveSituation', '', '', '0', '0', '', '2025-04-10 16:10:36', '', '2025-04-10 16:10:36', ''); +INSERT INTO `negative`.`sup_dict_data`(`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 0, '停访息访后再次信访', '停访息访后再次信访', 'resolveSituation', '', '', '0', '0', '', '2025-04-10 16:10:45', '', '2025-04-10 16:10:45', ''); diff --git a/src/main/java/com/biutag/supervision/constants/enums/InspectCaseEnum.java b/src/main/java/com/biutag/supervision/constants/enums/InspectCaseEnum.java index 2e1bc90..669f723 100644 --- a/src/main/java/com/biutag/supervision/constants/enums/InspectCaseEnum.java +++ b/src/main/java/com/biutag/supervision/constants/enums/InspectCaseEnum.java @@ -20,7 +20,7 @@ public enum InspectCaseEnum { private String label; public static boolean isItTure(String value) { - return StrUtil.isNotBlank(value); + return TRUE.getValue().equals(value) || PARTIALLY_TRUE.getValue().equals(value); } } diff --git a/src/main/java/com/biutag/supervision/constants/enums/TaskStatusEnum.java b/src/main/java/com/biutag/supervision/constants/enums/TaskStatusEnum.java new file mode 100644 index 0000000..e393976 --- /dev/null +++ b/src/main/java/com/biutag/supervision/constants/enums/TaskStatusEnum.java @@ -0,0 +1,10 @@ +package com.biutag.supervision.constants.enums; + +/** + * @author wxc + * @date 2025/4/7 + */ +public enum TaskStatusEnum { + todo, + done; +} diff --git a/src/main/java/com/biutag/supervision/constants/enums/TaskTypeEnum.java b/src/main/java/com/biutag/supervision/constants/enums/TaskTypeEnum.java new file mode 100644 index 0000000..b77454e --- /dev/null +++ b/src/main/java/com/biutag/supervision/constants/enums/TaskTypeEnum.java @@ -0,0 +1,14 @@ +package com.biutag.supervision.constants.enums; + +/** + * @author wxc + * @date 2025/4/7 + */ +public enum TaskTypeEnum { + + // 测酒 + testing_alcohol, + + // 督察任务 + inspection; +} diff --git a/src/main/java/com/biutag/supervision/constants/enums/TestingAlcoholStateEnum.java b/src/main/java/com/biutag/supervision/constants/enums/TestingAlcoholStateEnum.java new file mode 100644 index 0000000..a763fc2 --- /dev/null +++ b/src/main/java/com/biutag/supervision/constants/enums/TestingAlcoholStateEnum.java @@ -0,0 +1,19 @@ +package com.biutag.supervision.constants.enums; + +/** + * 测酒状态 + * @author wxc + * @date 2025/4/7 + */ +public enum TestingAlcoholStateEnum { + + // 未检测 + not_detected, + + // 未饮酒 + not_drinking, + + // 已饮酒 + drink; + +} diff --git a/src/main/java/com/biutag/supervision/controller/StatisticsController.java b/src/main/java/com/biutag/supervision/controller/StatisticsController.java index 859b932..aba1950 100644 --- a/src/main/java/com/biutag/supervision/controller/StatisticsController.java +++ b/src/main/java/com/biutag/supervision/controller/StatisticsController.java @@ -67,6 +67,7 @@ public class StatisticsController { .and(query -> { query.eq(Negative::getExtensionApplyFlag, false).or().gt(Negative::getExtensionDays, 0); }) + .in(Negative::getProcessingStatus, List.of(ProcessingStatusEnum.processing.name(), ProcessingStatusEnum.approval.name())) .in(!user.getAuthSources().isEmpty(), Negative::getProblemSourcesCode, user.getAuthSources()) .and(nonAdminAuth, query -> { query.in(Negative::getHandleSecondDepartId, user.getAuthDepartIds()).or() 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 2465132..ebabad6 100644 --- a/src/main/java/com/biutag/supervision/controller/books/NegativeBookController.java +++ b/src/main/java/com/biutag/supervision/controller/books/NegativeBookController.java @@ -9,10 +9,9 @@ import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.fastjson.JSON; 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.ProblemSourcesEnum; -import com.biutag.supervision.constants.enums.SpecialSupervisionEnum; +import com.biutag.supervision.constants.enums.*; import com.biutag.supervision.pojo.Result; +import com.biutag.supervision.pojo.dto.flow.VerifyData; import com.biutag.supervision.pojo.entity.Negative; import com.biutag.supervision.pojo.entity.NegativeBlame; import com.biutag.supervision.pojo.entity.NegativeFile; @@ -225,7 +224,6 @@ public class NegativeBookController { response.setHeader("Content-Disposition", headerValue); response.setContentType("application/octet-stream"); EasyExcel.write(response.getOutputStream(), DataPetitionComplaintExportGabxfVo.class).inMemory(Boolean.TRUE).sheet("案件核查数据台账").doWrite(list); - } @GetMapping("mail12337") @@ -239,15 +237,34 @@ public class NegativeBookController { param.setCurrent(1); param.setSize(100000); Page pages = dataPetition12337Service.pageExportVo(param); + List negativeIds = pages.getRecords().stream().map(DataPetition12337ExportVo::getId).toList(); + List negativeBlames = negativeIds.isEmpty() ? new ArrayList<>() : blameService.listByNegativeIds(negativeIds); + + List overProcessings = List.of(ProcessingStatusEnum.approval.name(), ProcessingStatusEnum.completed.name()); pages.getRecords().forEach(item -> { if (StrUtil.isNotBlank(item.getHandlePolices())) { - item.setReviewPersonName(JSON.parseArray(item.getHandlePolices()).getJSONObject(0).getString("name")); + List handlePolices = JSON.parseArray(item.getHandlePolices(), VerifyData.HandlePolice.class); + item.setVerification(handlePolices.stream() + .filter(handlePolice -> StrUtil.isNotBlank(handlePolice.getName())).map(VerifyData.HandlePolice::getName).collect(Collectors.joining("、"))); + item.setVerificationMobile(handlePolices.stream() + .filter(handlePolice -> StrUtil.isNotBlank(handlePolice.getName())).map(VerifyData.HandlePolice::getMobile).collect(Collectors.joining("、"))); + } + // 是否核查完结 + item.setVerifiedIsover(overProcessings.contains(item.getProcessingStatus()) ? "核查完结" : null); + // 是否处分处理 + List blames = negativeBlames.stream().filter(blame -> blame.getNegativeId().equals(item.getId())).toList(); + if (InspectCaseEnum.isItTure(item.getCheckStatus()) && blames.stream().anyMatch(blame -> !blame.getHandleResultName().contains("不予追责"))) { + item.setIsPunish("是"); + item.setProcessResType("第一种形态"); + // 处理结论结果 + item.setProcessResDes(blames.stream().map(NegativeBlame::getHandleResultName).collect(Collectors.joining("、"))); } }); String headerValue = "attachment; filename=\"" + URLEncoder.encode("12337信访投诉数据台账.xlsx", "UTF-8") + "\""; response.setHeader("Content-Disposition", headerValue); response.setContentType("application/octet-stream"); EasyExcel.write(response.getOutputStream(), DataPetition12337ExportVo.class).inMemory(Boolean.TRUE).sheet("12337信访投诉数据台账").doWrite(pages.getRecords()); + } /** 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 9b221c4..2c66eaf 100644 --- a/src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaintController.java +++ b/src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaintController.java @@ -199,6 +199,13 @@ public class DataPetitionComplaintController { List petitionComplaints = list.stream().map(item -> { DataPetitionComplaint dataPetitionComplaint = new DataPetitionComplaint(); BeanUtils.copyProperties(item, dataPetitionComplaint); + if (StrUtil.isNotBlank(item.getHasCompleted())) { + if ("是".equals(item.getHasCompleted())) { + dataPetitionComplaint.setPetitionProcessingStatus("已办结"); + } else { + dataPetitionComplaint.setPetitionProcessingStatus("办理中"); + } + } dataPetitionComplaint.setProblemSourcesCode(ProblemSourcesEnum.GJXFPT.getValue()); dataPetitionComplaint.setCreateTime(LocalDateTime.now()); dataPetitionComplaint.setUpdateTime(LocalDateTime.now()); diff --git a/src/main/java/com/biutag/supervision/controller/data/VideoInspectionController.java b/src/main/java/com/biutag/supervision/controller/data/VideoInspectionController.java index 36246d4..1e5bab2 100644 --- a/src/main/java/com/biutag/supervision/controller/data/VideoInspectionController.java +++ b/src/main/java/com/biutag/supervision/controller/data/VideoInspectionController.java @@ -75,9 +75,9 @@ public class VideoInspectionController { if (externalDepartList.isEmpty()) { return Result.success(new Page().setRecords(new ArrayList<>()).setTotal(0)); } - queryWrapper.in("i.fsdw_gajgjgdm", externalDepartList.stream().map(SupExternalDepart::getExternalId).toList()); + queryWrapper.in("i.fsdw_gajgjgdm", departService.getAllNodeIds(externalDepartList.stream().map(SupExternalDepart::getExternalId).toList())); } - + queryWrapper.orderByDesc("i.rqsj"); return Result.success(dataAlarmDispositionInfoMapper.queryPage(Page.of(param.getCurrent(), param.getSize()), queryWrapper)); } diff --git a/src/main/java/com/biutag/supervision/controller/mobileSupervision/InspectionController.java b/src/main/java/com/biutag/supervision/controller/mobileSupervision/InspectionController.java new file mode 100644 index 0000000..bb28148 --- /dev/null +++ b/src/main/java/com/biutag/supervision/controller/mobileSupervision/InspectionController.java @@ -0,0 +1,34 @@ +package com.biutag.supervision.controller.mobileSupervision; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.biutag.supervision.pojo.Result; +import com.biutag.supervision.pojo.dto.TaskInspectionDto; +import com.biutag.supervision.pojo.param.TaskInspectionQueryParam; +import com.biutag.supervision.pojo.vo.TaskInspectionVo; +import com.biutag.supervision.service.SupTaskInspectionService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +/** + * @author wxc + * @date 2025/4/9 + */ +@RequiredArgsConstructor +@RestController +@RequestMapping("task/inspection") +public class InspectionController { + + private final SupTaskInspectionService taskInspectionService; + + @GetMapping + public Result> page(TaskInspectionQueryParam queryParam) { + return Result.success(taskInspectionService.page(queryParam)); + } + + @PostMapping + public Result add(@RequestBody TaskInspectionDto dto) { + return Result.success(taskInspectionService.save(dto)); + } + + +} diff --git a/src/main/java/com/biutag/supervision/controller/mobileSupervision/TestingAlcoholController.java b/src/main/java/com/biutag/supervision/controller/mobileSupervision/TestingAlcoholController.java new file mode 100644 index 0000000..5532a8c --- /dev/null +++ b/src/main/java/com/biutag/supervision/controller/mobileSupervision/TestingAlcoholController.java @@ -0,0 +1,68 @@ +package com.biutag.supervision.controller.mobileSupervision; + +import cn.hutool.core.collection.CollectionUtil; +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.dto.TaskTestingAlcoholDto; +import com.biutag.supervision.pojo.dto.TestingAlcoholFilter; +import com.biutag.supervision.pojo.entity.SupPolice; +import com.biutag.supervision.pojo.entity.SupTaskTestingAlcoholPeople; +import com.biutag.supervision.pojo.param.TaskTestingAlcoholQueryParam; +import com.biutag.supervision.pojo.vo.TaskTestingAlcoholVo; +import com.biutag.supervision.service.SupDepartService; +import com.biutag.supervision.service.SupPoliceService; +import com.biutag.supervision.service.SupTaskTestingAlcoholService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author wxc + * @date 2025/3/31 + */ +@RequiredArgsConstructor +@RestController +@RequestMapping("task/testingAlcohol") +public class TestingAlcoholController { + + private final SupTaskTestingAlcoholService taskTestingAlcoholService; + + private final SupPoliceService policeService; + + private final SupDepartService departService; + + @GetMapping + public Result> page(TaskTestingAlcoholQueryParam queryParam) { + return Result.success(taskTestingAlcoholService.page(queryParam)); + } + + @GetMapping("getPersonNumber") + public Result> getPersonNumber(TestingAlcoholFilter condition) { + List departIds = departService.getAllNodeIds(condition.getDepartId()); + List polices = policeService.list(new LambdaQueryWrapper().in(SupPolice::getOrgId, departIds) + .in(CollectionUtil.isNotEmpty(condition.getPersonType()), SupPolice::getPersonType, condition.getPersonType()) + .in(CollectionUtil.isNotEmpty(condition.getPosition()), SupPolice::getPosition, condition.getPosition())) + .stream().map(item -> { + SupTaskTestingAlcoholPeople people = new SupTaskTestingAlcoholPeople(); + people.setName(item.getName()); + people.setEmpNo(item.getEmpNo()); + people.setIdCode(item.getIdCode()); + people.setDepartId(item.getOrgId()); + return people; + }).toList(); + return Result.success(polices); + } + + @PostMapping + public Result add(@RequestBody TaskTestingAlcoholDto dto) { + return Result.success(taskTestingAlcoholService.save(dto)); + } + + @PostMapping("genPeople") + public Result> genPeople(@RequestBody TaskTestingAlcoholDto dto) { + return Result.success(); + } + +} 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 25a6e29..75548b1 100644 --- a/src/main/java/com/biutag/supervision/controller/work/NegativeController.java +++ b/src/main/java/com/biutag/supervision/controller/work/NegativeController.java @@ -34,6 +34,7 @@ import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Objects; +import java.util.Optional; @RequiredArgsConstructor @RequestMapping("negative") @@ -56,6 +57,8 @@ public class NegativeController { private final SupDepartService departService; + private final DataCaseVerifService dataCaseVerifService; + @GetMapping public Result> list(NegativeQueryParam queryParam) { return Result.success(negativeQueryService.page(queryParam)); @@ -72,7 +75,10 @@ public class NegativeController { return Result.success(negativeService.get(id, workId)); } - private final DataCaseVerifService dataCaseVerifService; + @GetMapping("getIdByOriginId/{originId}") + public Result get(@PathVariable String originId) { + return Result.success(Optional.ofNullable(negativeService.getByOriginId(originId)).map(Negative::getId).orElse(null)); + } @GetMapping("outer/{id}") public Result outerDetail(@PathVariable String id) { diff --git a/src/main/java/com/biutag/supervision/controller/work/NegativeTaskController.java b/src/main/java/com/biutag/supervision/controller/work/NegativeTaskController.java index f07baee..4631ca2 100644 --- a/src/main/java/com/biutag/supervision/controller/work/NegativeTaskController.java +++ b/src/main/java/com/biutag/supervision/controller/work/NegativeTaskController.java @@ -1,5 +1,6 @@ package com.biutag.supervision.controller.work; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.excel.EasyExcel; @@ -14,6 +15,8 @@ import com.biutag.supervision.constants.enums.DepartLevelEnum; import com.biutag.supervision.constants.enums.PoliceTypeEnum; import com.biutag.supervision.constants.enums.ProblemSourcesEnum; import com.biutag.supervision.pojo.Result; +import com.biutag.supervision.pojo.dto.NegativeImportAuditDto; +import com.biutag.supervision.pojo.dto.NegativeImportDistributeAuditDto; import com.biutag.supervision.pojo.dto.NegativeImportDistributeDto; import com.biutag.supervision.pojo.dto.NegativeImportDto; import com.biutag.supervision.pojo.entity.NegativeTask; @@ -32,6 +35,8 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -149,4 +154,98 @@ public class NegativeTaskController { return Result.success(negativeTaskService.detailGroupByDepart(taskId)); } + @PostMapping("audit/import") + public Result> importExcelByAudit(@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 list = new ArrayList<>(); + ExcelReader excelReader = EasyExcel.read(file.getInputStream(), NegativeImportAuditDto.class, new ReadListener() { + + @Override + public void invoke(NegativeImportAuditDto data, AnalysisContext analysisContext) { + if (StrUtil.isNotBlank(data.getBusinessTypeName()) && data.getBusinessTypeName().contains("必填项")) { + return; + } + Set> validate = validator.validate(data); + if (!validate.isEmpty()) { + String message = validate.stream().map(ConstraintViolation::getMessage).collect(Collectors.joining("\n")); + throw new RuntimeException(String.format("第 %s 条数据:%s", list.size() + 1, message)); + } + try { + data.setDiscoveryTime(LocalDateTime.parse(data.getDiscoveryTimeStr(), DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm"))); + } catch (RuntimeException e) { + throw new RuntimeException(String.format("问题发现时间日期格式错误:%s", data.getDiscoveryTimeStr())); + } + if (StrUtil.isNotBlank(data.getHappenTimeStr())) { + try { + data.setHappenTime(LocalDateTime.parse(data.getHappenTimeStr(), DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm"))); + } catch (RuntimeException e) { + throw new RuntimeException(String.format("问题发生时间日期格式错误:%s", data.getHappenTimeStr())); + } + } + if (StrUtil.isNotBlank(data.getInvolveMoneyStr())) { + data.setInvolveMoney(Double.parseDouble(data.getInvolveMoneyStr())); + } + if (StrUtil.isNotBlank(data.getProblemSources())) { + ProblemSourcesEnum problemSourcesEnum = ProblemSourcesEnum.getByLabel(data.getProblemSources()); + if (problemSourcesEnum == null) { + throw new RuntimeException(String.format("未匹配到该问题来源【%s】,请联系系统管理员", data.getProblemSources())); + } + data.setProblemSourcesCode(problemSourcesEnum.getValue()); + } + if (StrUtil.isNotBlank(data.getBusinessTypeName())) { + BusinessTypeEnum businessTypeEnum = BusinessTypeEnum.getByLabel(data.getBusinessTypeName()); + if (businessTypeEnum == null) { + throw new RuntimeException(String.format("未匹配到该业务类型【%s】,请联系系统管理员", data.getBusinessTypeName())); + } + data.setBusinessTypeCode(businessTypeEnum.getValue()); + } + if (StrUtil.isNotBlank(data.getPoliceTypeName())) { + PoliceTypeEnum policeTypeEnum = PoliceTypeEnum.getByLabel(data.getPoliceTypeName()); + if (policeTypeEnum == null) { + throw new RuntimeException(String.format("未匹配到该警种【%s】,请联系系统管理员", data.getPoliceTypeName())); + } + data.setPoliceType(policeTypeEnum.getValue()); + } + if (StrUtil.isNotBlank(data.getProblemsStr())) { + + } + if (StrUtil.isNotBlank(data.getInvolveDepartName())) { + String[] departNames = data.getInvolveDepartName().split("/"); + List departs = departService.list(new LambdaQueryWrapper().eq(SupDepart::getLevel, DepartLevelEnum.SECOND.getValue()) + .eq(SupDepart::getShortName, departNames[0])); + if (!departs.isEmpty()) { + if (departNames.length > 1) { + List threeDeparts = departService.list(new LambdaQueryWrapper() + .eq(SupDepart::getPid, departs.get(0).getId()) + .eq(SupDepart::getShortName, departNames[1])); + if (!threeDeparts.isEmpty()) { + data.setInvolveDepartId(threeDeparts.get(0).getId()); + data.setInvolveDepartName(threeDeparts.get(0).getShortName()); + } + } else { + data.setInvolveDepartId(departs.get(0).getId()); + data.setInvolveDepartName(departs.get(0).getShortName()); + } + } + } + list.add(data); + } + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { } + }).build(); + ReadSheet sheet = EasyExcel.readSheet("问题信息模板(审计)").build(); + excelReader.read(sheet); + excelReader.close(); + return Result.success(list); + } + + @PostMapping("audit/distribute") + public Result distribute(@RequestBody NegativeImportDistributeAuditDto distributeData) { + return Result.success(negativeTaskService.distributionByAudit(distributeData)); + } + } diff --git a/src/main/java/com/biutag/supervision/flow/action/SaveAction.java b/src/main/java/com/biutag/supervision/flow/action/SaveAction.java index 16877e7..8107af2 100644 --- a/src/main/java/com/biutag/supervision/flow/action/SaveAction.java +++ b/src/main/java/com/biutag/supervision/flow/action/SaveAction.java @@ -59,7 +59,8 @@ public class SaveAction implements Action { .set(Negative::getCheckStatusDesc, verifyData.getCheckStatusDesc()) .set(Negative::getRectifyDesc, verifyData.getRectifyDesc()) .set(Negative::getUnrectifyReason, verifyData.getUnrectifyReason()) - .set(Negative::getCheckStatusName, verifyData.getCheckStatusName()); + .set(Negative::getCheckStatusName, verifyData.getCheckStatusName()) + .set(Negative::getResolveSituation, verifyData.getResolveSituation()); // 经办人 if (CollectionUtil.isNotEmpty(verifyData.getHandlePolices().stream().filter(item -> StrUtil.isNotBlank(item.getName())).toList())) { updateWrapper.set(Negative::getHandlePolices, JSON.toJSONString(verifyData.getHandlePolices())); @@ -101,6 +102,8 @@ public class SaveAction implements Action { BeanUtil.copyProperties(item, negativeBlame); if (CollectionUtil.isNotEmpty(item.getHandleResultCode())) { negativeBlame.setHandleResultCode(String.join(",", item.getHandleResultCode())); + } else { + negativeBlame.setHandleResultCode(null); } VerifyData.BlameLeader blameLeader = verifyData.getBlameLeaders().stream() .filter(leader -> leader.getBlameIdCodes().contains(item.getBlameIdCode())).findFirst().orElse(null); @@ -108,6 +111,8 @@ public class SaveAction implements Action { BeanUtil.copyProperties(blameLeader, negativeBlame); if (CollectionUtil.isNotEmpty(blameLeader.getLeadHandleResultCode())) { negativeBlame.setLeadHandleResultCode(String.join(",", blameLeader.getLeadHandleResultCode())); + } else { + negativeBlame.setLeadHandleResultCode(null); } } negativeBlame.setNegativeId(negativeId) diff --git a/src/main/java/com/biutag/supervision/mapper/RpcApplyMapper.java b/src/main/java/com/biutag/supervision/mapper/RpcApplyMapper.java index 700f80f..fff708e 100644 --- a/src/main/java/com/biutag/supervision/mapper/RpcApplyMapper.java +++ b/src/main/java/com/biutag/supervision/mapper/RpcApplyMapper.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.biutag.supervision.pojo.dto.common.PieItem; import com.biutag.supervision.pojo.entity.RpcApply; import com.biutag.supervision.pojo.entity.RpcInfringerResult; -import com.biutag.supervision.pojo.model.PoliceModel; import com.biutag.supervision.pojo.vo.EchartsVo; import com.biutag.supervision.pojo.vo.OrganizeProblemRankVo; import com.biutag.supervision.pojo.vo.RpcApplyVo; diff --git a/src/main/java/com/biutag/supervision/mapper/SupTaskInspectionMapper.java b/src/main/java/com/biutag/supervision/mapper/SupTaskInspectionMapper.java new file mode 100644 index 0000000..18a9d0a --- /dev/null +++ b/src/main/java/com/biutag/supervision/mapper/SupTaskInspectionMapper.java @@ -0,0 +1,15 @@ +package com.biutag.supervision.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.biutag.supervision.pojo.entity.SupTaskInspection; +import com.biutag.supervision.pojo.vo.TaskInspectionVo; +import org.apache.ibatis.annotations.Param; + +public interface SupTaskInspectionMapper extends BaseMapper { + + Page queryPage(@Param("page") Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + +} \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/mapper/SupTaskMapper.java b/src/main/java/com/biutag/supervision/mapper/SupTaskMapper.java new file mode 100644 index 0000000..6109df1 --- /dev/null +++ b/src/main/java/com/biutag/supervision/mapper/SupTaskMapper.java @@ -0,0 +1,8 @@ +package com.biutag.supervision.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.biutag.supervision.pojo.entity.SupTask; + +public interface SupTaskMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/mapper/SupTaskPersonMapper.java b/src/main/java/com/biutag/supervision/mapper/SupTaskPersonMapper.java new file mode 100644 index 0000000..f932b23 --- /dev/null +++ b/src/main/java/com/biutag/supervision/mapper/SupTaskPersonMapper.java @@ -0,0 +1,8 @@ +package com.biutag.supervision.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.biutag.supervision.pojo.entity.SupTaskPerson; + +public interface SupTaskPersonMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/mapper/SupTaskTestingAlcoholMapper.java b/src/main/java/com/biutag/supervision/mapper/SupTaskTestingAlcoholMapper.java new file mode 100644 index 0000000..dc94897 --- /dev/null +++ b/src/main/java/com/biutag/supervision/mapper/SupTaskTestingAlcoholMapper.java @@ -0,0 +1,15 @@ +package com.biutag.supervision.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.biutag.supervision.pojo.entity.SupTaskTestingAlcohol; +import com.biutag.supervision.pojo.vo.TaskTestingAlcoholVo; +import org.apache.ibatis.annotations.Param; + +public interface SupTaskTestingAlcoholMapper extends BaseMapper { + + Page queryPage(@Param("page") Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + +} \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/mapper/SupTaskTestingAlcoholPeopleMapper.java b/src/main/java/com/biutag/supervision/mapper/SupTaskTestingAlcoholPeopleMapper.java new file mode 100644 index 0000000..c1f3b9f --- /dev/null +++ b/src/main/java/com/biutag/supervision/mapper/SupTaskTestingAlcoholPeopleMapper.java @@ -0,0 +1,8 @@ +package com.biutag.supervision.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.biutag.supervision.pojo.entity.SupTaskTestingAlcoholPeople; + +public interface SupTaskTestingAlcoholPeopleMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/pojo/domain/NegativeVo.java b/src/main/java/com/biutag/supervision/pojo/domain/NegativeVo.java index a6b248f..6762609 100644 --- a/src/main/java/com/biutag/supervision/pojo/domain/NegativeVo.java +++ b/src/main/java/com/biutag/supervision/pojo/domain/NegativeVo.java @@ -198,6 +198,14 @@ public class NegativeVo { // 当前处理对象 private String currentProcessingObject; + private String projectName; + + // 涉及问题金额 + private Double involveMoney; + + // 化解情况 + private String resolveSituation; + // 下发选择的问题类型 private List problems = new ArrayList<>(); diff --git a/src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintGjImportDto.java b/src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintGjImportDto.java index d822d86..92ba2e7 100644 --- a/src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintGjImportDto.java +++ b/src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintGjImportDto.java @@ -61,6 +61,9 @@ public class DataPetitionComplaintGjImportDto { @ExcelProperty({"去向机构"}) private String handleDepartName; + @ExcelProperty({"是否办结"}) + private String hasCompleted; + @ExcelIgnore private String departId; diff --git a/src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintImportDto.java b/src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintImportDto.java index 4edbea6..b7621fa 100644 --- a/src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintImportDto.java +++ b/src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintImportDto.java @@ -87,6 +87,9 @@ public class DataPetitionComplaintImportDto { @ExcelProperty({"责任部门"}) private String involveDepartName; + @ExcelProperty({"办结状态"}) + private String petitionProcessingStatus; + @ExcelIgnore private String departId; diff --git a/src/main/java/com/biutag/supervision/pojo/dto/NegativeDto.java b/src/main/java/com/biutag/supervision/pojo/dto/NegativeDto.java index 1f8c42a..9438338 100644 --- a/src/main/java/com/biutag/supervision/pojo/dto/NegativeDto.java +++ b/src/main/java/com/biutag/supervision/pojo/dto/NegativeDto.java @@ -13,7 +13,6 @@ import lombok.Setter; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; -import java.util.Map; @Setter @Getter @@ -107,6 +106,12 @@ public class NegativeDto { private String taskId; + // 项目名称 + private String projectName; + + // 涉及问题金额 + private Double involveMoney; + // 下发问题 private List problems; diff --git a/src/main/java/com/biutag/supervision/pojo/dto/NegativeImportAuditDto.java b/src/main/java/com/biutag/supervision/pojo/dto/NegativeImportAuditDto.java new file mode 100644 index 0000000..48e3f53 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/dto/NegativeImportAuditDto.java @@ -0,0 +1,110 @@ +package com.biutag.supervision.pojo.dto; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.biutag.supervision.pojo.dto.flow.VerifyData; +import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +@Setter +@Getter +public class NegativeImportAuditDto { + + @NotNull(message = "问题发现时间不能为空") + @ExcelProperty("问题发现时间") + private String discoveryTimeStr; + + // 问题发现时间 + @ExcelIgnore + private LocalDateTime discoveryTime; + + + @ExcelProperty("问题发生时间") + private String happenTimeStr; + + // 问题发生时间 + @ExcelIgnore + private LocalDateTime happenTime; + + // 问题来源 + @ExcelProperty("问题来源") + @NotBlank(message = "问题来源不能为空") + private String problemSources; + + @ExcelIgnore + private String problemSourcesCode; + + // 业务类别 + @NotBlank(message = "业务类别不能为空") + @ExcelProperty("业务类别") + private String businessTypeName; + + @ExcelIgnore + private String businessTypeCode; + + @ExcelProperty("涉及警种") + private String policeTypeName; + + @ExcelIgnore + private String policeType; + + // 问题种类 + @ExcelProperty("问题种类") + @NotBlank(message = "问题种类不能为空") + private String problemsStr; + + @ExcelIgnore + private List problems; + + // 反映人姓名 + @ExcelProperty("投诉人") + private String responderName; + + // 联系电话 + @ExcelProperty("投诉人联系电话") + private String contactPhone; + + // 简要描述 + @ExcelProperty("具体问题内容") + @NotBlank(message = "具体问题内容不能为空") + private String thingDesc; + + @ExcelProperty("涉及单位") + private String involveDepartName; + + @ExcelIgnore + private String involveDepartId; + + // 涉及案件/警情编号 + @ExcelProperty("案件/警情编号") + private String caseNumber; + + @ExcelIgnore + private String SpecialSupervision; + + // 项目名称 + @ExcelProperty("项目名称") + private String projectName; + + // 案件名称 + @ExcelProperty("案件名称") + private String caseName; + + // 涉及问题金额 + @ExcelProperty("问题金额(万元)") + private String involveMoneyStr; + + @ExcelIgnore + private Double involveMoney; + + @ExcelProperty("责任人员") + private String blames; + +} diff --git a/src/main/java/com/biutag/supervision/pojo/dto/NegativeImportDistributeAuditDto.java b/src/main/java/com/biutag/supervision/pojo/dto/NegativeImportDistributeAuditDto.java new file mode 100644 index 0000000..7e49d14 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/dto/NegativeImportDistributeAuditDto.java @@ -0,0 +1,45 @@ +package com.biutag.supervision.pojo.dto; + +import com.biutag.supervision.pojo.vo.FileVo; +import jakarta.validation.constraints.NotBlank; +import lombok.Getter; +import lombok.Setter; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author wxc + * @date 2024/12/27 + */ +@Setter +@Getter +public class NegativeImportDistributeAuditDto { + + private List data = new ArrayList<>(); + + private String taskName; + + // 办理时限 + @NotBlank + private String timeLimit; + + // 最大签收时长(天) + private Integer maxSignDuration; + + // 最大办理时长(天) + private Integer maxHandleDuration; + + // 最大延期时长(天) + private Integer maxExtensionDuration; + + // 审批流程 + @NotBlank + private String approvalFlow; + + // 下发流程 + @NotBlank + private String distributionFlow; + + +} diff --git a/src/main/java/com/biutag/supervision/pojo/dto/TaskInspectionDto.java b/src/main/java/com/biutag/supervision/pojo/dto/TaskInspectionDto.java new file mode 100644 index 0000000..fa96eda --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/dto/TaskInspectionDto.java @@ -0,0 +1,35 @@ +package com.biutag.supervision.pojo.dto; + +import com.biutag.supervision.pojo.entity.SupTaskPerson; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +/** + * @author wxc + * @date 2025/3/31 + */ +@Setter +@Getter +public class TaskInspectionDto { + + private String taskName; + + // 督察单位 + private Integer supDepartId; + + // 督察类型 + private String supervisionType; + + // 督察内容 + private String taskContent; + + private List times = new ArrayList<>(); + + + private List persons = new ArrayList<>(); + +} diff --git a/src/main/java/com/biutag/supervision/pojo/dto/TaskTestingAlcoholDto.java b/src/main/java/com/biutag/supervision/pojo/dto/TaskTestingAlcoholDto.java new file mode 100644 index 0000000..32cf263 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/dto/TaskTestingAlcoholDto.java @@ -0,0 +1,51 @@ +package com.biutag.supervision.pojo.dto; + +import com.biutag.supervision.pojo.entity.SupTaskTestingAlcoholPeople; +import com.biutag.supervision.pojo.entity.SupTaskPerson; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +/** + * @author wxc + * @date 2025/3/31 + */ +@Setter +@Getter +public class TaskTestingAlcoholDto { + + private String taskName; + + // 督察单位 + private Integer supDepartId; + + // 数据生成方式 + private String dataGenerationMethod; + + // 被抽检次数少于 + private Integer filterMinSupNumber; + + // 距最后一次检测时间(天) + private String filterLastDays; + + // 有无饮酒历史 + private Boolean filterAlcoholHistory; + + // 筛选条件 抽检人数 + private Integer filterPeopleNumber; + + + private List filterPeopleConditions = new ArrayList<>(); + + + private List times = new ArrayList<>(); + + + private List persons = new ArrayList<>(); + + private List peoples = new ArrayList<>(); + +} diff --git a/src/main/java/com/biutag/supervision/pojo/dto/TestingAlcoholFilter.java b/src/main/java/com/biutag/supervision/pojo/dto/TestingAlcoholFilter.java new file mode 100644 index 0000000..c15de34 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/dto/TestingAlcoholFilter.java @@ -0,0 +1,37 @@ +package com.biutag.supervision.pojo.dto; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +/** + * @author wxc + * @date 2025/4/2 + */ +@Setter +@Getter +public class TestingAlcoholFilter { + + // 被抽检次数少于 + private Integer filterMinSupNumber; + + // 距最后一次检测时间(天) + private String filterLastDays; + + // 有无饮酒历史 + private Boolean filterAlcoholHistory; + + // 筛选条件 抽检人数 + private Integer filterPeopleNumber; + + // 单位 + private String departId; + + private List personType; + + private List position; + + private Integer count; + +} diff --git a/src/main/java/com/biutag/supervision/pojo/dto/flow/VerifyData.java b/src/main/java/com/biutag/supervision/pojo/dto/flow/VerifyData.java index df4560b..180c059 100644 --- a/src/main/java/com/biutag/supervision/pojo/dto/flow/VerifyData.java +++ b/src/main/java/com/biutag/supervision/pojo/dto/flow/VerifyData.java @@ -54,6 +54,12 @@ public class VerifyData { // 未整改原因 private String unrectifyReason; + // 化解情况 + private String resolveSituation; + + // 核查时间 + private LocalDateTime verificationTime; + @Size(min = 1) private List blames = new ArrayList<>(); @@ -245,8 +251,8 @@ public class VerifyData { @Getter public static class HandlePolice { private String name; - private String empNo; private String idCode; + private String mobile; } } diff --git a/src/main/java/com/biutag/supervision/pojo/entity/DataPetitionComplaint.java b/src/main/java/com/biutag/supervision/pojo/entity/DataPetitionComplaint.java index 1b569b9..25efa77 100644 --- a/src/main/java/com/biutag/supervision/pojo/entity/DataPetitionComplaint.java +++ b/src/main/java/com/biutag/supervision/pojo/entity/DataPetitionComplaint.java @@ -37,6 +37,9 @@ public class DataPetitionComplaint { @TableField("responder_phone") private String responderPhone; + // 投诉人身份证 + private String responderIdCode; + // 初重信访 @TableField("initial_petition") private String initialPetition; @@ -94,4 +97,6 @@ public class DataPetitionComplaint { // 信访形式 private String petitionType; + // 信访办理情况 + private String petitionProcessingStatus; } \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/pojo/entity/Negative.java b/src/main/java/com/biutag/supervision/pojo/entity/Negative.java index 21f7dba..3fdc6dc 100644 --- a/src/main/java/com/biutag/supervision/pojo/entity/Negative.java +++ b/src/main/java/com/biutag/supervision/pojo/entity/Negative.java @@ -302,4 +302,16 @@ public class Negative { // 下发问题 private String problems; + // 核查时间 + private LocalDateTime verifyTime; + + // 项目名称 + private String projectName; + + // 涉及问题金额 + private Double involveMoney; + + // 化解情况 + private String resolveSituation; + } \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/pojo/entity/SupTask.java b/src/main/java/com/biutag/supervision/pojo/entity/SupTask.java new file mode 100644 index 0000000..bac6349 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/entity/SupTask.java @@ -0,0 +1,50 @@ +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 SupTask { + + // + @TableId(type = IdType.AUTO) + private Integer id; + + // 任务名称 + @TableField("task_name") + private String taskName; + + // 督察单位 + @TableField("sup_depart_id") + private Integer supDepartId; + + // 督察单位 + @TableField("sup_depart_name") + private String supDepartName; + + // 任务类型 + @TableField("task_type") + private String taskType; + + // 开始时间 + @TableField("begin_time") + private LocalDateTime beginTime; + + // 结束时间 + @TableField("end_time") + private LocalDateTime endTime; + + // 创建时间 + @TableField("create_time") + private LocalDateTime createTime; + + // 任务状态 + private String taskStatus; + +} \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/pojo/entity/SupTaskInspection.java b/src/main/java/com/biutag/supervision/pojo/entity/SupTaskInspection.java new file mode 100644 index 0000000..599a066 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/entity/SupTaskInspection.java @@ -0,0 +1,24 @@ +package com.biutag.supervision.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class SupTaskInspection { + + // + @TableId(value = "task_id") + private Integer taskId; + + // + @TableField("supervision_type") + private String supervisionType; + + // + @TableField("task_content") + private String taskContent; + +} \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/pojo/entity/SupTaskPerson.java b/src/main/java/com/biutag/supervision/pojo/entity/SupTaskPerson.java new file mode 100644 index 0000000..42568b1 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/entity/SupTaskPerson.java @@ -0,0 +1,39 @@ +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 SupTaskPerson { + + // + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + // + @TableField("task_id") + private Integer taskId; + + // + @TableField("name") + private String name; + + // + @TableField("emp_no") + private Integer empNo; + + // + @TableField("id_code") + private String idCode; + + // + @TableField("create_time") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/pojo/entity/SupTaskTestingAlcohol.java b/src/main/java/com/biutag/supervision/pojo/entity/SupTaskTestingAlcohol.java new file mode 100644 index 0000000..595a8aa --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/entity/SupTaskTestingAlcohol.java @@ -0,0 +1,39 @@ +package com.biutag.supervision.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class SupTaskTestingAlcohol { + + @TableId(value = "task_id") + private Integer taskId; + + // 数据生成方式 + @TableField("data_generation_method") + private String dataGenerationMethod; + + // 被抽检次数少于 + @TableField("filter_min_sup_number") + private Integer filterMinSupNumber; + + // 距最后一次检测时间(天) + @TableField("filter_last_days") + private String filterLastDays; + + // 有无饮酒历史 + @TableField("filter_alcohol_history") + private Boolean filterAlcoholHistory; + + // 筛选条件 抽检人数 + @TableField("filter_people_number") + private Integer filterPeopleNumber; + + // 抽检对象 + @TableField("filter_object") + private String filterObject; + +} \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/pojo/entity/SupTaskTestingAlcoholPeople.java b/src/main/java/com/biutag/supervision/pojo/entity/SupTaskTestingAlcoholPeople.java new file mode 100644 index 0000000..43c32b0 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/entity/SupTaskTestingAlcoholPeople.java @@ -0,0 +1,46 @@ +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 SupTaskTestingAlcoholPeople { + + // + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + // + @TableField("task_id") + private Integer taskId; + + // 姓名 + @TableField("name") + private String name; + + // 警号 + @TableField("emp_no") + private String empNo; + + // 身份证 + @TableField("id_code") + private String idCode; + + // 单位ID + @TableField("depart_id") + private String departId; + + // 状态 + @TableField("status") + private String status; + + // 测酒时间 + private LocalDateTime testingTime; + +} \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/pojo/param/TaskInspectionQueryParam.java b/src/main/java/com/biutag/supervision/pojo/param/TaskInspectionQueryParam.java new file mode 100644 index 0000000..69a6de9 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/param/TaskInspectionQueryParam.java @@ -0,0 +1,18 @@ +package com.biutag.supervision.pojo.param; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author wxc + * @date 2025/4/7 + */ +@Setter +@Getter +public class TaskInspectionQueryParam extends BasePage { + + private String taskName; + + private String supDepartId; + +} diff --git a/src/main/java/com/biutag/supervision/pojo/param/TaskTestingAlcoholQueryParam.java b/src/main/java/com/biutag/supervision/pojo/param/TaskTestingAlcoholQueryParam.java new file mode 100644 index 0000000..9d38e6d --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/param/TaskTestingAlcoholQueryParam.java @@ -0,0 +1,18 @@ +package com.biutag.supervision.pojo.param; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author wxc + * @date 2025/4/7 + */ +@Setter +@Getter +public class TaskTestingAlcoholQueryParam extends BasePage { + + private String taskName; + + private String supDepartId; + +} diff --git a/src/main/java/com/biutag/supervision/pojo/vo/DataPetition12337ExportVo.java b/src/main/java/com/biutag/supervision/pojo/vo/DataPetition12337ExportVo.java index c16ce3d..0833b6e 100644 --- a/src/main/java/com/biutag/supervision/pojo/vo/DataPetition12337ExportVo.java +++ b/src/main/java/com/biutag/supervision/pojo/vo/DataPetition12337ExportVo.java @@ -267,31 +267,31 @@ public class DataPetition12337ExportVo implements Serializable { * 核查人 */ @ExcelProperty("核查人") - private String reviewPersonName; + private String verification; /** * 核查人联系方式 */ @ExcelProperty("核查人联系方式") - private String reviewPersonPhone; + private String verificationMobile; /** * 被核查人类别 */ @ExcelProperty("被核查人类别") - private String reviewedPersonType; + private String verifiedPersonType; /** * 被核查人是否属于领导班子成员 */ @ExcelProperty("被核查人是否属于领导班子成员") - private String reviewedPersonIsleader; + private String verifiedIsleader; /** * 是否核查完结 */ @ExcelProperty("是否核查完结") - private String reviewedIsover; + private String verifiedIsover; /** * 核查简要情况 @@ -583,6 +583,14 @@ public class DataPetition12337ExportVo implements Serializable { @ExcelIgnore private String checkStatusName; + @ExcelIgnore + private String checkStatus; + @ExcelIgnore private String id; + + // 办理状态 + @ExcelIgnore + private String processingStatus; + } \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/pojo/vo/DataPetitionComplaintVo.java b/src/main/java/com/biutag/supervision/pojo/vo/DataPetitionComplaintVo.java index 24b603b..ed9c11b 100644 --- a/src/main/java/com/biutag/supervision/pojo/vo/DataPetitionComplaintVo.java +++ b/src/main/java/com/biutag/supervision/pojo/vo/DataPetitionComplaintVo.java @@ -34,6 +34,9 @@ public class DataPetitionComplaintVo { // 投诉人电话 private String responderPhone; + // 投诉人电话 + private String responderIdCode; + // 初重信访 private String initialPetition; @@ -55,11 +58,10 @@ public class DataPetitionComplaintVo { // 具体内容 private String thingDesc; - - // 涉及单位 二级 private String secondDepartId; + // private String secondDepartName; // 所对 @@ -79,4 +81,7 @@ public class DataPetitionComplaintVo { private String negativeId; + // 信访办理情况 + private String petitionProcessingStatus; + } \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/pojo/vo/TaskInspectionVo.java b/src/main/java/com/biutag/supervision/pojo/vo/TaskInspectionVo.java new file mode 100644 index 0000000..d719db8 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/vo/TaskInspectionVo.java @@ -0,0 +1,48 @@ +package com.biutag.supervision.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; + +/** + * @author wxc + * @date 2025/3/31 + */ +@Setter +@Getter +public class TaskInspectionVo { + + private Integer id; + + // 任务名称 + private String taskName; + + // 督察单位 + private String supDepartName; + + // 开始时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime beginTime; + + // 结束时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime endTime; + + private String supervisionType; + + private String taskContent; + + // 检测人员 + private String persons; + + private Integer totalNumber; + + private Integer notDetectedNumber; + + private Integer notDrinkingNumber; + + private Integer drinkNumber; + +} diff --git a/src/main/java/com/biutag/supervision/pojo/vo/TaskTestingAlcoholVo.java b/src/main/java/com/biutag/supervision/pojo/vo/TaskTestingAlcoholVo.java new file mode 100644 index 0000000..7d78c71 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/vo/TaskTestingAlcoholVo.java @@ -0,0 +1,44 @@ +package com.biutag.supervision.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; + +/** + * @author wxc + * @date 2025/3/31 + */ +@Setter +@Getter +public class TaskTestingAlcoholVo { + + private Integer id; + + // 任务名称 + private String taskName; + + // 督察单位 + private String supDepartName; + + // 开始时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime beginTime; + + // 结束时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime endTime; + + // 检测人员 + private String persons; + + private Integer totalNumber; + + private Integer notDetectedNumber; + + private Integer notDrinkingNumber; + + private Integer drinkNumber; + +} diff --git a/src/main/java/com/biutag/supervision/service/DataRightsComfortService.java b/src/main/java/com/biutag/supervision/service/DataRightsComfortService.java index bfe91f5..1283d39 100644 --- a/src/main/java/com/biutag/supervision/service/DataRightsComfortService.java +++ b/src/main/java/com/biutag/supervision/service/DataRightsComfortService.java @@ -5,9 +5,6 @@ import com.biutag.supervision.mapper.SupDepartMapper; import com.biutag.supervision.pojo.dto.common.PieItem; import com.biutag.supervision.pojo.entity.RpcInfringerResult; import com.biutag.supervision.pojo.entity.SupDepart; -import com.biutag.supervision.pojo.vo.EchartsVo; -import com.biutag.supervision.pojo.vo.MailMapIconVo; -import com.biutag.supervision.pojo.vo.OrganizeProblemRankVo; import com.biutag.supervision.pojo.vo.RightsComfortMapVo; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -16,8 +13,6 @@ import java.util.*; import java.util.stream.Collectors; import static com.biutag.supervision.constants.enums.DepartGroupEnum.COUNTY_CITY_BUREAUS; -import static com.biutag.supervision.constants.enums.ProblemSourcesEnum.GABXF; -import static com.biutag.supervision.constants.enums.ProblemSourcesEnum.GJXFPT; @RequiredArgsConstructor @Service diff --git a/src/main/java/com/biutag/supervision/service/NegativeTaskService.java b/src/main/java/com/biutag/supervision/service/NegativeTaskService.java index a8f78e6..39a6f7f 100644 --- a/src/main/java/com/biutag/supervision/service/NegativeTaskService.java +++ b/src/main/java/com/biutag/supervision/service/NegativeTaskService.java @@ -1,6 +1,7 @@ package com.biutag.supervision.service; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.excel.EasyExcel; @@ -13,9 +14,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.biutag.supervision.common.UserContextHolder; import com.biutag.supervision.constants.enums.*; import com.biutag.supervision.mapper.NegativeTaskMapper; -import com.biutag.supervision.pojo.dto.NegativeDto; -import com.biutag.supervision.pojo.dto.NegativeImportDistributeDto; -import com.biutag.supervision.pojo.dto.NegativeImportDto; +import com.biutag.supervision.pojo.dto.*; +import com.biutag.supervision.pojo.dto.flow.VerifyData; import com.biutag.supervision.pojo.entity.*; import com.biutag.supervision.pojo.model.ModelClueTaskDepartModel; import com.biutag.supervision.pojo.model.UserAuth; @@ -33,26 +33,30 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.time.LocalDate; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; @RequiredArgsConstructor @Service public class NegativeTaskService extends ServiceImpl { - static { - System.setProperty("java.awt.headless", "true"); - } - private final FileService fileService; private final SupDepartService departService; private final NegativeService negativeService; + private final SupDictDataService dictDataService; + + private final NegativeProblemRelationService negativeProblemRelationService; + + private final NegativeBlameService negativeBlameService; + + private final SupDictProblemTypeService dictProblemTypeService; + + private final SupPoliceService policeService; + + private final NegativeBlameService blameService; public Page page(NegativeTaskQueryParam param) { @@ -83,11 +87,7 @@ public class NegativeTaskService extends ServiceImpl data, String negativeTaskId) { @@ -231,8 +231,48 @@ public class NegativeTaskService extends ServiceImpl data = distributeData.getData(); + NegativeTask negativeTask = new NegativeTask(); + negativeTask.setId(IdUtil.getSnowflakeNextIdStr()); + negativeTask.setTaskName(distributeData.getTaskName()); + negativeTask.setImportRow(data.size()); + negativeTask.setCrtTime(LocalDateTime.now()); + negativeTask.setSource("审计监督"); + UserAuth user = UserContextHolder.getCurrentUser(); + negativeTask.setCrtUser(user.getNickName()); + negativeTask.setCrtUsername(user.getUserName()); + save(negativeTask); + data.forEach(item -> { + NegativeDto negativeDto = new NegativeDto(); + BeanUtil.copyProperties(item, negativeDto); + SupDepart depart = departService.getById(item.getInvolveDepartId()); + if (DepartLevelEnum.SECOND.getValue().equals(depart.getLevel())) { + negativeDto.setDepartId(depart.getId()); + } else if(DepartLevelEnum.THREE.getValue().equals(depart.getLevel())) { + if (DistributionFlowEnum.SECOND.getValue().equals(distributeData.getDistributionFlow())) { + SupDepart parent = departService.getById(depart.getPid()); + negativeDto.setDepartId(parent.getId()); + } else { + negativeDto.setDepartId(depart.getId()); + } + } else { + throw new RuntimeException("数据异常,请联系系统管理员"); + } negativeDto.setHostLevel(HostLevelEnums.SECOND.getValue()); negativeDto.setApprovalFlow(distributeData.getApprovalFlow()); // 审批流程 negativeDto.setTimeLimit(distributeData.getTimeLimit()); // 办理时限 @@ -240,7 +280,45 @@ public class NegativeTaskService extends ServiceImpl departIds = departService.getAllNodeIds(negativeDto.getDepartId()); + Arrays.stream(item.getBlames().split("、")).forEach(name -> { + + SupPolice blamePolice = policeService.list(new LambdaQueryWrapper() + .eq(SupPolice::getName, name).in(SupPolice::getOrgId, departIds)) + .stream().findFirst().orElse(null); + if (Objects.nonNull(blamePolice)) { + NegativeBlame blame = new NegativeBlame(); + blame.setBlameId(IdUtil.getSnowflakeNextIdStr()) + .setNegativeId(negative.getId()) + .setBlameName(blamePolice.getName()) + .setBlameEmpNo(blamePolice.getEmpNo()) + .setBlameIdCode(blamePolice.getIdCode()) + .setIvPersonType(Optional.ofNullable(PersonTypeEnum.getByLabel(blamePolice.getPersonType())).map(PersonTypeEnum::getLabel).orElse(null)) + .setIvPersonTypeCode(blamePolice.getPersonType()) + .setCrtTime(LocalDateTime.now()) + .setType("personal"); + blameService.save(blame); + if (CollectionUtil.isNotEmpty(negativeDto.getProblems())) { + List problems = negativeDto.getProblems().stream().map(problem -> { + NegativeProblemRelation problemRelation = new NegativeProblemRelation(); + BeanUtils.copyProperties(problem, problemRelation); + problemRelation.setBlameId(blame.getBlameId()); + problemRelation.setNegativeId(negative.getId()); + return problemRelation; + }).toList(); + negativeProblemRelationService.saveBatch(problems); + } + } + }); + } }); return true; } diff --git a/src/main/java/com/biutag/supervision/service/SupDictProblemTypeService.java b/src/main/java/com/biutag/supervision/service/SupDictProblemTypeService.java index 19c0cf9..3efdfba 100644 --- a/src/main/java/com/biutag/supervision/service/SupDictProblemTypeService.java +++ b/src/main/java/com/biutag/supervision/service/SupDictProblemTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.biutag.supervision.constants.AppConstants; import com.biutag.supervision.mapper.SupDictProblemTypeMapper; +import com.biutag.supervision.pojo.dto.flow.VerifyData; import com.biutag.supervision.pojo.entity.SupDictProblemType; import com.biutag.supervision.pojo.vo.DictContentTree; import org.springframework.beans.BeanUtils; @@ -48,4 +49,34 @@ public class SupDictProblemTypeService extends ServiceImpl().eq(SupDictProblemType::getName, arr[0])); + if (Objects.isNull(one)) { + return problem; + } + problem.setOneLevelContent(one.getName()); + problem.setOneLevelCode(one.getCode()); + SupDictProblemType two = getOne(new LambdaQueryWrapper() + .eq(SupDictProblemType::getName, arr[1]).eq(SupDictProblemType::getParentCode, one.getCode())); + if (Objects.isNull(two)) { + return problem; + } + problem.setTwoLevelContent(two.getName()); + problem.setTwoLevelCode(two.getCode()); + SupDictProblemType three = getOne(new LambdaQueryWrapper() + .eq(SupDictProblemType::getName, arr[2]).eq(SupDictProblemType::getParentCode, two.getCode())); + if (Objects.isNull(three)) { + return problem; + } + problem.setThreeLevelContent(three.getName()); + problem.setThreeLevelCode(three.getCode()); + return problem; + } + + public List listProblemByFullName(List fullNames) { + return fullNames.stream().map(this::getProblemByFullName).toList(); + } + } diff --git a/src/main/java/com/biutag/supervision/service/SupPoliceService.java b/src/main/java/com/biutag/supervision/service/SupPoliceService.java index 130d44d..5da5958 100644 --- a/src/main/java/com/biutag/supervision/service/SupPoliceService.java +++ b/src/main/java/com/biutag/supervision/service/SupPoliceService.java @@ -31,7 +31,7 @@ public class SupPoliceService extends ServiceImpl { UserAuth user = UserContextHolder.getCurrentUser(); // 权限 if (!AppConstants.USER_TYPE_SUPER.equals(user.getUserType()) && !user.getRoleCodes().contains(RoleCodeEnum.FIRST_ADMIN.getCode())) { - if (user.getAuthDepartIds().isEmpty() || user.getRoleCodes().isEmpty() || !user.getRoleCodes().contains(RoleCodeEnum.SECOND_ADMIN.getCode()) && !user.getRoleCodes().contains(RoleCodeEnum.THREE_ADMIN.getCode())) { + if (user.getAuthDepartIds().isEmpty() || user.getRoleCodes().isEmpty()) { return new Page().setTotal(0).setRecords(new ArrayList<>()); } List orgIds = departService.getAllNodeIds(user.getAuthDepartIds()); diff --git a/src/main/java/com/biutag/supervision/service/SupTaskInspectionService.java b/src/main/java/com/biutag/supervision/service/SupTaskInspectionService.java new file mode 100644 index 0000000..11c44a3 --- /dev/null +++ b/src/main/java/com/biutag/supervision/service/SupTaskInspectionService.java @@ -0,0 +1,64 @@ +package com.biutag.supervision.service; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.biutag.supervision.constants.enums.TaskStatusEnum; +import com.biutag.supervision.constants.enums.TaskTypeEnum; +import com.biutag.supervision.mapper.SupTaskInspectionMapper; +import com.biutag.supervision.pojo.dto.TaskInspectionDto; +import com.biutag.supervision.pojo.entity.SupDepart; +import com.biutag.supervision.pojo.entity.SupTask; +import com.biutag.supervision.pojo.entity.SupTaskInspection; +import com.biutag.supervision.pojo.param.TaskInspectionQueryParam; +import com.biutag.supervision.pojo.vo.TaskInspectionVo; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; + +@RequiredArgsConstructor +@Service +public class SupTaskInspectionService extends ServiceImpl { + + private final SupDepartService departService; + + private final SupTaskService taskService; + + private final SupTaskPersonService taskPersonService; + + public Page page(TaskInspectionQueryParam queryParam) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("t.task_type", TaskTypeEnum.inspection.name()) + .like(StrUtil.isNotBlank(queryParam.getTaskName()), "t.task_name", queryParam.getTaskName()) + .eq(StrUtil.isNotBlank(queryParam.getSupDepartId()), "t.sup_depart_id", queryParam.getSupDepartId()); + return baseMapper.queryPage(Page.of(queryParam.getCurrent(), queryParam.getSize()), queryWrapper); + } + + @Transactional(rollbackFor = Exception.class) + public boolean save(TaskInspectionDto dto) { + SupTask task = new SupTask(); + BeanUtils.copyProperties(dto, task); + task.setCreateTime(LocalDateTime.now()); + task.setTaskType(TaskTypeEnum.inspection.name()); + task.setTaskStatus(TaskStatusEnum.todo.name()); + SupDepart depart = departService.getById(dto.getSupDepartId()); + task.setSupDepartName(depart.getShortName()); + task.setBeginTime(dto.getTimes().get(0)); + task.setEndTime(dto.getTimes().get(1)); + taskService.save(task); + SupTaskInspection testingAlcohol = new SupTaskInspection(); + BeanUtils.copyProperties(dto, testingAlcohol); + testingAlcohol.setTaskId(task.getId()); + save(testingAlcohol); + dto.getPersons().forEach(item -> { + item.setTaskId(task.getId()); + }); + taskPersonService.saveBatch(dto.getPersons()); + return true; + } + +} diff --git a/src/main/java/com/biutag/supervision/service/SupTaskPersonService.java b/src/main/java/com/biutag/supervision/service/SupTaskPersonService.java new file mode 100644 index 0000000..5a0ed2b --- /dev/null +++ b/src/main/java/com/biutag/supervision/service/SupTaskPersonService.java @@ -0,0 +1,11 @@ +package com.biutag.supervision.service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.biutag.supervision.pojo.entity.SupTaskPerson; +import com.biutag.supervision.mapper.SupTaskPersonMapper; +import org.springframework.stereotype.Service; + +@Service +public class SupTaskPersonService extends ServiceImpl { + +} diff --git a/src/main/java/com/biutag/supervision/service/SupTaskService.java b/src/main/java/com/biutag/supervision/service/SupTaskService.java new file mode 100644 index 0000000..b84d078 --- /dev/null +++ b/src/main/java/com/biutag/supervision/service/SupTaskService.java @@ -0,0 +1,11 @@ +package com.biutag.supervision.service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.biutag.supervision.pojo.entity.SupTask; +import com.biutag.supervision.mapper.SupTaskMapper; +import org.springframework.stereotype.Service; + +@Service +public class SupTaskService extends ServiceImpl { + +} diff --git a/src/main/java/com/biutag/supervision/service/SupTaskTestingAlcoholPeopleService.java b/src/main/java/com/biutag/supervision/service/SupTaskTestingAlcoholPeopleService.java new file mode 100644 index 0000000..143b5a3 --- /dev/null +++ b/src/main/java/com/biutag/supervision/service/SupTaskTestingAlcoholPeopleService.java @@ -0,0 +1,11 @@ +package com.biutag.supervision.service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.biutag.supervision.pojo.entity.SupTaskTestingAlcoholPeople; +import com.biutag.supervision.mapper.SupTaskTestingAlcoholPeopleMapper; +import org.springframework.stereotype.Service; + +@Service +public class SupTaskTestingAlcoholPeopleService extends ServiceImpl { + +} diff --git a/src/main/java/com/biutag/supervision/service/SupTaskTestingAlcoholService.java b/src/main/java/com/biutag/supervision/service/SupTaskTestingAlcoholService.java new file mode 100644 index 0000000..ae14be8 --- /dev/null +++ b/src/main/java/com/biutag/supervision/service/SupTaskTestingAlcoholService.java @@ -0,0 +1,72 @@ +package com.biutag.supervision.service; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.biutag.supervision.constants.enums.TaskStatusEnum; +import com.biutag.supervision.constants.enums.TaskTypeEnum; +import com.biutag.supervision.constants.enums.TestingAlcoholStateEnum; +import com.biutag.supervision.mapper.SupTaskTestingAlcoholMapper; +import com.biutag.supervision.pojo.dto.TaskTestingAlcoholDto; +import com.biutag.supervision.pojo.entity.SupDepart; +import com.biutag.supervision.pojo.entity.SupTask; +import com.biutag.supervision.pojo.entity.SupTaskTestingAlcohol; +import com.biutag.supervision.pojo.param.TaskTestingAlcoholQueryParam; +import com.biutag.supervision.pojo.vo.TaskTestingAlcoholVo; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; + +@RequiredArgsConstructor +@Service +public class SupTaskTestingAlcoholService extends ServiceImpl { + + private final SupTaskService taskService; + + private final SupTaskPersonService taskPersonService; + + private final SupTaskTestingAlcoholPeopleService testingAlcoholPeopleService; + + private final SupDepartService departService; + + public Page page(TaskTestingAlcoholQueryParam queryParam) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("t.task_type", TaskTypeEnum.testing_alcohol.name()) + .like(StrUtil.isNotBlank(queryParam.getTaskName()), "t.task_name", queryParam.getTaskName()) + .eq(StrUtil.isNotBlank(queryParam.getSupDepartId()), "t.sup_depart_id", queryParam.getSupDepartId()); + return baseMapper.queryPage(Page.of(queryParam.getCurrent(), queryParam.getSize()), queryWrapper); + } + + @Transactional(rollbackFor = Exception.class) + public boolean save(TaskTestingAlcoholDto dto) { + SupTask task = new SupTask(); + BeanUtils.copyProperties(dto, task); + task.setCreateTime(LocalDateTime.now()); + task.setTaskType(TaskTypeEnum.testing_alcohol.name()); + task.setTaskStatus(TaskStatusEnum.todo.name()); + SupDepart depart = departService.getById(dto.getSupDepartId()); + task.setSupDepartName(depart.getShortName()); + task.setBeginTime(dto.getTimes().get(0)); + task.setEndTime(dto.getTimes().get(1)); + taskService.save(task); + SupTaskTestingAlcohol testingAlcohol = new SupTaskTestingAlcohol(); + BeanUtils.copyProperties(dto, testingAlcohol); + testingAlcohol.setTaskId(task.getId()); + save(testingAlcohol); + dto.getPersons().forEach(item -> { + item.setTaskId(task.getId()); + }); + taskPersonService.saveBatch(dto.getPersons()); + dto.getPeoples().forEach(item -> { + item.setTaskId(task.getId()); + item.setStatus(TestingAlcoholStateEnum.not_detected.name()); + }); + testingAlcoholPeopleService.saveBatch(dto.getPeoples()); + return true; + } + +} diff --git a/src/main/resources/mapper/DataPetition12337Mapper.xml b/src/main/resources/mapper/DataPetition12337Mapper.xml index f48a0cd..af16708 100644 --- a/src/main/resources/mapper/DataPetition12337Mapper.xml +++ b/src/main/resources/mapper/DataPetition12337Mapper.xml @@ -168,7 +168,7 @@ + SELECT + t.id, + t.task_name, + t.sup_depart_name, + t.begin_time, + t.end_time, + t.task_status, + GROUP_CONCAT( DISTINCT per.NAME, ' ') persons, + i.supervision_type, + i.task_content + FROM + sup_task t + LEFT JOIN sup_task_inspection i ON t.id = i.task_id + LEFT JOIN sup_task_person per ON t.id = per.task_id + ${ew.getCustomSqlSegment} + GROUP BY + t.id, + t.task_name, + t.sup_depart_name, + t.begin_time, + t.end_time, + t.task_status + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/NegativeMapper.xml b/src/main/resources/mapper/SupTaskPersonMapper.xml similarity index 100% rename from src/main/resources/mapper/NegativeMapper.xml rename to src/main/resources/mapper/SupTaskPersonMapper.xml diff --git a/src/main/resources/mapper/SupTaskTestingAlcoholMapper.xml b/src/main/resources/mapper/SupTaskTestingAlcoholMapper.xml new file mode 100644 index 0000000..40f51db --- /dev/null +++ b/src/main/resources/mapper/SupTaskTestingAlcoholMapper.xml @@ -0,0 +1,50 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/templates/公安信访投诉数据导入模板.xls b/src/main/resources/static/templates/公安信访投诉数据导入模板.xls index 698f36f4affc08b5177cd090dddb84be68cfabec..c3bbcbf555c18cea6f9e95e76c1a233dc877ba4d 100644 GIT binary patch delta 2685 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 diff --git a/src/main/resources/static/templates/审计监督问题批量导入模板.xlsx b/src/main/resources/static/templates/审计监督问题批量导入模板.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3b943b289345648b14b3a3bbf52f88d6258ab0e6 GIT binary patch literal 41281 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/static/templates/问题批量导入标准模板.xlsx b/src/main/resources/static/templates/问题批量导入标准模板.xlsx index 6ea143a8abc31b62a3c9d366833a457c1e13ee04..ba3a456de650b90c09aaaa928c98b1e46d079cab 100644 GIT binary patch literal 48044 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 t_L9#I1b_>aOuO*H%m+FTg=_vsK7 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 diff --git a/src/test/java/com/biutag/supervision/StrUtil.java b/src/test/java/com/biutag/supervision/StrUtil.java index 0fc4bc7..5a8472d 100644 --- a/src/test/java/com/biutag/supervision/StrUtil.java +++ b/src/test/java/com/biutag/supervision/StrUtil.java @@ -1,6 +1,5 @@ package com.biutag.supervision; -import cn.hutool.core.convert.NumberChineseFormatter; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.ZipUtil; @@ -10,7 +9,6 @@ import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; import freemarker.template.Version; -import net.logstash.logback.encoder.org.apache.commons.lang.StringEscapeUtils; import org.assertj.core.util.Arrays; import org.junit.jupiter.api.Test; @@ -98,8 +96,16 @@ public class StrUtil { @Test public void template3() { - System.out.println("你好!我们是聋哑夫妻,望城区唯罗克路,马路在康寿制药与长城钢构之间,围栏边只有左转及掉头,红绿灯等待时间长,通过时间短,导致后方\uD83D\uDE97辆增多延长,影响厂区的要上班工作人员迟到,红绿灯等待时间缩短,通过时间要长,特别是左转标线可否增加一条左转标线,希望解决上下班问题".replaceAll("[^\\u0000-\\uFFFF]", "")); - + System.out.println("SELECT " + + "npr.threeLevelContent as label, " + + "count(*) `value` " + + "FROM negative_problem_relation npr INNER JOIN negative ng ON npr.negativeId=ng.id " + + "WHERE npr.threeLevelContent is not NULL " + + "AND checkStatus IN (1, 2) " + + "AND discoveryTime BETWEEN #{beginTime} AND #{endTime} " + + "GROUP BY npr.threeLevelContent " + + "ORDER BY `value` desc " + + " LIMIT 10 OFFSET 1 "); } } diff --git a/src/test/java/com/biutag/supervision/tools/GenCodeTests.java b/src/test/java/com/biutag/supervision/tools/GenCodeTests.java index 5b8fde3..3791ed8 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 = "rpc_packs_comfort"; + String tableName = "sup_task_inspection"; String tableSchema = "negative"; boolean genMapper = true; boolean genService = true;