Commit fa311c1d authored by 刘帅's avatar 刘帅

1.增加物资导入功能-优化

parent 6d7f5335
......@@ -134,9 +134,6 @@ public class SysDeptController extends BaseController {
return toAjax(deptService.deleteDeptById(deptId));
}
/**
* 同步外部数据
* @return
......
......@@ -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
......
......@@ -66,7 +66,7 @@ spring:
# 国际化资源文件路径
basename: i18n/messages
profiles:
active: @profiles.active@
active: prod
# 文件上传
servlet:
multipart:
......
......@@ -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,44 +334,61 @@ 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<ExternalDept> departmentList = JSONUtil.toList(JSONUtil.toJsonStr(map.get("data")), ExternalDept.class);
List<SysDept> 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) {
if (department.getUpperDeptCode().equals("-1")) {
SysDept sysDept = new SysDept();
sysDept.setAncestors(dept.getAncestors() + StringUtils.SEPARATOR + dept.getDeptId());
sysDept.setParentId(dept.getDeptId());
sysDept.setAncestors("0,1");
sysDept.setParentId(1L);
sysDept.setDeptName(department.getDeptName());
sysDept.setExternalDeptCode(department.getDeptCode());
// 状态转换
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);
} else if (department.getUpperDeptCode().equals("-1")) {
int flag = baseMapper.insert(sysDept);
if (flag > 0) {
sysDeptList.add(sysDept);
}
} else {
Optional<SysDept> 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<SysDept> first) {
SysDept dept = first.get();
SysDept sysDept = new SysDept();
sysDept.setAncestors("0,1");
sysDept.setParentId(1L);
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())
? String.valueOf(IsEnableStatus.NO.getCode()) // 0正常 1停用
: String.valueOf(IsEnableStatus.YES.getCode())
);
baseMapper.insert(sysDept);
}
}
});
return sysDept;
}
}
......@@ -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<SysDept> 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());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment