diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/customersettlement/CustomerSettlementServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/customersettlement/CustomerSettlementServiceImpl.java index fb5025c1..57a933c5 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/customersettlement/CustomerSettlementServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/customersettlement/CustomerSettlementServiceImpl.java @@ -95,8 +95,19 @@ public class CustomerSettlementServiceImpl implements CustomerSettlementService // 同步更新结算明细 if (CollUtil.isNotEmpty(updateReqVO.getSettlementItems())) { + // 获取需创建的 结算明细 + List createDO = BeanUtils.toBean(updateReqVO.getSettlementItems(), SettlementItemDO.class).stream() + .filter(item -> item.getId() == null) + .collect(Collectors.toList()); + // 获取需更新的 结算明细 + List 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); diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factoryinfo/FactoryInfoMapper.xml b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factoryinfo/FactoryInfoMapper.xml index 0fb21570..31f3783a 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factoryinfo/FactoryInfoMapper.xml +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factoryinfo/FactoryInfoMapper.xml @@ -47,11 +47,11 @@ scs.customer_id AS factoryId, factory.short_name AS factoryName, 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 = 2 THEN ssi.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 = 4 THEN ssi.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 = 1 THEN COALESCE(ssi.settlement_amount, ssi.pre_settlement_amount) ELSE 0 END ) AS forkliftRevenue,-- 叉车收入 + 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 COALESCE(ssi.settlement_amount, ssi.pre_settlement_amount) ELSE 0 END ) AS porterageRevenue,-- 搬运收入 + 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 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 = 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,-- 搬运扣款