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

@ -1,10 +1,10 @@
/** /**
* @Project: emis * @Project: emis
* @Title: EmisSettleBillMapper.java * @Title: EmisSettleBillMapper.java
* @author linfso * @author linfso
* @date 2024-07-03 18:54:51 * @date 2024-07-03 18:54:51
* @Copyright: ShangHai Doitinfo 2022 All rights reserved. * @Copyright: ShangHai Doitinfo 2022 All rights reserved.
* @version v1.0 * @version v1.0
* @Description: <p> 结算总账单 Mapper 接口 </p> * @Description: <p> 结算总账单 Mapper 接口 </p>
* <span style='color:red'> Warning : This file is generate by ai tools,don't edit!!! </span> * <span style='color:red'> Warning : This file is generate by ai tools,don't edit!!! </span>
*/ */
@ -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
@ -33,7 +34,7 @@ public interface EmisSettleBillMapper extends BaseMapper<EmisSettleBill>
/** /**
* 主键查询 * 主键查询
* @param id * @param id
* @return * @return
*/ */
public EmisSettleBill selectEmisSettleBillById(Long id); public EmisSettleBill selectEmisSettleBillById(Long id);
@ -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
@ -68,8 +79,8 @@ public interface EmisSettleBillMapper extends BaseMapper<EmisSettleBill>
/** /**
* 查询列表 * 查询列表
* *
* @param emisSettleBill * @param emisSettleBill
* @return 集合 * @return 集合
*/ */
public List<EmisSettleBill> selectEmisSettleBillList(EmisSettleBill emisSettleBill); public List<EmisSettleBill> selectEmisSettleBillList(EmisSettleBill emisSettleBill);
@ -77,33 +88,33 @@ public interface EmisSettleBillMapper extends BaseMapper<EmisSettleBill>
/** /**
* 检查是否重复 * 检查是否重复
* *
* @param emisSettleBill * @param emisSettleBill
* @return 数量 * @return 数量
*/ */
public int checkUnique(EmisSettleBill emisSettleBill); public int checkUnique(EmisSettleBill emisSettleBill);
/** /**
* 新增 * 新增
* *
* @param emisSettleBill * @param emisSettleBill
* @return * @return
*/ */
public int insertEmisSettleBill(EmisSettleBill emisSettleBill); public int insertEmisSettleBill(EmisSettleBill emisSettleBill);
/** /**
* 修改 * 修改
* *
* @param emisSettleBill * @param emisSettleBill
* @return * @return
*/ */
@DataAuditLog(operateType= OperateType.UPDATE,serviceClass= EmisSettleBillServiceImpl.class) @DataAuditLog(operateType= OperateType.UPDATE,serviceClass= EmisSettleBillServiceImpl.class)
public int updateEmisSettleBill(EmisSettleBill emisSettleBill); public int updateEmisSettleBill(EmisSettleBill emisSettleBill);
/** /**
* 删除 * 删除
* *
* @param id 主键 * @param id 主键
* @return 结果 * @return 结果
*/ */
@ -112,7 +123,7 @@ public interface EmisSettleBillMapper extends BaseMapper<EmisSettleBill>
/** /**
* 批量删除 * 批量删除
* *
* @param ids 需要删除的数据主键集合 * @param ids 需要删除的数据主键集合
* @return 结果 * @return 结果
*/ */

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