From d1903c17568e1c373ca37a8baddbefbc330d12bf Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期一, 26 五月 2025 16:31:35 +0800
Subject: [PATCH] 开票台账功能修改

---
 src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml          |    3 +
 src/main/java/com/ruoyi/project/system/service/ISysDeptService.java           |    7 ++
 src/main/resources/mapper/sales/ReceiptPaymentMapper.xml                      |    4 
 src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java                    |    4 +
 src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java      |    8 ++
 src/main/java/com/ruoyi/sales/mapper/InvoiceLedgerMapper.java                 |    7 ++
 src/main/java/com/ruoyi/sales/pojo/SalesLedger.java                           |    5 +
 src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java                  |    3 
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java |   38 +++++++++++-
 src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java           |   25 ++++++++
 src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java                       |    3 +
 src/main/java/com/ruoyi/project/system/controller/SysUserController.java      |    5 +
 src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java   |   10 +++
 src/main/resources/mapper/sales/InvoiceLedgerMapper.xml                       |   17 +++++
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java        |    3 +
 src/main/java/com/ruoyi/project/system/mapper/SysDeptMapper.java              |    7 ++
 src/main/resources/mapper/system/SysUserMapper.xml                            |    2 
 src/main/resources/mapper/system/SysDeptMapper.xml                            |   19 ++++++
 18 files changed, 160 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java b/src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java
index d299d21..a458ca6 100644
--- a/src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java
+++ b/src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java
@@ -29,7 +29,6 @@
         IGNORE_TABLES.add("sales_ledger_file");
         IGNORE_TABLES.add("temp_file");
         IGNORE_TABLES.add("common_file");
-
-
+        IGNORE_TABLES.add("DepartmentHierarchy");
     }
 }
diff --git a/src/main/java/com/ruoyi/project/system/controller/SysUserController.java b/src/main/java/com/ruoyi/project/system/controller/SysUserController.java
index 16794a3..79b0c99 100644
--- a/src/main/java/com/ruoyi/project/system/controller/SysUserController.java
+++ b/src/main/java/com/ruoyi/project/system/controller/SysUserController.java
@@ -140,6 +140,11 @@
         }
         user.setCreateBy(getUsername());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        // 鏌ヨ椤跺眰閮ㄩ棬鐖秈d鍋氫负绉熸埛tenant_id
+        Long tenantId = deptService.maxLevelDeptId(user.getDeptId());
+        if(tenantId != null){
+            user.setTenantId(tenantId.intValue());
+        }
         return toAjax(userService.insertUser(user));
     }
 
diff --git a/src/main/java/com/ruoyi/project/system/mapper/SysDeptMapper.java b/src/main/java/com/ruoyi/project/system/mapper/SysDeptMapper.java
index 31223c8..0b4dae4 100644
--- a/src/main/java/com/ruoyi/project/system/mapper/SysDeptMapper.java
+++ b/src/main/java/com/ruoyi/project/system/mapper/SysDeptMapper.java
@@ -115,4 +115,11 @@
      * @return 缁撴灉
      */
     public int deleteDeptById(Long deptId);
+
+    /**
+     * 鏌ヨ椤跺眰閮ㄩ棬id
+     * @param deptId
+     * @return
+     */
+    Long maxLevelDeptId(Long deptId);
 }
diff --git a/src/main/java/com/ruoyi/project/system/service/ISysDeptService.java b/src/main/java/com/ruoyi/project/system/service/ISysDeptService.java
index abb72d1..77eda76 100644
--- a/src/main/java/com/ruoyi/project/system/service/ISysDeptService.java
+++ b/src/main/java/com/ruoyi/project/system/service/ISysDeptService.java
@@ -121,4 +121,11 @@
      * @return 缁撴灉
      */
     public int deleteDeptById(Long deptId);
+
+    /**
+     * 鏌ヨ椤跺眰閮ㄩ棬id
+     * @param deptId
+     * @return
+     */
+    Long maxLevelDeptId(Long deptId);
 }
diff --git a/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java b/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java
index a96a5ae..eae688f 100644
--- a/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java
+++ b/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java
@@ -294,6 +294,16 @@
     }
 
     /**
+     * 鏌ヨ椤跺眰閮ㄩ棬id
+     * @param deptId
+     * @return
+     */
+    @Override
+    public Long maxLevelDeptId(Long deptId) {
+        return deptMapper.maxLevelDeptId(deptId);
+    }
+
+    /**
      * 閫掑綊鍒楄〃
      */
     private void recursionFn(List<SysDept> list, SysDept t)
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
index a85c360..c7b7ccf 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -6,16 +6,21 @@
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.framework.web.page.TableDataInfo;
+import com.ruoyi.sales.dto.InvoiceLedgerDto;
 import com.ruoyi.sales.dto.SalesLedgerDto;
+import com.ruoyi.sales.mapper.InvoiceLedgerMapper;
 import com.ruoyi.sales.pojo.SalesLedger;
 import com.ruoyi.sales.service.ICommonFileService;
 import com.ruoyi.sales.service.ISalesLedgerService;
 import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 閿�鍞彴璐ontroller
@@ -32,6 +37,9 @@
 
     private ICommonFileService commonFileService;
 
+    @Autowired
+    private InvoiceLedgerMapper invoiceLedgerMapper;
+
     /**
      * 鏌ヨ閿�鍞彴璐﹀垪琛�
      */
@@ -39,6 +47,23 @@
     public TableDataInfo list(SalesLedgerDto salesLedgerDto) {
         startPage();
         List<SalesLedger> list = salesLedgerService.selectSalesLedgerList(salesLedgerDto);
+        // 璁$畻宸插紑绁ㄩ噾棰�/鏈紑绁ㄩ噾棰�(宸插~鍐欏彂绁ㄩ噾棰濅负鍑�)
+        if(CollectionUtils.isEmpty(list)){
+            return getDataTable(list);
+        }
+        List<Long> salesLedgerIds = list.stream().map(SalesLedger::getId).collect(Collectors.toList());
+        List<InvoiceLedgerDto> invoiceLedgerDtoList = invoiceLedgerMapper.invoicedTotal(salesLedgerIds);
+        if(CollectionUtils.isEmpty(invoiceLedgerDtoList)){
+            return getDataTable(list);
+        }
+        for (SalesLedger salesLedger : list) {
+            for (InvoiceLedgerDto invoiceLedgerDto : invoiceLedgerDtoList) {
+                if (salesLedger.getId().intValue() == invoiceLedgerDto.getSalesLedgerId()) {
+                    BigDecimal noInvoiceAmountTotal = salesLedger.getContractAmount().subtract(invoiceLedgerDto.getInvoiceTotal());
+                    salesLedger.setNoInvoiceAmountTotal(noInvoiceAmountTotal);
+                }
+            }
+        }
         return getDataTable(list);
     }
 
diff --git a/src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java b/src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java
index 123ae25..c93e934 100644
--- a/src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java
@@ -39,4 +39,7 @@
 
     @ApiModelProperty(value = "閿�鍞悎鍚屽彿")
     private String salesContractNo;
+
+    @ApiModelProperty(value = "閿�鍞悎鍚孖D")
+    private Integer salesLedgerId;
 }
diff --git a/src/main/java/com/ruoyi/sales/mapper/InvoiceLedgerMapper.java b/src/main/java/com/ruoyi/sales/mapper/InvoiceLedgerMapper.java
index 7729ad1..a797024 100644
--- a/src/main/java/com/ruoyi/sales/mapper/InvoiceLedgerMapper.java
+++ b/src/main/java/com/ruoyi/sales/mapper/InvoiceLedgerMapper.java
@@ -50,4 +50,11 @@
      */
     InvoiceRegistrationProductDto invoiceLedgerProductInfo(Integer id);
 
+    /**
+     * 鏍规嵁閿�鍞悎鍚岃绠楀凡寮�绁ㄩ噾棰�
+     * @param salesLedgerIds
+     * @return
+     */
+    List<InvoiceLedgerDto> invoicedTotal(List<Long> salesLedgerIds);
+
 }
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
index 2ebf084..def5e39 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
@@ -93,5 +94,9 @@
      */
     @Excel(name = "鍚堝悓閲戦")
     private BigDecimal contractAmount;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "鏈紑绁ㄩ噾棰�(鍏�)")
+    private BigDecimal noInvoiceAmountTotal;
 }
 
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index 7c73d97..4c11359 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -141,4 +141,8 @@
      * 浜у搧瑙勬牸id
      */
     private Long productModelId;
+
+    @ApiModelProperty(value = "鍒濆鏈紑绁ㄦ暟")
+    @TableField(exist = false)
+    private Integer originalNoInvoiceNum;
 }
diff --git a/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
index 696f72e..55a2f7a 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
@@ -210,11 +210,17 @@
         if(CollectionUtils.isEmpty(invoiceLedgerDto.getFileList())){
             throw new RuntimeException("缂哄皯鏂囦欢淇℃伅");
         }
+        QueryWrapper<InvoiceLedger> ledgerQueryWrapper = new QueryWrapper<>();
+        ledgerQueryWrapper.eq("invoice_registration_product_id", invoiceLedgerDto.getId());
+        InvoiceLedger invoiceLedger = invoiceLedgerMapper.selectOne(ledgerQueryWrapper);
+        if(ObjectUtils.isEmpty(invoiceLedger)){
+            throw new RuntimeException("寮�绁ㄥ彴璐︽湭鐧昏");
+        }
         List<FileVo> fileList = invoiceLedgerDto.getFileList();
         fileList.forEach(fileVo -> {
             InvoiceLedgerFile invoiceLedgerFile = new InvoiceLedgerFile();
             BeanUtils.copyProperties(fileVo, invoiceLedgerFile);
-            invoiceLedgerFile.setInvoiceLedgerId(invoiceLedgerDto.getId());
+            invoiceLedgerFile.setInvoiceLedgerId(invoiceLedger.getId());
             invoiceLedgerFileMapper.insert(invoiceLedgerFile);
         });
     }
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
index b34d193..76c74ac 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -1,25 +1,28 @@
 package com.ruoyi.sales.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
 import com.ruoyi.purchase.pojo.PurchaseLedger;
+import com.ruoyi.sales.dto.InvoiceRegistrationProductDto;
+import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper;
 import com.ruoyi.sales.mapper.SalesLedgerMapper;
 import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
+import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
 import com.ruoyi.sales.pojo.SalesLedger;
 import com.ruoyi.sales.pojo.SalesLedgerProduct;
 import com.ruoyi.sales.service.ISalesLedgerProductService;
 import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import java.lang.reflect.Field;
 import java.math.BigDecimal;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -39,6 +42,9 @@
 
     private PurchaseLedgerMapper purchaseLedgerMapper;
 
+    @Autowired
+    private InvoiceRegistrationProductMapper invoiceRegistrationProductMapper;
+
     @Override
     public SalesLedgerProduct selectSalesLedgerProductById(Long id) {
         return salesLedgerProductMapper.selectById(id);
@@ -49,7 +55,29 @@
         LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedgerProduct.getSalesLedgerId())
                 .eq(SalesLedgerProduct::getType, salesLedgerProduct.getType());
-        return salesLedgerProductMapper.selectList(queryWrapper);
+        List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectList(queryWrapper);
+        if(!CollectionUtils.isEmpty(salesLedgerProducts)){
+            InvoiceRegistrationProductDto invoiceRegistrationProductDto = new InvoiceRegistrationProductDto();
+            invoiceRegistrationProductDto.setSalesLedgerId(salesLedgerProduct.getSalesLedgerId().intValue());
+            List<InvoiceRegistrationProductDto> invoiceRegistrationProductDtoList = invoiceRegistrationProductMapper.invoiceRegistrationProductList(invoiceRegistrationProductDto);
+            // 缁熻寮�绁ㄧ櫥璁颁骇鍝佺殑宸插紑绁ㄦ暟/宸插紑绁ㄩ噾棰�
+            if(!CollectionUtils.isEmpty(invoiceRegistrationProductDtoList)){
+                for (SalesLedgerProduct ledgerProduct : salesLedgerProducts) {
+                    int invoiceNum = 0;
+                    BigDecimal invoiceAmount = BigDecimal.ZERO;
+                    for (InvoiceRegistrationProductDto registrationProductDto : invoiceRegistrationProductDtoList) {
+                        if(ledgerProduct.getId().intValue() == registrationProductDto.getSalesLedgerProductId()){
+                            invoiceNum += registrationProductDto.getInvoiceNum();
+                            invoiceAmount = invoiceAmount.add(registrationProductDto.getInvoiceAmount());
+                        }
+                    }
+                    ledgerProduct.setInvoiceNum(invoiceNum);
+                    ledgerProduct.setInvoiceAmount(invoiceAmount);
+                }
+            }
+
+        }
+        return salesLedgerProducts;
     }
 
     @Override
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 1b33c06..00495e0 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -100,6 +100,9 @@
         LambdaQueryWrapper<SalesLedgerProduct> productWrapper = new LambdaQueryWrapper<>();
         productWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedger.getId());
         List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(productWrapper);
+        for (SalesLedgerProduct product : products) {
+            product.setOriginalNoInvoiceNum(product.getNoInvoiceNum());
+        }
 
         // 3.鏌ヨ涓婁紶鏂囦欢
         LambdaQueryWrapper<CommonFile> salesLedgerFileWrapper = new LambdaQueryWrapper<>();
diff --git a/src/main/resources/mapper/sales/InvoiceLedgerMapper.xml b/src/main/resources/mapper/sales/InvoiceLedgerMapper.xml
index 7bc19bd..8a33701 100644
--- a/src/main/resources/mapper/sales/InvoiceLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/InvoiceLedgerMapper.xml
@@ -167,5 +167,22 @@
         WHERE T1.id = #{id}
     </select>
 
+    <select id="invoicedTotal" resultType="com.ruoyi.sales.dto.InvoiceLedgerDto">
+        SELECT
+            IFNULL(SUM(T1.invoice_total),0) AS invoice_total,
+            T2.sales_ledger_id
+        FROM
+            invoice_ledger T1
+                LEFT JOIN invoice_registration_product T2 ON T1.invoice_registration_product_id = T2.id
+        <where>
+            AND T2.sales_ledger_id IN
+            <foreach collection="salesLedgerIds" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </where>
+        GROUP BY
+            T2.sales_ledger_id
+    </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
index f414e75..cf13c1e 100644
--- a/src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml
+++ b/src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml
@@ -33,6 +33,9 @@
             <if test="invoiceRegistrationProductDto.invoiceRegistrationId != null">
                 invoice_registration_id = #{invoiceRegistrationProductDto.invoiceRegistrationId}
             </if>
+            <if test="invoiceRegistrationProductDto.salesLedgerId != null">
+                sales_ledger_id = #{invoiceRegistrationProductDto.salesLedgerId}
+            </if>
         </where>
     </select>
 
diff --git a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
index 8d185da..a20ea15 100644
--- a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
+++ b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
@@ -29,7 +29,7 @@
                 AND T4.customer_id = #{receiptPaymentDto.customerId}
             </if>
         </where>
-        ORDER BY T1.receipt_payment_date ASC
+        ORDER BY T1.create_time ASC
     </select>
 
     <select id="receiptPaymentInfo" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
@@ -138,7 +138,7 @@
                     T4.customer_id = #{customerId}
 
                 ORDER BY
-                    T1.receipt_payment_date ASC
+                    T1.create_time ASC
                     LIMIT #{total} ) AS limited_rows
     </select>
 
diff --git a/src/main/resources/mapper/system/SysDeptMapper.xml b/src/main/resources/mapper/system/SysDeptMapper.xml
index 6f70f9d..5a7052d 100644
--- a/src/main/resources/mapper/system/SysDeptMapper.xml
+++ b/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -156,4 +156,23 @@
 		update sys_dept set del_flag = '2' where dept_id = #{deptId}
 	</delete>
 
+	<select id="maxLevelDeptId">
+		WITH RECURSIVE DepartmentHierarchy AS (
+			SELECT dept_id, parent_id
+			FROM sys_dept
+			WHERE dept_id = #{deptId}
+
+			UNION ALL
+
+			-- 閫掑綊鎯呭喌锛氬姞鍏ュ綋鍓嶉儴闂ㄧ殑鐖剁骇閮ㄩ棬
+			SELECT d.dept_id, d.parent_id
+			FROM sys_dept d
+					 INNER JOIN DepartmentHierarchy dh ON d.dept_id = dh.parent_id
+		)
+		-- 鏌ヨ鏈�椤剁骇鐨勭埗绾ч儴闂↖D
+		SELECT dept_id as top_level_department_id
+		FROM DepartmentHierarchy
+		WHERE parent_id = 100;
+	</select>
+
 </mapper> 
\ No newline at end of file
diff --git a/src/main/resources/mapper/system/SysUserMapper.xml b/src/main/resources/mapper/system/SysUserMapper.xml
index b4e8f37..fcd4016 100644
--- a/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/src/main/resources/mapper/system/SysUserMapper.xml
@@ -157,6 +157,7 @@
  			<if test="status != null and status != ''">status,</if>
  			<if test="createBy != null and createBy != ''">create_by,</if>
  			<if test="remark != null and remark != ''">remark,</if>
+		    <if test="tenantId != null ">tenant_id,</if>
  			create_time
  		)values(
  			<if test="userId != null and userId != ''">#{userId},</if>
@@ -171,6 +172,7 @@
  			<if test="status != null and status != ''">#{status},</if>
  			<if test="createBy != null and createBy != ''">#{createBy},</if>
  			<if test="remark != null and remark != ''">#{remark},</if>
+		    <if test="tenantId != null ">#{tenantId},</if>
  			sysdate()
  		)
 	</insert>

--
Gitblit v1.9.3