From 09d3d31899bb346c6fe8ad5d89168730b5dfae4a Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 08 五月 2026 13:45:42 +0800
Subject: [PATCH] refactor(business): 重构业务机会和销售台账的文件管理功能
---
src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java | 12 +-
src/main/java/com/ruoyi/basic/dto/BusinessDescriptionDto.java | 2
src/main/java/com/ruoyi/basic/dto/StorageBlobDTO.java | 3
src/main/java/com/ruoyi/basic/service/impl/BusinessOpportunityServiceImpl.java | 44 +++++++-
src/main/java/com/ruoyi/basic/utils/FileUtil.java | 14 +-
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 174 ++++++++++------------------------
src/main/java/com/ruoyi/sales/pojo/SalesLedger.java | 8
src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java | 7
src/main/java/com/ruoyi/basic/dto/StorageBlobVO.java | 3
9 files changed, 118 insertions(+), 149 deletions(-)
diff --git a/src/main/java/com/ruoyi/basic/dto/BusinessDescriptionDto.java b/src/main/java/com/ruoyi/basic/dto/BusinessDescriptionDto.java
index dbfecf1..666c485 100644
--- a/src/main/java/com/ruoyi/basic/dto/BusinessDescriptionDto.java
+++ b/src/main/java/com/ruoyi/basic/dto/BusinessDescriptionDto.java
@@ -9,7 +9,7 @@
public class BusinessDescriptionDto extends BusinessDescription {
- private List<StorageBlobDTO> storageBlobDTOS;
+ private List<StorageBlobDTO> businessCommonFiles;
private List<StorageBlobVO> storageBlobVO;
}
diff --git a/src/main/java/com/ruoyi/basic/dto/StorageBlobDTO.java b/src/main/java/com/ruoyi/basic/dto/StorageBlobDTO.java
index 52eaaa5..9b963d3 100644
--- a/src/main/java/com/ruoyi/basic/dto/StorageBlobDTO.java
+++ b/src/main/java/com/ruoyi/basic/dto/StorageBlobDTO.java
@@ -15,6 +15,9 @@
*/
private String downloadURL;
+
+ private String url;
+ private String name;
/**
* 鏂囦欢绫诲瀷
*/
diff --git a/src/main/java/com/ruoyi/basic/dto/StorageBlobVO.java b/src/main/java/com/ruoyi/basic/dto/StorageBlobVO.java
index 75eed4f..a1110de 100644
--- a/src/main/java/com/ruoyi/basic/dto/StorageBlobVO.java
+++ b/src/main/java/com/ruoyi/basic/dto/StorageBlobVO.java
@@ -15,5 +15,8 @@
*/
private String downloadURL;
+ private String url;
+ private String name;
+
private Long storageAttachmentId;
}
diff --git a/src/main/java/com/ruoyi/basic/service/impl/BusinessOpportunityServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/BusinessOpportunityServiceImpl.java
index db25ba6..f686454 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/BusinessOpportunityServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/BusinessOpportunityServiceImpl.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.dto.BusinessDescriptionDto;
@@ -56,11 +55,41 @@
LoginUser loginUser = SecurityUtils.getLoginUser();
IPage<BusinessOpportunityDto> businessOpportunityDtoIPage = businessOpportunityMapper.listPage(page, businessOpportunityDto);
- businessOpportunityDtoIPage.getRecords().forEach(item -> {
- item.setBusinessCommonFiles(fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum.FILE, RecordTypeEnum.BUSINESS_OPPORTUNITY, item.getId()));
- item.setBusinessDescription(businessDescriptionMapper.selectList(Wrappers.lambdaQuery(BusinessDescription.class)
- .eq(BusinessDescription::getBusinessOpportunityId, item.getId())
- .orderByDesc(BusinessDescription::getCreateTime)));
+ businessOpportunityDtoIPage.getRecords().forEach(opportunity -> {
+ ArrayList<StorageBlobVO> storageBlobVOS = new ArrayList<>();
+ // 鏌ヨ涓氬姟鎻忚堪鍒楄〃
+ List<BusinessDescription> businessDescriptions = businessDescriptionMapper.selectList(
+ new LambdaQueryWrapper<BusinessDescription>()
+ .eq(BusinessDescription::getBusinessOpportunityId, opportunity.getId())
+ .orderByDesc(BusinessDescription::getCreateTime)
+ );
+
+ // 鏀堕泦姣忎釜涓氬姟鎻忚堪鐨勬枃浠�
+ if (businessDescriptions != null && !businessDescriptions.isEmpty()) {
+ businessDescriptions.forEach(description -> {
+ List<StorageBlobVO> files = fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(
+ ApplicationTypeEnum.FILE,
+ RecordTypeEnum.BUSINESS_DESCRIPTION,
+ Long.valueOf(description.getId())
+ );
+ if (files != null && !files.isEmpty()) {
+ storageBlobVOS.addAll(files);
+ }
+ });
+ }
+
+ // 鏌ヨ鍟嗘満涓昏〃鐨勬枃浠�
+ List<StorageBlobVO> opportunityFiles = fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(
+ ApplicationTypeEnum.FILE,
+ RecordTypeEnum.BUSINESS_OPPORTUNITY,
+ opportunity.getId()
+ );
+ if (opportunityFiles != null && !opportunityFiles.isEmpty()) {
+ storageBlobVOS.addAll(opportunityFiles);
+ }
+
+ opportunity.setBusinessCommonFiles(storageBlobVOS);
+ opportunity.setBusinessDescription(businessDescriptions);
});
return businessOpportunityDtoIPage;
@@ -130,7 +159,8 @@
unipushService.sendClientMessage(sysNoticeList);
}
int insert = businessDescriptionMapper.insert(businessDescription);
- fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.BUSINESS_DESCRIPTION, businessDescription.getBusinessOpportunityId(), businessDescription.getStorageBlobDTOS());
+
+ fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.BUSINESS_DESCRIPTION, Long.valueOf(businessDescription.getId()), businessDescription.getBusinessCommonFiles());
return insert > 0 ? R.ok() : R.fail();
}
diff --git a/src/main/java/com/ruoyi/basic/utils/FileUtil.java b/src/main/java/com/ruoyi/basic/utils/FileUtil.java
index c57468a..b9705da 100644
--- a/src/main/java/com/ruoyi/basic/utils/FileUtil.java
+++ b/src/main/java/com/ruoyi/basic/utils/FileUtil.java
@@ -1,9 +1,7 @@
package com.ruoyi.basic.utils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.dto.StorageAttachmentDTO;
import com.ruoyi.basic.dto.StorageAttachmentVO;
import com.ruoyi.basic.dto.StorageBlobDTO;
@@ -344,6 +342,8 @@
StorageBlobVO storageBlobVO = new StorageBlobVO();
BeanUtils.copyProperties(storageBlob, storageBlobVO);
storageBlobVO.setPreviewURL(buildSignedPreviewUrl(storageBlobVO));
+ storageBlobVO.setUrl(buildSignedPreviewUrl(storageBlobVO));
+ storageBlobVO.setName(storageBlob.getOriginalFilename());
storageBlobVO.setDownloadURL(buildSignedDownloadUrl(storageBlobVO));
storageBlobVO.setStorageAttachmentId(blobIdToAttachmentIdMap.get(storageBlob.getId()));
storageBlobDTOS.add(storageBlobVO);
@@ -387,16 +387,18 @@
List<Long> storageBlobIds = storageAttachments.stream().map(StorageAttachment::getStorageBlobId).collect(Collectors.toList());
List<StorageBlob> storageBlobs = storageBlobMapper.selectByIds(storageBlobIds);
- List<StorageBlobVO> storageBlobDTOS = new ArrayList<>();
+ List<StorageBlobVO> storageBlobVOS = new ArrayList<>();
for (StorageBlob storageBlob : storageBlobs) {
StorageBlobVO storageBlobVO = new StorageBlobVO();
BeanUtils.copyProperties(storageBlob, storageBlobVO);
storageBlobVO.setPreviewURL(buildSignedPreviewUrl(storageBlobVO));
storageBlobVO.setDownloadURL(buildSignedDownloadUrl(storageBlobVO));
+ storageBlobVO.setUrl(buildSignedDownloadUrl(storageBlobVO));
+ storageBlobVO.setName(storageBlob.getOriginalFilename());
storageBlobVO.setStorageAttachmentId(blobIdToAttachmentIdMap.get(storageBlob.getId()));
- storageBlobDTOS.add(storageBlobVO);
+ storageBlobVOS.add(storageBlobVO);
}
- return storageBlobDTOS;
+ return storageBlobVOS;
}
/**
@@ -417,6 +419,8 @@
StorageBlobVO storageBlobVO = new StorageBlobVO();
BeanUtils.copyProperties(storageBlob, storageBlobVO);
storageBlobVO.setPreviewURL(buildSignedPreviewUrl(storageBlobVO));
+ storageBlobVO.setUrl(buildSignedPreviewUrl(storageBlobVO));
+ storageBlobVO.setName(storageBlob.getOriginalFilename());
storageBlobVO.setDownloadURL(buildSignedDownloadUrl(storageBlobVO));
storageBlobDTOS.add(storageBlobVO);
}
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
index ceb3702..d72ed93 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -192,11 +192,11 @@
*/
@Log(title = "閿�鍞彴璐�", businessType = BusinessType.DELETE)
@DeleteMapping("/delLedger")
- public AjaxResult remove(@RequestBody Long[] ids) {
+ public R remove(@RequestBody Long[] ids) {
if (ids == null || ids.length == 0) {
- return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+ return R.fail("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
}
- return toAjax(salesLedgerService.deleteSalesLedgerByIds(ids));
+ return R.ok(salesLedgerService.deleteSalesLedgerByIds(ids));
}
/**
@@ -216,11 +216,11 @@
*/
@Log(title = "閿�鍞彴璐﹂檮浠跺垹闄�", businessType = BusinessType.DELETE)
@DeleteMapping("/delLedgerFile")
- public AjaxResult delLedgerFile(@RequestBody Long[] ids) {
+ public R delLedgerFile(@RequestBody Long[] ids) {
if (ids == null || ids.length == 0) {
- return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+ return R.fail("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
}
- return toAjax(commonFileService.deleteSalesLedgerByIds(ids));
+ return R.ok(salesLedgerService.delLdgerFile(ids));
}
/**
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
index bc4d02c..8494004 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
@@ -1,9 +1,5 @@
package com.ruoyi.sales.pojo;
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.util.Date;
-
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
@@ -11,6 +7,10 @@
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.Date;
+
/**
* 閿�鍞彴璐﹀璞� sales_ledger
*
diff --git a/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java b/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
index 539e67c..98c23b1 100644
--- a/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
+++ b/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
@@ -3,7 +3,6 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.aftersalesservice.pojo.AfterSalesService;
import com.ruoyi.common.enums.SaleEnum;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.sales.dto.LossProductModelDto;
@@ -12,10 +11,10 @@
import com.ruoyi.sales.pojo.SalesLedger;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
import com.ruoyi.sales.vo.SalesLedgerVo;
-import org.springframework.web.multipart.MultipartFile;
-
import jakarta.annotation.Nullable;
import jakarta.validation.constraints.NotNull;
+import org.springframework.web.multipart.MultipartFile;
+
import java.math.BigDecimal;
import java.util.List;
@@ -55,4 +54,6 @@
List<LossProductModelDto> getSalesLedgerWithProductsLoss(Long salesLedgerId);
IPage<SalesLedgerDto> listSalesLedger(SalesLedgerDto salesLedgerDto, Page page);
+
+ Boolean delLdgerFile(Long[] ids);
}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index 9803611..a6f56c6 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -9,10 +9,13 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.service.AccountIncomeService;
+import com.ruoyi.basic.enums.ApplicationTypeEnum;
+import com.ruoyi.basic.enums.RecordTypeEnum;
import com.ruoyi.basic.mapper.CustomerMapper;
import com.ruoyi.basic.mapper.ProductMapper;
import com.ruoyi.basic.mapper.ProductModelMapper;
import com.ruoyi.basic.pojo.Customer;
+import com.ruoyi.basic.utils.FileUtil;
import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.common.enums.SaleEnum;
import com.ruoyi.common.exception.base.BaseException;
@@ -24,8 +27,9 @@
import com.ruoyi.framework.security.LoginUser;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.other.mapper.TempFileMapper;
-import com.ruoyi.other.pojo.TempFile;
-import com.ruoyi.production.mapper.*;
+import com.ruoyi.production.mapper.ProductionProductInputMapper;
+import com.ruoyi.production.mapper.ProductionProductMainMapper;
+import com.ruoyi.production.mapper.ProductionProductOutputMapper;
import com.ruoyi.production.service.ProductionProductMainService;
import com.ruoyi.project.system.domain.SysDept;
import com.ruoyi.project.system.domain.SysUser;
@@ -41,7 +45,6 @@
import com.ruoyi.sales.vo.SalesLedgerVo;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.io.FilenameUtils;
import org.jetbrains.annotations.Nullable;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -52,15 +55,10 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
-import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.math.RoundingMode;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.YearMonth;
@@ -118,6 +116,8 @@
;
@Autowired
private SysUserMapper sysUserMapper;
+ @Autowired
+ private FileUtil fileUtil;
@Override
public List<SalesLedger> selectSalesLedgerList(SalesLedgerDto salesLedgerDto) {
@@ -487,6 +487,12 @@
return salesLedgerDtoIPage;
}
+ @Override
+ public Boolean delLdgerFile(Long[] ids) {
+ fileUtil.deleteStorageBlobsByStorageAttachmentIds(List.of(ids));
+ return true;
+ }
+
/**
* 涓嬪垝绾垮懡鍚嶈浆椹煎嘲鍛藉悕
*/
@@ -582,125 +588,47 @@
@Override
@Transactional(rollbackFor = Exception.class)
public int addOrUpdateSalesLedger(SalesLedgerDto salesLedgerDto) {
- try {
- // 1. 鏍¢獙瀹㈡埛淇℃伅
- Customer customer = customerMapper.selectById(salesLedgerDto.getCustomerId());
- if (customer == null) {
- throw new BaseException("瀹㈡埛涓嶅瓨鍦�");
- }
-
- // 2. DTO杞珽ntity
- SalesLedger salesLedger = convertToEntity(salesLedgerDto);
- salesLedger.setCustomerName(customer.getCustomerName());
- salesLedger.setTenantId(customer.getTenantId());
- // 3. 鏂板鎴栨洿鏂颁富琛�
- if (salesLedger.getId() == null) {
- String contractNo = generateSalesContractNo();
- salesLedger.setSalesContractNo(contractNo);
- salesLedgerMapper.insert(salesLedger);
- } else {
- salesLedgerMapper.updateById(salesLedger);
- }
-
- // 4. 澶勭悊瀛愯〃鏁版嵁
- List<SalesLedgerProduct> productList = salesLedgerDto.getProductData();
- if (productList != null && !productList.isEmpty()) {
- handleSalesLedgerProducts(salesLedger.getId(), productList, EnumUtil.fromCode(SaleEnum.class, salesLedgerDto.getType()));
- updateMainContractAmount(
- salesLedger.getId(),
- productList,
- SalesLedgerProduct::getTaxInclusiveTotalPrice,
- salesLedgerMapper,
- SalesLedger.class
- );
- }
-
- // 5. 杩佺Щ涓存椂鏂囦欢鍒版寮忕洰褰�
- if (salesLedgerDto.getTempFileIds() != null && !salesLedgerDto.getTempFileIds().isEmpty()) {
- migrateTempFilesToFormal(salesLedger.getId(), salesLedgerDto.getTempFileIds());
- }
- return 1;
- } catch (IOException e) {
- throw new BaseException("鏂囦欢杩佺Щ澶辫触: " + e.getMessage());
+ // 1. 鏍¢獙瀹㈡埛淇℃伅
+ Customer customer = customerMapper.selectById(salesLedgerDto.getCustomerId());
+ if (customer == null) {
+ throw new BaseException("瀹㈡埛涓嶅瓨鍦�");
}
+
+ // 2. DTO杞珽ntity
+ SalesLedger salesLedger = convertToEntity(salesLedgerDto);
+ salesLedger.setCustomerName(customer.getCustomerName());
+ salesLedger.setTenantId(customer.getTenantId());
+ // 3. 鏂板鎴栨洿鏂颁富琛�
+ if (salesLedger.getId() == null) {
+ String contractNo = generateSalesContractNo();
+ salesLedger.setSalesContractNo(contractNo);
+ salesLedgerMapper.insert(salesLedger);
+ } else {
+ salesLedgerMapper.updateById(salesLedger);
+ }
+
+ // 4. 澶勭悊瀛愯〃鏁版嵁
+ List<SalesLedgerProduct> productList = salesLedgerDto.getProductData();
+ if (productList != null && !productList.isEmpty()) {
+ handleSalesLedgerProducts(salesLedger.getId(), productList, EnumUtil.fromCode(SaleEnum.class, salesLedgerDto.getType()));
+ updateMainContractAmount(
+ salesLedger.getId(),
+ productList,
+ SalesLedgerProduct::getTaxInclusiveTotalPrice,
+ salesLedgerMapper,
+ SalesLedger.class
+ );
+ }
+
+ //涓氬姟鍜岄檮浠剁粦瀹�
+ fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.SALES_LEDGER, salesLedger.getId(), salesLedgerDto.getStorageBlobDTOs());
+// if (salesLedgerDto.getTempFileIds() != null && !salesLedgerDto.getTempFileIds().isEmpty()) {
+// migrateTempFilesToFormal(salesLedger.getId(), salesLedgerDto.getTempFileIds());
+// }
+ return 1;
}
- /**
- * 灏嗕复鏃舵枃浠惰縼绉诲埌姝e紡鐩綍
- *
- * @param businessId 涓氬姟ID锛堥攢鍞彴璐D锛�
- * @param tempFileIds 涓存椂鏂囦欢ID鍒楄〃
- * @throws IOException 鏂囦欢鎿嶄綔寮傚父
- */
- private void migrateTempFilesToFormal(Long businessId, List<String> tempFileIds) throws IOException {
- if (CollectionUtils.isEmpty(tempFileIds)) {
- return;
- }
- // 鏋勫缓姝e紡鐩綍璺緞锛堟寜涓氬姟绫诲瀷鍜屾棩鏈熷垎缁勶級
- String formalDir = uploadDir + LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE);
-
- Path formalDirPath = Paths.get(formalDir);
-
- // 纭繚姝e紡鐩綍瀛樺湪锛堥�掑綊鍒涘缓锛�
- if (!Files.exists(formalDirPath)) {
- Files.createDirectories(formalDirPath);
- }
-
- for (String tempFileId : tempFileIds) {
- // 鏌ヨ涓存椂鏂囦欢璁板綍
- TempFile tempFile = tempFileMapper.selectById(tempFileId);
- if (tempFile == null) {
- log.warn("涓存椂鏂囦欢涓嶅瓨鍦紝璺宠繃澶勭悊: {}", tempFileId);
- continue;
- }
-
- // 鏋勫缓姝e紡鏂囦欢鍚嶏紙鍖呭惈涓氬姟ID鍜屾椂闂存埑锛岄伩鍏嶅啿绐侊級
- String originalFilename = tempFile.getOriginalName();
- String fileExtension = FilenameUtils.getExtension(originalFilename);
- String formalFilename = businessId + "_" +
- System.currentTimeMillis() + "_" +
- UUID.randomUUID().toString().substring(0, 8) +
- (StringUtils.hasText(fileExtension) ? "." + fileExtension : "");
-
- Path formalFilePath = formalDirPath.resolve(formalFilename);
-
- try {
- // 鎵ц鏂囦欢杩佺Щ锛堜娇鐢ㄥ師瀛愭搷浣滅‘淇濆畨鍏ㄦ�э級
-// Files.move(
-// Paths.get(tempFile.getTempPath()),
-// formalFilePath,
-// StandardCopyOption.REPLACE_EXISTING,
-// StandardCopyOption.ATOMIC_MOVE
-// );
- // 鍘熷瓙绉诲姩澶辫触锛屼娇鐢ㄥ鍒�+鍒犻櫎
- Files.copy(Paths.get(tempFile.getTempPath()), formalFilePath, StandardCopyOption.REPLACE_EXISTING);
- Files.deleteIfExists(Paths.get(tempFile.getTempPath()));
- log.info("鏂囦欢杩佺Щ鎴愬姛: {} -> {}", tempFile.getTempPath(), formalFilePath);
-
- // 鏇存柊鏂囦欢璁板綍锛堝叧鑱斿埌涓氬姟ID锛�
- CommonFile fileRecord = new CommonFile();
- fileRecord.setCommonId(businessId);
- fileRecord.setName(originalFilename);
- fileRecord.setUrl(formalFilePath.toString());
- fileRecord.setCreateTime(LocalDateTime.now());
- //閿�鍞�
- fileRecord.setType(FileNameType.SALE.getValue());
- commonFileMapper.insert(fileRecord);
-
- // 鍒犻櫎涓存椂鏂囦欢璁板綍
- tempFileMapper.deleteById(tempFile);
-
- log.info("鏂囦欢杩佺Щ鎴愬姛: {} -> {}", tempFile.getTempPath(), formalFilePath);
- } catch (IOException e) {
- log.error("鏂囦欢杩佺Щ澶辫触: {}", tempFile.getTempPath(), e);
- // 鍙�夋嫨鍥炴粴浜嬪姟鎴栬褰曞け璐ユ枃浠�
- throw new IOException("鏂囦欢杩佺Щ寮傚父", e);
- }
- }
- }
-
- // 鏂囦欢杩佺Щ鏂规硶
@Override
public void handleSalesLedgerProducts(Long salesLedgerId, List<SalesLedgerProduct> products, SaleEnum type) {
--
Gitblit v1.9.3