|
@@ -1,21 +1,19 @@
|
|
|
package org.springblade.manager.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.lang.mutable.MutableInt;
|
|
|
import com.alibaba.nacos.common.utils.DateFormatUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
+import org.apache.pdfbox.pdmodel.PDDocument;
|
|
|
import org.springblade.archive.entity.ArchiveProjectConfig;
|
|
|
import org.springblade.archive.feign.ArchiveAutoClient;
|
|
|
import org.springblade.business.dto.ImageClassificationFileDTO;
|
|
|
-import org.springblade.business.entity.ArchiveFile;
|
|
|
-import org.springblade.business.entity.InformationQuery;
|
|
|
-import org.springblade.business.entity.TrialDetectionData;
|
|
|
-import org.springblade.business.entity.TrialSelfInspectionRecord;
|
|
|
+import org.springblade.business.entity.*;
|
|
|
import org.springblade.business.feign.ArchiveFileClient;
|
|
|
import org.springblade.business.feign.ImageClassificationFileClient;
|
|
|
import org.springblade.business.feign.InformationQueryClient;
|
|
|
-import org.springblade.business.vo.TreeVoTwo;
|
|
|
import org.springblade.business.vo.TrialSelfInspectionRecordFileVO;
|
|
|
import org.springblade.common.utils.CommonUtil;
|
|
|
import org.springblade.common.utils.ForestNodeMergerEx;
|
|
@@ -24,6 +22,7 @@ import org.springblade.core.log.exception.ServiceException;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.tool.utils.CollectionUtil;
|
|
|
import org.springblade.core.tool.utils.ObjectUtil;
|
|
|
+import org.springblade.core.tool.utils.StringUtil;
|
|
|
import org.springblade.manager.entity.*;
|
|
|
import org.springblade.manager.enums.AssociationTypeEnum;
|
|
|
import org.springblade.manager.enums.StorageTypeEnum;
|
|
@@ -42,6 +41,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
+import java.io.InputStream;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.ZoneId;
|
|
@@ -1035,6 +1035,17 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
Map<Long, List<TrialSelfInspectionRecord>> recordsMap = records.stream().collect(Collectors.groupingBy(TrialSelfInspectionRecord::getNodeId));
|
|
|
List<ArchiveTreeContract> addNode = new ArrayList<>();
|
|
|
List<ArchiveFile> addFile = new ArrayList<>();
|
|
|
+ //试验节点id 添加到档案的节点id映射关系 用与父节点创建
|
|
|
+ HashMap<Long, Long> map = new HashMap<>();
|
|
|
+ for (ArchiveSyncTrialVO trial : trials) {
|
|
|
+ map.put(trial.getPKeyId(),SnowFlakeUtil.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取文档文件最大 sort
|
|
|
+ Integer sort = archiveFileClient.selectMaxSortByContractId(contractInfo.getId());
|
|
|
+ MutableInt mutableInt = new MutableInt();
|
|
|
+ mutableInt.set(sort);
|
|
|
+
|
|
|
/**循环指定试验类型 */
|
|
|
for (Integer type : TrialType) {
|
|
|
//根据类型获取试验节点
|
|
@@ -1045,7 +1056,7 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
//循环试验节点
|
|
|
for (ArchiveSyncTrialVO vo : trialVOS) {
|
|
|
//把节点转换为档案节点,挂载到同步节点下
|
|
|
- ArchiveTreeContract trialNode = createTypeNode(vo.getNodeName(), archiveTreeContract);
|
|
|
+ ArchiveTreeContract trialNode = createTypeNode(vo.getNodeName(), vo.getSort(), vo.getPKeyId(), vo.getPId(), archiveTreeContract, map);
|
|
|
addNode.add(trialNode);
|
|
|
//获取出节点下面的报告,并转换为档案文件
|
|
|
List<TrialSelfInspectionRecord> files = recordsMap.get(vo.getPKeyId());
|
|
@@ -1054,7 +1065,7 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
}
|
|
|
//挂载到子节点下
|
|
|
List<ArchiveFile> newArchiveFileList = files.stream().map(file -> {
|
|
|
- ArchiveFile archiveFile = trialFileCovertArchiveFile(file, trialNode);
|
|
|
+ ArchiveFile archiveFile = trialFileCovertArchiveFile(file, trialNode, contractInfo, mutableInt);
|
|
|
return archiveFile;
|
|
|
}).collect(Collectors.toList());
|
|
|
addFile.addAll(newArchiveFileList);
|
|
@@ -1064,15 +1075,22 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
/**单独处理外委和第三方报告 */
|
|
|
if (contractTrialType.contains("98")){
|
|
|
//获取所有的外委和第三方节点
|
|
|
- List<TrialClassificationConfiguration> threeTestNodes = archiveTreeContractMapper.getAllThreeTestNode();
|
|
|
+ List<TrialClassificationConfiguration> threeTestNodes = archiveTreeContractMapper.getAllThreeTestNode(contractId);
|
|
|
//获取出合同段所有的检测报告
|
|
|
List<TrialDetectionData> dataList = archiveTreeContractMapper.getAllTrialTestRecord(contractId);
|
|
|
//检测报告,按照节点分组
|
|
|
Map<Long, List<TrialDetectionData>> dataMap = dataList.stream().collect(Collectors.groupingBy(l -> l.getNodeId()));
|
|
|
+
|
|
|
+ //试验节点id 添加到档案的节点id映射关系 用与父节点创建
|
|
|
+ HashMap<Long, Long> map2 = new HashMap<>();
|
|
|
+ for (TrialClassificationConfiguration configuration : threeTestNodes) {
|
|
|
+ map2.put(configuration.getId(),SnowFlakeUtil.getId());
|
|
|
+ }
|
|
|
+
|
|
|
//循环所有节点
|
|
|
for (TrialClassificationConfiguration vo : threeTestNodes) {
|
|
|
//把节点转换为档案节点,挂载到同步节点下
|
|
|
- ArchiveTreeContract trialNode = createTypeNode(vo.getNodeName(), archiveTreeContract);
|
|
|
+ ArchiveTreeContract trialNode = createTypeNode(vo.getNodeName(), vo.getNodeType() == 1 ? vo.getSort() : vo.getSort() + 100, vo.getId(), vo.getParentId(), archiveTreeContract, map2);
|
|
|
addNode.add(trialNode);
|
|
|
//获取出节点下面的报告,并转换为档案文件
|
|
|
List<TrialDetectionData> files = dataMap.get(vo.getId());
|
|
@@ -1081,57 +1099,57 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
}
|
|
|
//挂载到子节点下
|
|
|
List<ArchiveFile> newArchiveFileList = files.stream().map(file -> {
|
|
|
- ArchiveFile archiveFile = trialTestFileCovertArchiveFile(file, trialNode);
|
|
|
+ ArchiveFile archiveFile = trialTestFileCovertArchiveFile(file, trialNode, mutableInt);
|
|
|
return archiveFile;
|
|
|
}).collect(Collectors.toList());
|
|
|
addFile.addAll(newArchiveFileList);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ //暂时先不做
|
|
|
/**单独处理原材料资质证书 */
|
|
|
- if (contractTrialType.contains("99")){
|
|
|
- //获取所有的原材节点
|
|
|
- List<ArchiveSyncTrialVO> trialVOS = trialsMap.get(52);
|
|
|
- if (CollectionUtil.isNotEmpty(trialVOS)){
|
|
|
- //查询出整个系统的附件,设计问题
|
|
|
- Map<String, Attach> maps = jdbcTemplate.query("select link,original_name from blade_attach", new BeanPropertyRowMapper<>(Attach.class)).stream().collect(Collectors.toMap(Attach::getLink, Attach -> Attach, (obj1, obj2) -> obj1));
|
|
|
- //获取出所有节点id
|
|
|
- List<Long> nodeIds = trialVOS.stream().map(l -> l.getPKeyId()).collect(Collectors.toList());
|
|
|
- //根据节点id,查询出所有的报告id
|
|
|
- List<Long> recordIds = records.stream().filter(l -> nodeIds.contains(l.getNodeId())).map(l -> l.getId()).collect(Collectors.toList());
|
|
|
- //根据报告id,查询出所有的报告附件
|
|
|
- List<TrialSelfInspectionRecordFileVO> fileVOS = archiveTreeContractMapper.getAllTrialRecordFile(recordIds);
|
|
|
- //报告附件按照节点id分组
|
|
|
- Map<Long, List<TrialSelfInspectionRecordFileVO>> fileMap = fileVOS.stream().collect(Collectors.groupingBy(l -> l.getNodeId()));
|
|
|
- //循环原材节点
|
|
|
- for (ArchiveSyncTrialVO vo : trialVOS) {
|
|
|
- //把节点转换为档案节点,挂载到同步节点下
|
|
|
- ArchiveTreeContract trialNode = createTypeNode(vo.getNodeName(), archiveTreeContract);
|
|
|
- addNode.add(trialNode);
|
|
|
- //获取出节点下面的报告下面的附件,并转换为档案文件
|
|
|
- List<TrialSelfInspectionRecordFileVO> files = fileMap.get(vo.getPKeyId());
|
|
|
- if (CollectionUtil.isEmpty(files)){
|
|
|
- continue;
|
|
|
- }
|
|
|
- //上个开发太懒,敷衍了事,重新设置附件相关值
|
|
|
- for (TrialSelfInspectionRecordFileVO file : files) {
|
|
|
- Attach attach = maps.get(file.getUrl());
|
|
|
- if (attach != null){
|
|
|
- file.setFileName(attach.getOriginalName());
|
|
|
- file.setCreateTime(attach.getCreateTime());
|
|
|
- }
|
|
|
- }
|
|
|
- //挂载到子节点下
|
|
|
- List<ArchiveFile> newArchiveFileList = files.stream().map(file -> {
|
|
|
- ArchiveFile archiveFile = trialFileCovertArchiveFile2(file, trialNode);
|
|
|
- return archiveFile;
|
|
|
- }).collect(Collectors.toList());
|
|
|
- addFile.addAll(newArchiveFileList);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
+// if (contractTrialType.contains("99")){
|
|
|
+// //获取所有的原材节点
|
|
|
+// List<ArchiveSyncTrialVO> trialVOS = trialsMap.get(52);
|
|
|
+// if (CollectionUtil.isNotEmpty(trialVOS)){
|
|
|
+// //查询出整个系统的附件,设计问题
|
|
|
+// Map<String, Attach> maps = jdbcTemplate.query("select link,original_name from blade_attach", new BeanPropertyRowMapper<>(Attach.class)).stream().collect(Collectors.toMap(Attach::getLink, Attach -> Attach, (obj1, obj2) -> obj1));
|
|
|
+// //获取出所有节点id
|
|
|
+// List<Long> nodeIds = trialVOS.stream().map(l -> l.getPKeyId()).collect(Collectors.toList());
|
|
|
+// //根据节点id,查询出所有的报告id
|
|
|
+// List<Long> recordIds = records.stream().filter(l -> nodeIds.contains(l.getNodeId())).map(l -> l.getId()).collect(Collectors.toList());
|
|
|
+// //根据报告id,查询出所有的报告附件
|
|
|
+// List<TrialSelfInspectionRecordFileVO> fileVOS = archiveTreeContractMapper.getAllTrialRecordFile(recordIds);
|
|
|
+// //报告附件按照节点id分组
|
|
|
+// Map<Long, List<TrialSelfInspectionRecordFileVO>> fileMap = fileVOS.stream().collect(Collectors.groupingBy(l -> l.getNodeId()));
|
|
|
+// //循环原材节点
|
|
|
+// for (ArchiveSyncTrialVO vo : trialVOS) {
|
|
|
+// //把节点转换为档案节点,挂载到同步节点下
|
|
|
+// ArchiveTreeContract trialNode = createTypeNode(vo.getNodeName(), archiveTreeContract);
|
|
|
+// addNode.add(trialNode);
|
|
|
+// //获取出节点下面的报告下面的附件,并转换为档案文件
|
|
|
+// List<TrialSelfInspectionRecordFileVO> files = fileMap.get(vo.getPKeyId());
|
|
|
+// if (CollectionUtil.isEmpty(files)){
|
|
|
+// continue;
|
|
|
+// }
|
|
|
+// //上个开发太懒,敷衍了事,重新设置附件相关值
|
|
|
+// for (TrialSelfInspectionRecordFileVO file : files) {
|
|
|
+// Attach attach = maps.get(file.getUrl());
|
|
|
+// if (attach != null){
|
|
|
+// file.setFileName(attach.getOriginalName());
|
|
|
+// file.setCreateTime(attach.getCreateTime());
|
|
|
+// }
|
|
|
+// }
|
|
|
+// //挂载到子节点下
|
|
|
+// List<ArchiveFile> newArchiveFileList = files.stream().map(file -> {
|
|
|
+// ArchiveFile archiveFile = trialFileCovertArchiveFile2(file, trialNode);
|
|
|
+// return archiveFile;
|
|
|
+// }).collect(Collectors.toList());
|
|
|
+// addFile.addAll(newArchiveFileList);
|
|
|
+// }
|
|
|
+//
|
|
|
+// }
|
|
|
+//
|
|
|
+// }
|
|
|
if (addNode.size() > 0){
|
|
|
addNode.stream().forEach(l->l.setTenantId(tenantId));
|
|
|
archiveTreeContractMapper.batchInsertArchiveTreeContract(addNode);
|
|
@@ -1169,14 +1187,41 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
List<ArchiveTreeContract> addNode = new ArrayList<>();
|
|
|
List<ArchiveFile> addFile = new ArrayList<>();
|
|
|
//获取合同段所有的日志,并且附带类型
|
|
|
+ //先查询所有当前合同段下所有日志数据的父级节点
|
|
|
+ List<Long> wbsNodeIds = wbsTreePrivateService.getContractAllLogWbsNodeIds(contractId);
|
|
|
+ if(CollectionUtil.isEmpty(wbsNodeIds)){
|
|
|
+ throw new ServiceException("当前合同段下没有日志资料");
|
|
|
+ }
|
|
|
List<ArchiveSyncLogVO> logs = wbsTreePrivateService.getContractAllLogMonthPack(contractId);
|
|
|
//先查按月封装 没有再查日志
|
|
|
if(CollectionUtil.isEmpty(logs)){
|
|
|
- logs = wbsTreePrivateService.getContractAllLog(contractId);
|
|
|
+ logs = wbsTreePrivateService.getContractAllLog(contractId, null);
|
|
|
+ } else {
|
|
|
+ Map<Long, List<ArchiveSyncLogVO>> collect = logs.stream().collect(Collectors.groupingBy(ArchiveSyncLogVO::getWbsNodeId));
|
|
|
+ for (Long f : wbsNodeIds) {
|
|
|
+ List<ArchiveSyncLogVO> list = collect.get(f);
|
|
|
+ if(CollectionUtil.isEmpty(list)){
|
|
|
+ List<ArchiveSyncLogVO> contractAllLog = wbsTreePrivateService.getContractAllLog(contractId, f);
|
|
|
+ //生成页数
|
|
|
+ contractAllLog.forEach(x -> {
|
|
|
+ InputStream inputStream = CommonUtil.getOSSInputStream(x.getPdfUrl());
|
|
|
+ try (PDDocument document = PDDocument.load(inputStream)) {
|
|
|
+ int numberOfPages = document.getNumberOfPages();
|
|
|
+ x.setPage(numberOfPages);
|
|
|
+ } catch (IOException e) {
|
|
|
+ System.err.println("文件读取错误: " + e.getMessage());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if(CollectionUtil.isNotEmpty(contractAllLog)){
|
|
|
+ logs.addAll(contractAllLog);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
if (CollectionUtil.isEmpty(logs)){
|
|
|
throw new ServiceException("当前合同段下没有日志资料");
|
|
|
}
|
|
|
+ HashMap<Long, Long> map = new HashMap<>();
|
|
|
//日志按照类型分组
|
|
|
Map<Integer, List<ArchiveSyncLogVO>> logMap = logs.stream().collect(Collectors.groupingBy(ArchiveSyncLogVO::getLogType));
|
|
|
//循环选择的日志类型
|
|
@@ -1186,7 +1231,7 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
throw new ServiceException("日志存在字典中未配置的类型,请检查后再同步");
|
|
|
}
|
|
|
//生成子节点
|
|
|
- ArchiveTreeContract logNode = createTypeNode(typeName, archiveTreeContract);
|
|
|
+ ArchiveTreeContract logNode = createTypeNode(typeName, 0, null, null, archiveTreeContract, map);
|
|
|
/** 如果到时候修改需求,只显示有日志的,则下面文件存在再add*/
|
|
|
addNode.add(logNode);
|
|
|
//然后再从分组中获取,如果存在值则转换为档案文件
|
|
@@ -1265,10 +1310,11 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
|
|
|
List<ArchiveTreeContract> addNode = new ArrayList<>();
|
|
|
List<ArchiveFile> addFile = new ArrayList<>();
|
|
|
+ HashMap<Long, Long> map = new HashMap<>();
|
|
|
//循环下级节点
|
|
|
for (ImageClassificationConfig imageType : imageTypes) {
|
|
|
//把分类生成为影像资料的下级节点
|
|
|
- ArchiveTreeContract imageNode = createTypeNode(imageType.getClassfName(),archiveTreeContract);
|
|
|
+ ArchiveTreeContract imageNode = createTypeNode(imageType.getClassfName(), 0, null, null, archiveTreeContract, map);
|
|
|
addNode.add(imageNode);
|
|
|
//如果当前分类下存在文件,则根据类型生成树,还是日期
|
|
|
// List<ImageClassificationFileDTO> files = imageMap.get(imageType.getId());
|
|
@@ -1375,7 +1421,27 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
archiveFile.setFileUrl(file.getImagesPdf());
|
|
|
archiveFile.setPdfFileUrl(file.getImagesPdf());
|
|
|
//文件页数 根据关联照片判断
|
|
|
- long count = albumImagesService.count(Wrappers.<AlbumImages>lambdaQuery().eq(AlbumImages::getAlbumId, file.getId()));
|
|
|
+ List<AlbumImages> list = albumImagesService.list(Wrappers.<AlbumImages>lambdaQuery().eq(AlbumImages::getAlbumId, file.getId()));
|
|
|
+ int count = 0;
|
|
|
+ if(CollectionUtil.isNotEmpty(list)){
|
|
|
+ List<Long> imageIds = list.stream().map(AlbumImages::getImageId).collect(Collectors.toList());
|
|
|
+ if(CollectionUtil.isNotEmpty(imageIds)){
|
|
|
+ //可能存在一条关联记录 多张照片
|
|
|
+ List<ImageClassificationFile> imageClassificationFileByIds = imageClassificationFileClient.getImageClassificationFileByIds(imageIds);
|
|
|
+ if(CollectionUtil.isNotEmpty(imageClassificationFileByIds)){
|
|
|
+ for (ImageClassificationFile f : imageClassificationFileByIds) {
|
|
|
+ if(StringUtils.isNotBlank(f.getImageUrl())){
|
|
|
+ if(f.getImageUrl().contains(",")){
|
|
|
+ List<String> collect = Arrays.stream(f.getImageUrl().split(",")).filter(StringUtil::isNotBlank).collect(Collectors.toList());
|
|
|
+ count += collect.size();
|
|
|
+ }else{
|
|
|
+ count++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
//2张照片为一页
|
|
|
archiveFile.setFilePage((int) Math.ceil((double) count / 2));
|
|
|
archiveFile.setIsApproval(0);
|
|
@@ -1521,7 +1587,7 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
/**
|
|
|
* 质检试验检测资料 转换为 档案文件
|
|
|
*/
|
|
|
- private ArchiveFile trialTestFileCovertArchiveFile(TrialDetectionData vo,ArchiveTreeContract parentNode)
|
|
|
+ private ArchiveFile trialTestFileCovertArchiveFile(TrialDetectionData vo,ArchiveTreeContract parentNode, MutableInt sort)
|
|
|
{
|
|
|
ArchiveFile archiveFile = new ArchiveFile();
|
|
|
archiveFile.setId(SnowFlakeUtil.getId());
|
|
@@ -1529,7 +1595,20 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
archiveFile.setContractId(String.valueOf(parentNode.getContractId()));
|
|
|
archiveFile.setNodeId(parentNode.getId()+"");
|
|
|
archiveFile.setFileNumber(vo.getReportNo());
|
|
|
- archiveFile.setFileName(vo.getMaterialName()+vo.getSpecificationModel());
|
|
|
+ //报告编号+规格型号+试验名称+试验检测报告及附件
|
|
|
+ StringBuffer fileName = new StringBuffer();
|
|
|
+ if(StringUtils.isNotBlank(vo.getReportNo())){
|
|
|
+ fileName.append(vo.getReportNo());
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(vo.getSpecificationModel())){
|
|
|
+ fileName.append(vo.getSpecificationModel());
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(vo.getMaterialName())){
|
|
|
+ fileName.append(vo.getMaterialName());
|
|
|
+ }
|
|
|
+ fileName.append("试验检测报告及附件");
|
|
|
+
|
|
|
+ archiveFile.setFileName(fileName.toString());
|
|
|
if (vo.getReportDate() != null) {
|
|
|
archiveFile.setFileTime(new SimpleDateFormat("yyyy-MM-dd").format(vo.getReportDate()));
|
|
|
}
|
|
@@ -1539,7 +1618,8 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
archiveFile.setIsApproval(0);
|
|
|
archiveFile.setIsCertification(1);
|
|
|
archiveFile.setIsNeedCertification(0);
|
|
|
- archiveFile.setDutyUser(vo.getUserName());
|
|
|
+ //责任人 - 委托单位名称
|
|
|
+ archiveFile.setDutyUser(vo.getEntrustCompany());
|
|
|
archiveFile.setCreateUser(vo.getCreateUser());
|
|
|
archiveFile.setStatus(0);
|
|
|
archiveFile.setIsDeleted(0);
|
|
@@ -1550,7 +1630,8 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
.toLocalDateTime();
|
|
|
archiveFile.setFtime(localDateTime);
|
|
|
archiveFile.setUtime(localDateTime);
|
|
|
- archiveFile.setSort(0);
|
|
|
+ sort.set(sort.get() + 1);
|
|
|
+ archiveFile.setSort(sort.get());
|
|
|
archiveFile.setPageNum("1");
|
|
|
archiveFile.setSourceType(1);
|
|
|
archiveFile.setIsElement(0);
|
|
@@ -1562,7 +1643,7 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
/**
|
|
|
* 质检试验资料 转换为 档案文件
|
|
|
*/
|
|
|
- private ArchiveFile trialFileCovertArchiveFile(TrialSelfInspectionRecord vo,ArchiveTreeContract parentNode)
|
|
|
+ private ArchiveFile trialFileCovertArchiveFile(TrialSelfInspectionRecord vo,ArchiveTreeContract parentNode, ContractInfo contractInfo, MutableInt sort )
|
|
|
{
|
|
|
ArchiveFile archiveFile = new ArchiveFile();
|
|
|
archiveFile.setId(SnowFlakeUtil.getId());
|
|
@@ -1570,7 +1651,21 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
archiveFile.setContractId(String.valueOf(parentNode.getContractId()));
|
|
|
archiveFile.setNodeId(parentNode.getId()+"");
|
|
|
archiveFile.setFileNumber(vo.getReportNo());
|
|
|
- archiveFile.setFileName(StringUtils.isNotBlank(vo.getSpecificationModel())?vo.getSpecificationModel():vo.getTrialProjectName());
|
|
|
+ //报告编号+规格型号+试验名称+试验检测报告及附件
|
|
|
+ StringBuffer fileName = new StringBuffer();
|
|
|
+ if(StringUtils.isNotBlank(vo.getReportNo())){
|
|
|
+ fileName.append(vo.getReportNo());
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(vo.getSpecificationModel())){
|
|
|
+ fileName.append(vo.getSpecificationModel());
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(vo.getTrialProjectName())){
|
|
|
+ fileName.append(vo.getTrialProjectName());
|
|
|
+ }
|
|
|
+ fileName.append("试验检测报告及附件");
|
|
|
+
|
|
|
+
|
|
|
+ archiveFile.setFileName(fileName.toString());
|
|
|
if (vo.getReportDate() != null) {
|
|
|
archiveFile.setFileTime(new SimpleDateFormat("yyyy-MM-dd").format(vo.getReportDate()));
|
|
|
}
|
|
@@ -1580,7 +1675,8 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
archiveFile.setIsApproval(0);
|
|
|
archiveFile.setIsCertification(1);
|
|
|
archiveFile.setIsNeedCertification(0);
|
|
|
- archiveFile.setDutyUser(vo.getTrialUserName());
|
|
|
+ //当前合同段单位名称 施工单位 / 监理单位
|
|
|
+ archiveFile.setDutyUser(contractInfo.getContractType() == 1 ? contractInfo.getConstructionUnitName() : contractInfo.getSupervisionUnitName());
|
|
|
archiveFile.setCreateUser(vo.getCreateUser());
|
|
|
archiveFile.setStatus(0);
|
|
|
archiveFile.setIsDeleted(0);
|
|
@@ -1591,7 +1687,8 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
.toLocalDateTime();
|
|
|
archiveFile.setFtime(localDateTime);
|
|
|
archiveFile.setUtime(localDateTime);
|
|
|
- archiveFile.setSort(0);
|
|
|
+ sort.set(sort.get() + 1);
|
|
|
+ archiveFile.setSort(sort.get());
|
|
|
archiveFile.setPageNum("1");
|
|
|
archiveFile.setSourceType(1);
|
|
|
archiveFile.setIsElement(0);
|
|
@@ -1613,8 +1710,8 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
archiveFile.setFileName(vo.getFileName());
|
|
|
archiveFile.setFileTime(vo.getRecordTime());
|
|
|
archiveFile.setFileUrl(vo.getPdfUrl());
|
|
|
- archiveFile.setPdfFileUrl(vo.getEVisaPdfUrl());
|
|
|
- archiveFile.setFilePage(1);
|
|
|
+ archiveFile.setPdfFileUrl(StringUtil.isNotBlank(vo.getEVisaPdfUrl()) ? vo.getEVisaPdfUrl() : vo.getPdfUrl());
|
|
|
+ archiveFile.setFilePage(vo.getPage() == null ? 0 : vo.getPage());
|
|
|
archiveFile.setIsApproval(0);
|
|
|
archiveFile.setIsCertification(1);
|
|
|
archiveFile.setIsNeedCertification(0);
|
|
@@ -1683,18 +1780,19 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
* 档案同步质检影像资料时,为影像资料-日志资料 节点下级创建分类节点
|
|
|
* 传入分类名称
|
|
|
*/
|
|
|
- public ArchiveTreeContract createTypeNode(String nodeName,ArchiveTreeContract archiveTreeContract){
|
|
|
+ public ArchiveTreeContract createTypeNode(String nodeName, Integer sort,Long pKeyId, Long pId,ArchiveTreeContract archiveTreeContract, HashMap<Long, Long> map){
|
|
|
ArchiveTreeContract archiveTreeContractTemp = new ArchiveTreeContract();
|
|
|
//设置基本信息
|
|
|
- archiveTreeContractTemp.setId(SnowFlakeUtil.getId());
|
|
|
+ archiveTreeContractTemp.setId(map.get(pKeyId) == null ? SnowFlakeUtil.getId() : map.get(pKeyId));
|
|
|
archiveTreeContractTemp.setTenantId(AuthUtil.getTenantId());
|
|
|
archiveTreeContractTemp.setProjectId(archiveTreeContract.getProjectId());
|
|
|
archiveTreeContractTemp.setContractId(archiveTreeContract.getContractId());
|
|
|
- archiveTreeContractTemp.setParentId(archiveTreeContract.getId());
|
|
|
+ archiveTreeContractTemp.setParentId(pId == null || map == null || map.get(pId) == null ? archiveTreeContract.getId() : map.get(pId));
|
|
|
archiveTreeContractTemp.setAncestors(archiveTreeContract.getAncestors()+","+archiveTreeContract.getId());
|
|
|
archiveTreeContractTemp.setNodeName(nodeName);
|
|
|
archiveTreeContractTemp.setNodeType(1);
|
|
|
archiveTreeContractTemp.setFullName(nodeName);
|
|
|
+ archiveTreeContractTemp.setSort(sort);
|
|
|
archiveTreeContractTemp.setStatus(1);
|
|
|
archiveTreeContractTemp.setIsDeleted(0);
|
|
|
//设置关联
|