feat: 老法规外标体系关联导入
This commit is contained in:
-9
@@ -136,13 +136,4 @@ public class OldSystemController {
|
|||||||
oldSystemService.importGbStandSystem(file, response);
|
oldSystemService.importGbStandSystem(file, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/importFbStandSystem")
|
|
||||||
@AutoLog(value = "老法规系统-导入外标体系")
|
|
||||||
@ApiOperation(value="老法规系统-导入外标体系", notes="老法规系统-导入外标体系", produces = "application/octet-stream")
|
|
||||||
@ApiOperationSupport(order = 11)
|
|
||||||
public void importFbStandSystem(@RequestParam("file") MultipartFile file,
|
|
||||||
HttpServletResponse response) throws IOException {
|
|
||||||
oldSystemService.importFbStandSystem(file, response);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
-7
@@ -82,11 +82,4 @@ public interface OldSystemService {
|
|||||||
*/
|
*/
|
||||||
void importGbStandSystem(MultipartFile file, HttpServletResponse response);
|
void importGbStandSystem(MultipartFile file, HttpServletResponse response);
|
||||||
|
|
||||||
/**
|
|
||||||
* 导入外标体系
|
|
||||||
* @param file
|
|
||||||
* @param response
|
|
||||||
*/
|
|
||||||
void importFbStandSystem(MultipartFile file, HttpServletResponse response);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+39
-13
@@ -217,6 +217,14 @@ public class OldSystemServiceImpl implements OldSystemService {
|
|||||||
if (defaultUser == null) {
|
if (defaultUser == null) {
|
||||||
throw new JeroBootException("未找到默认用户");
|
throw new JeroBootException("未找到默认用户");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取所有企标体系节点并转为Map
|
||||||
|
String moduleCode = TableNameEnum.FOREIGN_REGULATIONS.getValue();
|
||||||
|
LambdaQueryWrapper<LawsTreeNode> treeNodeWrapper = new LambdaQueryWrapper<>();
|
||||||
|
treeNodeWrapper.eq(LawsTreeNode::getModuleCode, moduleCode);
|
||||||
|
treeNodeWrapper.eq(LawsTreeNode::getDelFlag, YesOrNoEnum.NO.getValue());
|
||||||
|
List<LawsTreeNode> treeNodeList = treeNodeService.list(treeNodeWrapper);
|
||||||
|
Map<String, LawsTreeNode> nodeNameMap = treeNodeList.stream().collect(Collectors.toMap(LawsTreeNode::getNodeName, o -> o));
|
||||||
// 转换数据
|
// 转换数据
|
||||||
List<LawsOverseasStandard> fbList = new ArrayList<>();
|
List<LawsOverseasStandard> fbList = new ArrayList<>();
|
||||||
for (OldSystemImportDTO dto : fbDatalist) {
|
for (OldSystemImportDTO dto : fbDatalist) {
|
||||||
@@ -313,6 +321,22 @@ public class OldSystemServiceImpl implements OldSystemService {
|
|||||||
ossFileList.add(ossFile);
|
ossFileList.add(ossFile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 校验体系
|
||||||
|
String bzfl = dto.getBzfl();
|
||||||
|
if (StrUtil.isNotBlank(bzfl)) {
|
||||||
|
// 如果有/的话,只取第一个/后面的数据,无论后面有没有/
|
||||||
|
if (bzfl.contains("/")) {
|
||||||
|
bzfl = bzfl.substring(bzfl.indexOf("/") + 1);
|
||||||
|
}
|
||||||
|
// 到Map中找到对应的体系
|
||||||
|
LawsTreeNode treeNode = nodeNameMap.get(bzfl.trim());
|
||||||
|
if (treeNode != null) {
|
||||||
|
fb.setStandardSystem(treeNode.getId());
|
||||||
|
} else {
|
||||||
|
throw new JeroBootException("未找到对应的体系,标准编号:" + dto.getBzh() + "体系名称:" + bzfl);
|
||||||
|
}
|
||||||
|
}
|
||||||
fbList.add(fb);
|
fbList.add(fb);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("导入转换外标数据时发生错误:{}", e.getMessage());
|
log.error("导入转换外标数据时发生错误:{}", e.getMessage());
|
||||||
@@ -332,7 +356,7 @@ public class OldSystemServiceImpl implements OldSystemService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 3. 将文件关系列表转为Map,用于快速查找
|
// 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
|
// 4. 遍历待保存或更新的列表,设置ID
|
||||||
StringBuilder oldIds = new StringBuilder();
|
StringBuilder oldIds = new StringBuilder();
|
||||||
@@ -367,18 +391,25 @@ public class OldSystemServiceImpl implements OldSystemService {
|
|||||||
}
|
}
|
||||||
entity.setSubstituteStandardNumber(null);
|
entity.setSubstituteStandardNumber(null);
|
||||||
entity.setReplacedByStandardNumber(null);
|
entity.setReplacedByStandardNumber(null);
|
||||||
// 构建updateWrapper 将其余字段全部设为null
|
|
||||||
|
|
||||||
|
String nodeId = entity.getStandardSystem();
|
||||||
|
entity.setStandardSystem(null);
|
||||||
overseasStandardService.saveOrUpdate(entity);
|
overseasStandardService.saveOrUpdate(entity);
|
||||||
|
|
||||||
String standardId = entity.getId();
|
String standardId = entity.getId();
|
||||||
// 保存文件关联
|
// 保存文件关联
|
||||||
// List<OSSFile> ossFiles = standardNumberToFileMap.get(entity.getStandardNumber());
|
List<OSSFile> ossFiles = standardNumberToFileMap.get(entity.getStandardNumber());
|
||||||
// if (ossFiles != null && !ossFiles.isEmpty()) {
|
if (ossFiles != null && !ossFiles.isEmpty()) {
|
||||||
// OSSFile ossFile = ossFiles.get(0);
|
OSSFile ossFile = ossFiles.get(0);
|
||||||
// ossFile.setStandardId(standardId);
|
ossFile.setStandardId(standardId);
|
||||||
// ossFileService.save(ossFile);
|
ossFileService.save(ossFile);
|
||||||
// }
|
}
|
||||||
|
|
||||||
|
// 保存体系
|
||||||
|
if (StrUtil.isNotBlank(nodeId)) {
|
||||||
|
lawsNodeRelationService.removeByStandardId(standardId);
|
||||||
|
lawsNodeRelationService.addRelation(nodeId, null, standardId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
log.info("老法规外标覆盖导入完成");
|
log.info("老法规外标覆盖导入完成");
|
||||||
// 获取当前时间戳(毫秒)
|
// 获取当前时间戳(毫秒)
|
||||||
@@ -972,11 +1003,6 @@ public class OldSystemServiceImpl implements OldSystemService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void importFbStandSystem(MultipartFile file, HttpServletResponse response) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean containsChinese(String text) {
|
public boolean containsChinese(String text) {
|
||||||
Pattern pattern = Pattern.compile("[\u4E00-\u9FA5]");
|
Pattern pattern = Pattern.compile("[\u4E00-\u9FA5]");
|
||||||
Matcher matcher = pattern.matcher(text);
|
Matcher matcher = pattern.matcher(text);
|
||||||
|
|||||||
Reference in New Issue
Block a user