From 62654cb7d3e23074278c7c061bef8f6cbee90d73 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期五, 10 十一月 2023 09:48:21 +0800 Subject: [PATCH] 修改历史数据导入时限制单次导入通过配置做限制,开启多线程分批并行执行insert,注解开启事务回滚失效,对象方式开启事务实现手动提交事务,异常回滚事务 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java | 28 +++++++++++++++++++++++++--- 1 files changed, 25 insertions(+), 3 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java index c87d39e..5cdc488 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java @@ -528,14 +528,14 @@ lcStatus = treeQueryObject.getConditionMap().getOrDefault("lcStatus",null); } if(StringUtils.isNotBlank(id) || StringUtils.isNotBlank(lcStatus) ){ - String tableName = VciBaseUtil.getTableName(treeQueryObject.getConditionMap().get("btmTypeId"),true); + //String tableName = this.getTableName(treeQueryObject.getConditionMap().get("btmTypeId"),treeQueryObject.getConditionMap().get("id"), treeQueryObject.getConditionMap().get("lcStatus")); doList = codeClassifyMapper .selectCodeClassifyDOByTree( treeQueryObject.getConditionMap().get("id"), treeQueryObject.getConditionMap().get("lcStatus"), treeQueryObject.getParentOid(), - VciBaseUtil.checkAdminTenant() ? null:AuthUtil.getTenantId(), - tableName + VciBaseUtil.checkAdminTenant() ? null:AuthUtil.getTenantId() + /*tableName*/ ); }else{ // 鍙鍓嶇浼氫紶鍙傛暟杩囨潵灏变笉浼氬嚭鐜拌蛋杩欏彞鐨勬儏鍐碉紝鎵�浠ユ煡璇㈡�绘暟娌″湪杩欏効娣诲姞 @@ -567,6 +567,28 @@ } /** + * 鍒嗙被鍔犺浇鏃惰幏鍙栦笟鍔$被鍨媔d锛屾嫾鎺ヤ笟鍔$被鍨嬭〃鍚� + * @return + */ + private String getTableName(String btmTypeId,String id,String lcStatus){ + if(Func.isNotEmpty(btmTypeId)){ + return VciBaseUtil.getTableName(btmTypeId,true); + } + LambdaQueryWrapper<CodeClassify> wrapper = Wrappers.<CodeClassify>query() + .lambda().select(CodeClassify::getBtmTypeId) + .eq(CodeClassify::getLcStatus, lcStatus) + .isNotNull(CodeClassify::getBtmTypeId) + .last("limit 1") + .eq(CodeClassify::getId,id).isNull(CodeClassify::getParentCodeClassifyOid); + + CodeClassify codeClassify = codeClassifyMapper.selectOne(wrapper); + if(Func.isEmpty(codeClassify) || Func.isEmpty(codeClassify.getBtmTypeId())){ + throw new ServiceException("鏌ヨ涓绘暟鎹�绘暟鏃讹紝鏈幏鍙栧埌涓氬姟绫诲瀷ID锛�"); + } + return VciBaseUtil.getTableName(codeClassify.getBtmTypeId(),true); + } + + /** * 鏍规嵁鏍戝舰鏌ヨ瀵硅薄鏉ユ煡璇㈡暟鎹璞� * * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄 -- Gitblit v1.9.3