From 7d73eab5cbc0dc0acf8661b50a28ce4e1b1ecbed Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Wed, 31 Dec 2025 15:57:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=89=E8=AE=BF=E6=B6=89=E8=AF=89--=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=97=B6=E7=9A=84=E4=B8=8A=E4=BC=A0=E9=99=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/ComplaintCollectionFileMapper.java | 12 ++++ .../pojo/entity/ComplaintCollectionFile.java | 49 +++++++++++++++ .../ComplaintCollectionFileQueryParam.java | 56 +++++++++++++++++ .../ComplaintCollectionAddRequest.java | 6 +- ...omplaintCollectionFileResourceService.java | 60 +++++++++++++++++++ .../ComplaintCollectionServiceImpl.java | 22 +++++++ .../mapper/ComplaintCollectionFileMapper.xml | 29 +++++++++ 7 files changed, 232 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/biutag/supervision/mapper/ComplaintCollectionFileMapper.java create mode 100644 src/main/java/com/biutag/supervision/pojo/entity/ComplaintCollectionFile.java create mode 100644 src/main/java/com/biutag/supervision/pojo/param/complaintCollectionFile/ComplaintCollectionFileQueryParam.java create mode 100644 src/main/java/com/biutag/supervision/repository/complaintCollectionFile/ComplaintCollectionFileResourceService.java create mode 100644 src/main/resources/mapper/ComplaintCollectionFileMapper.xml diff --git a/src/main/java/com/biutag/supervision/mapper/ComplaintCollectionFileMapper.java b/src/main/java/com/biutag/supervision/mapper/ComplaintCollectionFileMapper.java new file mode 100644 index 0000000..88fbe86 --- /dev/null +++ b/src/main/java/com/biutag/supervision/mapper/ComplaintCollectionFileMapper.java @@ -0,0 +1,12 @@ +package com.biutag.supervision.mapper; + +import com.biutag.supervision.pojo.entity.ComplaintCollectionFile; +import com.biutag.supervision.repository.base.HBaseMapper; + +import java.util.List; + +public interface ComplaintCollectionFileMapper extends HBaseMapper { + + int insertBatch(List list); + +} diff --git a/src/main/java/com/biutag/supervision/pojo/entity/ComplaintCollectionFile.java b/src/main/java/com/biutag/supervision/pojo/entity/ComplaintCollectionFile.java new file mode 100644 index 0000000..e626c47 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/entity/ComplaintCollectionFile.java @@ -0,0 +1,49 @@ +package com.biutag.supervision.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; + +/** + * @ClassName ComplaintCollectionFile + * @Description 涉访涉诉附件表 + * @Author shihao + * @Date 2025/12/31 15:09 + */ +@Getter +@Setter +@Schema(description = "涉访涉诉附件表") +@TableName("complaint_collection_file") +public class ComplaintCollectionFile { + + @Schema(description = "附件ID") + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @Schema(description = "关联 complaint_collection 主键ID") + @TableField("complaint_id") + private String complaintId; + + @Schema(description = "文件路径") + @TableField("file_path") + private String filePath; + + @Schema(description = "文件名称") + @TableField("file_name") + private String fileName; + + @Schema(description = "创建人") + @TableField("create_by") + private String createBy; + + @Schema(description = "创建时间") + @TableField("create_time") + private LocalDateTime createTime; +} + diff --git a/src/main/java/com/biutag/supervision/pojo/param/complaintCollectionFile/ComplaintCollectionFileQueryParam.java b/src/main/java/com/biutag/supervision/pojo/param/complaintCollectionFile/ComplaintCollectionFileQueryParam.java new file mode 100644 index 0000000..6337f89 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/param/complaintCollectionFile/ComplaintCollectionFileQueryParam.java @@ -0,0 +1,56 @@ +package com.biutag.supervision.pojo.param.complaintCollectionFile; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; +import java.util.Set; + +/** + * @ClassName ComplaintCollectionFileQueryParam + * @Description 涉访涉诉附件表查询实体 + * @Author shihao + * @Date 2025/12/31 15:19 + */ + +@Getter +@Setter +@Schema(description = "涉访涉诉附件表查询实体") +public class ComplaintCollectionFileQueryParam { + + @Schema(description = "id") + private Long id; + + @Schema(description = "ids") + private Set ids; + + @Schema(description = "关联complaint_collection主键ID") + private String complaintId; + + @Schema(description = "complaintIds") + private Set complaintIds; + + @Schema(description = "文件名称") + @TableField("fileName") + private String fileName; + + + @Schema(description = "文件路径") + @TableField("filePath") + private String filePath; + + @Schema(description = "创建人(新表字段)") + @TableField("create_by") + private String createBy; + + @Schema(description = "创建时间(新表字段)") + @TableField("create_time") + private LocalDateTime createTime; + + + +} diff --git a/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionAddRequest.java b/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionAddRequest.java index 89ac42d..d2965c7 100644 --- a/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionAddRequest.java +++ b/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionAddRequest.java @@ -1,20 +1,20 @@ package com.biutag.supervision.pojo.request.complaintCollection; import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.lang.Assert; import cn.hutool.core.util.IdcardUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.annotation.TableField; import com.biutag.supervision.aop.ParamChecked; import com.biutag.supervision.pojo.enums.complaintCollection.ComplaintCollectionHandleMethodEnum; import com.biutag.supervision.pojo.enums.complaintCollection.ComplaintCollectionSourceTableEnum; import com.biutag.supervision.pojo.enums.complaintCollection.YesOrNoEnum; +import com.biutag.supervision.pojo.vo.FileVo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -113,6 +113,8 @@ public class ComplaintCollectionAddRequest implements ParamChecked { @Schema(description = "群众认可") private String publicRecognition; + @Schema(description = "附件列表") + private List thingFiles = new ArrayList<>(); @Override public void check() { diff --git a/src/main/java/com/biutag/supervision/repository/complaintCollectionFile/ComplaintCollectionFileResourceService.java b/src/main/java/com/biutag/supervision/repository/complaintCollectionFile/ComplaintCollectionFileResourceService.java new file mode 100644 index 0000000..9229961 --- /dev/null +++ b/src/main/java/com/biutag/supervision/repository/complaintCollectionFile/ComplaintCollectionFileResourceService.java @@ -0,0 +1,60 @@ +package com.biutag.supervision.repository.complaintCollectionFile; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.biutag.supervision.mapper.ComplaintCollectionFileMapper; +import com.biutag.supervision.pojo.entity.ComplaintCollectionFile; +import com.biutag.supervision.pojo.param.complaintCollectionFile.ComplaintCollectionFileQueryParam; +import com.biutag.supervision.repository.base.BaseDAO; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * @ClassName ComplaintCollectionFileResourceService + * @Description 涉访涉诉附件资源层 + * @Author shihao + * @Date 2025/12/31 15:08 + */ +@Service +public class ComplaintCollectionFileResourceService extends BaseDAO { + + + @Resource + private ComplaintCollectionFileMapper complaintCollectionFileMapper; + + + + public List query(ComplaintCollectionFileQueryParam param) { + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + setBatchQuery(param.getId(), param.getIds(), qw, ComplaintCollectionFile::getId); + setBatchQuery(param.getComplaintId(), param.getComplaintIds(), qw, ComplaintCollectionFile::getComplaintId); + qw.eq(StrUtil.isNotBlank(param.getFileName()), ComplaintCollectionFile::getFileName, param.getFileName()); + qw.eq(StrUtil.isNotBlank(param.getFilePath()), ComplaintCollectionFile::getFilePath, param.getFilePath()); + return complaintCollectionFileMapper.selectList(qw); + } + + + public Map> queryGroupBy(ComplaintCollectionFileQueryParam param, Function groupBy) { + List users = query(param); + if (CollectionUtils.isEmpty(users)) { + return new HashMap<>(); + } + return users.stream().collect(Collectors.groupingBy(groupBy)); + } + + + public Boolean createComplaintCollectionFile(List complaintCollectionFiles) { + innerBatchInsert(complaintCollectionFileMapper, complaintCollectionFiles, "添加失败!"); + return Boolean.TRUE; + } + + + +} diff --git a/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java b/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java index 1f07784..1dba970 100644 --- a/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java +++ b/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java @@ -2,6 +2,7 @@ package com.biutag.supervision.service.complaintCollection; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Opt; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.StrUtil; @@ -30,11 +31,13 @@ import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionPag import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionWatchDetailVO; import com.biutag.supervision.repository.complaintCollection.ComplaintCollectionResourceService; import com.biutag.supervision.repository.complaintCollectionBlame.ComplaintCollectionBlameResourceService; +import com.biutag.supervision.repository.complaintCollectionFile.ComplaintCollectionFileResourceService; import com.biutag.supervision.repository.supPolice.SupPoliceResourceService; import com.biutag.supervision.repository.supdepart.SupDepartResourceService; import com.biutag.supervision.service.*; import com.biutag.supervision.util.CodeTranslateUtil; import com.biutag.supervision.util.SfssUtil; +import jakarta.validation.ValidationException; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -74,8 +77,10 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic private final ApplyCompletionAction applyCompletionAction; private final NegativeBlameService negativeBlameService; private final SupPoliceResourceService supPoliceResourceService; + private final ComplaintCollectionFileResourceService complaintCollectionFileResourceService; @Override + @Transactional(rollbackFor = Exception.class) public Result addComplaintCollection(ComplaintCollectionAddRequest request) { if (StrUtil.isNotBlank(request.getOriginId())) { ComplaintCollectionExistParam existParam = new ComplaintCollectionExistParam(); @@ -94,6 +99,23 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic complaintCollection.setCreateTime(LocalDateTime.now()); complaintCollection.setCreateBy(UserContextHolder.getCurrentUser().getUserName()); Boolean res = complaintCollectionResourceService.createComplaintCollection(Arrays.asList(complaintCollection)); + if (CollectionUtil.isNotEmpty(request.getThingFiles())) { + // 防御 + Assert.notNull(complaintCollection.getId(), "主表插入后未获取到ID"); + List files = request.getThingFiles().stream().map(one -> { + ComplaintCollectionFile file = new ComplaintCollectionFile(); + file.setComplaintId(complaintCollection.getId()); + file.setFileName(one.getFileName()); + file.setFilePath(one.getFilePath()); + file.setCreateBy(UserContextHolder.getCurrentUser().getUserName()); + file.setCreateTime(LocalDateTime.now()); + return file; + }).toList(); + boolean ok = complaintCollectionFileResourceService.createComplaintCollectionFile(files); + if (!ok) { + throw new ValidationException("附件保存失败"); + } + } return Result.success(res); } diff --git a/src/main/resources/mapper/ComplaintCollectionFileMapper.xml b/src/main/resources/mapper/ComplaintCollectionFileMapper.xml new file mode 100644 index 0000000..7fe2029 --- /dev/null +++ b/src/main/resources/mapper/ComplaintCollectionFileMapper.xml @@ -0,0 +1,29 @@ + + + + + + INSERT INTO complaint_collection_file ( + id, + complaint_id, + file_path, + file_name, + create_by, + create_time + ) + VALUES + + ( + #{item.id}, + #{item.complaintId}, + #{item.filePath}, + #{item.fileName}, + #{item.createBy}, + #{item.createTime} + ) + + + +