feat: 老部门新部门对应关系导入

This commit is contained in:
2023-12-04 15:02:28 +08:00
parent 6b8415e1c4
commit d14e911b0c
4 changed files with 101 additions and 74 deletions
@@ -34,6 +34,9 @@ public class OldSystemImportDTO {
@Excel(name = "BZFL", width = 15, orderNum = "6")
private String bzfl;
@Excel(name = "国家/地区", width = 15, orderNum = "6", dicCode = "country_or_region")
private String country;
@Excel(name = "BZYYTYPE", width = 15, orderNum = "7")
private String bzyytype;
@@ -28,33 +28,19 @@ public class OldSystemDepartRelation implements Serializable {
@ApiModelProperty(value = "主键ID")
private String id;
/**
* 组织部门
*/
@Excel(name = "组织部门", width = 15)
@ApiModelProperty(value = "组织部门")
private String oldOrgName;
/**
* 上级组织
*/
@Excel(name = "上级组织", width = 15)
@ApiModelProperty(value = "上级组织")
@Excel(name = "上级组织", width = 15)
@ApiModelProperty(value = "上级组织")
private String oldOrgSuperior;
/**
* 组织级别
* 组织部门
*/
@Excel(name = "组织级别", width = 15)
@ApiModelProperty(value = "组织级别")
private String orgLevel;
/**
* 现组织部门
*/
@Excel(name = "现组织部门", width = 15)
@ApiModelProperty(value = "现组织部门")
private String curOrgName;
@Excel(name = "组织部门", width = 15)
@ApiModelProperty(value = "组织部门")
private String oldOrgName;
/**
* 现上级组织
@@ -63,6 +49,13 @@ public class OldSystemDepartRelation implements Serializable {
@ApiModelProperty(value = "现上级组织")
private String curOrgSuperior;
/**
* 现组织部门
*/
@Excel(name = "现组织部门", width = 15)
@ApiModelProperty(value = "现组织部门")
private String curOrgName;
/**
* 现组织部门Id
*/
@@ -89,7 +82,6 @@ public class OldSystemDepartRelation implements Serializable {
public boolean isEmptyRow() {
return oldOrgName == null &&
oldOrgSuperior == null &&
orgLevel == null &&
curOrgName == null &&
curOrgSuperior == null &&
curOrgId == null &&
@@ -75,6 +75,10 @@ public class OldSystemDepartRelationServiceImpl extends ServiceImpl<OldSystemDep
}
}
log.info("导入数据条数:{}", list.size());
// 过滤掉新部门为空的数据
list = list.stream().filter(dr -> dr.getCurOrgName() != null && !dr.getCurOrgName().isEmpty()).collect(Collectors.toList());
log.info("过滤掉新部门为空的数据后数据条数:{}", list.size());
// 获取所有有关联的新部门
LambdaQueryWrapper<SysDepart> sysDeptWrapper = new LambdaQueryWrapper<>();
sysDeptWrapper.eq(SysDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
@@ -228,6 +228,13 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl<LawsEnterpris
// 文件关联
List<OSSFile> ossFileList = new ArrayList<>();
long startTime = System.currentTimeMillis();
LambdaQueryWrapper<SysUser> userWrapper = new LambdaQueryWrapper<>();
userWrapper.eq(SysUser::getRealname, "杨永鹏");
userWrapper.eq(SysUser::getUsername, "077652");
SysUser defaultUser = sysUserService.getOne(userWrapper);
if (defaultUser == null) {
throw new JeroBootException("未找到默认用户");
}
// 转换数据
List<LawsOverseasStandard> fbList = new ArrayList<>();
for (OldSystemImportDTO dto : fbDatalist) {
@@ -277,6 +284,11 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl<LawsEnterpris
fb.setSubstituteStandardNumber(dto.getTdbzh());
fb.setReplacedByStandardNumber(dto.getBtdbzh());
String excelCountry = dto.getCountry();
if (StrUtil.isNotBlank(excelCountry)) {
fb.setCountryOrRegion(dto.getCountry());
}
// 责任部门暂不导入
// String zrbm = dto.getZrbm();
// if (oldDeptMap.get(zrbm) != null && oldDeptMap.get(zrbm).get(0) != null) {
@@ -295,24 +307,24 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl<LawsEnterpris
if (sysUser != null) {
fb.setResponsibleDepartmentUser(sysUser.getId());
} else {
throw new JeroBootException("未找到责任人,姓名:" + zrr + ",工号:" + zrrid + ",标准编号:" + dto.getBzh());
fb.setResponsibleDepartmentUser(defaultUser.getId());
}
}
// 根据文件路径获取文件Id
// String originPath = dto.getSclj();
// if (StrUtil.isNotBlank(originPath)) {
// String filePath = this.getFilePath(originPath);
// if (MinioUtil.doesObjectExist(filePath)) {
// // 存入关系表
// OSSFile ossFile = new OSSFile();
// ossFile.setUrl(filePath);
// ossFile.setStandardNo(dto.getBzh());
// ossFile.setFileName(FileUtil.getName(filePath));
// ossFile.setStandardFileType("publish_of_original");
// ossFileList.add(ossFile);
// }
// }
String originPath = dto.getSclj();
if (StrUtil.isNotBlank(originPath)) {
String filePath = this.getFilePath(originPath);
if (MinioUtil.doesObjectExist(filePath)) {
// 存入关系表
OSSFile ossFile = new OSSFile();
ossFile.setUrl(filePath);
ossFile.setStandardNo(dto.getBzh());
ossFile.setFileName(FileUtil.getName(filePath));
ossFile.setStandardFileType("publish_of_original");
ossFileList.add(ossFile);
}
}
fbList.add(fb);
} catch (Exception e) {
log.error("导入转换外标数据时发生错误:{}", e.getMessage());
@@ -669,13 +681,15 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl<LawsEnterpris
datalist = datalist.stream().filter(data -> !this.containsChinese(data.getBzh())).collect(Collectors.toList());
// 剔除不导入的数据 国家标准/GJB国家军用标准
// datalist = datalist.stream().filter(data -> !data.getBzfl().equals("国家标准/GJB国家军用标准")).collect(Collectors.toList());
// // 删除政策 文件 之后的数据
// datalist = datalist.stream().filter(data -> !this.containsChinese(data.getBzh())).collect(Collectors.toList());
// 删除政策 文件 之后的数据
datalist = datalist.stream().filter(data -> !this.containsChinese(data.getBzh())).collect(Collectors.toList());
//// // 只取用国标数据
//// datalist = datalist.stream().filter(data -> data.getBzfl().startsWith("国家标准")).collect(Collectors.toList());
//// // 只取用外标数据
// datalist = datalist.stream().filter(data -> data.getBzfl().contains("国外") || data.getBzfl().contains("ISO"))
// .collect(Collectors.toList());
// // 只取用外标数据
datalist = datalist.stream().filter(data -> data.getBzfl().contains("国外") ||
data.getBzfl().contains("ISO") ||
data.getBzfl().contains("引进"))
.collect(Collectors.toList());
// 区分数据
@@ -858,6 +872,14 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl<LawsEnterpris
// 文件关联
List<OSSFile> ossFileList = new ArrayList<>();
long startTime = System.currentTimeMillis();
// 获取默认用户
LambdaQueryWrapper<SysUser> userWrapper = new LambdaQueryWrapper<>();
userWrapper.eq(SysUser::getRealname, "杨永鹏");
userWrapper.eq(SysUser::getUsername, "077652");
SysUser defaultUser = sysUserService.getOne(userWrapper);
if (defaultUser == null) {
throw new JeroBootException("未找到默认用户");
}
// 转换数据
List<LawsDomesticStandard> gbList = new ArrayList<>();
for (OldSystemImportDTO dto : gbDatalist) {
@@ -885,6 +907,9 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl<LawsEnterpris
String ssrq = dto.getSsrq();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
if (StrUtil.isNotBlank(fbrq)) {
if (fbrq.length() == 6) {
fbrq = fbrq + "01";
}
Date newDate = sdf.parse(fbrq.trim());
if (newDate != null) {
gb.setReleaseDate(newDate);
@@ -893,6 +918,9 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl<LawsEnterpris
}
}
if (StrUtil.isNotBlank(ssrq)) {
if (ssrq.length() == 6) {
ssrq = ssrq + "01";
}
Date newDate = sdf.parse(ssrq.trim());
if (newDate != null) {
gb.setImplementationDate(newDate);
@@ -925,24 +953,24 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl<LawsEnterpris
if (sysUser != null) {
gb.setResponsibleDepartmentUser(sysUser.getId());
} else {
throw new JeroBootException("未找到责任人,姓名:" + zrr + ",工号:" + zrrid + ",标准编号:" + dto.getBzh());
gb.setResponsibleDepartmentUser(defaultUser.getId());
}
}
// 根据文件路径获取文件Id
// String originPath = dto.getSclj();
// if (StrUtil.isNotBlank(originPath)) {
// String filePath = this.getFilePath(originPath);
// if (MinioUtil.doesObjectExist(filePath)) {
// // 存入关系表
// OSSFile ossFile = new OSSFile();
// ossFile.setUrl(filePath);
// ossFile.setStandardNo(dto.getBzh());
// ossFile.setFileName(FileUtil.getName(filePath));
// ossFile.setStandardFileType("publish_of_original");
// ossFileList.add(ossFile);
// }
// }
String originPath = dto.getSclj();
if (StrUtil.isNotBlank(originPath)) {
String filePath = this.getFilePath(originPath);
if (MinioUtil.doesObjectExist(filePath)) {
// 存入关系表
OSSFile ossFile = new OSSFile();
ossFile.setUrl(filePath);
ossFile.setStandardNo(dto.getBzh());
ossFile.setFileName(FileUtil.getName(filePath));
ossFile.setStandardFileType("publish_of_original");
ossFileList.add(ossFile);
}
}
gb.setIsAsmsImport("0");
gbList.add(gb);
} catch (Exception e) {
@@ -1157,19 +1185,19 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl<LawsEnterpris
es.setCategoryCode(excelUtils.translateDictValue("standard_category_code", categoryCode, listDict));
}
// 根据文件路径获取文件Id
// String originPath = dto.getSclj();
// if (StrUtil.isNotBlank(originPath)) {
// String filePath = this.getFilePath(originPath);
// if (MinioUtil.doesObjectExist(filePath)) {
// // 存入关系表
// OSSFile ossFile = new OSSFile();
// ossFile.setUrl(filePath);
// ossFile.setStandardNo(dto.getBzh());
// ossFile.setFileName(FileUtil.getName(filePath));
// ossFile.setStandardFileType("publish_of_original");
// ossFileList.add(ossFile);
// }
// }
String originPath = dto.getSclj();
if (StrUtil.isNotBlank(originPath)) {
String filePath = this.getFilePath(originPath);
if (MinioUtil.doesObjectExist(filePath)) {
// 存入关系表
OSSFile ossFile = new OSSFile();
ossFile.setUrl(filePath);
ossFile.setStandardNo(dto.getBzh());
ossFile.setFileName(FileUtil.getName(filePath));
ossFile.setStandardFileType("publish_of_original");
ossFileList.add(ossFile);
}
}
esList.add(es);
} catch (Exception e) {
log.error("导入转换企标数据时发生错误:{}", e.getMessage());
@@ -1188,7 +1216,7 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl<LawsEnterpris
}
// 3. 将文件关系列表转为Map,用于快速查找
// Map<String, List<OSSFile>> standardNumberToFileMap = ossFileList.stream().collect(Collectors.groupingBy(OSSFile::getStandardNo));
Map<String, List<OSSFile>> standardNumberToFileMap = ossFileList.stream().collect(Collectors.groupingBy(OSSFile::getStandardNo));
// 4. 遍历待保存或更新的列表,设置ID
StringBuilder oldIds = new StringBuilder();
@@ -1229,12 +1257,12 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl<LawsEnterpris
// 保存文件关联
String standardId = entity.getId();
// 保存文件关联
// List<OSSFile> ossFiles = standardNumberToFileMap.get(entity.getStandardNumber());
// if (ossFiles != null && !ossFiles.isEmpty()) {
// OSSFile ossFile = ossFiles.get(0);
// ossFile.setStandardId(standardId);
// ossFileService.save(ossFile);
// }
List<OSSFile> ossFiles = standardNumberToFileMap.get(entity.getStandardNumber());
if (ossFiles != null && !ossFiles.isEmpty()) {
OSSFile ossFile = ossFiles.get(0);
ossFile.setStandardId(standardId);
ossFileService.save(ossFile);
}
entity.setId(standardId);
// 拼接新id
newIds.append(standardId).append(",");