From b9fa6eb66fbe488c3a48a8b3fe338281ae64d9fd Mon Sep 17 00:00:00 2001 From: zhuangdashia Date: Wed, 27 Aug 2025 14:08:20 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A819-27=20=E6=9B=B4=E6=96=B0=20=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/OriginalDianfeiMapper.java | 4 + .../mapper/OriginalEMBankingMapper.java | 5 ++ .../mapper/OriginalGjjPaymentMapper.java | 5 ++ .../original/mapper/OriginalHeatMapper.java | 4 + .../mapper/OriginalHntSgmxMapper.java | 4 + .../mapper/OriginalHntSgsInfoMapper.java | 6 ++ .../mapper/OriginalOnlinePaymentMapper.java | 5 ++ .../mapper/OriginalTrafficMapper.java | 6 ++ .../original/mapper/OriginalWaterMapper.java | 5 +- .../impl/OriginalDianfeiServiceImpl.java | 25 ++++++- .../impl/OriginalEMBankingServiceImpl.java | 25 ++++++- .../impl/OriginalGjjPaymentServiceImpl.java | 25 ++++++- .../service/impl/OriginalHeatServiceImpl.java | 25 ++++++- .../impl/OriginalHntSgmxServiceImpl.java | 25 ++++++- .../impl/OriginalHntSgsInfoServiceImpl.java | 25 ++++++- .../OriginalOnlinePaymentServiceImpl.java | 25 ++++++- .../impl/OriginalTrafficServiceImpl.java | 25 ++++++- .../impl/OriginalWaterServiceImpl.java | 25 ++++++- .../mapper/original/OriginalDianfeiMapper.xml | 37 +++++++++- .../original/OriginalEMBankingMapper.xml | 37 +++++++++- .../original/OriginalGjjPaymentMapper.xml | 37 +++++++++- .../mapper/original/OriginalHeatMapper.xml | 47 +++++++++++- .../mapper/original/OriginalHntSgmxMapper.xml | 58 +++++++++++++++ .../original/OriginalHntSgsInfoMapper.xml | 49 ++++++++++++- .../original/OriginalOnlinePaymentMapper.xml | 37 +++++++++- .../mapper/original/OriginalTrafficMapper.xml | 45 +++++++++++- .../mapper/original/OriginalWaterMapper.xml | 73 ++++++++++++++++++- 27 files changed, 663 insertions(+), 26 deletions(-) diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalDianfeiMapper.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalDianfeiMapper.java index 128286c..6f31132 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalDianfeiMapper.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalDianfeiMapper.java @@ -10,6 +10,8 @@ import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.annotation.DataColumn; import org.dromara.common.mybatis.annotation.DataPermission; +import java.util.Collection; + /** * 代收电费Mapper接口 * @@ -33,4 +35,6 @@ public interface OriginalDianfeiMapper extends BaseMapperPlus selectOriginalDianfeiExportList(@Param(Constants.WRAPPER) Wrapper queryWrapper); + // 批量插入 + void batchInsert(@Param("list") Collection list); } diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalEMBankingMapper.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalEMBankingMapper.java index 0947ac2..ee38153 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalEMBankingMapper.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalEMBankingMapper.java @@ -10,6 +10,9 @@ import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.annotation.DataColumn; import org.dromara.common.mybatis.annotation.DataPermission; +import java.util.Collection; +import java.util.List; + /** * 企业手机银行Mapper接口 * @@ -26,6 +29,8 @@ public interface OriginalEMBankingMapper extends BaseMapperPlus list); //@DataPermission({ // @DataColumn(key = "deptName", value = "create_dept"), diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalGjjPaymentMapper.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalGjjPaymentMapper.java index 2bf2c24..5a9fc6d 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalGjjPaymentMapper.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalGjjPaymentMapper.java @@ -10,6 +10,9 @@ import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.annotation.DataColumn; import org.dromara.common.mybatis.annotation.DataPermission; +import java.util.Collection; +import java.util.List; + /** * 公积金缴纳明细Mapper接口 * @@ -26,6 +29,8 @@ public interface OriginalGjjPaymentMapper extends BaseMapperPlus list); //@DataPermission({ // @DataColumn(key = "deptName", value = "create_dept"), diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalHeatMapper.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalHeatMapper.java index 6966006..b1a22c0 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalHeatMapper.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalHeatMapper.java @@ -10,6 +10,8 @@ import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.annotation.DataColumn; import org.dromara.common.mybatis.annotation.DataPermission; +import java.util.Collection; + /** * 取暖费信息Mapper接口 * @@ -32,5 +34,7 @@ public interface OriginalHeatMapper extends BaseMapperPlus selectOriginalHeatExportList(@Param(Constants.WRAPPER) Wrapper queryWrapper); + // 批量插入 + void batchInsert(@Param("list") Collection list); } diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalHntSgmxMapper.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalHntSgmxMapper.java index 32188da..1192fe9 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalHntSgmxMapper.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalHntSgmxMapper.java @@ -10,6 +10,8 @@ import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.annotation.DataColumn; import org.dromara.common.mybatis.annotation.DataPermission; +import java.util.Collection; + /** * 惠农通收购商交易明细Mapper接口 * @@ -32,5 +34,7 @@ public interface OriginalHntSgmxMapper extends BaseMapperPlus selectOriginalHntSgmxExportList(@Param(Constants.WRAPPER) Wrapper queryWrapper); + // 批量插入 + void batchInsert(@Param("list") Collection list); } diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalHntSgsInfoMapper.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalHntSgsInfoMapper.java index 4893bc8..ff31f6b 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalHntSgsInfoMapper.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalHntSgsInfoMapper.java @@ -10,6 +10,9 @@ import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.annotation.DataColumn; import org.dromara.common.mybatis.annotation.DataPermission; +import java.util.Collection; +import java.util.List; + /** * 惠农通收购商签约信息Mapper接口 * @@ -26,6 +29,9 @@ public interface OriginalHntSgsInfoMapper extends BaseMapperPlus list); + //@DataPermission({ // @DataColumn(key = "deptName", value = "create_dept"), diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalOnlinePaymentMapper.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalOnlinePaymentMapper.java index 86f3ec8..73a3e42 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalOnlinePaymentMapper.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalOnlinePaymentMapper.java @@ -10,6 +10,9 @@ import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.annotation.DataColumn; import org.dromara.common.mybatis.annotation.DataPermission; +import java.util.Collection; +import java.util.List; + /** * 网上支付Mapper接口 * @@ -26,6 +29,8 @@ public interface OriginalOnlinePaymentMapper extends BaseMapperPlus list); //@DataPermission({ // @DataColumn(key = "deptName", value = "create_dept"), diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalTrafficMapper.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalTrafficMapper.java index a1cb30d..d9022b2 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalTrafficMapper.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalTrafficMapper.java @@ -10,6 +10,9 @@ import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.annotation.DataColumn; import org.dromara.common.mybatis.annotation.DataPermission; +import java.util.Collection; +import java.util.List; + /** * 代收交警罚没款明细Mapper接口 * @@ -26,6 +29,9 @@ public interface OriginalTrafficMapper extends BaseMapperPlus list); + //@DataPermission({ // @DataColumn(key = "deptName", value = "create_dept"), diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalWaterMapper.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalWaterMapper.java index 6da9a94..f20943a 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalWaterMapper.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/mapper/OriginalWaterMapper.java @@ -10,6 +10,8 @@ import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.annotation.DataColumn; import org.dromara.common.mybatis.annotation.DataPermission; +import java.util.Collection; + /** * 代收水费Mapper接口 * @@ -32,5 +34,6 @@ public interface OriginalWaterMapper extends BaseMapperPlus selectOriginalWaterExportList(@Param(Constants.WRAPPER) Wrapper queryWrapper); - + // 批量插入 + void batchInsert(@Param("list") Collection list); } diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalDianfeiServiceImpl.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalDianfeiServiceImpl.java index 54ae7bd..32866f8 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalDianfeiServiceImpl.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalDianfeiServiceImpl.java @@ -48,7 +48,30 @@ public class OriginalDianfeiServiceImpl implements IOriginalDianfeiService { if (isUpdateSupport) { baseMapper.insertOrUpdateBatch(list); } else { - baseMapper.insertBatch(list); + //baseMapper.insertBatch(list); + + /** + * 多笔写入方式有循环写入、开启数据库batch模式、sql拼接后多笔入库以及mapper foreach多笔写入模式 + * 经对比验证,foreach方式效率最高 + * + * **/ + + //由于mybatis的批量方法为伪批量,以下优化为真批量 + //SqlHelper与service的注解事务管理冲突,所以此处自行写分批 + int batchSize = 1000;//每批1000条 + List batchList = new ArrayList<>(batchSize); + for (OriginalDianfei item : list) { + batchList.add(item); + if (batchList.size() == batchSize) { + baseMapper.batchInsert(batchList); + batchList.clear(); + } + } + + // 处理最后一批不满batchSize的数据 + if (!batchList.isEmpty()) { + baseMapper.batchInsert(batchList); + } } } diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalEMBankingServiceImpl.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalEMBankingServiceImpl.java index 23a6034..30447ae 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalEMBankingServiceImpl.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalEMBankingServiceImpl.java @@ -48,7 +48,30 @@ public class OriginalEMBankingServiceImpl implements IOriginalEMBankingService { if (isUpdateSupport) { baseMapper.insertOrUpdateBatch(list); } else { - baseMapper.insertBatch(list); + //baseMapper.insertBatch(list); + + /** + * 多笔写入方式有循环写入、开启数据库batch模式、sql拼接后多笔入库以及mapper foreach多笔写入模式 + * 经对比验证,foreach方式效率最高 + * + * **/ + + //由于mybatis的批量方法为伪批量,以下优化为真批量 + //SqlHelper与service的注解事务管理冲突,所以此处自行写分批 + int batchSize = 1000;//每批1000条 + List batchList = new ArrayList<>(batchSize); + for (OriginalEMBanking item : list) { + batchList.add(item); + if (batchList.size() == batchSize) { + baseMapper.batchInsert(batchList); + batchList.clear(); + } + } + + // 处理最后一批不满batchSize的数据 + if (!batchList.isEmpty()) { + baseMapper.batchInsert(batchList); + } } } diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalGjjPaymentServiceImpl.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalGjjPaymentServiceImpl.java index c1620b0..7dee11f 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalGjjPaymentServiceImpl.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalGjjPaymentServiceImpl.java @@ -48,7 +48,30 @@ public class OriginalGjjPaymentServiceImpl implements IOriginalGjjPaymentService if (isUpdateSupport) { baseMapper.insertOrUpdateBatch(list); } else { - baseMapper.insertBatch(list); + //baseMapper.insertBatch(list); + + /** + * 多笔写入方式有循环写入、开启数据库batch模式、sql拼接后多笔入库以及mapper foreach多笔写入模式 + * 经对比验证,foreach方式效率最高 + * + * **/ + + //由于mybatis的批量方法为伪批量,以下优化为真批量 + //SqlHelper与service的注解事务管理冲突,所以此处自行写分批 + int batchSize = 1000;//每批1000条 + List batchList = new ArrayList<>(batchSize); + for (OriginalGjjPayment item : list) { + batchList.add(item); + if (batchList.size() == batchSize) { + baseMapper.batchInsert(batchList); + batchList.clear(); + } + } + + // 处理最后一批不满batchSize的数据 + if (!batchList.isEmpty()) { + baseMapper.batchInsert(batchList); + } } } diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalHeatServiceImpl.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalHeatServiceImpl.java index c3cfad2..389a379 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalHeatServiceImpl.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalHeatServiceImpl.java @@ -48,7 +48,30 @@ public class OriginalHeatServiceImpl implements IOriginalHeatService { if (isUpdateSupport) { baseMapper.insertOrUpdateBatch(list); } else { - baseMapper.insertBatch(list); + //baseMapper.insertBatch(list); + + /** + * 多笔写入方式有循环写入、开启数据库batch模式、sql拼接后多笔入库以及mapper foreach多笔写入模式 + * 经对比验证,foreach方式效率最高 + * + * **/ + + //由于mybatis的批量方法为伪批量,以下优化为真批量 + //SqlHelper与service的注解事务管理冲突,所以此处自行写分批 + int batchSize = 1000;//每批1000条 + List batchList = new ArrayList<>(batchSize); + for (OriginalHeat item : list) { + batchList.add(item); + if (batchList.size() == batchSize) { + baseMapper.batchInsert(batchList); + batchList.clear(); + } + } + + // 处理最后一批不满batchSize的数据 + if (!batchList.isEmpty()) { + baseMapper.batchInsert(batchList); + } } } diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalHntSgmxServiceImpl.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalHntSgmxServiceImpl.java index 488e9f8..3ef3d3b 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalHntSgmxServiceImpl.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalHntSgmxServiceImpl.java @@ -49,7 +49,30 @@ public class OriginalHntSgmxServiceImpl implements IOriginalHntSgmxService { if (isUpdateSupport) { baseMapper.insertOrUpdateBatch(list); } else { - baseMapper.insertBatch(list); + //baseMapper.insertBatch(list); + + /** + * 多笔写入方式有循环写入、开启数据库batch模式、sql拼接后多笔入库以及mapper foreach多笔写入模式 + * 经对比验证,foreach方式效率最高 + * + * **/ + + //由于mybatis的批量方法为伪批量,以下优化为真批量 + //SqlHelper与service的注解事务管理冲突,所以此处自行写分批 + int batchSize = 1000;//每批1000条 + List batchList = new ArrayList<>(batchSize); + for (OriginalHntSgmx item : list) { + batchList.add(item); + if (batchList.size() == batchSize) { + baseMapper.batchInsert(batchList); + batchList.clear(); + } + } + + // 处理最后一批不满batchSize的数据 + if (!batchList.isEmpty()) { + baseMapper.batchInsert(batchList); + } } } diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalHntSgsInfoServiceImpl.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalHntSgsInfoServiceImpl.java index 60a871d..6d4c6ea 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalHntSgsInfoServiceImpl.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalHntSgsInfoServiceImpl.java @@ -49,7 +49,30 @@ public class OriginalHntSgsInfoServiceImpl implements IOriginalHntSgsInfoService if (isUpdateSupport) { baseMapper.insertOrUpdateBatch(list); } else { - baseMapper.insertBatch(list); + //baseMapper.insertBatch(list); + + /** + * 多笔写入方式有循环写入、开启数据库batch模式、sql拼接后多笔入库以及mapper foreach多笔写入模式 + * 经对比验证,foreach方式效率最高 + * + * **/ + + //由于mybatis的批量方法为伪批量,以下优化为真批量 + //SqlHelper与service的注解事务管理冲突,所以此处自行写分批 + int batchSize = 1000;//每批1000条 + List batchList = new ArrayList<>(batchSize); + for (OriginalHntSgsInfo item : list) { + batchList.add(item); + if (batchList.size() == batchSize) { + baseMapper.batchInsert(batchList); + batchList.clear(); + } + } + + // 处理最后一批不满batchSize的数据 + if (!batchList.isEmpty()) { + baseMapper.batchInsert(batchList); + } } } diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalOnlinePaymentServiceImpl.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalOnlinePaymentServiceImpl.java index 7921236..283fb2f 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalOnlinePaymentServiceImpl.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalOnlinePaymentServiceImpl.java @@ -48,7 +48,30 @@ public class OriginalOnlinePaymentServiceImpl implements IOriginalOnlinePaymentS if (isUpdateSupport) { baseMapper.insertOrUpdateBatch(list); } else { - baseMapper.insertBatch(list); + //baseMapper.insertBatch(list); + + /** + * 多笔写入方式有循环写入、开启数据库batch模式、sql拼接后多笔入库以及mapper foreach多笔写入模式 + * 经对比验证,foreach方式效率最高 + * + * **/ + + //由于mybatis的批量方法为伪批量,以下优化为真批量 + //SqlHelper与service的注解事务管理冲突,所以此处自行写分批 + int batchSize = 1000;//每批1000条 + List batchList = new ArrayList<>(batchSize); + for (OriginalOnlinePayment item : list) { + batchList.add(item); + if (batchList.size() == batchSize) { + baseMapper.batchInsert(batchList); + batchList.clear(); + } + } + + // 处理最后一批不满batchSize的数据 + if (!batchList.isEmpty()) { + baseMapper.batchInsert(batchList); + } } } diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalTrafficServiceImpl.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalTrafficServiceImpl.java index a3ee2e3..a920f62 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalTrafficServiceImpl.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalTrafficServiceImpl.java @@ -49,7 +49,30 @@ public class OriginalTrafficServiceImpl implements IOriginalTrafficService { if (isUpdateSupport) { baseMapper.insertOrUpdateBatch(list); } else { - baseMapper.insertBatch(list); + //baseMapper.insertBatch(list); + + /** + * 多笔写入方式有循环写入、开启数据库batch模式、sql拼接后多笔入库以及mapper foreach多笔写入模式 + * 经对比验证,foreach方式效率最高 + * + * **/ + + //由于mybatis的批量方法为伪批量,以下优化为真批量 + //SqlHelper与service的注解事务管理冲突,所以此处自行写分批 + int batchSize = 1000;//每批1000条 + List batchList = new ArrayList<>(batchSize); + for (OriginalTraffic item : list) { + batchList.add(item); + if (batchList.size() == batchSize) { + baseMapper.batchInsert(batchList); + batchList.clear(); + } + } + + // 处理最后一批不满batchSize的数据 + if (!batchList.isEmpty()) { + baseMapper.batchInsert(batchList); + } } } diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalWaterServiceImpl.java b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalWaterServiceImpl.java index 3b13b80..6c34722 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalWaterServiceImpl.java +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/original/service/impl/OriginalWaterServiceImpl.java @@ -48,7 +48,30 @@ public class OriginalWaterServiceImpl implements IOriginalWaterService { if (isUpdateSupport) { baseMapper.insertOrUpdateBatch(list); } else { - baseMapper.insertBatch(list); + //baseMapper.insertBatch(list); + + /** + * 多笔写入方式有循环写入、开启数据库batch模式、sql拼接后多笔入库以及mapper foreach多笔写入模式 + * 经对比验证,foreach方式效率最高 + * + * **/ + + //由于mybatis的批量方法为伪批量,以下优化为真批量 + //SqlHelper与service的注解事务管理冲突,所以此处自行写分批 + int batchSize = 1000;//每批1000条 + List batchList = new ArrayList<>(batchSize); + for (OriginalWater item : list) { + batchList.add(item); + if (batchList.size() == batchSize) { + baseMapper.batchInsert(batchList); + batchList.clear(); + } + } + + // 处理最后一批不满batchSize的数据 + if (!batchList.isEmpty()) { + baseMapper.batchInsert(batchList); + } } } diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalDianfeiMapper.xml b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalDianfeiMapper.xml index 67c525a..3c2e871 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalDianfeiMapper.xml +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalDianfeiMapper.xml @@ -1,7 +1,40 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + INSERT INTO mps_import_dianfei + ( + id, + branch_id, + branch_name, + quantity, + import_time, + tenant_id, + create_dept, + create_by, + create_time, + update_by, + update_time + ) + VALUES + + ( + #{item.id}, + #{item.branchId}, + #{item.branchName}, + #{item.quantity}, + #{item.importTime}, + #{item.tenantId}, + #{item.createDept}, + #{item.createBy}, + #{item.createTime}, + #{item.updateBy}, + #{item.updateTime} + ) + + diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalEMBankingMapper.xml b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalEMBankingMapper.xml index 86f29a1..8d8e806 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalEMBankingMapper.xml +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalEMBankingMapper.xml @@ -1,7 +1,40 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + INSERT INTO mps_import_enterprise_mobile_banking + ( + id, + branch_id, + branch_name, + quantity, + import_time, + tenant_id, + create_dept, + create_by, + create_time, + update_by, + update_time + ) + VALUES + + ( + #{item.id}, + #{item.branchId}, + #{item.branchName}, + #{item.quantity}, + #{item.importTime}, + #{item.tenantId}, + #{item.createDept}, + #{item.createBy}, + #{item.createTime}, + #{item.updateBy}, + #{item.updateTime} + ) + + diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalGjjPaymentMapper.xml b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalGjjPaymentMapper.xml index 2a3716f..4991f0f 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalGjjPaymentMapper.xml +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalGjjPaymentMapper.xml @@ -1,7 +1,40 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + INSERT INTO mps_import_gjj_payment + ( + id, + payment_date, + counterparty_name, + payment_amount, + import_time, + tenant_id, + create_dept, + create_by, + create_time, + update_by, + update_time + ) + VALUES + + ( + #{item.id}, + #{item.paymentDate}, + #{item.counterpartyName}, + #{item.paymentAmount}, + #{item.importTime}, + #{item.tenantId}, + #{item.createDept}, + #{item.createBy}, + #{item.createTime}, + #{item.updateBy}, + #{item.updateTime} + ) + + diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalHeatMapper.xml b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalHeatMapper.xml index e612a17..75dd1aa 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalHeatMapper.xml +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalHeatMapper.xml @@ -1,7 +1,50 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + INSERT INTO mps_import_heat + ( + id, + user_code, + user_address, + fee_type, + payment_amount, + heater_amount, + payment_date, + transaction_id, + order_status, + import_time, + tenant_id, + create_dept, + create_by, + create_time, + update_by, + update_time + ) + VALUES + + ( + #{item.id}, + #{item.userCode}, + #{item.userAddress}, + #{item.feeType}, + #{item.paymentAmount}, + #{item.heaterAmount}, + #{item.paymentDate}, + #{item.transactionId}, + #{item.orderStatus}, + #{item.importTime}, + #{item.tenantId}, + #{item.createDept}, + #{item.createBy}, + #{item.createTime}, + #{item.updateBy}, + #{item.updateTime} + ) + + diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalHntSgmxMapper.xml b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalHntSgmxMapper.xml index 2bd76dc..6de175d 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalHntSgmxMapper.xml +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalHntSgmxMapper.xml @@ -4,4 +4,62 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + INSERT INTO mps_import_hnt_sgmx + ( + id, + order_id, + farmer_name, + buyer_name, + order_status, + settlement_status, + actual_amount, + order_time, + payment_time, + farmer_legal_entity, + farmer_branch, + farmer_branch_name, + buyer_legal_entity, + buyer_branch, + buyer_branch_name, + transaction_no, + import_time, + tenant_id, + create_dept, + create_by, + create_time, + update_by, + update_time + ) + VALUES + + ( + #{item.id}, + #{item.orderId}, + #{item.farmerName}, + #{item.buyerName}, + #{item.orderStatus}, + #{item.settlementStatus}, + #{item.actualAmount}, + #{item.orderTime}, + #{item.paymentTime}, + #{item.farmerLegalEntity}, + #{item.farmerBranch}, + #{item.farmerBranchName}, + #{item.buyerLegalEntity}, + #{item.buyerBranch}, + #{item.buyerBranchName}, + #{item.transactionNo}, + #{item.importTime}, + #{item.tenantId}, + #{item.createDept}, + #{item.createBy}, + #{item.createTime}, + #{item.updateBy}, + #{item.updateTime} + ) + + + diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalHntSgsInfoMapper.xml b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalHntSgsInfoMapper.xml index c28812a..a6716a0 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalHntSgsInfoMapper.xml +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalHntSgsInfoMapper.xml @@ -1,7 +1,52 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + INSERT INTO mps_import_hnt_sgs_info + ( + id, + contract_id, + name, + id_card, + account_number, + phone, + status, + legal_entity, + branch_affiliation, + branch_code, + import_time, + tenant_id, + create_dept, + create_by, + create_time, + update_by, + update_time + ) + VALUES + + ( + #{item.id}, + #{item.contractId}, + #{item.name}, + #{item.idCard}, + #{item.accountNumber}, + #{item.phone}, + #{item.status}, + #{item.legalEntity}, + #{item.branchAffiliation}, + #{item.branchCode}, + #{item.importTime}, + #{item.tenantId}, + #{item.createDept}, + #{item.createBy}, + #{item.createTime}, + #{item.updateBy}, + #{item.updateTime} + ) + + diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalOnlinePaymentMapper.xml b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalOnlinePaymentMapper.xml index f556492..ab83ab3 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalOnlinePaymentMapper.xml +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalOnlinePaymentMapper.xml @@ -1,7 +1,40 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + INSERT INTO mps_import_online_payment + ( + id, + branch_id, + branch_name, + quantity, + import_time, + tenant_id, + create_dept, + create_by, + create_time, + update_by, + update_time + ) + VALUES + + ( + #{item.id}, + #{item.branchId}, + #{item.branchName}, + #{item.quantity}, + #{item.importTime}, + #{item.tenantId}, + #{item.createDept}, + #{item.createBy}, + #{item.createTime}, + #{item.updateBy}, + #{item.updateTime} + ) + + diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalTrafficMapper.xml b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalTrafficMapper.xml index b1ffdc9..15497ce 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalTrafficMapper.xml +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalTrafficMapper.xml @@ -1,7 +1,48 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + INSERT INTO mps_import_traffic + ( + id, + branch_name, + payer_name, + payer_account, + penalty_decision_no, + payment_method, + payment_amount, + payment_channel, + import_time, + tenant_id, + create_dept, + create_by, + create_time, + update_by, + update_time + ) + VALUES + + ( + #{item.id}, + #{item.branchName}, + #{item.payerName}, + #{item.payerAccount}, + #{item.penaltyDecisionNo}, + #{item.paymentMethod}, + #{item.paymentAmount}, + #{item.paymentChannel}, + #{item.importTime}, + #{item.tenantId}, + #{item.createDept}, + #{item.createBy}, + #{item.createTime}, + #{item.updateBy}, + #{item.updateTime} + ) + + diff --git a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalWaterMapper.xml b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalWaterMapper.xml index bec083d..71f4385 100644 --- a/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalWaterMapper.xml +++ b/cds-platform-2025.V1/ruoyi-modules/ruoyi-system/src/main/resources/mapper/original/OriginalWaterMapper.xml @@ -1,7 +1,76 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + INSERT INTO mps_import_water + ( + id, + customer_code, + name, + address, + water_meter_number, + bank_transaction_id, + payment_count, + current_payment_amount, + payment_amount, + water_unit_price, + water_fee, + sewage_unit_price, + sewage_fee, + surcharge_unit_price, + surcharge, + penalty, + total_receivable, + previous_balance, + current_balance, + payment_date, + payment_status, + accounting_status, + import_time, + tenant_id, + create_dept, + create_by, + create_time, + update_by, + update_time + ) + VALUES + + ( + #{item.id}, + #{item.customerCode}, + #{item.name}, + #{item.address}, + #{item.waterMeterNumber}, + #{item.bankTransactionId}, + #{item.paymentCount}, + #{item.currentPaymentAmount}, + #{item.paymentAmount}, + #{item.waterUnitPrice}, + #{item.waterFee}, + #{item.sewageUnitPrice}, + #{item.sewageFee}, + #{item.surchargeUnitPrice}, + #{item.surcharge}, + #{item.penalty}, + #{item.totalReceivable}, + #{item.previousBalance}, + #{item.currentBalance}, + #{item.paymentDate}, + #{item.paymentStatus}, + #{item.accountingStatus}, + #{item.importTime}, + #{item.tenantId}, + #{item.createDept}, + #{item.createBy}, + #{item.createTime}, + #{item.updateBy}, + #{item.updateTime} + ) + +