From 0178a065dd82039106799003d5106ae7354e53a7 Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Mon, 22 Dec 2025 14:25:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=89=A7=E6=B3=95=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E4=BB=AA=E6=96=87=E4=BB=B6=E4=BF=A1=E6=81=AF=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=88=E6=AD=A4=E6=8E=A5=E5=8F=A3=E5=BF=85=E9=A1=BB?= =?UTF-8?q?=E4=B9=9F=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zhgd/xmgl/config/OperLogAspect.java | 9 ++- .../PoliceCameraItemFileController.java | 58 ++++++++++++++++++- 2 files changed, 65 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/config/OperLogAspect.java b/src/main/java/com/zhgd/xmgl/config/OperLogAspect.java index b241b9cbf..218e95bc7 100644 --- a/src/main/java/com/zhgd/xmgl/config/OperLogAspect.java +++ b/src/main/java/com/zhgd/xmgl/config/OperLogAspect.java @@ -6,6 +6,7 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; @@ -133,7 +134,13 @@ public class OperLogAspect { operlog.setOperRequParam(params); Object[] args = joinPoint.getArgs(); if (ArrayUtils.isNotEmpty(args)) { - List logArgs = Arrays.stream(args).filter(arg -> (!(arg instanceof HttpServletRequest) && !(arg instanceof HttpServletResponse) && !(arg instanceof MultipartFile))).collect(Collectors.toList()); + List logArgs = Arrays.stream(args).filter(arg -> + !(arg instanceof HttpServletRequest) + && !(arg instanceof HttpServletResponse) + && !(arg instanceof MultipartFile) + && !(arg instanceof MultipartFile[]) + ) + .collect(Collectors.toList()); // 判断中文字符数量(一个中文字符占 1 个长度) String body = JSON.toJSONString(logArgs); if (body.length() > 1000) { diff --git a/src/main/java/com/zhgd/xmgl/modules/policecamera/controller/PoliceCameraItemFileController.java b/src/main/java/com/zhgd/xmgl/modules/policecamera/controller/PoliceCameraItemFileController.java index e950c1efe..13b0cb02f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/policecamera/controller/PoliceCameraItemFileController.java +++ b/src/main/java/com/zhgd/xmgl/modules/policecamera/controller/PoliceCameraItemFileController.java @@ -3,11 +3,16 @@ package com.zhgd.xmgl.modules.policecamera.controller; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.xmgl.call.api.PoliceCameraManufacturer; import com.zhgd.xmgl.call.factory.PoliceCameraManufacturerFactory; +import com.zhgd.xmgl.modules.basicdata.service.UploadFileService; import com.zhgd.xmgl.modules.policecamera.entity.PoliceCameraItemFile; import com.zhgd.xmgl.modules.policecamera.entity.dto.PoliceCameraItemFileDto; import com.zhgd.xmgl.modules.policecamera.entity.vo.PoliceCameraItemFileVo; @@ -24,8 +29,10 @@ import org.simpleframework.xml.core.Validate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import springfox.documentation.annotations.ApiIgnore; +import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; @@ -51,6 +58,9 @@ public class PoliceCameraItemFileController { @Lazy @Autowired private PoliceCameraManufacturerFactory policeCameraManufacturerFactory; + @Lazy + @Resource + private UploadFileService uploadFileService; /** * 分页列表查询 @@ -193,11 +203,57 @@ public class PoliceCameraItemFileController { try { FileUtil.del(PathUtil.getBasePath() + "/" + vo.getFileUrl()); } catch (Exception e) { - log.warn("执法记录仪文件删除失败:",e); + log.warn("执法记录仪文件删除失败:", e); } } } } return Result.ok(); } + + @OperLog(operModul = "执法记录仪文件管理", operType = "", operDesc = "添加执法记录仪文件信息(此接口必须也上传文件)") + @ApiOperation(value = "添加执法记录仪文件信息(此接口必须也上传文件)", notes = "添加执法记录仪文件信息(此接口必须也上传文件)", httpMethod = "POST") + @PostMapping(value = "/addWithFile") + public Result addWithFile(@RequestPart("policeCameraItemFile") String fileInfoJson, + @RequestPart("files") MultipartFile[] files) { + if (StrUtil.isBlank(fileInfoJson)) { + throw new OpenAlertException("policeCameraItemFile不能为空"); + } + Map uploadImage = new HashMap<>(); + try { + uploadImage = uploadFileService.uploadImageSafety(files); + } catch (Exception e) { + log.error("",e); + throw new OpenAlertException("上传文件失败:" + e.getMessage()); + } + String fileUrl = null; + String fileName = null; + String originalFilename = null; + Integer fileLen = null; + if (uploadImage != null) { + List data = (List) uploadImage.get("data"); + if (CollUtil.isNotEmpty(data)) { + for (Object datum : data) { + Map fi = (Map) datum; + fileName = MapUtils.getString(fi, "imageUrl"); + fileLen = Integer.valueOf(((Map) MapUtils.getObject(fi, "fileInfo")).get("size").toString()); + originalFilename = ((Map) MapUtils.getObject(fi, "fileInfo")).get("originalFilename").toString(); + fileUrl = PathUtil.getBasePath() + "/" + fileName; + } + } + } + try { + PoliceCameraItemFileDto dto = JSONObject.parseObject(fileInfoJson, PoliceCameraItemFileDto.class); + dto.setFileName(originalFilename); + dto.setFileUrl(fileName); + dto.setFileLen(fileLen); + policeCameraItemFileService.add(dto); + } catch (Exception e) { + if (uploadImage != null) { + FileUtil.del(fileUrl); + } + throw new OpenAlertException(e.getMessage(),e); + } + return Result.ok(); + } }