demand: 定时计算销售额度/实时计算支持计算销售理赔金额-优化性能

committer: heyu
This commit is contained in:
aike 2025-08-21 14:33:31 +08:00
parent 1ddddfd496
commit 5c911f3224
3 changed files with 43 additions and 21 deletions

View File

@ -21,6 +21,7 @@ import com.xdadan.erp.emis.domain.stat.BillPayStatInfo;
import com.xdadan.erp.emis.domain.stat.OpenBillStatInfo; import com.xdadan.erp.emis.domain.stat.OpenBillStatInfo;
import com.xdadan.erp.emis.service.impl.EmisSettleBillServiceImpl; import com.xdadan.erp.emis.service.impl.EmisSettleBillServiceImpl;
import com.xdadan.erp.emis.service.impl.EmisSettleSubBillServiceImpl; import com.xdadan.erp.emis.service.impl.EmisSettleSubBillServiceImpl;
import org.apache.ibatis.annotations.Param;
/** /**
* @ClassName EmisSettleBillMapper * @ClassName EmisSettleBillMapper
@ -41,6 +42,16 @@ public interface EmisSettleBillMapper extends BaseMapper<EmisSettleBill>
public EmisSettleBill selectSettleBillBySettleBillNo(String settleBillNo); public EmisSettleBill selectSettleBillBySettleBillNo(String settleBillNo);
/**
* 批量查询结算账单的理赔金额
*
* @param settleBillNoList 结算账单号列表
* @return 结算账单列表
*/
public List<EmisSettleBill> selectSettleBillBySettleBillNoList(
@Param("settleBillNoList") List<String> settleBillNoList);
/** /**
* 获取统计数据 * 获取统计数据
* @param emisSettleBill * @param emisSettleBill

View File

@ -1743,7 +1743,8 @@ public class EmisBaseService {
log.info("开始计算理赔金额,运单号列表: {}", billCodeList); log.info("开始计算理赔金额,运单号列表: {}", billCodeList);
// 根据billCode查询emis_settle_sub_bill获取settle_bill_no // 根据billCode查询emis_settle_sub_bill获取settle_bill_no
List<EmisSettleSubBill> emisSettleSubBillList = emisSettleSubBillMapper.querysSettleSubBillByBillCodeList(billCodeList); List<EmisSettleSubBill> emisSettleSubBillList = emisSettleSubBillMapper
.querysSettleSubBillByBillCodeList(billCodeList);
if (CollectionUtil.isEmpty(emisSettleSubBillList)) { if (CollectionUtil.isEmpty(emisSettleSubBillList)) {
log.info("未找到对应的结算子账单记录"); log.info("未找到对应的结算子账单记录");
return BigDecimal.ZERO; return BigDecimal.ZERO;
@ -1762,13 +1763,15 @@ public class EmisBaseService {
log.info("找到的结算账单号: {}", settleBillNoSet); log.info("找到的结算账单号: {}", settleBillNoSet);
// 根据settle_bill_no查询emis_settle_bill获取satisfy_money // 根据settle_bill_no批量查询emis_settle_bill获取satisfy_money
List<String> settleBillNoList = new ArrayList<>(settleBillNoSet);
List<EmisSettleBill> settleBillList = emisSettleBillMapper.selectSettleBillBySettleBillNoList(settleBillNoList);
BigDecimal totalSatisfyMoney = BigDecimal.ZERO; BigDecimal totalSatisfyMoney = BigDecimal.ZERO;
for (String settleBillNo : settleBillNoSet) { for (EmisSettleBill settleBill : settleBillList) {
EmisSettleBill settleBill = emisSettleBillMapper.selectSettleBillBySettleBillNo(settleBillNo);
if (settleBill != null && settleBill.getSatisfyMoney() != null) { if (settleBill != null && settleBill.getSatisfyMoney() != null) {
totalSatisfyMoney = totalSatisfyMoney.add(settleBill.getSatisfyMoney()); totalSatisfyMoney = totalSatisfyMoney.add(settleBill.getSatisfyMoney());
log.debug("结算账单[{}]的理赔金额: {}", settleBillNo, settleBill.getSatisfyMoney()); log.debug("结算账单[{}]的理赔金额: {}", settleBill.getSettleBillNo(), settleBill.getSatisfyMoney());
} }
} }

View File

@ -1020,6 +1020,14 @@
where a.settle_bill_no = #{settleBillNo} and del_flag='0' where a.settle_bill_no = #{settleBillNo} and del_flag='0'
</select> </select>
<select id="selectSettleBillBySettleBillNoList" parameterType="List" resultMap="EmisSettleBillResult">
select id, settle_bill_no, settle_bill_name, settle_type, settle_start_date, settle_end_date, bill_month, rec_money, reced_money, invoiced_money, cust_no, cust_name, customer_code, customer_name, site_code, site_name, satisfy_money, allowance_money, deduction_money, other_money, satisfy_reason, allowance_reason, deduction_reason, other_reason, open_bill_status, payment_status, charge_status, send_piece_sum, piece_number, fee_weight, uncollected_amount, send_money_sum, refund_amount, refund_money, payee, salesmen, credit_period, credit_period_type, settle_day, payment_due_date, bl_send_oms, bl_confirm_center, confirm_center_date, confirm_center_note, confirm_center_man_code, confirm_center_code, bl_confirm_site, confirm_site_date, confirm_site_man_code, confirm_site_note, confirm_site_code, remark, del_flag, create_by, create_time, update_by, update_time, create_site, update_site
from emis_settle_bill a
where a.del_flag='0' and a.settle_bill_no in
<foreach item="settleBillNo" collection="settleBillNoList" open="(" separator="," close=")">
#{settleBillNo}
</foreach>
</select>
<insert id="insertEmisSettleBill" parameterType="EmisSettleBill" useGeneratedKeys="true" keyProperty="id"> <insert id="insertEmisSettleBill" parameterType="EmisSettleBill" useGeneratedKeys="true" keyProperty="id">
insert into emis_settle_bill insert into emis_settle_bill