From db67639449287bcec461916a7dca6003ee5dd03c Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期五, 05 十二月 2025 16:27:18 +0800
Subject: [PATCH] 出入库详单及补单页面及逻辑
---
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 164 insertions(+), 12 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
index 28379e8..cdbe480 100644
--- 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
@@ -1,12 +1,22 @@
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
@@ -16,14 +26,120 @@
@Service
public class FileService {
+ @Resource
+ private FileMapper fileMapper;
+
/**
- * 鑾峰彇鍑哄叆搴撴枃浠惰矾寰�
- * @param date
+ * 寮傛鎵ц闄勪欢淇濆瓨
+ * @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 String getInoutFilePath(Date date) {
- if (null == date) date = new Date();
- String basePath = FrameworkConfig.getProfile() + "INOUT/" + DateFormatUtils.format(date, "yyyyMM") + "/";
+ 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();
@@ -33,15 +149,11 @@
/**
* 鑾峰彇搴撳尯璺緞涓嬫枃浠�
- * @param companyId
* @return
*/
- public String getDeptFilePath(String companyId) {
- if (StringUtils.isEmpty(companyId)){
- companyId = FrameworkConfig.getCompanyId();
- }
+ public String getDeptFilePath() {
- String basePath = FrameworkConfig.getProfile() + "IMG/"+ companyId + "/SECURITY/";
+ String basePath = FrameworkConfig.getProfile() + "IMG/"+ FrameworkConfig.getCompanyId() + "/SECURITY/";
File file = new File(basePath);
if (!file.exists()) {
@@ -49,4 +161,44 @@
}
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