From e8304b5b39787b25eb024fafd00d7db512ee6438 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期一, 19 五月 2025 09:02:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 80 ++++++++++++++++++++++++++++++++--------
1 files changed, 64 insertions(+), 16 deletions(-)
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 38ab1d8..988410d 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.mapper.CustomerMapper;
import com.ruoyi.basic.pojo.Customer;
@@ -11,11 +12,11 @@
import com.ruoyi.other.mapper.TempFileMapper;
import com.ruoyi.other.pojo.TempFile;
import com.ruoyi.sales.dto.SalesLedgerDto;
-import com.ruoyi.sales.mapper.SalesLedgerFileMapper;
+import com.ruoyi.sales.mapper.CommonFileMapper;
import com.ruoyi.sales.mapper.SalesLedgerMapper;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
+import com.ruoyi.sales.pojo.CommonFile;
import com.ruoyi.sales.pojo.SalesLedger;
-import com.ruoyi.sales.pojo.SalesLedgerFile;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
import com.ruoyi.sales.service.ISalesLedgerService;
import lombok.RequiredArgsConstructor;
@@ -28,7 +29,6 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.io.FileNotFoundException;
import java.io.IOException;
import java.lang.reflect.Field;
import java.math.BigDecimal;
@@ -52,13 +52,13 @@
@Slf4j
public class SalesLedgerServiceImpl extends ServiceImpl<SalesLedgerMapper, SalesLedger> implements ISalesLedgerService {
- private final SalesLedgerMapper salesLedgerMapper;
+ private final SalesLedgerMapper salesLedgerMapper;
- private final CustomerMapper customerMapper;
+ private final CustomerMapper customerMapper;
- private final SalesLedgerProductMapper salesLedgerProductMapper;
+ private final SalesLedgerProductMapper salesLedgerProductMapper;
- private final SalesLedgerFileMapper salesLedgerFileMapper;
+ private final CommonFileMapper commonFileMapper;
private final TempFileMapper tempFileMapper;
@@ -92,14 +92,58 @@
productWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedger.getId());
List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(productWrapper);
- // 3. 杞崲 DTO
+ // 3.鏌ヨ涓婁紶鏂囦欢
+ LambdaQueryWrapper<CommonFile> salesLedgerFileWrapper = new LambdaQueryWrapper<>();
+ salesLedgerFileWrapper.eq(CommonFile::getCommonId, salesLedger.getId());
+ List<CommonFile> salesLedgerFiles = commonFileMapper.selectList(salesLedgerFileWrapper);
+
+ // 4. 杞崲 DTO
SalesLedgerDto resultDto = new SalesLedgerDto();
BeanUtils.copyProperties(salesLedger, resultDto);
if (!products.isEmpty()) {
resultDto.setHasChildren(true);
resultDto.setProductData(products);
+ resultDto.setSalesLedgerFiles(salesLedgerFiles);
}
return resultDto;
+ }
+
+ @Override
+ public List<Map<String, Object>> getSalesNo() {
+ LambdaQueryWrapper<SalesLedger> queryWrapper = Wrappers.lambdaQuery();
+ queryWrapper.select(SalesLedger::getId, SalesLedger::getSalesContractNo);
+
+ // 鑾峰彇鍘熷鏌ヨ缁撴灉
+ List<Map<String, Object>> result = salesLedgerMapper.selectMaps(queryWrapper);
+
+ // 灏嗕笅鍒掔嚎鍛藉悕杞崲涓洪┘宄板懡鍚�
+ return result.stream().map(map -> map.entrySet().stream()
+ .collect(Collectors.toMap(
+ entry -> underlineToCamel(entry.getKey()),
+ Map.Entry::getValue))
+ ).collect(Collectors.toList());
+ }
+
+ /**
+ * 涓嬪垝绾垮懡鍚嶈浆椹煎嘲鍛藉悕
+ */
+ private String underlineToCamel(String param) {
+ if (param == null || "".equals(param.trim())) {
+ return "";
+ }
+ int len = param.length();
+ StringBuilder sb = new StringBuilder(len);
+ for (int i = 0; i < len; i++) {
+ char c = param.charAt(i);
+ if (c == '_') {
+ if (++i < len) {
+ sb.append(Character.toUpperCase(param.charAt(i)));
+ }
+ } else {
+ sb.append(Character.toLowerCase(c));
+ }
+ }
+ return sb.toString();
}
@Override
@@ -148,7 +192,7 @@
// 4. 澶勭悊瀛愯〃鏁版嵁
List<SalesLedgerProduct> productList = salesLedgerDto.getProductData();
if (productList != null && !productList.isEmpty()) {
- handleSalesLedgerProducts(salesLedger.getId(), productList);
+ handleSalesLedgerProducts(salesLedger.getId(), productList,salesLedgerDto.getType());
updateMainContractAmount(
salesLedger.getId(),
productList,
@@ -197,7 +241,8 @@
// 鏌ヨ涓存椂鏂囦欢璁板綍
TempFile tempFile = tempFileMapper.selectById(tempFileId);
if (tempFile == null) {
- throw new FileNotFoundException("涓存椂鏂囦欢涓嶅瓨鍦�: " + tempFileId);
+ log.warn("涓存椂鏂囦欢涓嶅瓨鍦紝璺宠繃澶勭悊: {}", tempFileId);
+ continue;
}
// 鏋勫缓姝e紡鏂囦欢鍚嶏紙鍖呭惈涓氬姟ID鍜屾椂闂存埑锛岄伩鍏嶅啿绐侊級
@@ -221,12 +266,13 @@
log.info("鏂囦欢杩佺Щ鎴愬姛: {} -> {}", tempFile.getTempPath(), formalFilePath);
// 鏇存柊鏂囦欢璁板綍锛堝叧鑱斿埌涓氬姟ID锛�
- SalesLedgerFile fileRecord = new SalesLedgerFile();
- fileRecord.setLedgerId(businessId);
- fileRecord.setFileName(originalFilename);
- fileRecord.setFilePath(formalFilePath.toString());
+ CommonFile fileRecord = new CommonFile();
+ fileRecord.setCommonId(businessId);
+ fileRecord.setName(originalFilename);
+ fileRecord.setUrl(formalFilePath.toString());
fileRecord.setCreateTime(LocalDateTime.now());
- salesLedgerFileMapper.insert(fileRecord);
+ fileRecord.setType("1");
+ commonFileMapper.insert(fileRecord);
// 鍒犻櫎涓存椂鏂囦欢璁板綍
tempFileMapper.deleteById(tempFile);
@@ -241,7 +287,7 @@
}
- private void handleSalesLedgerProducts(Long salesLedgerId, List<SalesLedgerProduct> products) {
+ private void handleSalesLedgerProducts(Long salesLedgerId, List<SalesLedgerProduct> products,Integer type) {
// 鎸塈D鍒嗙粍锛屽尯鍒嗘柊澧炲拰鏇存柊鐨勮褰�
Map<Boolean, List<SalesLedgerProduct>> partitionedProducts = products.stream()
.peek(p -> p.setSalesLedgerId(salesLedgerId))
@@ -253,12 +299,14 @@
// 鎵ц鏇存柊鎿嶄綔
if (!updateList.isEmpty()) {
for (SalesLedgerProduct product : updateList) {
+ product.setType(type);
salesLedgerProductMapper.updateById(product);
}
}
// 鎵ц鎻掑叆鎿嶄綔
if (!insertList.isEmpty()) {
for (SalesLedgerProduct salesLedgerProduct : insertList) {
+ salesLedgerProduct.setType(type);
salesLedgerProductMapper.insert(salesLedgerProduct);
}
}
--
Gitblit v1.9.3