✨ 客户账单弹窗增加汇总和导出

This commit is contained in:
caojia
2026-10-27 17:21:12 +08:00
parent b4e696b27c
commit db787ec7f7
8 changed files with 166 additions and 16 deletions
@@ -0,0 +1,16 @@
package com.bms.ar.domain.vo;
import java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data;
/** 应收账单列表按筛选条件汇总的金额。 */
@Data
public class ArBillSummary implements Serializable {
private static final long serialVersionUID = 1L;
private BigDecimal totalAmount = BigDecimal.ZERO;
private BigDecimal writtenOffAmount = BigDecimal.ZERO;
private BigDecimal unwrittenAmount = BigDecimal.ZERO;
}
@@ -7,10 +7,13 @@ import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.bms.ar.domain.ArBill;
import com.bms.ar.domain.vo.ArBillQuery;
import com.bms.ar.domain.vo.ArBillSummary;
public interface ArBillMapper {
List<ArBill> selectArBillList(ArBillQuery query);
ArBillSummary selectArBillSummary(ArBillQuery query);
ArBill selectArBillById(Long arBillId);
ArBill selectArBillByBillNo(String billNo);
@@ -14,6 +14,7 @@ import com.bms.ar.domain.vo.ArBillGenerateRequest;
import com.bms.ar.domain.vo.ArBillGenerateQuery;
import com.bms.ar.domain.vo.ArBillActionRequest;
import com.bms.ar.domain.vo.ArBillQuery;
import com.bms.ar.domain.vo.ArBillSummary;
import com.bms.price.domain.PrcOrderBill;
/**
@@ -25,6 +26,8 @@ public interface IArBillService
{
List<ArBill> selectArBillList(ArBillQuery query);
ArBillSummary selectArBillSummary(ArBillQuery query);
ArBill selectArBillById(Long arBillId);
List<ArBillDetail> selectArBillDetails(Long arBillId);
@@ -79,6 +79,7 @@ import com.bms.ar.domain.vo.ArBillActionRequest;
import com.bms.ar.domain.vo.ArBillGenerateQuery;
import com.bms.ar.domain.vo.ArBillGenerateRequest;
import com.bms.ar.domain.vo.ArBillQuery;
import com.bms.ar.domain.vo.ArBillSummary;
import com.bms.common.config.BmsConfig;
import com.bms.common.exception.ServiceException;
import com.bms.common.utils.DateUtils;
@@ -223,6 +224,14 @@ public class ArBillServiceImpl implements IArBillService {
return bills;
}
/**
* 汇总当前筛选条件下的全部账单金额,不受列表分页影响。
*/
@Override
public ArBillSummary selectArBillSummary(ArBillQuery query) {
return billMapper.selectArBillSummary(query);
}
/**
* 查询账单头信息;导出记录随账单头返回,明细由独立分页接口查询。
*/
@@ -35,6 +35,12 @@
<result property="updateTime" column="update_time"/>
</resultMap>
<resultMap id="ArBillSummaryResult" type="com.bms.ar.domain.vo.ArBillSummary">
<result property="totalAmount" column="total_amount"/>
<result property="writtenOffAmount" column="written_off_amount"/>
<result property="unwrittenAmount" column="unwritten_amount"/>
</resultMap>
<sql id="selectArBillColumns">
select ar_bill_id,
bill_no,
@@ -67,8 +73,7 @@
from ar_bill
</sql>
<select id="selectArBillList" parameterType="com.bms.ar.domain.vo.ArBillQuery" resultMap="ArBillResult">
<include refid="selectArBillColumns"/>
<sql id="arBillListFilter">
<where>
and (generation_status is null or generation_status = 'READY')
<if test="billNo != null and billNo != ''">and bill_no like concat('%', #{billNo}, '%')</if>
@@ -86,9 +91,22 @@
<if test="billDateEnd != null">and bill_date &lt;= #{billDateEnd}</if>
<if test="billPeriodEnd != null">and bill_period_end = #{billPeriodEnd}</if>
</where>
</sql>
<select id="selectArBillList" parameterType="com.bms.ar.domain.vo.ArBillQuery" resultMap="ArBillResult">
<include refid="selectArBillColumns"/>
<include refid="arBillListFilter"/>
order by create_time desc, ar_bill_id desc
</select>
<select id="selectArBillSummary" parameterType="com.bms.ar.domain.vo.ArBillQuery" resultMap="ArBillSummaryResult">
select coalesce(sum(total_amount), 0) as total_amount,
coalesce(sum(written_off_amount), 0) as written_off_amount,
coalesce(sum(unwritten_amount), 0) as unwritten_amount
from ar_bill
<include refid="arBillListFilter"/>
</select>
<select id="selectArBillById" parameterType="long" resultMap="ArBillResult">
<include refid="selectArBillColumns"/>
where ar_bill_id = #{arBillId}