Ver Fonte

数据库合并 问题处理

ControlDream há 1 ano atrás
pai
commit
132bf71318

+ 23 - 17
hx-common/src/main/java/com/fjhx/common/aspect/DataSourceAspect.java

@@ -12,7 +12,6 @@ import org.springframework.stereotype.Component;
 
 import java.lang.reflect.Field;
 import java.util.HashSet;
-import java.util.Objects;
 import java.util.Set;
 
 @Aspect
@@ -37,24 +36,31 @@ public class DataSourceAspect {
 
     @Around(value = "pointcut()")
     public Object before(ProceedingJoinPoint point) throws Throwable {
-        Object target = point.getTarget();
-        String name = target.getClass().getName();
-        String moduleName = name.split("\\.")[2];
+//        Object target = point.getTarget();
+//        String name = target.getClass().getName();
+//        String moduleName = name.split("\\.")[2];
+//
+//        String peek = DynamicDataSourceContextHolder.peek();
+//        if (Objects.equals(peek, moduleName)) {
+//            return point.proceed();
+//        }
+//
+//        if (dataSourceSet.contains(moduleName)) {
+//            try {
+//                DynamicDataSourceContextHolder.push(moduleName);
+//                return point.proceed();
+//            } finally {
+//                DynamicDataSourceContextHolder.poll();
+//            }
+//        } else {
+//            return point.proceed();
+//        }
 
-        String peek = DynamicDataSourceContextHolder.peek();
-        if (Objects.equals(peek, moduleName)) {
-            return point.proceed();
-        }
-
-        if (dataSourceSet.contains(moduleName)) {
-            try {
-                DynamicDataSourceContextHolder.push(moduleName);
-                return point.proceed();
-            } finally {
-                DynamicDataSourceContextHolder.poll();
-            }
-        } else {
+        try {
+            DynamicDataSourceContextHolder.push(SourceConstant.BASE);
             return point.proceed();
+        } finally {
+            DynamicDataSourceContextHolder.poll();
         }
     }
 

+ 0 - 47
hx-common/src/main/java/com/fjhx/common/constant/SourceConstant.java

@@ -2,53 +2,6 @@ package com.fjhx.common.constant;
 
 
 public interface SourceConstant {
-    
-    String ITEM = "item";
-
-    String SUPPLY = "supply";
-
-    String IOT = "iot";
-
-    String WMS = "wms";
-
-    String MES = "mes";
-
-    String OA = "oa";
-
-    String CUSTOMER = "customer";
-
-    String PURCHASE = "purchase";
-
     String BASE = "base";
 
-    String ACCOUNT = "account";
-
-    String SALE = "sale";
-
-    String MAIL = "mail";
-
-    String COMMON = "common";
-
-    String VICTORIATOURIST = "victoriatourist";
-    String KD100 = "kd100";
-
-    /**
-     * ehsd定制数据库
-     */
-    String EHSD = "ehsd";
-
-    String DINGDING = "dingding";
-
-    /**
-     * 数据处理
-     */
-    String DATA = "data";
-
-    /**
-     * 嘉新双拓定制
-     */
-    String JXST = "jxst";
-
-    String XMHJC = "xmhjc";
-
 }

+ 4 - 6
hx-common/src/main/java/com/fjhx/common/controller/multilingual/MultilingualController.java

@@ -1,8 +1,6 @@
 package com.fjhx.common.controller.multilingual;
 
-import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.fjhx.common.constant.SourceConstant;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
@@ -20,7 +18,7 @@ public class MultilingualController {
 
     @GetMapping("/getJson")
     public String getJson() {
-        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+//        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
         SysConfig config = sysConfigService.getOne(Wrappers.<SysConfig>lambdaQuery().eq(SysConfig::getConfigKey, "multilingualJson"));
         if (config == null) {
             config = new SysConfig();
@@ -31,13 +29,13 @@ public class MultilingualController {
             config.setRemark("多语言json");
             sysConfigService.save(config);
         }
-        DynamicDataSourceContextHolder.poll();
+//        DynamicDataSourceContextHolder.poll();
         return config.getConfigValue();
     }
 
     @PostMapping("/setJson")
     public void setJson(@RequestBody SysConfig sysConfig) {
-        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+//        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
         LoginUser loginUser;
         try {
             loginUser = SecurityUtils.getLoginUser();
@@ -52,7 +50,7 @@ public class MultilingualController {
                 .eq(SysConfig::getConfigKey, "multilingualJson")
                 .set(SysConfig::getConfigValue, sysConfig.getConfigValue())
         );
-        DynamicDataSourceContextHolder.poll();
+//        DynamicDataSourceContextHolder.poll();
     }
 
 }

+ 4 - 6
hx-common/src/main/java/com/fjhx/common/service/coding/impl/CodingRuleServiceImpl.java

@@ -4,12 +4,10 @@ import cn.hutool.core.convert.Convert;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson2.JSON;
-import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.area.entity.po.CustomizeArea;
 import com.fjhx.area.service.CustomizeAreaService;
-import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.entity.coding.bo.CustomerCodeAndCountryId;
 import com.fjhx.common.entity.coding.dto.CodingRuleDto;
 import com.fjhx.common.entity.coding.dto.CodingRuleSelectDto;
@@ -251,11 +249,11 @@ public class CodingRuleServiceImpl extends ServiceImpl<CodingRuleMapper, CodingR
     }
 
     private String getCountryCode(Long countryId) {
-        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+//        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
         CustomizeArea customizeArea = customizeAreaService.getOne(q -> q
                 .eq(BaseIdPo::getId, countryId)
                 .eq(CustomizeArea::getLevelCode, 1));
-        DynamicDataSourceContextHolder.poll();
+//        DynamicDataSourceContextHolder.poll();
 
         if (customizeArea == null) {
             throw new ServiceException("国家为空");
@@ -268,9 +266,9 @@ public class CodingRuleServiceImpl extends ServiceImpl<CodingRuleMapper, CodingR
      * 获取业务员编码
      */
     private String getUserCode() {
-        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+//        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
         SysUser sysUser = sysUserService.getById(SecurityUtils.getUserId());
-        DynamicDataSourceContextHolder.poll();
+//        DynamicDataSourceContextHolder.poll();
         String userCode = sysUser.getUserCode();
         if (StrUtil.isBlank(userCode)) {
             throw new ServiceException("业务员代码未配置,生成编码失败");

+ 1 - 3
hx-common/src/main/java/com/fjhx/common/service/corporation/impl/CorporationServiceImpl.java

@@ -2,12 +2,10 @@ package com.fjhx.common.service.corporation.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.area.utils.CustomizeAreaUtil;
-import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.entity.corporation.dto.CorporationDto;
 import com.fjhx.common.entity.corporation.dto.CorporationSelectDto;
 import com.fjhx.common.entity.corporation.po.Corporation;
@@ -29,7 +27,7 @@ import java.util.List;
  * @author
  * @since 2023-04-10
  */
-@DS(SourceConstant.COMMON)
+//@DS(SourceConstant.COMMON)
 @Service
 public class CorporationServiceImpl extends ServiceImpl<CorporationMapper, Corporation> implements CorporationService {
 

+ 4 - 6
hx-common/src/main/java/com/fjhx/common/service/documentary/impl/DocumentaryRecordServiceImpl.java

@@ -2,11 +2,9 @@ package com.fjhx.common.service.documentary.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
-import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.entity.documentary.bo.DocumentaryData;
 import com.fjhx.common.entity.documentary.dto.DocumentaryRecordDto;
 import com.fjhx.common.entity.documentary.dto.DocumentaryRecordSelectDto;
@@ -80,7 +78,7 @@ public class DocumentaryRecordServiceImpl extends ServiceImpl<DocumentaryRecordM
                     // 设置子线程共享
                     RequestContextHolder.setRequestAttributes(servletRequestAttributes, true);
                     SecurityContextHolder.setContext(context);
-                    DynamicDataSourceContextHolder.push(SourceConstant.COMMON);
+//                    DynamicDataSourceContextHolder.push(SourceConstant.COMMON);
 
                     List<Long> excludeBusinessId = null;
                     Long noRecordDocumentaryId = dto.getNoRecordDocumentaryId();
@@ -93,7 +91,7 @@ public class DocumentaryRecordServiceImpl extends ServiceImpl<DocumentaryRecordM
                     Page<? extends DocumentaryData> page = bean.getDocumentaryPage(dto.getCondition(), dto, excludeBusinessId);
                     setDocumentaryRecord(page);
 
-                    DynamicDataSourceContextHolder.poll();
+//                    DynamicDataSourceContextHolder.poll();
                     return page;
                 }, threadPoolExecutor).exceptionally(e -> {
                     if (e instanceof ServiceException) {
@@ -107,14 +105,14 @@ public class DocumentaryRecordServiceImpl extends ServiceImpl<DocumentaryRecordM
                     // 设置子线程共享
                     RequestContextHolder.setRequestAttributes(servletRequestAttributes, true);
                     SecurityContextHolder.setContext(context);
-                    DynamicDataSourceContextHolder.push(SourceConstant.COMMON);
+//                    DynamicDataSourceContextHolder.push(SourceConstant.COMMON);
 
                     List<DocumentaryVo> documentaryList = getDocumentaryList(typeEnum.getKey());
                     if (documentaryList.size() > 0) {
                         setDocumentaryRecordCount(documentaryList);
                     }
 
-                    DynamicDataSourceContextHolder.poll();
+//                    DynamicDataSourceContextHolder.poll();
                     return documentaryList;
                 }, threadPoolExecutor).exceptionally(e -> {
                     if (e instanceof ServiceException) {

+ 12 - 14
hx-common/src/main/java/com/fjhx/common/service/on/impl/OnLineInfoServiceImpl.java

@@ -2,10 +2,8 @@ package com.fjhx.common.service.on.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson2.JSONObject;
-import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.entity.on.po.OnLineInfo;
 import com.fjhx.common.entity.on.vo.OnLineInfoReturnData;
 import com.fjhx.common.entity.on.vo.OnLineInfoVo;
@@ -49,13 +47,13 @@ public class OnLineInfoServiceImpl extends ServiceImpl<OnLineInfoMapper, OnLineI
 
 
         //部门负责人:可查看负责部门/部门总监:可以查看对应部门及级联部门
-        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+//        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
         List<SysDept> deptList = sysDeptService.list(Wrappers.<SysDept>lambdaQuery()
                 .eq(SysDept::getLeaderId, userId)
                 .or()
                 .eq(SysDept::getDirectorId, userId)
         );
-        DynamicDataSourceContextHolder.poll();
+//        DynamicDataSourceContextHolder.poll();
 
         //递归获取子数据
         List<OnLineInfoReturnData.Dept> deptList1 = getDeptList(deptList, userId, 0);
@@ -97,9 +95,9 @@ public class OnLineInfoServiceImpl extends ServiceImpl<OnLineInfoMapper, OnLineI
 
             //如果部门总监是我 查询部门下的子部门(type=1是递归进来的需要查子部门)
             if (type == 1 || userId.equals(sysDept.getDirectorId())) {
-                DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+//                DynamicDataSourceContextHolder.push(SourceConstant.BASE);
                 List<SysDept> deptList11 = sysDeptService.list(Wrappers.<SysDept>lambdaQuery().eq(SysDept::getParentId, sysDept.getDeptId()));
-                DynamicDataSourceContextHolder.poll();
+//                DynamicDataSourceContextHolder.poll();
                 //赋值子部门
                 List<OnLineInfoReturnData.Dept> deptList2 = getDeptList(deptList11, userId, 1);
                 dept1.setDeptList(deptList2);
@@ -123,9 +121,9 @@ public class OnLineInfoServiceImpl extends ServiceImpl<OnLineInfoMapper, OnLineI
         WebSocketServer webSocketServer = webSocketOnOpenEvent.getWebSocketServer();
         Long userId = webSocketServer.getUserId();
         //记录上线时间
-        DynamicDataSourceContextHolder.push(SourceConstant.COMMON);
+//        DynamicDataSourceContextHolder.push(SourceConstant.COMMON);
         OnLineInfo onLineInfo = this.getOne(q -> q.eq(OnLineInfo::getUserId, userId).apply("DATE(on_line_date) = DATE(NOW())"));
-        DynamicDataSourceContextHolder.poll();
+//        DynamicDataSourceContextHolder.poll();
         if (ObjectUtil.isEmpty(onLineInfo)) {
             onLineInfo = new OnLineInfo();
             onLineInfo.setOnLineDuration(0L);
@@ -134,9 +132,9 @@ public class OnLineInfoServiceImpl extends ServiceImpl<OnLineInfoMapper, OnLineI
             onLineInfo.setTenantId(webSocketServer.getTenantId());
         }
         onLineInfo.setLastOnlineTime(new Date());
-        DynamicDataSourceContextHolder.push(SourceConstant.COMMON);
+//        DynamicDataSourceContextHolder.push(SourceConstant.COMMON);
         this.saveOrUpdate(onLineInfo);
-        DynamicDataSourceContextHolder.poll();
+//        DynamicDataSourceContextHolder.poll();
     }
 
     /**
@@ -152,9 +150,9 @@ public class OnLineInfoServiceImpl extends ServiceImpl<OnLineInfoMapper, OnLineI
         JSONObject json = JSONObject.parseObject(message);
         if (ObjectUtil.isNotEmpty(json.get("heartbeat"))) {
             //保存在线时长信息
-            DynamicDataSourceContextHolder.push(SourceConstant.COMMON);
+//            DynamicDataSourceContextHolder.push(SourceConstant.COMMON);
             OnLineInfo onLineInfo = this.getOne(q -> q.eq(OnLineInfo::getUserId, userId).apply("DATE(on_line_date) = DATE(NOW())"));
-            DynamicDataSourceContextHolder.poll();
+//            DynamicDataSourceContextHolder.poll();
             if (ObjectUtil.isEmpty(onLineInfo)) {
                 onLineInfo = new OnLineInfo();
                 onLineInfo.setOnLineDuration(0L);
@@ -172,9 +170,9 @@ public class OnLineInfoServiceImpl extends ServiceImpl<OnLineInfoMapper, OnLineI
             //记录在线时长
             onLineInfo.setOnLineDuration(onLineInfo.getOnLineDuration() + onLineTime);
             onLineInfo.setLastOnlineTime(endDate);
-            DynamicDataSourceContextHolder.push(SourceConstant.COMMON);
+//            DynamicDataSourceContextHolder.push(SourceConstant.COMMON);
             this.saveOrUpdate(onLineInfo);
-            DynamicDataSourceContextHolder.poll();
+//            DynamicDataSourceContextHolder.poll();
         }
     }
 

+ 2 - 5
hx-xmhjc/src/main/java/com/fjhx/xmhjc/utils/DictUtilsByOpen.java

@@ -2,13 +2,10 @@ package com.fjhx.xmhjc.utils;
 
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.spring.SpringUtil;
-import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
-import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.tenant.entity.dict.dto.DictTenantDataSelectDto;
 import com.fjhx.tenant.entity.dict.vo.DictTenantDataVo;
 import com.fjhx.tenant.mapper.dict.DictTenantDataMapper;
 import com.fjhx.tenant.service.dict.DictTenantDataService;
-import com.ruoyi.common.annotation.TenantIgnore;
 import com.ruoyi.framework.mybatis.holder.TenantHolder;
 
 import java.util.HashMap;
@@ -40,12 +37,12 @@ public class DictUtilsByOpen {
     public static List<DictTenantDataVo> getDictList(String code) {
         TenantHolder.setIgnore(true);
 
-        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+//        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
         DictTenantDataSelectDto dto = new DictTenantDataSelectDto();
         dto.setDictCode(code);
         dto.setTenantId("xmhjc");
         List<DictTenantDataVo> afterSalesType = dictTenantDataMapper.getList(dto);
-        DynamicDataSourceContextHolder.poll();
+//        DynamicDataSourceContextHolder.poll();
         //代码块
         TenantHolder.clear();
         return  afterSalesType;