From 6de5378536f61810e0b539aa1100fe050607d051 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Fri, 5 Jan 2024 13:29:44 +0800 Subject: [PATCH] =?UTF-8?q?pref:=20=E4=BC=81=E6=A0=87=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E5=8E=86=E5=8F=B2=E6=95=B0=E6=8D=AE=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E6=8E=A5=E5=8F=A3=E6=80=A7=E8=83=BD=E6=8F=90=E5=8D=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EnterpriseStandardAuthDeptMapper.java | 4 ++++ .../xml/EnterpriseStandardAuthDeptMapper.xml | 8 +++++++ .../EnterpriseStandardAuthDeptService.java | 4 ++++ ...EnterpriseStandardAuthDeptServiceImpl.java | 24 +++++++++++++++++++ .../controller/OldSystemController.java | 7 +++--- .../OldSystemDepartRelationService.java | 2 +- .../OldSystemDepartRelationServiceImpl.java | 9 ++++--- 7 files changed, 51 insertions(+), 7 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/EnterpriseStandardAuthDeptMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/EnterpriseStandardAuthDeptMapper.java index 4f1aa076..ab65481a 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/EnterpriseStandardAuthDeptMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/EnterpriseStandardAuthDeptMapper.java @@ -3,6 +3,8 @@ package com.jero.modules.laws.enterprise.mapper; import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; + /** * @author ThinkBook * @description 针对表【laws_enterprise_standard_auth_dept】的数据库操作Mapper @@ -11,6 +13,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface EnterpriseStandardAuthDeptMapper extends BaseMapper { + int batchInsert(List list); + } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardAuthDeptMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardAuthDeptMapper.xml index c366d3ad..5b25cd61 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardAuthDeptMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardAuthDeptMapper.xml @@ -21,4 +21,12 @@ update_by,update_time,org_code, standard_id,authDept + + + INSERT INTO laws_enterprise_standard_auth_dept (id, standard_id, auth_dept) + VALUES + + (#{item.id}, #{item.standardId}, #{item.authDept}) + + diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/EnterpriseStandardAuthDeptService.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/EnterpriseStandardAuthDeptService.java index 26205804..cb689d6c 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/EnterpriseStandardAuthDeptService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/EnterpriseStandardAuthDeptService.java @@ -4,6 +4,8 @@ import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.modules.laws.standard.entity.LawsStandardTempPermission; +import java.util.List; + /** * @author ThinkBook * @description 针对表【laws_enterprise_standard_auth_dept】的数据库操作Service @@ -12,4 +14,6 @@ import com.jero.modules.laws.standard.entity.LawsStandardTempPermission; public interface EnterpriseStandardAuthDeptService extends IService { void saveTempPermission(LawsStandardTempPermission lawsStandardTempPermission); + + void batchInsertWithTransaction(List list, int batchSize); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardAuthDeptServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardAuthDeptServiceImpl.java index 740eac3c..5bb9c4b5 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardAuthDeptServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardAuthDeptServiceImpl.java @@ -12,6 +12,9 @@ import com.jero.modules.laws.standard.entity.LawsStandardTempPermission; import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; import com.jero.modules.sys.utils.UserUtils; import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.session.ExecutorType; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,6 +40,9 @@ public class EnterpriseStandardAuthDeptServiceImpl extends ServiceImpl standardIdList = lawsStandardTempPermission.getStandardIdList(); @@ -61,6 +67,24 @@ public class EnterpriseStandardAuthDeptServiceImpl extends ServiceImpl list, int batchSize) { + try (SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH)) { + EnterpriseStandardAuthDeptMapper batchMapper = sqlSession.getMapper(EnterpriseStandardAuthDeptMapper.class); + + for (int i = 0; i < list.size(); i += batchSize) { + int end = Math.min(i + batchSize, list.size()); + List batchList = list.subList(i, end); + batchMapper.batchInsert(batchList); + sqlSession.commit(); // 提交每个批次 + } + } catch (Exception e) { + // 处理异常,根据需要记录日志或抛出 + log.error("批量插入失败", e); + } + } } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/controller/OldSystemController.java b/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/controller/OldSystemController.java index 3725fd18..33594ca6 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/controller/OldSystemController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/controller/OldSystemController.java @@ -2,6 +2,7 @@ package com.jero.modules.laws.oldSystem.controller; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport; +import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; import com.jero.modules.laws.oldSystem.service.OldSystemDepartRelationService; import com.jero.modules.laws.oldSystem.service.OldSystemService; @@ -152,10 +153,10 @@ public class OldSystemController { } @GetMapping("/esAuthDeptDataFix") @AutoLog(value = "老法规系统-企标授权部门数据修复") - @ApiOperation(value="老法规系统-企标授权部门数据修复", notes="老法规系统-企标授权部门数据修复", produces = "application/octet-stream") + @ApiOperation(value="老法规系统-企标授权部门数据修复", notes="老法规系统-企标授权部门数据修复") @ApiOperationSupport(order = 100) - public void esAuthDeptDataFix() { - oldSystemDeptRelationService.esAuthDeptDataFix(); + public Result esAuthDeptDataFix() { + return Result.OK(oldSystemDeptRelationService.esAuthDeptDataFix()); } } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/service/OldSystemDepartRelationService.java b/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/service/OldSystemDepartRelationService.java index be583ff9..d51f33be 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/service/OldSystemDepartRelationService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/service/OldSystemDepartRelationService.java @@ -22,5 +22,5 @@ public interface OldSystemDepartRelationService extends IService needSaveAllData = new ArrayList<>(); // 获取所有没有被删除的部门 LambdaQueryWrapper departWrapper = new LambdaQueryWrapper<>(); @@ -231,6 +232,7 @@ public class OldSystemDepartRelationServiceImpl extends ServiceImpl distinctData = needSaveAllData.stream() .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getStandardId() + ";" + o.getAuthDept()))), ArrayList::new)); log.info("需要保存的数据条数为:{}", distinctData.size()); - esAdService.saveBatch(needSaveAllData, distinctData.size()); + esAdService.batchInsertWithTransaction(needSaveAllData, 5000); + return "修复完成,共修复数据" + distinctData.size() + "条"; } // 递归查询所有子部门Id