src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
@@ -1,7 +1,9 @@ package com.ruoyi.purchase.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; @@ -9,11 +11,15 @@ import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.framework.web.page.TableDataInfo; import com.ruoyi.purchase.dto.PurchaseLedgerDto; import com.ruoyi.purchase.mapper.PurchaseLedgerMapper; import com.ruoyi.purchase.pojo.PurchaseLedger; import com.ruoyi.purchase.service.IPurchaseLedgerService; import com.ruoyi.sales.mapper.SalesLedgerProductMapper; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.service.ISalesLedgerService; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; @@ -158,4 +164,13 @@ public AjaxResult createPurchaseNo() { return AjaxResult.success("生成成功",purchaseLedgerService.getPurchaseNo()); } /** * 根据采购合同号查询详情 */ @GetMapping("/getPurchaseByCode") public AjaxResult getPurchaseByCode(PurchaseLedgerDto purchaseLedgerDto) { return AjaxResult.success(purchaseLedgerService.getPurchaseByCode(purchaseLedgerDto)); } } src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java
@@ -39,4 +39,6 @@ List<InvoiceRegistrationProduct> getProductBySalesNo(Long id); String getPurchaseNo(); PurchaseLedgerDto getPurchaseByCode(PurchaseLedgerDto purchaseLedgerDto); } src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -532,6 +532,32 @@ return purchaseNo + String.format("%03d", sequence); } @Override public PurchaseLedgerDto getPurchaseByCode(PurchaseLedgerDto purchaseLedgerDto) { // 1. 查询主表 PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectOne(new LambdaQueryWrapper<PurchaseLedger>() .eq(PurchaseLedger::getPurchaseContractNumber, purchaseLedgerDto.getPurchaseContractNumber()) .last("LIMIT 1")); if (purchaseLedger == null) { throw new BaseException("采购台账不存在"); } // 2. 查询子表 LambdaQueryWrapper<SalesLedgerProduct> productWrapper = new LambdaQueryWrapper<>(); productWrapper.eq(SalesLedgerProduct::getSalesLedgerId, purchaseLedger.getId()) .eq(SalesLedgerProduct::getType, 2); List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(productWrapper); // 4. 转换 DTO PurchaseLedgerDto resultDto = new PurchaseLedgerDto(); BeanUtils.copyProperties(purchaseLedger, resultDto); if (!products.isEmpty()) { resultDto.setHasChildren(true); resultDto.setProductData(products); } return resultDto; } /** * 下划线命名转驼峰命名 */ src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -12,6 +12,7 @@ import com.ruoyi.framework.web.page.TableDataInfo; import com.ruoyi.procurementrecord.dto.ProcurementPageDto; import com.ruoyi.procurementrecord.service.ProcurementRecordService; import com.ruoyi.purchase.dto.PurchaseLedgerDto; import com.ruoyi.sales.dto.InvoiceLedgerDto; import com.ruoyi.sales.dto.SalesLedgerDto; import com.ruoyi.sales.mapper.InvoiceLedgerMapper; @@ -305,4 +306,12 @@ } return AjaxResult.error("该产品库存不足"); } /** * 根据采购合同号查询详情 */ @GetMapping("/getSalesByCode") public AjaxResult getSalesByCode(SalesLedgerDto salesLedgerDto) { return AjaxResult.success(salesLedgerService.getSalesByCode(salesLedgerDto)); } } 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.purchase.dto.PurchaseLedgerDto; import com.ruoyi.sales.dto.MonthlyAmountDto; import com.ruoyi.sales.dto.SalesLedgerDto; import com.ruoyi.sales.pojo.SalesLedger; @@ -35,4 +36,6 @@ List<MonthlyAmountDto> getAmountHalfYear(Integer type); IPage<SalesLedger> selectSalesLedgerListPage(Page page, SalesLedgerDto salesLedgerDto); SalesLedgerDto getSalesByCode(SalesLedgerDto salesLedgerDto); } src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -25,6 +25,8 @@ import com.ruoyi.production.pojo.SalesLedgerScheduling; import com.ruoyi.project.system.domain.SysDept; import com.ruoyi.project.system.mapper.SysDeptMapper; import com.ruoyi.purchase.dto.PurchaseLedgerDto; import com.ruoyi.purchase.pojo.PurchaseLedger; import com.ruoyi.sales.dto.MonthlyAmountDto; import com.ruoyi.sales.dto.SalesLedgerDto; import com.ruoyi.sales.mapper.*; @@ -465,6 +467,32 @@ } } @Override public SalesLedgerDto getSalesByCode(SalesLedgerDto salesLedgerDto) { // 1. 查询主表 SalesLedger salesLedger = salesLedgerMapper.selectOne(new LambdaQueryWrapper<SalesLedger>() .eq(SalesLedger::getSalesContractNo, salesLedgerDto.getSalesContractNo()) .last("LIMIT 1")); if (salesLedger == null) { throw new BaseException("销售台账不存在"); } // 2. 查询子表 LambdaQueryWrapper<SalesLedgerProduct> productWrapper = new LambdaQueryWrapper<>(); productWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedger.getId()) .eq(SalesLedgerProduct::getType, 1); List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(productWrapper); // 4. 转换 DTO SalesLedgerDto resultDto = new SalesLedgerDto(); BeanUtils.copyProperties(salesLedger, resultDto); if (!products.isEmpty()) { resultDto.setHasChildren(true); resultDto.setProductData(products); } return resultDto; } // 文件迁移方法 /**