From 7e9fe51df4f324988a86a62e79a26b43d387cb1a Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期一, 12 五月 2025 16:27:51 +0800
Subject: [PATCH] 开票登记前后端联调
---
src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java | 76 +++++++++++++--
src/main/java/com/ruoyi/sales/excel/InvoiceRegisAndProductExcelDto.java | 73 ++++++++++++++
src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java | 11 ++
src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationMapper.java | 9 +
src/main/java/com/ruoyi/sales/service/InvoiceRegistrationService.java | 17 +++
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java | 2
src/main/resources/mapper/sales/InvoiceRegistrationMapper.xml | 65 ++++++++++--
src/main/java/com/ruoyi/sales/controller/InvoiceRegistrationController.java | 29 +++++
src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java | 2
src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationDto.java | 10 ++
src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationProductMapper.java | 2
11 files changed, 266 insertions(+), 30 deletions(-)
diff --git a/src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java b/src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java
index 116fec3..79ae6d6 100644
--- a/src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java
+++ b/src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java
@@ -25,6 +25,6 @@
IGNORE_TABLES.add("sys_logininfor");
IGNORE_TABLES.add("sys_post");
IGNORE_TABLES.add("sys_user_post");
-
+ IGNORE_TABLES.add("sales_ledger_product");
}
}
diff --git a/src/main/java/com/ruoyi/sales/controller/InvoiceRegistrationController.java b/src/main/java/com/ruoyi/sales/controller/InvoiceRegistrationController.java
index 00e1e88..f344ac6 100644
--- a/src/main/java/com/ruoyi/sales/controller/InvoiceRegistrationController.java
+++ b/src/main/java/com/ruoyi/sales/controller/InvoiceRegistrationController.java
@@ -8,6 +8,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
import java.util.List;
@RestController
@@ -22,9 +23,9 @@
* @param invoiceRegistrationDto
* @return
*/
- @PostMapping("/add")
- public AjaxResult invoiceRegistrationAdd(@RequestBody InvoiceRegistrationDto invoiceRegistrationDto) {
- invoiceRegistrationService.invoiceRegistrationAdd(invoiceRegistrationDto);
+ @PostMapping("/saveOrUpdate")
+ public AjaxResult invoiceRegistrationSaveOrUpdate(@RequestBody InvoiceRegistrationDto invoiceRegistrationDto) {
+ invoiceRegistrationService.invoiceRegistrationSaveOrUpdate(invoiceRegistrationDto);
return AjaxResult.success();
}
@@ -34,7 +35,7 @@
* @return
*/
@DeleteMapping("/del")
- public AjaxResult invoiceRegistrationDel(@RequestParam List<Integer> ids) {
+ public AjaxResult invoiceRegistrationDel(@RequestBody List<Integer> ids) {
invoiceRegistrationService.invoiceRegistrationDel(ids);
return AjaxResult.success();
}
@@ -70,4 +71,24 @@
public AjaxResult invoiceRegistrationProductList(InvoiceRegistrationProductDto invoiceRegistrationProductDto) {
return AjaxResult.success(invoiceRegistrationService.invoiceRegistrationProductList(invoiceRegistrationProductDto));
}
+
+ /**
+ * 寮�绁ㄧ櫥璁颁骇鍝佽鎯�
+ * @param id
+ * @return
+ */
+ @GetMapping("/detail")
+ public AjaxResult invoiceRegistrationDetail(Integer id) {
+ return AjaxResult.success(invoiceRegistrationService.invoiceRegistrationDetail(id));
+ }
+
+ /**
+ * 寮�绁ㄧ櫥璁板鍑�
+ * @param response
+ * @param invoiceRegistrationDto
+ */
+ @PostMapping("/export")
+ public void invoiceRegistrationExport(HttpServletResponse response, InvoiceRegistrationDto invoiceRegistrationDto) {
+ invoiceRegistrationService.invoiceRegistrationExport(response, invoiceRegistrationDto);
+ }
}
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
index 1c934a1..19122e8 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -86,4 +86,15 @@
}
return toAjax(salesLedgerService.deleteSalesLedgerByIds(ids));
}
+
+ /**
+ * 鏌ヨ閿�鍞彴璐︿笉鍒嗛〉
+ * @param salesLedgerDto
+ * @return
+ */
+ @GetMapping("/listNoPage")
+ public AjaxResult listNoPage(SalesLedgerDto salesLedgerDto){
+ List<SalesLedger> list = salesLedgerService.selectSalesLedgerList(salesLedgerDto);
+ return AjaxResult.success(list);
+ }
}
diff --git a/src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationDto.java b/src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationDto.java
index 92d95fa..235a534 100644
--- a/src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationDto.java
@@ -5,6 +5,7 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.math.BigDecimal;
import java.util.List;
@Data
@@ -13,4 +14,13 @@
@ApiModelProperty(name = "寮�绁ㄧ櫥璁颁骇鍝侀泦鍚�")
private List<InvoiceRegistrationProductDto> productDtoList;
+ @ApiModelProperty(name = "瀹㈡埛鍚堝悓鍙�")
+ private String customerContractNo;
+
+ @ApiModelProperty(name = "瀹㈡埛鍚嶇О")
+ private String customerName;
+
+ @ApiModelProperty(name = "鍚堝悓閲戦")
+ private BigDecimal contractAmount;
+
}
diff --git a/src/main/java/com/ruoyi/sales/excel/InvoiceRegisAndProductExcelDto.java b/src/main/java/com/ruoyi/sales/excel/InvoiceRegisAndProductExcelDto.java
new file mode 100644
index 0000000..8f042c6
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/excel/InvoiceRegisAndProductExcelDto.java
@@ -0,0 +1,73 @@
+package com.ruoyi.sales.excel;
+
+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.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+public class InvoiceRegisAndProductExcelDto {
+
+ @Excel(name = "閿�鍞悎鍚屽彿")
+ private String salesContractNo;
+
+ @Excel(name = "瀹㈡埛鍚堝悓鍙�")
+ private String customerContractNo;
+
+ @Excel(name = "瀹㈡埛鍚嶇О")
+ private String customerName;
+
+ @Excel(name = "涓氬姟鍛�")
+ private String salesman;
+
+ @Excel(name = "椤圭洰鍚嶇О")
+ private String projectName;
+
+ @Excel(name = "鍚堝悓閲戦")
+ private BigDecimal contractAmount;
+
+ @Excel(name = "浜у搧澶х被")
+ private String productCategory;
+
+ @Excel(name = "瑙勬牸鍨嬪彿")
+ private String specificationModel;
+
+ @Excel(name = "鍗曚綅")
+ private String unit;
+
+ @Excel(name = "鏁伴噺")
+ private BigDecimal quantity;
+
+ @Excel(name = "绋庣巼%")
+ private BigDecimal taxRate;
+
+ @Excel(name = "鍚◣鍗曚环")
+ private BigDecimal taxInclusiveUnitPrice;
+
+ @Excel(name = "鍚◣鎬讳环")
+ private BigDecimal taxInclusiveTotalPrice;
+
+ @Excel(name ="涓嶅惈绋庢�讳环")
+ private BigDecimal taxExclusiveTotalPrice;
+
+ @Excel(name ="鍙戠エ绫诲瀷")
+ private String invoiceType;
+
+ @Excel(name ="寮�绁ㄦ暟")
+ private Integer invoiceNum;
+
+ @Excel(name ="鏈紑绁ㄦ暟")
+ private Integer noInvoiceNum;
+
+ @Excel(name ="寮�绁ㄩ噾棰�")
+ private BigDecimal invoiceAmount;
+
+ @Excel(name ="鏈紑绁ㄩ噾棰�")
+ private BigDecimal noInvoiceAmount;
+
+
+}
diff --git a/src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationMapper.java b/src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationMapper.java
index 88a3ebf..54425c4 100644
--- a/src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationMapper.java
+++ b/src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationMapper.java
@@ -4,8 +4,11 @@
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.excel.InvoiceRegisAndProductExcelDto;
import com.ruoyi.sales.pojo.InvoiceRegistration;
import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
public interface InvoiceRegistrationMapper extends BaseMapper<InvoiceRegistration> {
@@ -16,4 +19,10 @@
* @return
*/
IPage<InvoiceRegistrationDto> invoiceRegistrationListPage(Page page, @Param("invoiceRegistrationDto") InvoiceRegistrationDto invoiceRegistrationDto);
+
+ /**
+ * 寮�绁ㄧ櫥璁板鍑烘暟鎹煡璇�
+ * @return
+ */
+ List<InvoiceRegisAndProductExcelDto> invoiceRegisAndProductExcelDtoList();
}
diff --git a/src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationProductMapper.java b/src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationProductMapper.java
index 754a7d7..6173459 100644
--- a/src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationProductMapper.java
+++ b/src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationProductMapper.java
@@ -1,6 +1,7 @@
package com.ruoyi.sales.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.sales.dto.InvoiceRegistrationDto;
import com.ruoyi.sales.dto.InvoiceRegistrationProductDto;
import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
import org.apache.ibatis.annotations.Param;
@@ -15,5 +16,4 @@
* @return
*/
List<InvoiceRegistrationProductDto> invoiceRegistrationProductList(@Param("invoiceRegistrationProductDto") InvoiceRegistrationProductDto invoiceRegistrationProductDto);
-
}
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index 3d33354..79c397e 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -59,7 +59,7 @@
* 绋庣巼
*/
@Excel(name = "绋庣巼")
- private String taxRate;
+ private BigDecimal taxRate;
/**
* 鍚◣鍗曚环
diff --git a/src/main/java/com/ruoyi/sales/service/InvoiceRegistrationService.java b/src/main/java/com/ruoyi/sales/service/InvoiceRegistrationService.java
index 8cdd13d..6313b93 100644
--- a/src/main/java/com/ruoyi/sales/service/InvoiceRegistrationService.java
+++ b/src/main/java/com/ruoyi/sales/service/InvoiceRegistrationService.java
@@ -6,6 +6,7 @@
import com.ruoyi.sales.dto.InvoiceRegistrationProductDto;
import org.springframework.web.bind.annotation.RequestBody;
+import javax.servlet.http.HttpServletResponse;
import java.util.List;
public interface InvoiceRegistrationService {
@@ -15,7 +16,7 @@
* @param invoiceRegistrationDto
* @return
*/
- void invoiceRegistrationAdd(InvoiceRegistrationDto invoiceRegistrationDto);
+ void invoiceRegistrationSaveOrUpdate(InvoiceRegistrationDto invoiceRegistrationDto);
/**
* 寮�绁ㄧ櫥璁板垹闄�
@@ -46,4 +47,18 @@
* @return
*/
List<InvoiceRegistrationProductDto> invoiceRegistrationProductList(InvoiceRegistrationProductDto invoiceRegistrationProductDto);
+
+ /**
+ * 寮�绁ㄧ櫥璁拌鎯�
+ * @param id
+ * @return
+ */
+ InvoiceRegistrationDto invoiceRegistrationDetail(Integer id);
+
+ /**
+ * 寮�绁ㄧ櫥璁板鍑�
+ * @param response
+ * @param invoiceRegistrationDto
+ */
+ void invoiceRegistrationExport(HttpServletResponse response, InvoiceRegistrationDto invoiceRegistrationDto);
}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
index 012792a..3130872 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
@@ -1,11 +1,15 @@
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.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.excel.SupplierManageExcelDto;
+import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.sales.dto.InvoiceRegistrationDto;
import com.ruoyi.sales.dto.InvoiceRegistrationProductDto;
+import com.ruoyi.sales.excel.InvoiceRegisAndProductExcelDto;
import com.ruoyi.sales.mapper.InvoiceRegistrationMapper;
import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper;
import com.ruoyi.sales.pojo.InvoiceRegistration;
@@ -16,7 +20,11 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
+
+import javax.servlet.http.HttpServletResponse;
import java.util.List;
+import java.util.stream.Collectors;
@Service
public class InvoiceRegistrationServiceImpl extends ServiceImpl<InvoiceRegistrationMapper, InvoiceRegistration> implements InvoiceRegistrationService {
@@ -35,19 +43,30 @@
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public void invoiceRegistrationAdd(InvoiceRegistrationDto invoiceRegistrationDto) {
+ public void invoiceRegistrationSaveOrUpdate(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);
+ // 鏂板寮�绁ㄧ櫥璁�
+ if(invoiceRegistrationDto.getId() == null){
+ invoiceRegistrationMapper.insert(invoiceRegistration);
+ // 鏂板寮�绁ㄤ骇鍝佺櫥璁�
+ if(CollectionUtils.isNotEmpty(productDtoList)){
+ for (InvoiceRegistrationProductDto invoiceRegistrationProductDto : productDtoList) {
+ InvoiceRegistrationProduct invoiceRegistrationProduct = new InvoiceRegistrationProduct();
+ BeanUtils.copyProperties(invoiceRegistrationProductDto, invoiceRegistrationProduct);
+ invoiceRegistrationProduct.setInvoiceRegistrationId(invoiceRegistration.getId());
+ invoiceRegistrationProductMapper.insert(invoiceRegistrationProduct);
+ }
+ }
+ // 寮�绁ㄧ櫥璁颁慨鏀�
+ }else {
+ if(CollectionUtils.isNotEmpty(productDtoList)){
+ for (InvoiceRegistrationProductDto invoiceRegistrationProductDto : productDtoList) {
+ InvoiceRegistrationProduct invoiceRegistrationProduct = new InvoiceRegistrationProduct();
+ BeanUtils.copyProperties(invoiceRegistrationProductDto, invoiceRegistrationProduct);
+ invoiceRegistrationProductMapper.updateById(invoiceRegistrationProduct);
+ }
}
}
}
@@ -109,4 +128,41 @@
public List<InvoiceRegistrationProductDto> invoiceRegistrationProductList(InvoiceRegistrationProductDto invoiceRegistrationProductDto) {
return invoiceRegistrationProductMapper.invoiceRegistrationProductList(invoiceRegistrationProductDto);
}
+
+ /**
+ * 寮�绁ㄧ櫥璁拌鎯�
+ * @param id
+ * @return
+ */
+ @Override
+ public InvoiceRegistrationDto invoiceRegistrationDetail(Integer id) {
+ InvoiceRegistration invoiceRegistration = invoiceRegistrationMapper.selectById(id);
+ if(ObjectUtils.isEmpty(invoiceRegistration)){
+ throw new RuntimeException("寮�绁ㄧ櫥璁颁俊鎭煡鎵惧け璐�");
+ }
+ InvoiceRegistrationDto invoiceRegistrationDto = new InvoiceRegistrationDto();
+ BeanUtils.copyProperties(invoiceRegistration, invoiceRegistrationDto);
+ QueryWrapper<InvoiceRegistrationProduct> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("invoice_registration_id", id);
+ List<InvoiceRegistrationProduct> invoiceRegistrationProductList = invoiceRegistrationProductMapper.selectList(queryWrapper);
+ List<InvoiceRegistrationProductDto> invoiceRegistrationProductDtoList = invoiceRegistrationProductList.stream().map(item -> {
+ InvoiceRegistrationProductDto invoiceRegistrationProductDto = new InvoiceRegistrationProductDto();
+ BeanUtils.copyProperties(item, invoiceRegistrationProductDto);
+ return invoiceRegistrationProductDto;
+ }).collect(Collectors.toList());
+ invoiceRegistrationDto.setProductDtoList(invoiceRegistrationProductDtoList);
+ return invoiceRegistrationDto;
+ }
+
+ /**
+ * 寮�绁ㄧ櫥璁板鍑�
+ * @param response
+ * @param invoiceRegistrationDto
+ */
+ @Override
+ public void invoiceRegistrationExport(HttpServletResponse response, InvoiceRegistrationDto invoiceRegistrationDto) {
+ List<InvoiceRegisAndProductExcelDto> invoiceRegisAndProductExcelDtoList = invoiceRegistrationMapper.invoiceRegisAndProductExcelDtoList();
+ ExcelUtil<InvoiceRegisAndProductExcelDto> util = new ExcelUtil<InvoiceRegisAndProductExcelDto>(InvoiceRegisAndProductExcelDto.class);
+ util.exportExcel(response, invoiceRegisAndProductExcelDtoList, "寮�绁ㄧ櫥璁颁俊鎭�");
+ }
}
diff --git a/src/main/resources/mapper/sales/InvoiceRegistrationMapper.xml b/src/main/resources/mapper/sales/InvoiceRegistrationMapper.xml
index b263bb6..45f6109 100644
--- a/src/main/resources/mapper/sales/InvoiceRegistrationMapper.xml
+++ b/src/main/resources/mapper/sales/InvoiceRegistrationMapper.xml
@@ -5,17 +5,58 @@
<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
+ T1.id ,
+ T1.sales_ledger_id ,
+ T1.sales_contract_no ,
+ T1.customer_id ,
+ T1.salesman ,
+ T1.project_name ,
+ T1.create_time ,
+ T1.create_user ,
+ T1.update_time ,
+ T1.update_user ,
+ T1.tenant_id,
+ T2.customer_contract_no,
+ T3.customer_name,
+ T2.contract_amount
+ FROM invoice_registration T1
+ LEFT JOIN sales_ledger T2 ON T1.sales_ledger_id = T2.id
+ LEFT JOIN customer T3 ON T1.customer_id = T3.id
+ </select>
+
+ <select id="invoiceRegisAndProductExcelDtoList" resultType="com.ruoyi.sales.excel.InvoiceRegisAndProductExcelDto">
+ SELECT
+ T1.id ,
+ T1.sales_ledger_id ,
+ T1.sales_contract_no ,
+ T1.customer_id ,
+ T1.salesman ,
+ T1.project_name ,
+ T1.create_time ,
+ T1.create_user ,
+ T1.update_time ,
+ T1.update_user ,
+ T1.tenant_id,
+ T2.customer_contract_no,
+ T3.customer_name,
+ T2.contract_amount,
+ T4.product_category,
+ T4.specification_model,
+ T4.unit,
+ T4.quantity,
+ T4.tax_rate,
+ T4.tax_inclusive_unit_price,
+ T4.tax_inclusive_total_price,
+ T4.tax_exclusive_total_price,
+ T4.invoice_type,
+ T4.invoice_num,
+ T4.invoice_amount,
+ T4.no_invoice_num,
+ T4.no_invoice_amount
+ FROM invoice_registration T1
+ JOIN sales_ledger T2 ON T1.sales_ledger_id = T2.id
+ JOIN customer T3 ON T1.customer_id = T3.id
+ JOIN invoice_registration_product T4 ON T1.id = T4.invoice_registration_id
+ ORDER BY T1.id ASC
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3