From 510f839b2a8703fc9faa7dc987b1421ea1716bce Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期四, 05 三月 2026 09:50:16 +0800
Subject: [PATCH] 售后服务关联销售单号和产品

---
 src/main/java/com/ruoyi/aftersalesservice/pojo/AfterSalesService.java                    |   17 ++++
 src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceNewDto.java               |   19 ++++
 src/main/resources/mapper/sales/SalesLedgerMapper.xml                                    |   10 ++
 src/main/java/com/ruoyi/aftersalesservice/controller/AfterSalesServiceController.java    |   51 ++++++++----
 src/main/java/com/ruoyi/aftersalesservice/service/AfterSalesServiceService.java          |    5 +
 src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java                   |   11 --
 src/main/java/com/ruoyi/sales/dto/ShippingInfoDto.java                                   |    4 +
 src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java                           |    2 
 src/main/resources/mapper/sales/ShippingInfoMapper.xml                                   |    5 +
 src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java |   54 +++++++++++++
 src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceExeclDto.java             |    5 -
 src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java                              |    3 
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java                   |   35 ++++++++
 src/main/resources/application-dev.yml                                                   |    8 +-
 14 files changed, 194 insertions(+), 35 deletions(-)

diff --git a/src/main/java/com/ruoyi/aftersalesservice/controller/AfterSalesServiceController.java b/src/main/java/com/ruoyi/aftersalesservice/controller/AfterSalesServiceController.java
index fee8947..15dcfac 100644
--- a/src/main/java/com/ruoyi/aftersalesservice/controller/AfterSalesServiceController.java
+++ b/src/main/java/com/ruoyi/aftersalesservice/controller/AfterSalesServiceController.java
@@ -2,19 +2,19 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.aftersalesservice.dto.AfterSalesServiceDto;
+import com.ruoyi.aftersalesservice.dto.AfterSalesServiceExeclDto;
+import com.ruoyi.aftersalesservice.dto.AfterSalesServiceNewDto;
 import com.ruoyi.aftersalesservice.pojo.AfterSalesService;
 import com.ruoyi.aftersalesservice.service.AfterSalesServiceService;
-import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.equipmentenergyconsumption.pojo.EquipmentEnergyConsumption;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysUserMapper;
-import com.ruoyi.purchase.dto.VatDto;
+import com.ruoyi.sales.dto.SalesLedgerDto;
+import com.ruoyi.sales.service.ISalesLedgerService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
@@ -25,6 +25,7 @@
 import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author :yys
@@ -42,6 +43,9 @@
     @Autowired
     private SysUserMapper sysUserMapper;
 
+    @Autowired
+    private ISalesLedgerService salesLedgerService;
+
     @GetMapping("/listPage")
     @ApiOperation("鍞悗鏈嶅姟-鍒嗛〉鏌ヨ")
     @Log(title = "鍞悗鏈嶅姟-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
@@ -57,14 +61,14 @@
         Page page = new Page(-1,-1);
         AfterSalesService afterSalesService = new AfterSalesService();
         IPage<AfterSalesService> listPage = afterSalesServiceService.listPage(page, afterSalesService);
-        List<AfterSalesServiceDto> list = new ArrayList<>();
+        List<AfterSalesServiceExeclDto> list = new ArrayList<>();
         listPage.getRecords().forEach(item -> {
-            AfterSalesServiceDto dto = new AfterSalesServiceDto();
+            AfterSalesServiceExeclDto dto = new AfterSalesServiceExeclDto();
             BeanUtils.copyProperties(item, dto);
             dto.setStatusName(item.getStatus().toString());
             list.add(dto);
         });
-        ExcelUtil<AfterSalesServiceDto> util = new ExcelUtil<AfterSalesServiceDto>(AfterSalesServiceDto.class);
+        ExcelUtil<AfterSalesServiceExeclDto> util = new ExcelUtil<AfterSalesServiceExeclDto>(AfterSalesServiceExeclDto.class);
         util.exportExcel(response, list , "鍙嶉鐧昏");
     }
 
@@ -85,20 +89,21 @@
     @PostMapping("/add")
     @ApiOperation("鍞悗鏈嶅姟-鏂板")
     @Log(title = "鍞悗鏈嶅姟-鏂板", businessType = BusinessType.INSERT)
-    public AjaxResult add(@RequestBody AfterSalesService afterSalesService) {
-        afterSalesService.setStatus(1);
-        SysUser sysUser = sysUserMapper.selectUserById(afterSalesService.getCheckUserId());
-        if(sysUser == null) throw new RuntimeException("瀹℃牳浜轰笉瀛樺湪");
-        afterSalesService.setCheckNickName(sysUser.getNickName());
-        boolean save = afterSalesServiceService.save(afterSalesService);
-        return save ? AjaxResult.success() : AjaxResult.error();
+    public AjaxResult add(@RequestBody AfterSalesServiceNewDto afterSalesServiceNewDto) {
+        return afterSalesServiceService.addAfterSalesServiceDto(afterSalesServiceNewDto) ? AjaxResult.success() : AjaxResult.error();
     }
 
     @PostMapping("/update")
     @ApiOperation("鍞悗鏈嶅姟-淇敼")
     @Log(title = "鍞悗鏈嶅姟-淇敼", businessType = BusinessType.UPDATE)
-    public AjaxResult update(@RequestBody AfterSalesService afterSalesService) {
-        boolean update = afterSalesServiceService.updateById(afterSalesService);
+    public AjaxResult update(@RequestBody AfterSalesServiceNewDto afterSalesServiceNewDto) {
+        if (afterSalesServiceNewDto.getProductModelIdList() != null && afterSalesServiceNewDto.getProductModelIdList().isEmpty() ) {
+            String productModelIds = afterSalesServiceNewDto.getProductModelIdList().stream()
+                    .map(String::valueOf)
+                    .collect(Collectors.joining(","));
+            afterSalesServiceNewDto.setProductModelIds(productModelIds);
+        }
+        boolean update = afterSalesServiceService.updateById(afterSalesServiceNewDto);
         return update ? AjaxResult.success() : AjaxResult.error();
     }
 
@@ -129,4 +134,18 @@
     }
 
 
+    @GetMapping("listSalesLedger")
+    @ApiOperation("鍞悗鏈嶅姟-鑾峰彇閿�鍞彴璐�")
+    public AjaxResult listSalesLedger(SalesLedgerDto salesLedgerDto, Page page) {
+        IPage<SalesLedgerDto> list = salesLedgerService.listSalesLedger(salesLedgerDto,page);
+        return AjaxResult.success(list);
+    }
+
+
+    @GetMapping("getById")
+    @ApiOperation("鍞悗鏈嶅姟-鏍规嵁id鑾峰彇璇︽儏")
+    public AjaxResult getById(Long id) {
+        return AjaxResult.success(afterSalesServiceService.getAfterSalesServiceNewDtoById(id));
+    }
+
 }
diff --git a/src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceDto.java b/src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceExeclDto.java
similarity index 88%
rename from src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceDto.java
rename to src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceExeclDto.java
index 8a7c70b..c8526c7 100644
--- a/src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceDto.java
+++ b/src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceExeclDto.java
@@ -1,14 +1,11 @@
 package com.ruoyi.aftersalesservice.dto;
 
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.framework.aspectj.lang.annotation.Excel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
-import java.time.LocalDateTime;
 import java.util.Date;
 
 /**
@@ -16,7 +13,7 @@
  * @date : 2025/11/3 11:14
  */
 @Data
-public class AfterSalesServiceDto {
+public class AfterSalesServiceExeclDto {
 
     /**
      * 鐘舵�� 1-寰呭鐞� 2-宸插鐞�
diff --git a/src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceNewDto.java b/src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceNewDto.java
new file mode 100644
index 0000000..19320a2
--- /dev/null
+++ b/src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceNewDto.java
@@ -0,0 +1,19 @@
+package com.ruoyi.aftersalesservice.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ruoyi.aftersalesservice.pojo.AfterSalesService;
+import com.ruoyi.sales.dto.SalesLedgerDto;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AfterSalesServiceNewDto extends AfterSalesService {
+
+    @ApiModelProperty("浜у搧鍨嬪彿ID鏁扮粍")
+    private List<Long> productModelIdList;
+
+    private SalesLedgerDto salesLedgerDto;
+}
diff --git a/src/main/java/com/ruoyi/aftersalesservice/pojo/AfterSalesService.java b/src/main/java/com/ruoyi/aftersalesservice/pojo/AfterSalesService.java
index 67ccd01..3d4bb51 100644
--- a/src/main/java/com/ruoyi/aftersalesservice/pojo/AfterSalesService.java
+++ b/src/main/java/com/ruoyi/aftersalesservice/pojo/AfterSalesService.java
@@ -138,5 +138,22 @@
     private String deptName;
 
 
+    @TableField("鍞悗绫诲瀷")
+    private String serviceType;
+
+    @TableField("绱ф�ョ▼搴�")
+    private String urgency;
+
+    @TableField("閿�鍞彴璐D")
+    private Long salesLedgerId;
+
+    @TableField("鍒嗛厤浜篒D")
+    private Long distributionUserId;
+
+
+    @TableField("浜у搧鍨嬪彿IDs")
+    private String productModelIds;
+
+
 
 }
diff --git a/src/main/java/com/ruoyi/aftersalesservice/service/AfterSalesServiceService.java b/src/main/java/com/ruoyi/aftersalesservice/service/AfterSalesServiceService.java
index f5ba2d7..21b4e75 100644
--- a/src/main/java/com/ruoyi/aftersalesservice/service/AfterSalesServiceService.java
+++ b/src/main/java/com/ruoyi/aftersalesservice/service/AfterSalesServiceService.java
@@ -3,6 +3,7 @@
 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.dto.AfterSalesServiceNewDto;
 import com.ruoyi.aftersalesservice.pojo.AfterSalesService;
 
 /**
@@ -19,4 +20,8 @@
      * @return
      */
     IPage<AfterSalesService> listPage(Page page, AfterSalesService afterSalesService);
+
+    boolean addAfterSalesServiceDto(AfterSalesServiceNewDto afterSalesServiceNewDto);
+
+    AfterSalesServiceNewDto getAfterSalesServiceNewDtoById(Long id);
 }
diff --git a/src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java b/src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java
index 4f8237f..5f399ca 100644
--- a/src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java
+++ b/src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java
@@ -1,17 +1,34 @@
 package com.ruoyi.aftersalesservice.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.aftersalesservice.dto.AfterSalesServiceNewDto;
 import com.ruoyi.aftersalesservice.mapper.AfterSalesServiceMapper;
 import com.ruoyi.aftersalesservice.pojo.AfterSalesService;
 import com.ruoyi.aftersalesservice.service.AfterSalesServiceService;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.project.system.domain.SysDept;
+import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysDeptMapper;
+import com.ruoyi.project.system.mapper.SysUserMapper;
+import com.ruoyi.sales.dto.SalesLedgerDto;
+import com.ruoyi.sales.pojo.SalesLedger;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import com.ruoyi.sales.service.ISalesLedgerProductService;
+import com.ruoyi.sales.service.ISalesLedgerService;
+import com.ruoyi.sales.service.impl.SalesLedgerProductServiceImpl;
+import com.ruoyi.sales.service.impl.SalesLedgerServiceImpl;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author :yys
@@ -27,6 +44,13 @@
     @Autowired
     private SysDeptMapper sysDeptMapper;
 
+    @Autowired
+    private SysUserMapper sysUserMapper;
+    @Autowired
+    private ISalesLedgerProductService salesLedgerProductService;
+    @Autowired
+    private ISalesLedgerService salesLedgerService;
+
     @Override
     public IPage<AfterSalesService> listPage(Page page, AfterSalesService afterSalesService) {
         Long tenantId = SecurityUtils.getLoginUser().getTenantId();
@@ -37,4 +61,34 @@
         });
         return afterSalesServiceIPage;
     }
+
+    @Override
+    public boolean addAfterSalesServiceDto(AfterSalesServiceNewDto afterSalesServiceNewDto) {
+        afterSalesServiceNewDto.setStatus(1);
+        if (afterSalesServiceNewDto.getProductModelIdList() != null && afterSalesServiceNewDto.getProductModelIdList().isEmpty() ) {
+            String productModelIds = afterSalesServiceNewDto.getProductModelIdList().stream()
+                    .map(String::valueOf)
+                    .collect(Collectors.joining(","));
+            afterSalesServiceNewDto.setProductModelIds(productModelIds);
+        }
+        SysUser sysUser = sysUserMapper.selectUserById(afterSalesServiceNewDto.getCheckUserId());
+        if(sysUser == null) throw new RuntimeException("瀹℃牳浜轰笉瀛樺湪");
+        afterSalesServiceNewDto.setCheckNickName(sysUser.getNickName());
+        return this.save(afterSalesServiceNewDto);
+    }
+
+    @Override
+    public AfterSalesServiceNewDto getAfterSalesServiceNewDtoById(Long id) {
+        AfterSalesService afterSalesService = afterSalesServiceMapper.selectById(id);
+        SalesLedger byId = salesLedgerService.getById(afterSalesService.getSalesLedgerId());
+        List<Long> collect = Arrays.stream(afterSalesService.getProductModelIds().split(",")).map(Long::valueOf).collect(Collectors.toList());
+        List<SalesLedgerProduct> list = salesLedgerProductService.list(new QueryWrapper<SalesLedgerProduct>().lambda().in(SalesLedgerProduct::getProductModelId, collect));
+        AfterSalesServiceNewDto afterSalesServiceNewDto = new AfterSalesServiceNewDto();
+        BeanUtils.copyProperties(afterSalesService, afterSalesServiceNewDto);
+        SalesLedgerDto salesLedgerDto = new SalesLedgerDto();
+        BeanUtils.copyProperties(byId, salesLedgerDto);
+        salesLedgerDto.setProductData( list);
+        afterSalesServiceNewDto.setSalesLedgerDto(salesLedgerDto);
+        return afterSalesServiceNewDto;
+    }
 }
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java b/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
index 71556a2..f2e7928 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
@@ -1,26 +1,15 @@
 package com.ruoyi.sales.controller;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.ruoyi.aftersalesservice.dto.AfterSalesServiceDto;
-import com.ruoyi.aftersalesservice.pojo.AfterSalesService;
-import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.framework.aspectj.lang.annotation.Log;
-import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.sales.dto.SalesQuotationDto;
-import com.ruoyi.sales.pojo.SalesQuotation;
 import com.ruoyi.sales.service.SalesQuotationService;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.List;
 
 @RestController
 @RequestMapping("/sales/quotation")
diff --git a/src/main/java/com/ruoyi/sales/dto/ShippingInfoDto.java b/src/main/java/com/ruoyi/sales/dto/ShippingInfoDto.java
index 3561c18..260d217 100644
--- a/src/main/java/com/ruoyi/sales/dto/ShippingInfoDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/ShippingInfoDto.java
@@ -29,4 +29,8 @@
     @TableField(exist = false)
     private List<CommonFile> commonFileList;
 
+    private String  specificationModel;
+
+    private String productName;
+
 }
diff --git a/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java b/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java
index 77faa01..8dfb5f9 100644
--- a/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java
+++ b/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.aftersalesservice.pojo.AfterSalesService;
 import com.ruoyi.home.dto.IncomeExpenseAnalysisDto;
 import com.ruoyi.sales.dto.SalesLedgerDto;
 import com.ruoyi.sales.dto.SalesTrendDto;
@@ -83,4 +84,6 @@
             "ORDER BY month" +
             "</script>")
     List<SalesTrendDto> statisticsTable(@Param("statisticsTableDto")StatisticsTableDto statisticsTableDto);
+
+    IPage<SalesLedgerDto> listSalesLedger(Page page,@Param("ew") SalesLedgerDto salesLedgerDto);
 }
diff --git a/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java b/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
index 8c973b3..c359fd3 100644
--- a/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
+++ b/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
@@ -3,6 +3,7 @@
 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.framework.web.domain.AjaxResult;
 import com.ruoyi.sales.dto.LossProductModelDto;
 import com.ruoyi.sales.dto.MonthlyAmountDto;
@@ -43,4 +44,5 @@
 
     List<LossProductModelDto> getSalesLedgerWithProductsLoss(Long salesLedgerId);
 
+    IPage<SalesLedgerDto> listSalesLedger(SalesLedgerDto salesLedgerDto, Page page);
 }
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 3a42fc7..03635b4 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -9,6 +9,7 @@
 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.aftersalesservice.pojo.AfterSalesService;
 import com.ruoyi.basic.mapper.CustomerMapper;
 import com.ruoyi.basic.mapper.ProductMapper;
 import com.ruoyi.basic.mapper.ProductModelMapper;
@@ -452,6 +453,40 @@
         return lossProductModelDtos;
     }
 
+    @Override
+    public IPage<SalesLedgerDto> listSalesLedger(SalesLedgerDto salesLedgerDto, Page page) {
+        IPage<SalesLedgerDto> salesLedgerDtoIPage = salesLedgerMapper.listSalesLedger(page, salesLedgerDto);
+        for (SalesLedgerDto salesLedger : salesLedgerDtoIPage.getRecords()) {
+            LambdaQueryWrapper<SalesLedgerProduct> productWrapper = new LambdaQueryWrapper<>();
+            productWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedger.getId());
+            productWrapper.eq(SalesLedgerProduct::getType, 1);
+            List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(productWrapper);
+            for (SalesLedgerProduct product : products) {
+                product.setOriginalNoInvoiceNum(product.getNoInvoiceNum());
+                // 鎻愪緵涓存椂鏈紑绁ㄦ暟锛屾湭寮�绁ㄩ噾棰濅緵鍓嶆璁$畻
+                product.setTempnoInvoiceAmount(product.getNoInvoiceAmount());
+                product.setTempNoInvoiceNum(product.getNoInvoiceNum());
+                product.setRegister(SecurityUtils.getLoginUser().getUser().getNickName());
+                product.setRegisterDate(LocalDateTime.now());
+                // 鍙戣揣淇℃伅
+                ShippingInfo shippingInfo = shippingInfoMapper.selectOne(new LambdaQueryWrapper<ShippingInfo>()
+                        .eq(ShippingInfo::getSalesLedgerProductId, product.getId())
+                        .orderByDesc(ShippingInfo::getCreateTime)
+                        .last("limit 1"));
+                if (shippingInfo != null) {
+                    product.setShippingStatus(shippingInfo.getStatus());
+
+                }
+            }
+            if (!products.isEmpty()) {
+                salesLedger.setHasChildren(true);
+                salesLedger.setProductData(products);
+            }
+        }
+
+        return salesLedgerDtoIPage;
+    }
+
 
     // 鍐呴儴绫荤敤浜庡瓨鍌ㄨ仛鍚堢粨鏋�
     private static class GroupedCustomer {
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index ff56f9d..aa5df94 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -28,7 +28,7 @@
 # 寮�鍙戠幆澧冮厤缃�
 server:
   # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 7003
+  port: 7008
   servlet:
     # 搴旂敤鐨勮闂矾寰�
     context-path: /
@@ -74,9 +74,9 @@
     druid:
       # 涓诲簱鏁版嵁婧�
       master:
-        url: jdbc:mysql://localhost:3306/product-inventory-management-new?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        url: jdbc:mysql://1.15.17.182:9999/product-inventory-management-new?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username: root
-        password: 123456
+        password: xd@123456..
       # 浠庡簱鏁版嵁婧�
       slave:
         # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
@@ -154,7 +154,7 @@
     database: 0
     # 瀵嗙爜
     #    password: root2022!
-    password:
+    password: 123456
 
     # 杩炴帴瓒呮椂鏃堕棿
     timeout: 10s
diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index c5d7aed..85f62c0 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -111,4 +111,14 @@
         FROM sales_ledger
         GROUP BY customer_name
     </select>
+    <select id="listSalesLedger" resultType="com.ruoyi.sales.dto.SalesLedgerDto">
+        select * from
+        sales_ledger sl
+        <where>
+            <if test="ew.customerName != null and ew.customerName != '' ">
+            and sl.customer_name like concat('%',#{ew.customerName},'%')
+            </if>
+        </where>
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/sales/ShippingInfoMapper.xml b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
index 6026980..89134d5 100644
--- a/src/main/resources/mapper/sales/ShippingInfoMapper.xml
+++ b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
@@ -19,9 +19,14 @@
         s.update_user,
         s.tenant_id,
         sl.sales_contract_no,
+        slp.specification_model,
+        p.product_name,
         sl.customer_name
         FROM shipping_info s
         LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
+        LEFT JOIN sales_ledger_product slp ON s.sales_ledger_product_id = slp.id
+        left join product_model pm on slp.product_model_id = pm.id
+        left join product p on pm.product_id = p.id
         WHERE 1=1
         <if test="req.salesContractNo != null and req.salesContractNo != ''">
             AND sl.sales_contract_no LIKE CONCAT('%',#{req.salesContractNo},'%')

--
Gitblit v1.9.3