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 1bd734c68eea4f7da20b56d1e7b0dc4ab3859577..e4be649df1e6029c3d6957f6312918e3e625b11f 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 63f68ebb794626cfc80da206b1075bb7bf62a410..7de2c2affceeda22856ace1f1270437560c661d5 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 1a1c2ca3e2554cf28c098471b5ef296f43995800..d39c4222276c0f60e97fc8f44c5815ee7a64aabf 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 bcdac9b00d7c383fc8583dcf8a8b2a0f100fcca2..d7174aa98f88efdb2456c60ca3d2adc0e98af37b 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 d4fd6e228715e30da0b36ac88ea72a85da72f1e8..fe9649557c7e27b590e32b3204c105f82d80547e 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());