From a0f4d01559785001e7b16b21025cc6a42e65d167 Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期五, 05 十二月 2025 17:36:31 +0800
Subject: [PATCH] 添加ai事件管理页面
---
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java | 204 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 204 insertions(+), 0 deletions(-)
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java
new file mode 100644
index 0000000..cdbe480
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java
@@ -0,0 +1,204 @@
+package com.fzzy.igds.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.igds.domain.FileInfo;
+import com.fzzy.igds.mapper.FileMapper;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.config.FrameworkConfig;
+import org.apache.commons.lang3.time.DateFormatUtils;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+import com.ruoyi.common.utils.StringUtils;
+import javax.annotation.Resource;
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/12/4 17:36
+ */
+@Service
+public class FileService {
+
+ @Resource
+ private FileMapper fileMapper;
+
+ /**
+ * 寮傛鎵ц闄勪欢淇濆瓨
+ * @param files 闄勪欢淇℃伅
+ * @param bizId 涓氬姟id
+ * @param bizTag 鏍囩
+ * @param pathTag 鏂囦欢璺緞鏍囪瘑
+ */
+ @Async
+ public void saveInoutFiles(List<FileInfo> files, String bizId, String bizTag, String pathTag) {
+
+ if (null == files || files.isEmpty()) {
+ return;
+ }
+
+ for (FileInfo data : files) {
+ // 濡傛灉娌℃湁闄勪欢鍚嶇О锛屽垯涓嶄繚瀛橀檮浠朵俊鎭�
+ if (StringUtils.isBlank(data.getFileName())) {
+ continue;
+ }
+
+ data.setId(ContextUtil.generateId());
+ data.setCompanyId(ContextUtil.getCompanyId());
+
+ //鏂囦欢鍏ㄨ矾寰�
+ String filePath = getFileSavePath(pathTag) + data.getFileName();
+ filePath = filePath.replace(FrameworkConfig.getProfile(), "/profile/");
+ data.setFilePath(filePath);
+
+ if (StringUtils.isNotEmpty(bizId)) {
+ data.setBizId(bizId);
+ }
+ if (StringUtils.isNotEmpty(bizTag)) {
+ data.setBizTag(bizTag);
+ }
+
+ data.setCreateTime(new Date());
+ data.setCreateBy(ContextUtil.getLoginUserName());
+
+ data.setUpdateTime(new Date());
+ data.setUpdateBy(ContextUtil.getLoginUserName());
+ fileMapper.insert(data);
+ }
+ }
+
+ /**
+ * 鏍规嵁鏉′欢鏌ヨ鏁版嵁
+ * @param companyId
+ * @param deptId
+ * @param bizId
+ * @return
+ */
+ public List<FileInfo> listFile(String companyId, String deptId, String bizId, String bizTag) {
+ QueryWrapper<FileInfo> queryWrapper = new QueryWrapper<>();
+ if (StringUtils.isNotBlank(companyId)) {
+ queryWrapper.eq("company_id", companyId);
+ }
+ if (StringUtils.isNotBlank(deptId)) {
+ queryWrapper.eq("dept_id", deptId);
+ }
+ if (StringUtils.isNotBlank(bizId)) {
+ queryWrapper.eq("biz_id", bizId);
+ }
+ if (StringUtils.isNotBlank(bizTag)) {
+ queryWrapper.eq("biz_tag", bizTag);
+ }
+ return fileMapper.selectList(queryWrapper);
+ }
+
+ /**
+ *
+ * @param id
+ */
+ public void delFile(String id) {
+ fileMapper.deleteById(id);
+ }
+
+ /**
+ * 鑾峰彇鍑哄叆搴撴枃浠惰矾寰�
+ * @param pathTag
+ * @return
+ */
+ public String getFileSavePath(String pathTag) {
+ if(StringUtils.isBlank(pathTag)){
+ pathTag = "COMMON";
+ }
+ if("INOUT".equals(pathTag)) return getInoutFilePath();
+ if("PATROL".equals(pathTag)) return getPatrolFilePath();
+ if("DEPT".equals(pathTag)) return getDeptFilePath();
+
+ return getCommonFilePath();
+ }
+
+ /**
+ * 鑾峰彇鍑哄叆搴撴枃浠惰矾寰�
+ * @return
+ */
+ public String getPatrolFilePath() {
+ String basePath = FrameworkConfig.getProfile() + "INOUT/" + DateFormatUtils.format(new Date(), "yyyyMM") + "/";
+ File file = new File(basePath);
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ return basePath;
+ }
+
+ /**
+ * 鑾峰彇鍑哄叆搴撴枃浠惰矾寰�
+ * @return
+ */
+ public String getInoutFilePath() {
+ String basePath = FrameworkConfig.getProfile() + "INOUT/" + DateFormatUtils.format(new Date(), "yyyyMM") + "/";
+ File file = new File(basePath);
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ return basePath;
+ }
+
+ /**
+ * 鑾峰彇搴撳尯璺緞涓嬫枃浠�
+ * @return
+ */
+ public String getDeptFilePath() {
+
+ String basePath = FrameworkConfig.getProfile() + "IMG/"+ FrameworkConfig.getCompanyId() + "/SECURITY/";
+
+ File file = new File(basePath);
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ return basePath;
+ }
+
+ /**
+ * 鑾峰彇鍏叡璺緞
+ * @return
+ */
+ public String getCommonFilePath() {
+
+ String basePath = FrameworkConfig.getProfile() + "COMMON/" + DateFormatUtils.format(new Date(), "yyyyMM") + "/";
+
+ File file = new File(basePath);
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ return basePath;
+ }
+
+ /**
+ * 鍘嬬缉鍥剧墖
+ *
+ * @param filePath 鍘嬬缉鍓嶈矾寰�
+ * @param scale 鍘嬬缉姣斾緥
+ * @param outputPath 鍘嬬缉鍚庤矾寰�
+ * @throws IOException
+ */
+ public void compressedImage(String filePath, double scale, String outputPath) throws IOException {
+ BufferedImage bufferedImage = ImageIO.read(new File(filePath));
+ int newWidth = (int) (bufferedImage.getWidth() * scale);
+ int newHeight = (int) (bufferedImage.getHeight() * scale);
+
+ //鍒涘缓鍘嬬缉鍚庣殑鍥剧墖
+ BufferedImage compressedImage = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB);
+ Graphics2D graphics2D = compressedImage.createGraphics();
+
+ //缁樺埗鍘熷鍥剧墖鍒板帇缂╁悗鐨勫浘鐗囦笂
+ graphics2D.drawImage(bufferedImage, 0, 0, newWidth, newHeight, null);
+ graphics2D.dispose();
+
+ ImageIO.write(compressedImage, "jpg", new File(outputPath));
+ }
+
+}
--
Gitblit v1.9.3