From d6a1114f3473f86721176bc9d17ba7f35b0bddb7 Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期二, 13 五月 2025 16:53:59 +0800
Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/product-inventory-management-after
---
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 67 ++++++++++++++++++++++++++++-----
1 files changed, 57 insertions(+), 10 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..777bbb4 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;
@@ -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,11 +52,11 @@
@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;
@@ -92,14 +92,58 @@
productWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedger.getId());
List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(productWrapper);
- // 3. 杞崲 DTO
+ // 3.鏌ヨ涓婁紶鏂囦欢
+ LambdaQueryWrapper<SalesLedgerFile> salesLedgerFileWrapper = new LambdaQueryWrapper<>();
+ salesLedgerFileWrapper.eq(SalesLedgerFile::getLedgerId, salesLedger.getId());
+ List<SalesLedgerFile> salesLedgerFiles = salesLedgerFileMapper.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鍜屾椂闂存埑锛岄伩鍏嶅啿绐侊級
@@ -223,8 +268,8 @@
// 鏇存柊鏂囦欢璁板綍锛堝叧鑱斿埌涓氬姟ID锛�
SalesLedgerFile fileRecord = new SalesLedgerFile();
fileRecord.setLedgerId(businessId);
- fileRecord.setFileName(originalFilename);
- fileRecord.setFilePath(formalFilePath.toString());
+ fileRecord.setName(originalFilename);
+ fileRecord.setUrl(formalFilePath.toString());
fileRecord.setCreateTime(LocalDateTime.now());
salesLedgerFileMapper.insert(fileRecord);
@@ -241,7 +286,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 +298,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