From 0388d54af57e8d3d4a99554501b232ca572b50c6 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期一, 12 十月 2026 17:48:51 +0800
Subject: [PATCH] 客户满意度新增附件与委托单关联;供应商管理新增附件;标准物质接收、记录、验收模块调整;委托单新增已完成列表接口(满意度下拉用);管理记录服务调整
---
cnas-require/src/main/java/com/ruoyi/require/service/impl/SupplierManagementServiceImpl.java | 68 ++++++++++++++++++++++++++++++++++
1 files changed, 68 insertions(+), 0 deletions(-)
diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/SupplierManagementServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/SupplierManagementServiceImpl.java
index 2c8e5ee..d38b9c8 100644
--- a/cnas-require/src/main/java/com/ruoyi/require/service/impl/SupplierManagementServiceImpl.java
+++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/SupplierManagementServiceImpl.java
@@ -8,18 +8,26 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.require.dto.SupplierManagementDto;
+import com.ruoyi.require.mapper.SupplierManagementAttachmentMapper;
import com.ruoyi.require.mapper.SupplierManagementMapper;
import com.ruoyi.require.pojo.SupplierManagement;
+import com.ruoyi.require.pojo.SupplierManagementAttachment;
import com.ruoyi.require.service.SupplierManagementService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
import jakarta.servlet.http.HttpServletResponse;
+import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.List;
/**
@@ -35,6 +43,15 @@
@Autowired
private SupplierManagementMapper supplierManagementMapper;
+
+ @Autowired
+ private SupplierManagementAttachmentMapper supplierManagementAttachmentMapper;
+
+ @Value("${file.path}")
+ private String filePath;
+
+ @Value("${wordUrl}")
+ private String wordUrl;
public SupplierManagementServiceImpl(SupplierManagementMapper supplierManagementMapper) {
this.supplierManagementMapper = supplierManagementMapper;
@@ -88,4 +105,55 @@
public List<SupplierManagement> selectSupplierManagementAll() {
return supplierManagementMapper.selectList(null);
}
+
+ @Override
+ public List<SupplierManagementAttachment> selectAttachments(Integer supplierManagementId) {
+ return supplierManagementAttachmentMapper.selectList(new QueryWrapper<SupplierManagementAttachment>().lambda()
+ .eq(SupplierManagementAttachment::getSupplierManagementId, supplierManagementId)
+ .orderByAsc(SupplierManagementAttachment::getSort, SupplierManagementAttachment::getId));
+ }
+
+ @Override
+ public SupplierManagementAttachment uploadAttachment(Integer supplierManagementId, MultipartFile file) {
+ if (supplierManagementMapper.selectById(supplierManagementId) == null) {
+ throw new BaseException("渚涘簲鍟嗕笉瀛樺湪");
+ }
+ if (file == null || file.isEmpty()) {
+ throw new BaseException("闄勪欢涓嶈兘涓虹┖");
+ }
+ // 绯荤粺鍏ㄥ眬涓婁紶涓婇檺涓�200MB锛岃繖閲屾彁鍓嶇粰鍑哄弸濂芥彁绀�
+ if (file.getSize() > 200L * 1024 * 1024) {
+ throw new BaseException("闄勪欢涓嶈兘瓒呰繃200MB");
+ }
+ String originalName = file.getOriginalFilename();
+ if (originalName == null || originalName.trim().isEmpty()) {
+ originalName = "鏈懡鍚嶆枃浠�";
+ }
+ // 涓埆娴忚鍣ㄥ彲鑳藉甫涓婅矾寰勫墠缂�锛屽彧淇濈暀鏂囦欢鍚嶆湰韬�
+ originalName = originalName.replaceAll(".*[/\\\\]", "");
+ try {
+ // 鍥剧墖鏀惧浘鐗囩洰褰曪紙/img 闈欐�佽矾寰勶級锛屽叾浣欎换鎰忔牸寮忔斁 word 鐩綍锛�/word 闈欐�佽矾寰勶級
+ boolean image = originalName.matches("(?i).+\\.(jpg|jpeg|png|gif)$");
+ File directory = new File(image ? filePath : wordUrl);
+ if (!directory.exists()) {
+ directory.mkdirs();
+ }
+ String fileUrl = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmssSSS")) + "-" + originalName;
+ file.transferTo(new File(directory, fileUrl));
+ SupplierManagementAttachment attachment = new SupplierManagementAttachment();
+ attachment.setSupplierManagementId(supplierManagementId);
+ attachment.setFileName(originalName);
+ attachment.setFileUrl(fileUrl);
+ attachment.setSort(selectAttachments(supplierManagementId).size());
+ supplierManagementAttachmentMapper.insert(attachment);
+ return attachment;
+ } catch (IOException e) {
+ throw new BaseException("闄勪欢涓婁紶澶辫触");
+ }
+ }
+
+ @Override
+ public boolean deleteAttachment(Long id) {
+ return supplierManagementAttachmentMapper.deleteById(id) > 0;
+ }
}
--
Gitblit v1.9.3