sinake
18 小时以前 6ed96560a308d3aade30e76e3112217f42508af7
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
@@ -3,10 +3,8 @@
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.entity.SysUserDept;
import com.ruoyi.common.core.domain.entity.SysUserRole;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.quartz.mapper.CollectHISMapper;
import com.ruoyi.quartz.mapper.UtilsMapper;
import com.ruoyi.quartz.service.ICollectHISService;
import com.smartor.domain.*;
import com.smartor.mapper.*;
@@ -22,6 +20,7 @@
import java.time.ZoneId;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Slf4j
@Service
@@ -408,39 +407,41 @@
    @Override
    public Integer selectUserList(SysUser sysUser) {
        List<SysUser> sysUserList = chMapper.selectUserList(sysUser);
        SysUser suerTemp=new SysUser();
        List<SysUserDept> sysUserDeptAll = chMapper.yhyksxx(suerTemp);
        log.info("sysUserList的采集到的数量为:{}", sysUserList.size());
        int i =0;// sysUser2Mapper.batchUser(sysUserList);
        for (SysUser sysUser1 : sysUserList) {
//            log.info("sysUser1的ID为:{}", sysUser1.getUserId());
//            log.info("sysUser1的HISUSERID为:{}", sysUser1.getHisUserId());
//            //新增用户与角色
//            SysUserRole yhyjsxx = chMapper.yhyjsxx(sysUser1);
//            if (yhyjsxx != null&&yhyjsxx.getUserId()!=null) {
//                yhyjsxx.setUserId(sysUser1.getUserId());
//                List<SysUserRole> userRoleList = new ArrayList<>();
//                userRoleList.add(yhyjsxx);
//                sysUserRoleMapper.batchUserRole(userRoleList);
//            }
            if (StringUtils.isEmpty(sysUser1.getHisUserId())) continue;
            SysUser suTemp=new SysUser();
            SysUser suTemp = new SysUser();
            suTemp.setHisUserId(sysUser1.getHisUserId());
            List<SysUser> usersTemp= sysUser2Mapper.selectUserList(suTemp);
            if (usersTemp.size()>0) {
            List<SysUser> usersTemp = sysUser2Mapper.selectUserList(suTemp);
            if (usersTemp.size() > 0) {
                sysUser1.setUserId(usersTemp.get(0).getUserId());
                sysUser1.setUserName(sysUser1.getHisUserId());
                sysUser2Mapper.updateUser(sysUser1);
            }else{
            } else {
                sysUser1.setUserName(sysUser1.getHisUserId());
                sysUser2Mapper.insertUser(sysUser1);
                usersTemp= sysUser2Mapper.selectUserList(suTemp);
                usersTemp = sysUser2Mapper.selectUserList(suTemp);
            }
            //新增用户与部门
            List<SysUserDept> sysUserDept = chMapper.yhyksxx(sysUser1);
            for(SysUserDept sud :sysUserDept) {
                if (usersTemp.size()>0) {
            //List<SysUserDept> sysUserDept = chMapper.yhyksxx(sysUser1);
            List<SysUserDept> sysUserDept = sysUserDeptAll.stream()
                    .filter((SysUserDept b) -> b.getUserCode().equals(sysUser1.getHisUserId()))
                    .collect(Collectors.toList());
            for (SysUserDept sud : sysUserDept) {
                if (usersTemp.size() > 0) {
                    sud.setUserId(usersTemp.get(0).getUserId());
                    SysDept sysDeptTemp = sysDept2Mapper.selectDeptByCode(sud.getDeptCode());
                    if (sysDeptTemp != null)
                        sud.setDeptId(sysDeptTemp.getDeptId());
                    sysUserDeptMapper.insertSysUserDept(sud);
                }
            }
        }
@@ -453,35 +454,6 @@
        log.info("selectDeptList的采集到的数量为:{}", sysDepts.size());
        int i = sysDept2Mapper.batchDept(sysDepts);
        return i;
    }
    /**
     * 检查并执行分表的核心方法
     *
     * @param tableName 要检查的表名
     */
    private synchronized void checkAndShard(String tableName) {
        long currentCount = shardingMapper.getTableCount(tableName);
        if (currentCount >= SHARDING_THRESHOLD) {
            log.warn("表 '{}' 已达到分表阈值 {},准备执行分表操作...", tableName, SHARDING_THRESHOLD);
            String newTableName = tableName + "_" + java.time.LocalDate.now().format(java.time.format.DateTimeFormatter.ofPattern("yyyy_MM"));
            Long maxId = shardingMapper.getMaxId(tableName);
            if (maxId == null) maxId = 0L;
            shardingMapper.renameTable(tableName, newTableName);
            log.info("已将表 '{}' 重命名为 '{}'", tableName, newTableName);
            shardingMapper.createLikeTable(tableName, newTableName);
            log.info("已创建新表 '{}'", tableName);
            shardingMapper.setAutoIncrement(tableName, maxId + 1);
            log.info("已设置新表 '{}' 的自增ID起始值为 {}", tableName, maxId + 1);
            log.info("表 '{}' 的分表操作完成!", tableName);
        }
    }
}