src/main/java/com/ruoyi/basic/vo/ProductModelVo.java
@@ -1,5 +1,6 @@ package com.ruoyi.basic.vo; import com.baomidou.mybatisplus.annotation.TableField; import com.ruoyi.basic.pojo.ProductModel; import lombok.Data; import lombok.EqualsAndHashCode; @@ -10,5 +11,8 @@ @Data public class ProductModelVo extends ProductModel { @TableField(exist = false) private String topProductName; private List<String> batchNoList; } src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
@@ -32,6 +32,7 @@ import java.io.OutputStream; import java.net.URLEncoder; import java.util.List; import java.util.Map; /** * 采购台账Controller @@ -250,4 +251,14 @@ public AjaxResult createPurchaseNo() { return AjaxResult.success("生成成功",purchaseLedgerService.getPurchaseNo()); } @Operation(summary = "获取采购单打印数据") @GetMapping("/printData/{id}") public AjaxResult printData(@PathVariable Long id) { Map<String, Object> data = purchaseLedgerService.getPrintData(id); if (data == null) { return AjaxResult.error("采购单不存在"); } return AjaxResult.success(data); } } src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java
@@ -10,6 +10,7 @@ import org.springframework.web.multipart.MultipartFile; import java.util.List; import java.util.Map; /** * 采购台账Service接口 @@ -44,4 +45,6 @@ AjaxResult importData(MultipartFile file); PurchaseLedgerDto getPurchaseByCode(PurchaseLedgerDto purchaseLedgerDto); Map<String, Object> getPrintData(Long id); } src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -29,7 +29,9 @@ import com.ruoyi.other.mapper.TempFileMapper; import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper; import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage; 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.purchase.dto.PurchaseLedgerDto; import com.ruoyi.purchase.dto.PurchaseLedgerImportDto; @@ -87,6 +89,7 @@ private final SysUserMapper userMapper; private final TempFileMapper tempFileMapper; private final CommonFileMapper commonFileMapper; private final SysDeptMapper sysDeptMapper; private final SupplierManageMapper supplierManageMapper; private final ProductMapper productMapper; private final ProductModelMapper productModelMapper; @@ -668,4 +671,23 @@ } return sb.toString(); } @Override public Map<String, Object> getPrintData(Long id) { PurchaseLedger purchaseLedger = getById(id); if (purchaseLedger == null) { return null; } List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList( new LambdaQueryWrapper<SalesLedgerProduct>() .eq(SalesLedgerProduct::getSalesLedgerId, id) .eq(SalesLedgerProduct::getType, 2) ); SysDept dept = sysDeptMapper.selectDeptById(100L); Map<String, Object> result = new HashMap<>(); result.put("companyName", dept != null ? dept.getDeptName() : ""); result.put("ledger", purchaseLedger); result.put("products", products); return result; } } src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -281,4 +281,14 @@ public R getSalesLedgerWithProductsLoss(Long salesLedgerId) { return R.ok(salesLedgerService.getSalesLedgerWithProductsLoss(salesLedgerId)); } @Operation(summary = "获取销售单打印数据") @GetMapping("/printData/{id}") public AjaxResult printData(@PathVariable Long id) { Map<String, Object> data = salesLedgerService.getPrintData(id); if (data == null) { return AjaxResult.error("销售单不存在"); } return AjaxResult.success(data); } } src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
@@ -18,6 +18,7 @@ import jakarta.validation.constraints.NotNull; import java.math.BigDecimal; import java.util.List; import java.util.Map; /** * 销售台账Service接口 @@ -55,4 +56,6 @@ List<LossProductModelDto> getSalesLedgerWithProductsLoss(Long salesLedgerId); IPage<SalesLedgerDto> listSalesLedger(SalesLedgerDto salesLedgerDto, Page page); Map<String, Object> getPrintData(Long id); } src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -778,4 +778,19 @@ return totalAmount; } } @Override public Map<String, Object> getPrintData(Long id) { SalesLedgerDto dto = new SalesLedgerDto(); dto.setId(id); SalesLedgerDto ledger = getSalesLedgerWithProducts(dto); if (ledger == null) { return null; } SysDept dept = sysDeptMapper.selectDeptById(100L); Map<String, Object> result = new HashMap<>(); result.put("companyName", dept != null ? dept.getDeptName() : ""); result.put("ledger", ledger); return result; } } src/main/resources/mapper/basic/ProductModelMapper.xml
@@ -16,6 +16,7 @@ <resultMap id="ProductModelVoResultMap" type="com.ruoyi.basic.vo.ProductModelVo" extends="BaseResultMap"> <result column="create_time" property="createTime" /> <result column="top_product_name" property="topProductName" /> <collection property="batchNoList" ofType="java.lang.String" column="{productModelId=id}" @@ -23,9 +24,20 @@ </resultMap> <select id="listPageProductModel" resultMap="ProductModelVoResultMap"> select pm.*,p.product_name WITH RECURSIVE product_root AS ( SELECT id, parent_id, product_name FROM product WHERE parent_id IS NULL UNION ALL SELECT p.id, p.parent_id, pr.product_name FROM product p INNER JOIN product_root pr ON p.parent_id = pr.id ) select pm.*, p.product_name, pr.product_name as top_product_name from product_model pm left join product p on pm.product_id = p.id left join product_root pr on p.id = pr.id <where> <if test="c.model != null and c.model != ''"> and pm.model like concat('%',#{c.model},'%')