Browse Source

Merge branch 'refs/heads/feature-test-lihb-20250822' into test-merge

LHB 1 month ago
parent
commit
410c542909

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.java

@@ -180,7 +180,7 @@ public interface ArchiveTreeContractMapper extends BaseMapper<ArchiveTreeContrac
 
 
     List<TrialSelfInspectionRecordFileVO> getAllTrialRecordFile(@Param("ids") List<Long> recordIds);
     List<TrialSelfInspectionRecordFileVO> getAllTrialRecordFile(@Param("ids") List<Long> recordIds);
 
 
-    List<TrialClassificationConfiguration> getAllThreeTestNode();
+    List<TrialClassificationConfiguration> getAllThreeTestNode(@Param("contractId") Long contractId);
 
 
     List<TrialDetectionData> getAllTrialTestRecord(@Param("contractId") Long contractId);
     List<TrialDetectionData> getAllTrialTestRecord(@Param("contractId") Long contractId);
 
 

+ 15 - 6
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml

@@ -991,12 +991,21 @@
     </select>
     </select>
     <select id="getAllThreeTestNode"
     <select id="getAllThreeTestNode"
             resultType="org.springblade.manager.entity.TrialClassificationConfiguration">
             resultType="org.springblade.manager.entity.TrialClassificationConfiguration">
-        select *
-        from m_trial_classification_configuration
-        where is_deleted = 0 and parent_id in
-            (
-                select id from m_trial_classification_configuration where is_deleted = 0 and parent_id = 0 and node_type in (1,2)
-                )
+        SELECT
+            *
+        FROM
+            m_trial_classification_configuration b
+        WHERE
+            is_deleted = 0
+          AND STATUS = 1
+            <if test="contractId == null">
+                and contract_id is null
+            </if>
+            <if test="contractId != null and contractId != ''">
+                and (contract_id is null OR (contract_id = #{contractId}))
+            </if>
+        ORDER BY
+            sort
     </select>
     </select>
     <select id="getAllTrialTestRecord" resultType="org.springblade.business.entity.TrialDetectionData">
     <select id="getAllTrialTestRecord" resultType="org.springblade.business.entity.TrialDetectionData">
         select *
         select *

+ 62 - 56
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractSyncImpl.java

@@ -24,6 +24,7 @@ import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.CollectionUtil;
 import org.springblade.core.tool.utils.CollectionUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.manager.entity.*;
 import org.springblade.manager.entity.*;
 import org.springblade.manager.enums.AssociationTypeEnum;
 import org.springblade.manager.enums.AssociationTypeEnum;
 import org.springblade.manager.enums.StorageTypeEnum;
 import org.springblade.manager.enums.StorageTypeEnum;
@@ -1045,7 +1046,7 @@ public class ArchiveTreeContractSyncImpl {
             //循环试验节点
             //循环试验节点
             for (ArchiveSyncTrialVO vo : trialVOS) {
             for (ArchiveSyncTrialVO vo : trialVOS) {
                 //把节点转换为档案节点,挂载到同步节点下
                 //把节点转换为档案节点,挂载到同步节点下
-                ArchiveTreeContract trialNode = createTypeNode(vo.getNodeName(), archiveTreeContract);
+                ArchiveTreeContract trialNode = createTypeNode(vo.getNodeName(),vo.getSort(), archiveTreeContract);
                 addNode.add(trialNode);
                 addNode.add(trialNode);
                 //获取出节点下面的报告,并转换为档案文件
                 //获取出节点下面的报告,并转换为档案文件
                 List<TrialSelfInspectionRecord> files = recordsMap.get(vo.getPKeyId());
                 List<TrialSelfInspectionRecord> files = recordsMap.get(vo.getPKeyId());
@@ -1054,7 +1055,7 @@ public class ArchiveTreeContractSyncImpl {
                 }
                 }
                 //挂载到子节点下
                 //挂载到子节点下
                 List<ArchiveFile> newArchiveFileList = files.stream().map(file -> {
                 List<ArchiveFile> newArchiveFileList = files.stream().map(file -> {
-                    ArchiveFile archiveFile = trialFileCovertArchiveFile(file, trialNode);
+                    ArchiveFile archiveFile = trialFileCovertArchiveFile(file, trialNode, contractInfo);
                     return archiveFile;
                     return archiveFile;
                 }).collect(Collectors.toList());
                 }).collect(Collectors.toList());
                 addFile.addAll(newArchiveFileList);
                 addFile.addAll(newArchiveFileList);
@@ -1064,7 +1065,7 @@ public class ArchiveTreeContractSyncImpl {
         /**单独处理外委和第三方报告 */
         /**单独处理外委和第三方报告 */
         if (contractTrialType.contains("98")){
         if (contractTrialType.contains("98")){
             //获取所有的外委和第三方节点
             //获取所有的外委和第三方节点
-            List<TrialClassificationConfiguration> threeTestNodes = archiveTreeContractMapper.getAllThreeTestNode();
+            List<TrialClassificationConfiguration> threeTestNodes = archiveTreeContractMapper.getAllThreeTestNode(contractId);
             //获取出合同段所有的检测报告
             //获取出合同段所有的检测报告
             List<TrialDetectionData> dataList = archiveTreeContractMapper.getAllTrialTestRecord(contractId);
             List<TrialDetectionData> dataList = archiveTreeContractMapper.getAllTrialTestRecord(contractId);
             //检测报告,按照节点分组
             //检测报告,按照节点分组
@@ -1072,7 +1073,7 @@ public class ArchiveTreeContractSyncImpl {
             //循环所有节点
             //循环所有节点
             for (TrialClassificationConfiguration vo : threeTestNodes) {
             for (TrialClassificationConfiguration vo : threeTestNodes) {
                 //把节点转换为档案节点,挂载到同步节点下
                 //把节点转换为档案节点,挂载到同步节点下
-                ArchiveTreeContract trialNode = createTypeNode(vo.getNodeName(), archiveTreeContract);
+                ArchiveTreeContract trialNode = createTypeNode(vo.getNodeName(),vo.getNodeType() == 1 ?  vo.getSort() : vo.getSort() + 100, archiveTreeContract);
                 addNode.add(trialNode);
                 addNode.add(trialNode);
                 //获取出节点下面的报告,并转换为档案文件
                 //获取出节点下面的报告,并转换为档案文件
                 List<TrialDetectionData> files = dataMap.get(vo.getId());
                 List<TrialDetectionData> files = dataMap.get(vo.getId());
@@ -1087,51 +1088,51 @@ public class ArchiveTreeContractSyncImpl {
                 addFile.addAll(newArchiveFileList);
                 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){
         if (addNode.size() > 0){
             addNode.stream().forEach(l->l.setTenantId(tenantId));
             addNode.stream().forEach(l->l.setTenantId(tenantId));
             archiveTreeContractMapper.batchInsertArchiveTreeContract(addNode);
             archiveTreeContractMapper.batchInsertArchiveTreeContract(addNode);
@@ -1186,7 +1187,7 @@ public class ArchiveTreeContractSyncImpl {
                 throw new ServiceException("日志存在字典中未配置的类型,请检查后再同步");
                 throw new ServiceException("日志存在字典中未配置的类型,请检查后再同步");
             }
             }
             //生成子节点
             //生成子节点
-            ArchiveTreeContract logNode = createTypeNode(typeName, archiveTreeContract);
+            ArchiveTreeContract logNode = createTypeNode(typeName, 0,archiveTreeContract);
             /** 如果到时候修改需求,只显示有日志的,则下面文件存在再add*/
             /** 如果到时候修改需求,只显示有日志的,则下面文件存在再add*/
             addNode.add(logNode);
             addNode.add(logNode);
             //然后再从分组中获取,如果存在值则转换为档案文件
             //然后再从分组中获取,如果存在值则转换为档案文件
@@ -1268,7 +1269,7 @@ public class ArchiveTreeContractSyncImpl {
         //循环下级节点
         //循环下级节点
         for (ImageClassificationConfig imageType : imageTypes) {
         for (ImageClassificationConfig imageType : imageTypes) {
             //把分类生成为影像资料的下级节点
             //把分类生成为影像资料的下级节点
-            ArchiveTreeContract imageNode = createTypeNode(imageType.getClassfName(),archiveTreeContract);
+            ArchiveTreeContract imageNode = createTypeNode(imageType.getClassfName(), 0, archiveTreeContract);
             addNode.add(imageNode);
             addNode.add(imageNode);
             //如果当前分类下存在文件,则根据类型生成树,还是日期
             //如果当前分类下存在文件,则根据类型生成树,还是日期
 //            List<ImageClassificationFileDTO> files = imageMap.get(imageType.getId());
 //            List<ImageClassificationFileDTO> files = imageMap.get(imageType.getId());
@@ -1529,7 +1530,8 @@ public class ArchiveTreeContractSyncImpl {
         archiveFile.setContractId(String.valueOf(parentNode.getContractId()));
         archiveFile.setContractId(String.valueOf(parentNode.getContractId()));
         archiveFile.setNodeId(parentNode.getId()+"");
         archiveFile.setNodeId(parentNode.getId()+"");
         archiveFile.setFileNumber(vo.getReportNo());
         archiveFile.setFileNumber(vo.getReportNo());
-        archiveFile.setFileName(vo.getMaterialName()+vo.getSpecificationModel());
+        //规格型号 + 试验名称
+        archiveFile.setFileName(StringUtil.isNotBlank(vo.getSpecificationModel()) ? vo.getSpecificationModel() + vo.getMaterialName() : vo.getMaterialName());
         if (vo.getReportDate() != null) {
         if (vo.getReportDate() != null) {
             archiveFile.setFileTime(new SimpleDateFormat("yyyy-MM-dd").format(vo.getReportDate()));
             archiveFile.setFileTime(new SimpleDateFormat("yyyy-MM-dd").format(vo.getReportDate()));
         }
         }
@@ -1539,7 +1541,8 @@ public class ArchiveTreeContractSyncImpl {
         archiveFile.setIsApproval(0);
         archiveFile.setIsApproval(0);
         archiveFile.setIsCertification(1);
         archiveFile.setIsCertification(1);
         archiveFile.setIsNeedCertification(0);
         archiveFile.setIsNeedCertification(0);
-        archiveFile.setDutyUser(vo.getUserName());
+        //责任人 - 委托单位名称
+        archiveFile.setDutyUser(vo.getEntrustCompany());
         archiveFile.setCreateUser(vo.getCreateUser());
         archiveFile.setCreateUser(vo.getCreateUser());
         archiveFile.setStatus(0);
         archiveFile.setStatus(0);
         archiveFile.setIsDeleted(0);
         archiveFile.setIsDeleted(0);
@@ -1562,7 +1565,7 @@ public class ArchiveTreeContractSyncImpl {
     /**
     /**
      * 质检试验资料 转换为 档案文件
      * 质检试验资料 转换为 档案文件
      */
      */
-    private ArchiveFile trialFileCovertArchiveFile(TrialSelfInspectionRecord vo,ArchiveTreeContract parentNode)
+    private ArchiveFile trialFileCovertArchiveFile(TrialSelfInspectionRecord vo,ArchiveTreeContract parentNode, ContractInfo contractInfo)
     {
     {
         ArchiveFile archiveFile = new ArchiveFile();
         ArchiveFile archiveFile = new ArchiveFile();
         archiveFile.setId(SnowFlakeUtil.getId());
         archiveFile.setId(SnowFlakeUtil.getId());
@@ -1570,7 +1573,8 @@ public class ArchiveTreeContractSyncImpl {
         archiveFile.setContractId(String.valueOf(parentNode.getContractId()));
         archiveFile.setContractId(String.valueOf(parentNode.getContractId()));
         archiveFile.setNodeId(parentNode.getId()+"");
         archiveFile.setNodeId(parentNode.getId()+"");
         archiveFile.setFileNumber(vo.getReportNo());
         archiveFile.setFileNumber(vo.getReportNo());
-        archiveFile.setFileName(StringUtils.isNotBlank(vo.getSpecificationModel())?vo.getSpecificationModel():vo.getTrialProjectName());
+        //规格型号 + 试验名称
+        archiveFile.setFileName(StringUtils.isNotBlank(vo.getSpecificationModel()) ? vo.getSpecificationModel() + vo.getTrialProjectName() : vo.getTrialProjectName());
         if (vo.getReportDate() != null) {
         if (vo.getReportDate() != null) {
             archiveFile.setFileTime(new SimpleDateFormat("yyyy-MM-dd").format(vo.getReportDate()));
             archiveFile.setFileTime(new SimpleDateFormat("yyyy-MM-dd").format(vo.getReportDate()));
         }
         }
@@ -1580,7 +1584,8 @@ public class ArchiveTreeContractSyncImpl {
         archiveFile.setIsApproval(0);
         archiveFile.setIsApproval(0);
         archiveFile.setIsCertification(1);
         archiveFile.setIsCertification(1);
         archiveFile.setIsNeedCertification(0);
         archiveFile.setIsNeedCertification(0);
-        archiveFile.setDutyUser(vo.getTrialUserName());
+        //当前合同段单位名称 施工单位 / 监理单位
+        archiveFile.setDutyUser(contractInfo.getContractType() == 1 ? contractInfo.getConstructionUnitName() : contractInfo.getSupervisionUnitName());
         archiveFile.setCreateUser(vo.getCreateUser());
         archiveFile.setCreateUser(vo.getCreateUser());
         archiveFile.setStatus(0);
         archiveFile.setStatus(0);
         archiveFile.setIsDeleted(0);
         archiveFile.setIsDeleted(0);
@@ -1683,7 +1688,7 @@ public class ArchiveTreeContractSyncImpl {
      * 档案同步质检影像资料时,为影像资料-日志资料   节点下级创建分类节点
      * 档案同步质检影像资料时,为影像资料-日志资料   节点下级创建分类节点
      * 传入分类名称
      * 传入分类名称
      */
      */
-    public ArchiveTreeContract createTypeNode(String nodeName,ArchiveTreeContract archiveTreeContract){
+    public ArchiveTreeContract createTypeNode(String nodeName, Integer sort,ArchiveTreeContract archiveTreeContract){
         ArchiveTreeContract archiveTreeContractTemp = new ArchiveTreeContract();
         ArchiveTreeContract archiveTreeContractTemp = new ArchiveTreeContract();
         //设置基本信息
         //设置基本信息
         archiveTreeContractTemp.setId(SnowFlakeUtil.getId());
         archiveTreeContractTemp.setId(SnowFlakeUtil.getId());
@@ -1695,6 +1700,7 @@ public class ArchiveTreeContractSyncImpl {
         archiveTreeContractTemp.setNodeName(nodeName);
         archiveTreeContractTemp.setNodeName(nodeName);
         archiveTreeContractTemp.setNodeType(1);
         archiveTreeContractTemp.setNodeType(1);
         archiveTreeContractTemp.setFullName(nodeName);
         archiveTreeContractTemp.setFullName(nodeName);
+        archiveTreeContractTemp.setSort(sort);
         archiveTreeContractTemp.setStatus(1);
         archiveTreeContractTemp.setStatus(1);
         archiveTreeContractTemp.setIsDeleted(0);
         archiveTreeContractTemp.setIsDeleted(0);
         //设置关联
         //设置关联