From fa311c1da77a21b0d99aff4c176f2f104583a014 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=B8=85?= Date: Tue, 17 Jun 2025 19:49:27 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E7=89=A9=E8=B5=84=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E5=8A=9F=E8=83=BD-=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysDeptController.java | 3 - .../src/main/resources/application-prod.yml | 12 ++-- .../src/main/resources/application.yml | 2 +- .../service/impl/SysDeptServiceImpl.java | 65 ++++++++++++------- .../service/impl/SysUserServiceImpl.java | 15 ++--- 5 files changed, 54 insertions(+), 43 deletions(-) diff --git a/maintain-admin/src/main/java/com/maintain/web/controller/system/SysDeptController.java b/maintain-admin/src/main/java/com/maintain/web/controller/system/SysDeptController.java index 1bd734c..e4be649 100644 --- a/maintain-admin/src/main/java/com/maintain/web/controller/system/SysDeptController.java +++ b/maintain-admin/src/main/java/com/maintain/web/controller/system/SysDeptController.java @@ -134,9 +134,6 @@ public class SysDeptController extends BaseController { return toAjax(deptService.deleteDeptById(deptId)); } - - - /** * 同步外部数据 * @return diff --git a/maintain-admin/src/main/resources/application-prod.yml b/maintain-admin/src/main/resources/application-prod.yml index 63f68eb..7de2c2a 100644 --- a/maintain-admin/src/main/resources/application-prod.yml +++ b/maintain-admin/src/main/resources/application-prod.yml @@ -52,17 +52,17 @@ spring: driverClassName: com.mysql.cj.jdbc.Driver # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562 # rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题) - url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true - username: root - password: root + url: jdbc:mysql://rm-hp3340490n5mw72tcto.mysql.huhehaote.rds.aliyuncs.com:3306/tianmaiweixiu_db?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true + username: tianmaiweixiu + password: 7HTx9s@2wcbTQ@r1 # 从库数据源 slave: lazy: true type: ${spring.datasource.type} driverClassName: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true - username: - password: + url: jdbc:mysql://rm-hp3340490n5mw72tcto.mysql.huhehaote.rds.aliyuncs.com:3306/tianmaiweixiu_db?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true + username: tianmaiweixiu + password: 7HTx9s@2wcbTQ@r1 # oracle: # type: ${spring.datasource.type} # driverClassName: oracle.jdbc.OracleDriver diff --git a/maintain-admin/src/main/resources/application.yml b/maintain-admin/src/main/resources/application.yml index 1a1c2ca..d39c422 100644 --- a/maintain-admin/src/main/resources/application.yml +++ b/maintain-admin/src/main/resources/application.yml @@ -66,7 +66,7 @@ spring: # 国际化资源文件路径 basename: i18n/messages profiles: - active: @profiles.active@ + active: prod # 文件上传 servlet: multipart: diff --git a/maintain-system/src/main/java/com/maintain/system/service/impl/SysDeptServiceImpl.java b/maintain-system/src/main/java/com/maintain/system/service/impl/SysDeptServiceImpl.java index bcdac9b..d7174aa 100644 --- a/maintain-system/src/main/java/com/maintain/system/service/impl/SysDeptServiceImpl.java +++ b/maintain-system/src/main/java/com/maintain/system/service/impl/SysDeptServiceImpl.java @@ -30,14 +30,12 @@ import com.maintain.system.mapper.SysUserMapper; import com.maintain.system.service.ISysDeptService; import com.maintain.system.util.ExternalDataDispose; import lombok.RequiredArgsConstructor; +import org.jetbrains.annotations.NotNull; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 部门管理 服务实现 @@ -336,29 +334,13 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService { public void deptSync() { String res = com.zxw.util.tm.HttpTmEncryptUtil.sendPostRequest("http://10.100.102.67:22220/api/basis/deptInfoExtRepair", null, null); Map map = JSONUtil.toBean(res, Map.class); + System.out.println(JSONUtil.toJsonStr(map.get("data"))); List departmentList = JSONUtil.toList(JSONUtil.toJsonStr(map.get("data")), ExternalDept.class); List sysDeptList = baseMapper.selectList(); departmentList.forEach(department -> { // 查询是否已存在系统 - System.out.println("编号:"+department.getDeptCode()+",部门" + department.getDeptName()); if (sysDeptList.stream().noneMatch(item -> null != item.getExternalDeptCode() && item.getExternalDeptCode().equals(department.getDeptCode()))) { - SysDept dept = sysDeptList.stream().filter(item -> item.getExternalDeptCode().equals(department.getUpperDeptCode())) - .findFirst() - .orElseThrow(() -> new RuntimeException("未找到部门=" + department.getUpperDeptCode())); - if (dept != null) { - SysDept sysDept = new SysDept(); - sysDept.setAncestors(dept.getAncestors() + StringUtils.SEPARATOR + dept.getDeptId()); - sysDept.setParentId(dept.getDeptId()); - sysDept.setDeptName(department.getDeptName()); - sysDept.setExternalDeptCode(department.getDeptCode()); - // 状态转换 - sysDept.setStatus( - department.getStatus().equals("已启用") - ? String.valueOf(IsEnableStatus.YES.getCode()) // 已启用对应YES - : String.valueOf(IsEnableStatus.NO.getCode()) - ); - baseMapper.insert(sysDept); - } else if (department.getUpperDeptCode().equals("-1")) { + if (department.getUpperDeptCode().equals("-1")) { SysDept sysDept = new SysDept(); sysDept.setAncestors("0,1"); sysDept.setParentId(1L); @@ -367,13 +349,46 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService { // 状态转换 sysDept.setStatus( department.getStatus().equals("已启用") - ? String.valueOf(IsEnableStatus.YES.getCode()) // 已启用对应YES - : String.valueOf(IsEnableStatus.NO.getCode()) + ? String.valueOf(IsEnableStatus.NO.getCode()) // 0正常 1停用 + : String.valueOf(IsEnableStatus.YES.getCode()) ); - baseMapper.insert(sysDept); + int flag = baseMapper.insert(sysDept); + if (flag > 0) { + sysDeptList.add(sysDept); + } + } else { + Optional first = sysDeptList.stream() + .filter(item -> item.getExternalDeptCode() != null && item.getExternalDeptCode().equals(department.getUpperDeptCode())) + .findFirst(); + if (first.isPresent()) { + SysDept sysDept = getSysDept(department, first); + int flag = baseMapper.insert(sysDept); + if (flag > 0) { + sysDeptList.add(sysDept); + } + }else { + System.out.println("不存在部门:"+ department.getDeptName()); + } } } }); } + @NotNull + private static SysDept getSysDept(ExternalDept department, Optional first) { + SysDept dept = first.get(); + SysDept sysDept = new SysDept(); + sysDept.setAncestors(dept.getAncestors() + StringUtils.SEPARATOR + dept.getDeptId()); + sysDept.setParentId(dept.getDeptId()); + sysDept.setDeptName(department.getDeptName()); + sysDept.setExternalDeptCode(department.getDeptCode()); + // 状态转换 + sysDept.setStatus( + department.getStatus().equals("已启用") + ? String.valueOf(IsEnableStatus.NO.getCode()) // 0正常 1停用 + : String.valueOf(IsEnableStatus.YES.getCode()) + ); + return sysDept; + } + } diff --git a/maintain-system/src/main/java/com/maintain/system/service/impl/SysUserServiceImpl.java b/maintain-system/src/main/java/com/maintain/system/service/impl/SysUserServiceImpl.java index d4fd6e2..fe96495 100644 --- a/maintain-system/src/main/java/com/maintain/system/service/impl/SysUserServiceImpl.java +++ b/maintain-system/src/main/java/com/maintain/system/service/impl/SysUserServiceImpl.java @@ -35,10 +35,7 @@ import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 用户 业务层处理 @@ -506,10 +503,12 @@ public class SysUserServiceImpl implements ISysUserService, UserService { externalUserList.forEach(externalUser -> { if (sysUserList.stream().noneMatch(item -> externalUser.getEmpNo().equals(item.getUserName()))) { SysUser sysUser = new SysUser(); - SysDept dept = sysDeptList.stream().filter(item -> item.getExternalDeptCode().equals(externalUser.getGroupNo())) - .findFirst() - .orElseThrow(() -> new RuntimeException("未找到部门=" + externalUser.getGroupNo())); - sysUser.setDeptId(dept != null ? dept.getDeptId() : null); + Optional first = sysDeptList.stream() + .filter(item -> null != item.getExternalDeptCode() && item.getExternalDeptCode().equals(externalUser.getGroupNo())) + .findFirst(); + if (first.isPresent()) { + sysUser.setDeptId(first.get().getDeptId()); + } sysUser.setUserName(externalUser.getEmpNo()); sysUser.setNickName(externalUser.getEmpName()); sysUser.setStatus(externalUser.getStatusName().equals("在职") ? UserStatus.OK.getCode() : UserStatus.DISABLE.getCode()); -- 2.22.0