diff --git a/bms-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/ar/ArBillController.java b/bms-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/ar/ArBillController.java index 14ac307e..77ef332a 100644 --- a/bms-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/ar/ArBillController.java +++ b/bms-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/ar/ArBillController.java @@ -22,6 +22,7 @@ import com.ruoyi.ar.domain.ArBillLog; import com.ruoyi.ar.domain.vo.ArBillActionRequest; import com.ruoyi.ar.domain.vo.ArBillGenerateQuery; import com.ruoyi.ar.domain.vo.ArBillGenerateRequest; +import com.ruoyi.ar.domain.vo.ArBillQuery; import com.ruoyi.ar.service.IArBillService; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; @@ -43,7 +44,7 @@ public class ArBillController extends BaseController @PreAuthorize("@ss.hasPermi('ar:bill:list')") @GetMapping("/list") - public TableDataInfo list(ArBill query) + public TableDataInfo list(ArBillQuery query) { startPage(); List list = billService.selectArBillList(query); diff --git a/bms-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/customer/customermoney/CustomerBillController.java b/bms-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/customer/customermoney/CustomerBillController.java index ca145385..708c440a 100644 --- a/bms-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/customer/customermoney/CustomerBillController.java +++ b/bms-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/customer/customermoney/CustomerBillController.java @@ -12,9 +12,9 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.ar.domain.ArBalanceWriteoff; -import com.ruoyi.ar.domain.ArBill; import com.ruoyi.ar.service.IArBalanceWriteoffService; import com.ruoyi.ar.service.IArBillService; +import com.ruoyi.ar.domain.vo.ArBillQuery; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; @@ -93,7 +93,7 @@ public class CustomerBillController extends BaseController */ @PreAuthorize("@ss.hasPermi('customer:bill:list')") @GetMapping("/list") - public TableDataInfo billList(ArBill query) + public TableDataInfo billList(ArBillQuery query) { startPage(); return getDataTable(billService.selectArBillList(query)); diff --git a/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/domain/ArBill.java b/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/domain/ArBill.java index 0f12d83e..94708716 100644 --- a/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/domain/ArBill.java +++ b/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/domain/ArBill.java @@ -4,6 +4,7 @@ import java.math.BigDecimal; import java.util.Date; import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; import com.ruoyi.common.core.domain.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; @@ -21,10 +22,13 @@ public class ArBill extends BaseEntity private Long customerId; private String customerCode; private String customerName; + @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") private Date billPeriodStart; + @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") private Date billPeriodEnd; + @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") private Date billDate; private String currency; diff --git a/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/domain/vo/ArBillQuery.java b/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/domain/vo/ArBillQuery.java new file mode 100644 index 00000000..dee0b83e --- /dev/null +++ b/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/domain/vo/ArBillQuery.java @@ -0,0 +1,23 @@ +package com.ruoyi.ar.domain.vo; + +import java.util.Date; +import org.springframework.format.annotation.DateTimeFormat; +import com.ruoyi.ar.domain.ArBill; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** 应收账单列表查询参数。 */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ArBillQuery extends ArBill +{ + private static final long serialVersionUID = 1L; + + /** 账单日期查询起始日。 */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date billDateStart; + + /** 账单日期查询结束日。 */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date billDateEnd; +} diff --git a/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/mapper/ArBillMapper.java b/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/mapper/ArBillMapper.java index 7ae64233..1602382c 100644 --- a/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/mapper/ArBillMapper.java +++ b/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/mapper/ArBillMapper.java @@ -5,10 +5,11 @@ import java.util.Date; import java.util.List; import org.apache.ibatis.annotations.Param; import com.ruoyi.ar.domain.ArBill; +import com.ruoyi.ar.domain.vo.ArBillQuery; public interface ArBillMapper { - List selectArBillList(ArBill query); + List selectArBillList(ArBillQuery query); ArBill selectArBillById(Long arBillId); diff --git a/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/service/IArBillService.java b/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/service/IArBillService.java index 0ffe36d7..89a7409a 100644 --- a/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/service/IArBillService.java +++ b/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/service/IArBillService.java @@ -8,11 +8,12 @@ import com.ruoyi.ar.domain.ArBillLog; import com.ruoyi.ar.domain.vo.ArBillGenerateRequest; import com.ruoyi.ar.domain.vo.ArBillGenerateQuery; import com.ruoyi.ar.domain.vo.ArBillActionRequest; +import com.ruoyi.ar.domain.vo.ArBillQuery; import com.ruoyi.price.domain.PrcOrderBill; public interface IArBillService { - List selectArBillList(ArBill query); + List selectArBillList(ArBillQuery query); ArBill selectArBillById(Long arBillId); diff --git a/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/service/impl/ArBillServiceImpl.java b/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/service/impl/ArBillServiceImpl.java index 5084bd7d..836cddf0 100644 --- a/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/service/impl/ArBillServiceImpl.java +++ b/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/service/impl/ArBillServiceImpl.java @@ -50,6 +50,7 @@ import com.ruoyi.ar.service.IArBillService; import com.ruoyi.ar.domain.vo.ArBillActionRequest; import com.ruoyi.ar.domain.vo.ArBillGenerateQuery; import com.ruoyi.ar.domain.vo.ArBillGenerateRequest; +import com.ruoyi.ar.domain.vo.ArBillQuery; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.DateUtils; @@ -83,7 +84,7 @@ public class ArBillServiceImpl implements IArBillService @Autowired private ICustomerMoneyService customerMoneyService; @Override - public List selectArBillList(ArBill query) + public List selectArBillList(ArBillQuery query) { List bills = billMapper.selectArBillList(query); for (ArBill bill : bills) diff --git a/bms-back/ruoyi-system/src/main/resources/mapper/ar/ArBillMapper.xml b/bms-back/ruoyi-system/src/main/resources/mapper/ar/ArBillMapper.xml index 898dfe9d..bbf78cde 100644 --- a/bms-back/ruoyi-system/src/main/resources/mapper/ar/ArBillMapper.xml +++ b/bms-back/ruoyi-system/src/main/resources/mapper/ar/ArBillMapper.xml @@ -41,7 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from ar_bill - and bill_no like concat('%', #{billNo}, '%') @@ -51,8 +51,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and customer_id = #{customerId} and status = #{status} and currency = #{currency} - and bill_period_end >= #{billPeriodStart} - and bill_period_start <= #{billPeriodEnd} + and bill_date >= #{billDateStart} + and bill_date <= #{billDateEnd} + and bill_period_end = #{billPeriodEnd} order by create_time desc, ar_bill_id desc diff --git a/bms-back/sql/ar/ar_bill_source_id_rename.sql b/bms-back/sql/ar/ar_bill_source_id_rename.sql new file mode 100644 index 00000000..7a0000cf --- /dev/null +++ b/bms-back/sql/ar/ar_bill_source_id_rename.sql @@ -0,0 +1,95 @@ +-- 应收账单来源ID字段命名迁移 +-- +-- 将历史字段名迁移为与当前来源表一致的名称: +-- ar_bill_detail.prc_bill_id -> prc_order_bill_id +-- ar_bill_detail_fee.prc_fee_id -> prc_income_bill_fee_id +-- 脚本可重复执行,已完成迁移的字段和索引会自动跳过。 +SET NAMES utf8mb4; +SET @db_name := DATABASE(); + +-- 1. 应收账单订单明细:来源计费订单ID。 +SET @has_old_detail_column := ( + SELECT COUNT(*) + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = @db_name + AND TABLE_NAME = 'ar_bill_detail' + AND COLUMN_NAME = 'prc_bill_id' +); +SET @has_new_detail_column := ( + SELECT COUNT(*) + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = @db_name + AND TABLE_NAME = 'ar_bill_detail' + AND COLUMN_NAME = 'prc_order_bill_id' +); +SET @sql := IF(@has_old_detail_column > 0 AND @has_new_detail_column = 0, + 'ALTER TABLE ar_bill_detail CHANGE COLUMN prc_bill_id prc_order_bill_id VARCHAR(36) NOT NULL COMMENT ''来源计费订单ID,对应 prc_order_bill.bill_id''', + 'SELECT 1'); +PREPARE stmt FROM @sql; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; + +-- 2. 应收账单费用明细:来源收入费用ID。 +SET @has_old_fee_column := ( + SELECT COUNT(*) + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = @db_name + AND TABLE_NAME = 'ar_bill_detail_fee' + AND COLUMN_NAME = 'prc_fee_id' +); +SET @has_new_fee_column := ( + SELECT COUNT(*) + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = @db_name + AND TABLE_NAME = 'ar_bill_detail_fee' + AND COLUMN_NAME = 'prc_income_bill_fee_id' +); +SET @sql := IF(@has_old_fee_column > 0 AND @has_new_fee_column = 0, + 'ALTER TABLE ar_bill_detail_fee CHANGE COLUMN prc_fee_id prc_income_bill_fee_id VARCHAR(36) NOT NULL COMMENT ''来源收入费用ID,对应 prc_income_bill_fee.fee_id''', + 'SELECT 1'); +PREPARE stmt FROM @sql; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; + +-- 3. 费用明细索引同步改名,避免数据库中继续保留旧字段命名。 +SET @has_old_fee_unique := ( + SELECT COUNT(*) + FROM information_schema.STATISTICS + WHERE TABLE_SCHEMA = @db_name + AND TABLE_NAME = 'ar_bill_detail_fee' + AND INDEX_NAME = 'uk_ar_detail_prc_fee' +); +SET @has_new_fee_unique := ( + SELECT COUNT(*) + FROM information_schema.STATISTICS + WHERE TABLE_SCHEMA = @db_name + AND TABLE_NAME = 'ar_bill_detail_fee' + AND INDEX_NAME = 'uk_ar_detail_prc_income_fee' +); +SET @sql := IF(@has_old_fee_unique > 0 AND @has_new_fee_unique = 0, + 'ALTER TABLE ar_bill_detail_fee RENAME INDEX uk_ar_detail_prc_fee TO uk_ar_detail_prc_income_fee', + 'SELECT 1'); +PREPARE stmt FROM @sql; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; + +SET @has_old_fee_index := ( + SELECT COUNT(*) + FROM information_schema.STATISTICS + WHERE TABLE_SCHEMA = @db_name + AND TABLE_NAME = 'ar_bill_detail_fee' + AND INDEX_NAME = 'idx_ar_detail_prc_fee' +); +SET @has_new_fee_index := ( + SELECT COUNT(*) + FROM information_schema.STATISTICS + WHERE TABLE_SCHEMA = @db_name + AND TABLE_NAME = 'ar_bill_detail_fee' + AND INDEX_NAME = 'idx_ar_detail_prc_income_fee' +); +SET @sql := IF(@has_old_fee_index > 0 AND @has_new_fee_index = 0, + 'ALTER TABLE ar_bill_detail_fee RENAME INDEX idx_ar_detail_prc_fee TO idx_ar_detail_prc_income_fee', + 'SELECT 1'); +PREPARE stmt FROM @sql; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; diff --git a/bms-front/src/views/ar/bill/index.vue b/bms-front/src/views/ar/bill/index.vue index 1d4d417a..8210bd08 100644 --- a/bms-front/src/views/ar/bill/index.vue +++ b/bms-front/src/views/ar/bill/index.vue @@ -1,9 +1,12 @@