refactor(system): 优化客户结算功能
- 重构客户结算明细的更新逻辑,分为创建和更新两个步骤 - 在 FactoryInfoMapper 中使用 COALESCE 函数处理结算金额为空的情况
This commit is contained in:
parent
d726cc5abb
commit
4bba4a5507
@ -95,8 +95,19 @@ public class CustomerSettlementServiceImpl implements CustomerSettlementService
|
|||||||
|
|
||||||
// 同步更新结算明细
|
// 同步更新结算明细
|
||||||
if (CollUtil.isNotEmpty(updateReqVO.getSettlementItems())) {
|
if (CollUtil.isNotEmpty(updateReqVO.getSettlementItems())) {
|
||||||
|
// 获取需创建的 结算明细
|
||||||
|
List<SettlementItemDO> createDO = BeanUtils.toBean(updateReqVO.getSettlementItems(), SettlementItemDO.class).stream()
|
||||||
|
.filter(item -> item.getId() == null)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
// 获取需更新的 结算明细
|
||||||
|
List<SettlementItemDO> updateDO = BeanUtils.toBean(updateReqVO.getSettlementItems(), SettlementItemDO.class).stream()
|
||||||
|
.filter(item -> item.getId() != null)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
//插入
|
||||||
|
settlementItemMapper.insertBatch(createDO);
|
||||||
// 更新
|
// 更新
|
||||||
settlementItemMapper.updateBatch(BeanUtils.toBean(updateReqVO.getSettlementItems(), SettlementItemDO.class));
|
settlementItemMapper.updateBatch(updateDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
customerSettlementMapper.updateById(updateObj);
|
customerSettlementMapper.updateById(updateObj);
|
||||||
|
@ -47,11 +47,11 @@
|
|||||||
scs.customer_id AS factoryId,
|
scs.customer_id AS factoryId,
|
||||||
factory.short_name AS factoryName,
|
factory.short_name AS factoryName,
|
||||||
scs.settlement_month,-- 收入明细
|
scs.settlement_month,-- 收入明细
|
||||||
SUM( CASE WHEN ssi.business_type = 1 THEN ssi.settlement_amount ELSE 0 END ) AS forkliftRevenue,-- 叉车收入
|
SUM( CASE WHEN ssi.business_type = 1 THEN COALESCE(ssi.settlement_amount, ssi.pre_settlement_amount) ELSE 0 END ) AS forkliftRevenue,-- 叉车收入
|
||||||
SUM( CASE WHEN ssi.business_type = 2 THEN ssi.settlement_amount ELSE 0 END ) AS packageRevenue,-- 打包收入
|
SUM( CASE WHEN ssi.business_type = 2 THEN COALESCE(ssi.settlement_amount, ssi.pre_settlement_amount) ELSE 0 END ) AS packageRevenue,-- 打包收入
|
||||||
SUM( CASE WHEN ssi.business_type = 3 THEN ssi.settlement_amount ELSE 0 END ) AS porterageRevenue,-- 搬运收入
|
SUM( CASE WHEN ssi.business_type = 3 THEN COALESCE(ssi.settlement_amount, ssi.pre_settlement_amount) ELSE 0 END ) AS porterageRevenue,-- 搬运收入
|
||||||
SUM( CASE WHEN ssi.business_type = 4 THEN ssi.settlement_amount ELSE 0 END ) AS forkliftRentalRevenue,-- 叉车租赁收入
|
SUM( CASE WHEN ssi.business_type = 4 THEN COALESCE(ssi.settlement_amount, ssi.pre_settlement_amount) ELSE 0 END ) AS forkliftRentalRevenue,-- 叉车租赁收入
|
||||||
SUM( CASE WHEN ssi.business_type = 5 THEN ssi.settlement_amount ELSE 0 END ) AS transportationRevenue,-- 运输收入
|
SUM( CASE WHEN ssi.business_type = 5 THEN COALESCE(ssi.settlement_amount, ssi.pre_settlement_amount) ELSE 0 END ) AS transportationRevenue,-- 运输收入
|
||||||
SUM( CASE WHEN ssi.business_type = 1 THEN ssi.deduction_amount ELSE 0 END ) AS forkliftDeduction,-- 叉车扣款
|
SUM( CASE WHEN ssi.business_type = 1 THEN ssi.deduction_amount ELSE 0 END ) AS forkliftDeduction,-- 叉车扣款
|
||||||
SUM( CASE WHEN ssi.business_type = 2 THEN ssi.deduction_amount ELSE 0 END ) AS packageDeduction,-- 打包扣款
|
SUM( CASE WHEN ssi.business_type = 2 THEN ssi.deduction_amount ELSE 0 END ) AS packageDeduction,-- 打包扣款
|
||||||
SUM( CASE WHEN ssi.business_type = 3 THEN ssi.deduction_amount ELSE 0 END ) AS porterageDeduction,-- 搬运扣款
|
SUM( CASE WHEN ssi.business_type = 3 THEN ssi.deduction_amount ELSE 0 END ) AS porterageDeduction,-- 搬运扣款
|
||||||
|
Loading…
Reference in New Issue
Block a user