From d7c69d76e9c81464c698199b90ec4a339a18b257 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 27 三月 2026 16:06:17 +0800
Subject: [PATCH] feat: 销售订单标签打印

---
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 56 insertions(+), 0 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 025fe60..04f3a3a 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -1306,6 +1306,62 @@
         return dto;
     }
 
+    @Override
+    public List<SalesLabelDto> salesLabel(Long salesLedgerId) {
+        if (salesLedgerId == null) {
+            throw new ServiceException("鎵撳嵃鏍囩澶辫触,鏁版嵁涓嶈兘涓虹┖");
+        }
+        SalesLedger salesLedger = baseMapper.selectById(salesLedgerId);
+        if (salesLedger == null) {
+            throw new ServiceException("鎵撳嵃澶辫触,閿�鍞鍗曚笉瀛樺湪");
+        }
+
+        // 鏌ヨ浜у搧鍒楄〃
+        List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(
+                new LambdaQueryWrapper<SalesLedgerProduct>().eq(SalesLedgerProduct::getSalesLedgerId, salesLedgerId));
+
+        // 鏌ヨ瀹㈡埛鍦板潃
+        String fullAddress = "";
+        if (salesLedger.getCustomerId() != null) {
+            Customer customer = customerMapper.selectById(salesLedger.getCustomerId());
+            if (customer != null) {
+                StringBuilder addressSb = new StringBuilder();
+                if (customer.getRegionsId() != null) {
+                    CustomerRegions regions = customerRegionsService.getById(customer.getRegionsId());
+                    if (regions != null) {
+                        addressSb.append(regions.getRegionsName());
+                    }
+                }
+                if (StringUtils.isNotEmpty(customer.getCompanyAddress())) {
+                    addressSb.append(customer.getCompanyAddress());
+                }
+                fullAddress = addressSb.toString();
+            }
+        }
+
+        List<SalesLabelDto> list = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(products)) {
+            for (SalesLedgerProduct p : products) {
+                SalesLabelDto dto = new SalesLabelDto();
+                dto.setCustomerName(salesLedger.getCustomerName());
+                dto.setSalesContractNo(salesLedger.getSalesContractNo());
+                dto.setProductName(p.getProductCategory());
+
+                // 瀹�*楂�=鏁伴噺
+                String specification = (p.getWidth() != null ? p.getWidth().stripTrailingZeros().toPlainString() : "0") + "*" +
+                        (p.getHeight() != null ? p.getHeight().stripTrailingZeros().toPlainString() : "0") + "=" +
+                        (p.getQuantity() != null ? p.getQuantity().stripTrailingZeros().toPlainString() : "0");
+                dto.setSpecification(specification);
+
+                // 瀹㈡埛鍦板潃 + 妤煎眰缂栧彿
+                dto.setFloorCode(fullAddress + (StringUtils.isNotEmpty(p.getFloorCode()) ? " " + p.getFloorCode() : ""));
+                list.add(dto);
+            }
+        }
+
+        return list;
+    }
+
     private int findFirstMissingSequence(List<Integer> sequences) {
         if (sequences.isEmpty()) {
             return 1;

--
Gitblit v1.9.3