From 436d2ae994f2ab3553da7f8a2828ef80cf982eae Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期四, 08 五月 2025 17:10:39 +0800
Subject: [PATCH] 开票登记功能开发

---
 src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml           |   38 ++++
 src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java |  111 ++++++++++++
 src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationProductDto.java           |    9 +
 src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationMapper.java            |   19 ++
 src/main/java/com/ruoyi/sales/pojo/InvoiceRegistrationProduct.java             |   87 +++++++++
 src/main/java/com/ruoyi/sales/service/InvoiceRegistrationService.java          |   49 +++++
 src/main/java/com/ruoyi/sales/pojo/InvoiceRegistration.java                    |   53 +++++
 src/main/resources/mapper/sales/InvoiceRegistrationMapper.xml                  |   21 ++
 src/main/java/com/ruoyi/sales/controller/InvoiceRegistrationController.java    |   73 ++++++++
 src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationDto.java                  |   16 +
 src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationProductMapper.java     |   19 ++
 11 files changed, 495 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/controller/InvoiceRegistrationController.java b/src/main/java/com/ruoyi/sales/controller/InvoiceRegistrationController.java
new file mode 100644
index 0000000..5dd3c0f
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/controller/InvoiceRegistrationController.java
@@ -0,0 +1,73 @@
+package com.ruoyi.sales.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.sales.dto.InvoiceRegistrationDto;
+import com.ruoyi.sales.dto.InvoiceRegistrationProductDto;
+import com.ruoyi.sales.service.InvoiceRegistrationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/invoiceRegistration")
+public class InvoiceRegistrationController {
+
+    @Autowired
+    private InvoiceRegistrationService invoiceRegistrationService;
+
+    /**
+     * 寮�绁ㄧ櫥璁版柊澧�
+     * @param invoiceRegistrationDto
+     * @return
+     */
+    @PostMapping("/add")
+    public AjaxResult invoiceRegistrationAdd(@RequestBody InvoiceRegistrationDto invoiceRegistrationDto) {
+        invoiceRegistrationService.invoiceRegistrationAdd(invoiceRegistrationDto);
+        return AjaxResult.success();
+    }
+
+    /**
+     * 寮�绁ㄧ櫥璁板垹闄�
+     * @param ids
+     * @return
+     */
+    @DeleteMapping("/del")
+    public AjaxResult invoiceRegistrationDel(List<Integer> ids) {
+        invoiceRegistrationService.invoiceRegistrationDel(ids);
+        return AjaxResult.success();
+    }
+
+    /**
+     * 寮�绁ㄨ褰曚慨鏀�
+     * @param invoiceRegistrationDto
+     * @return
+     */
+    @PostMapping("/update")
+    public AjaxResult invoiceRegistrationUpdate(@RequestBody InvoiceRegistrationDto invoiceRegistrationDto) {
+        invoiceRegistrationService.invoiceRegistrationUpdate(invoiceRegistrationDto);
+        return AjaxResult.success();
+    }
+
+    /**
+     * 寮�绁ㄧ櫥璁板垎椤垫煡璇�
+     * @param page
+     * @param invoiceRegistrationDto
+     * @return
+     */
+    @GetMapping("/listPage")
+    public AjaxResult invoiceRegistrationListPage(Page page, InvoiceRegistrationDto invoiceRegistrationDto) {
+        return AjaxResult.success(invoiceRegistrationService.invoiceRegistrationListPage(page, invoiceRegistrationDto));
+    }
+
+    /**
+     * 寮�绁ㄧ櫥璁颁骇鍝佹煡璇�
+     * @param invoiceRegistrationProductDto
+     * @return
+     */
+    @GetMapping("/productList")
+    public AjaxResult invoiceRegistrationProductList(InvoiceRegistrationProductDto invoiceRegistrationProductDto) {
+        return AjaxResult.success(invoiceRegistrationService.invoiceRegistrationProductList(invoiceRegistrationProductDto));
+    }
+}
diff --git a/src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationDto.java b/src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationDto.java
new file mode 100644
index 0000000..92d95fa
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationDto.java
@@ -0,0 +1,16 @@
+package com.ruoyi.sales.dto;
+
+import com.ruoyi.sales.pojo.InvoiceRegistration;
+import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class InvoiceRegistrationDto extends InvoiceRegistration {
+
+    @ApiModelProperty(name = "寮�绁ㄧ櫥璁颁骇鍝侀泦鍚�")
+    private List<InvoiceRegistrationProductDto> productDtoList;
+
+}
diff --git a/src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationProductDto.java b/src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationProductDto.java
new file mode 100644
index 0000000..9a86ebd
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationProductDto.java
@@ -0,0 +1,9 @@
+package com.ruoyi.sales.dto;
+
+import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
+import lombok.Data;
+
+@Data
+public class InvoiceRegistrationProductDto extends InvoiceRegistrationProduct {
+
+}
diff --git a/src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationMapper.java b/src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationMapper.java
new file mode 100644
index 0000000..88a3ebf
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationMapper.java
@@ -0,0 +1,19 @@
+package com.ruoyi.sales.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.sales.dto.InvoiceRegistrationDto;
+import com.ruoyi.sales.pojo.InvoiceRegistration;
+import org.apache.ibatis.annotations.Param;
+
+public interface InvoiceRegistrationMapper extends BaseMapper<InvoiceRegistration> {
+
+    /**
+     * 寮�绁ㄧ櫥璁板垎椤垫煡璇�
+     * @param page
+     * @param invoiceRegistrationDto
+     * @return
+     */
+    IPage<InvoiceRegistrationDto> invoiceRegistrationListPage(Page page, @Param("invoiceRegistrationDto") InvoiceRegistrationDto invoiceRegistrationDto);
+}
diff --git a/src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationProductMapper.java b/src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationProductMapper.java
new file mode 100644
index 0000000..754a7d7
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationProductMapper.java
@@ -0,0 +1,19 @@
+package com.ruoyi.sales.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.sales.dto.InvoiceRegistrationProductDto;
+import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface InvoiceRegistrationProductMapper extends BaseMapper<InvoiceRegistrationProduct> {
+
+    /**
+     * 寮�绁ㄧ櫥璁颁骇鍝佹煡璇�
+     * @param invoiceRegistrationProductDto
+     * @return
+     */
+    List<InvoiceRegistrationProductDto> invoiceRegistrationProductList(@Param("invoiceRegistrationProductDto") InvoiceRegistrationProductDto invoiceRegistrationProductDto);
+
+}
diff --git a/src/main/java/com/ruoyi/sales/pojo/InvoiceRegistration.java b/src/main/java/com/ruoyi/sales/pojo/InvoiceRegistration.java
new file mode 100644
index 0000000..0b8849d
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/pojo/InvoiceRegistration.java
@@ -0,0 +1,53 @@
+package com.ruoyi.sales.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+@TableName("invoice_registration")
+public class InvoiceRegistration {
+
+    /**
+     * 搴忓彿
+     */
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "閿�鍞彴璐ales_ledger涓婚敭")
+    private Integer salesLedgerId;
+
+    @ApiModelProperty(value = "閿�鍞悎鍚屽彿")
+    private String salesContractNo;
+
+    @ApiModelProperty(value = "瀹㈡埛鍚嶇ОID")
+    private Integer customerId;
+
+    @ApiModelProperty(value = "涓氬姟鍛�")
+    private String salesman;
+
+    @ApiModelProperty(value = "椤圭洰鍚嶇О")
+    private String projectName;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    @ApiModelProperty(value = "绉熸埛ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer tenantId;
+}
diff --git a/src/main/java/com/ruoyi/sales/pojo/InvoiceRegistrationProduct.java b/src/main/java/com/ruoyi/sales/pojo/InvoiceRegistrationProduct.java
new file mode 100644
index 0000000..3e683d8
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/pojo/InvoiceRegistrationProduct.java
@@ -0,0 +1,87 @@
+package com.ruoyi.sales.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@TableName("invoice_registration_product")
+@Data
+public class InvoiceRegistrationProduct {
+
+    /**
+     * 搴忓彿
+     */
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "鍏宠仈閿�鍞彴璐︿富琛ㄤ富閿�")
+    private Integer salesLedgerId;
+
+    @ApiModelProperty(value = "sales_ledger_product涓婚敭")
+    private Integer salesLedgerProductId;
+
+    @ApiModelProperty(value = "寮�绁ㄧ櫥璁拌〃invoice_registration涓婚敭")
+    private Integer invoiceRegistrationId;
+
+    @ApiModelProperty(value = "浜у搧澶х被")
+    private String productCategory;
+
+    @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
+    private String specificationModel;
+
+    @ApiModelProperty(value = "鍗曚綅")
+    private String unit;
+
+    @ApiModelProperty(value = "鏁伴噺")
+    private BigDecimal quantity;
+
+    @ApiModelProperty(value = "绋庣巼")
+    private BigDecimal taxRate;
+
+    @ApiModelProperty(value = "鍚◣鍗曚环")
+    private BigDecimal taxInclusiveUnitPrice;
+
+    @ApiModelProperty(value = "鍚◣鎬讳环")
+    private BigDecimal taxInclusiveTotalPrice;
+
+    @ApiModelProperty(value = "涓嶅惈绋庢�讳环")
+    private BigDecimal taxExclusiveTotalPrice;
+
+    @ApiModelProperty(value = "鍙戠エ绫诲瀷")
+    private String invoiceType;
+
+    @ApiModelProperty(value = "寮�绁ㄦ暟")
+    private Integer invoiceNum;
+
+    @ApiModelProperty(value = "鏈紑绁ㄦ暟")
+    private Integer noInvoiceNum;
+
+    @ApiModelProperty(value = "寮�绁ㄩ噾棰�")
+    private BigDecimal invoiceAmount;
+
+    @ApiModelProperty(value = "鏈紑绁ㄩ噾棰�")
+    private BigDecimal noInvoiceAmount;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    @ApiModelProperty(value = "绉熸埛ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer tenantId;
+}
diff --git a/src/main/java/com/ruoyi/sales/service/InvoiceRegistrationService.java b/src/main/java/com/ruoyi/sales/service/InvoiceRegistrationService.java
new file mode 100644
index 0000000..8cdd13d
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/service/InvoiceRegistrationService.java
@@ -0,0 +1,49 @@
+package com.ruoyi.sales.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.sales.dto.InvoiceRegistrationDto;
+import com.ruoyi.sales.dto.InvoiceRegistrationProductDto;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+public interface InvoiceRegistrationService {
+
+    /**
+     * 寮�绁ㄧ櫥璁版柊澧�
+     * @param invoiceRegistrationDto
+     * @return
+     */
+    void invoiceRegistrationAdd(InvoiceRegistrationDto invoiceRegistrationDto);
+
+    /**
+     * 寮�绁ㄧ櫥璁板垹闄�
+     * @param ids
+     * @return
+     */
+    int invoiceRegistrationDel(List<Integer> ids);
+
+
+    /**
+     * 寮�绁ㄨ褰曚慨鏀�
+     * @param invoiceRegistrationDto
+     * @return
+     */
+    void invoiceRegistrationUpdate(InvoiceRegistrationDto invoiceRegistrationDto);
+
+    /**
+     * 寮�绁ㄧ櫥璁板垎椤垫煡璇�
+     * @param page
+     * @param invoiceRegistrationDto
+     * @return
+     */
+    IPage<InvoiceRegistrationDto> invoiceRegistrationListPage(Page page, InvoiceRegistrationDto invoiceRegistrationDto);
+
+    /**
+     * 寮�绁ㄧ櫥璁颁骇鍝佹煡璇�
+     * @param invoiceRegistrationProductDto
+     * @return
+     */
+    List<InvoiceRegistrationProductDto> invoiceRegistrationProductList(InvoiceRegistrationProductDto invoiceRegistrationProductDto);
+}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
new file mode 100644
index 0000000..eaf278b
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
@@ -0,0 +1,111 @@
+package com.ruoyi.sales.service.impl;
+
+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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.sales.dto.InvoiceRegistrationDto;
+import com.ruoyi.sales.dto.InvoiceRegistrationProductDto;
+import com.ruoyi.sales.mapper.InvoiceRegistrationMapper;
+import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper;
+import com.ruoyi.sales.pojo.InvoiceRegistration;
+import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
+import com.ruoyi.sales.service.InvoiceRegistrationService;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Collections;
+import java.util.List;
+
+@Service
+public class InvoiceRegistrationServiceImpl extends ServiceImpl<InvoiceRegistrationMapper, InvoiceRegistration> implements InvoiceRegistrationService {
+
+    private InvoiceRegistrationMapper invoiceRegistrationMapper;
+
+    private InvoiceRegistrationProductMapper invoiceRegistrationProductMapper;
+
+
+    /**
+     * 寮�绁ㄧ櫥璁版柊澧�
+     * @param invoiceRegistrationDto
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void invoiceRegistrationAdd(InvoiceRegistrationDto invoiceRegistrationDto) {
+        InvoiceRegistration invoiceRegistration = new InvoiceRegistration();
+        BeanUtils.copyProperties(invoiceRegistrationDto, invoiceRegistration);
+        // 鏂板寮�绁ㄧ櫥璁�
+        invoiceRegistrationMapper.insert(invoiceRegistration);
+        List<InvoiceRegistrationProductDto> productDtoList = invoiceRegistrationDto.getProductDtoList();
+        // 鏂板寮�绁ㄤ骇鍝佺櫥璁�
+        if(CollectionUtils.isNotEmpty(productDtoList)){
+            for (InvoiceRegistrationProductDto invoiceRegistrationProductDto : productDtoList) {
+                InvoiceRegistrationProduct invoiceRegistrationProduct = new InvoiceRegistrationProduct();
+                BeanUtils.copyProperties(invoiceRegistrationProductDto, invoiceRegistrationProduct);
+                invoiceRegistrationProduct.setInvoiceRegistrationId(invoiceRegistration.getId());
+                invoiceRegistrationProductMapper.insert(invoiceRegistrationProduct);
+            }
+        }
+    }
+
+    /**
+     * 寮�绁ㄧ櫥璁板垹闄�
+     * @param ids
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int invoiceRegistrationDel(List<Integer> ids) {
+        int excuteNum = invoiceRegistrationMapper.deleteBatchIds(ids);
+        LambdaQueryWrapper<InvoiceRegistrationProduct> delWrapper = new LambdaQueryWrapper<>();
+        delWrapper.in(InvoiceRegistrationProduct::getInvoiceRegistrationId, ids);
+        invoiceRegistrationProductMapper.delete(delWrapper);
+        return excuteNum;
+    }
+
+    /**
+     * 寮�绁ㄨ褰曚慨鏀�
+     * @param invoiceRegistrationDto
+     * @return
+     */
+    @Override
+    public void invoiceRegistrationUpdate(InvoiceRegistrationDto invoiceRegistrationDto) {
+        InvoiceRegistration invoiceRegistration = new InvoiceRegistration();
+        BeanUtils.copyProperties(invoiceRegistrationDto, invoiceRegistration);
+        // 寮�绁ㄧ櫥璁颁慨鏀�
+        invoiceRegistrationMapper.updateById(invoiceRegistration);
+        List<InvoiceRegistrationProductDto> productDtoList = invoiceRegistrationDto.getProductDtoList();
+        // 寮�绁ㄤ骇鍝佺櫥璁颁慨鏀�
+        if(CollectionUtils.isNotEmpty(productDtoList)){
+            for (InvoiceRegistrationProductDto invoiceRegistrationProductDto : productDtoList) {
+                InvoiceRegistrationProduct invoiceRegistrationProduct = new InvoiceRegistrationProduct();
+                BeanUtils.copyProperties(invoiceRegistrationProductDto, invoiceRegistrationProduct);
+                invoiceRegistrationProductMapper.updateById(invoiceRegistrationProduct);
+            }
+        }
+    }
+
+    /**
+     * 寮�绁ㄧ櫥璁板垎椤垫煡璇�
+     * @param page
+     * @param invoiceRegistrationDto
+     * @return
+     */
+    @Override
+    public IPage<InvoiceRegistrationDto> invoiceRegistrationListPage(Page page, InvoiceRegistrationDto invoiceRegistrationDto) {
+        return null;
+    }
+
+    /**
+     * 寮�绁ㄧ櫥璁颁骇鍝佹煡璇�
+     * @param invoiceRegistrationProductDto
+     * @return
+     */
+    @Override
+    public List<InvoiceRegistrationProductDto> invoiceRegistrationProductList(InvoiceRegistrationProductDto invoiceRegistrationProductDto) {
+        return Collections.emptyList();
+    }
+}
diff --git a/src/main/resources/mapper/sales/InvoiceRegistrationMapper.xml b/src/main/resources/mapper/sales/InvoiceRegistrationMapper.xml
new file mode 100644
index 0000000..b263bb6
--- /dev/null
+++ b/src/main/resources/mapper/sales/InvoiceRegistrationMapper.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.sales.mapper.InvoiceRegistrationMapper">
+    <select id="invoiceRegistrationListPage" resultType="com.ruoyi.sales.dto.InvoiceRegistrationDto">
+        SELECT
+            id              ,
+            sales_ledger_id   ,
+            sales_contract_no ,
+            customer_id       ,
+            salesman          ,
+            project_name      ,
+            create_time       ,
+            create_user       ,
+            update_time       ,
+            update_user       ,
+            tenant_id
+        FROM invoice_registration
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml b/src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml
new file mode 100644
index 0000000..5a6b7c1
--- /dev/null
+++ b/src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper">
+
+    <select id="invoiceRegistrationProductList" resultType="com.ruoyi.sales.dto.InvoiceRegistrationDto">
+        SELECT
+            id   ,
+            sales_ledger_id           ,
+            sales_ledger_product_id   ,
+            invoice_registration_id   ,
+            product_category          ,
+            specification_model       ,
+            unit                      ,
+            quantity                  ,
+            tax_rate                  ,
+            tax_inclusive_unit_price  ,
+            tax_inclusive_total_price ,
+            tax_exclusive_total_price ,
+            invoice_type              ,
+            invoice_num               ,
+            invoice_amount            ,
+            no_invoice_num            ,
+            no_invoice_amount         ,
+            create_time               ,
+            create_user               ,
+            update_time               ,
+            update_user               ,
+            tenant_id                 ,
+        FROM invoice_registration_product
+        <where>
+            <if test="invoiceRegistrationProductDto.invoiceRegistrationId != null">
+                invoice_registration_id = #{invoiceRegistrationProductDto.invoiceRegistrationId}
+            </if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3