From f6f57ba70679a0b050031f3cdf81b5bf5d4cbd60 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 11 七月 2025 15:28:37 +0800
Subject: [PATCH] 1.生产加工优化 2.销售,库存查询优化

---
 main-business/src/main/java/com/ruoyi/business/service/impl/SalesRecordServiceImpl.java |   41 ++++++++++++++++++++++++++++++++++-------
 1 files changed, 34 insertions(+), 7 deletions(-)

diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/SalesRecordServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/SalesRecordServiceImpl.java
index d2e9256..145cf5b 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/SalesRecordServiceImpl.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/SalesRecordServiceImpl.java
@@ -19,6 +19,7 @@
 import com.ruoyi.business.service.SalesRecordService;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.exception.base.BaseException;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.system.mapper.SysUserMapper;
 import lombok.RequiredArgsConstructor;
@@ -67,6 +68,32 @@
     public IPage<SalesRecordDto> selectSalesRecordList(Page<SalesRecord> page, SalesRecordDto salesRecordDto) {
         // 1. 鍒涘缓鏌ヨ鏉′欢锛屾寜鍒涘缓鏃堕棿鍊掑簭鎺掑簭
         LambdaQueryWrapper<SalesRecord> queryWrapper = new LambdaQueryWrapper<>();
+
+        if (StringUtils.isNotBlank(salesRecordDto.getSearchAll())) {
+            String searchValue = salesRecordDto.getSearchAll();
+            // 1. 鍏堝皾璇曚綔涓烘棩鏈熸煡璇�
+            try {
+                LocalDate saleDate = LocalDate.parse(searchValue);
+                queryWrapper.eq(SalesRecord::getSaleDate, saleDate);
+            } catch (DateTimeParseException e) {
+                // 2. 濡傛灉涓嶆槸鏃ユ湡锛屽垯浣滀负鐓ょ鍚嶇О鏌ヨ
+                LambdaQueryWrapper<CoalInfo> coalQueryWrapper = new LambdaQueryWrapper<>();
+                coalQueryWrapper.like(CoalInfo::getCoal, searchValue);
+                List<CoalInfo> coalInfos = coalInfoMapper.selectList(coalQueryWrapper);
+                if (!coalInfos.isEmpty()) {
+                    // 鎻愬彇鎵�鏈夊尮閰嶇殑鐓ょID
+                    List<Long> coalIds = coalInfos.stream()
+                            .map(CoalInfo::getId)
+                            .collect(Collectors.toList());
+                    // 浣跨敤in鏌ヨ鍖归厤浠绘剰涓�涓叅绉岻D
+                    queryWrapper.in(SalesRecord::getCoalId, coalIds);
+                } else {
+                    // 3. 濡傛灉鎵句笉鍒扮叅绉嶏紝鍙互杩斿洖绌虹粨鏋�
+                    queryWrapper.eq(SalesRecord::getCoalId, "-1"); // 浣跨敤涓嶅彲鑳藉瓨鍦ㄧ殑ID
+                }
+            }
+        }
+
         queryWrapper.orderByDesc(SalesRecord::getCreateTime);
 
         // 2. 鑾峰彇鍒嗛〉鐨勯攢鍞褰�
@@ -509,13 +536,13 @@
                         )
                 ));
 
-        //鏋勫缓缁撴灉锛堜繚鎸佺叅绉嶉『搴忥紝閿�閲忛粯璁や负0锛�
-        List<Map<String, Object>> resultMouth = new ArrayList<>();
+        // 2. 鍒涘缓 resultMouth锛屽瓨鍌ㄧ叅绉嶅強鍏堕攢閲忥紙Map 缁撴瀯锛�
+        Map<String, BigDecimal> resultMouthMap = new LinkedHashMap<>();
         for (CoalInfo coal : allCoalTypes) {
-            Map<String, Object> item = new LinkedHashMap<>();
-            item.put("coal", coal.getCoal()); // 鐓ょ鍚嶇О
-            item.put("saleQuantity", salesByCoalId.getOrDefault(coal.getId(), BigDecimal.valueOf(0))); // 閿�閲�
-            resultMouth.add(item);
+            resultMouthMap.put(
+                    coal.getCoal(),  // 鐓ょ鍚嶇О锛堝 "鏃犵儫鐓�"锛�
+                    salesByCoalId.getOrDefault(coal.getId(), BigDecimal.valueOf(0)) // 閿�閲�
+            );
         }
 
         result.put("revenueAmount", revenueAmount.setScale(2, RoundingMode.HALF_UP));
@@ -526,7 +553,7 @@
         result.put("trendQuantity", trendQuantity);
         result.put("revenueDistribution", revenueDistribution);
         result.put("salesResults", results);
-        result.put("resultMouth", resultMouth);
+        result.put("resultMouth", resultMouthMap);
 
         return result;
     }

--
Gitblit v1.9.3