Selaa lähdekoodia

档案-试验资料同步
1、试验树同步时排序也要同步

LHB 1 kuukausi sitten
vanhempi
commit
b5d5711b49

+ 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<TrialClassificationConfiguration> getAllThreeTestNode();
+    List<TrialClassificationConfiguration> getAllThreeTestNode(@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

@@ -955,12 +955,21 @@
     </select>
     <select id="getAllThreeTestNode"
             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 id="getAllTrialTestRecord" resultType="org.springblade.business.entity.TrialDetectionData">
         select *

+ 10 - 8
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.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;
@@ -1042,7 +1043,7 @@ public class ArchiveTreeContractSyncImpl {
             //循环试验节点
             for (ArchiveSyncTrialVO vo : trialVOS) {
                 //把节点转换为档案节点,挂载到同步节点下
-                ArchiveTreeContract trialNode = createTypeNode(vo.getNodeName(), archiveTreeContract);
+                ArchiveTreeContract trialNode = createTypeNode(vo.getNodeName(),vo.getSort(), archiveTreeContract);
                 addNode.add(trialNode);
                 //获取出节点下面的报告,并转换为档案文件
                 List<TrialSelfInspectionRecord> files = recordsMap.get(vo.getPKeyId());
@@ -1061,7 +1062,7 @@ public class ArchiveTreeContractSyncImpl {
         /**单独处理外委和第三方报告 */
         if (contractTrialType.contains("98")){
             //获取所有的外委和第三方节点
-            List<TrialClassificationConfiguration> threeTestNodes = archiveTreeContractMapper.getAllThreeTestNode();
+            List<TrialClassificationConfiguration> threeTestNodes = archiveTreeContractMapper.getAllThreeTestNode(contractId);
             //获取出合同段所有的检测报告
             List<TrialDetectionData> dataList = archiveTreeContractMapper.getAllTrialTestRecord(contractId);
             //检测报告,按照节点分组
@@ -1069,7 +1070,7 @@ public class ArchiveTreeContractSyncImpl {
             //循环所有节点
             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);
                 //获取出节点下面的报告,并转换为档案文件
                 List<TrialDetectionData> files = dataMap.get(vo.getId());
@@ -1179,7 +1180,7 @@ public class ArchiveTreeContractSyncImpl {
                 throw new ServiceException("日志存在字典中未配置的类型,请检查后再同步");
             }
             //生成子节点
-            ArchiveTreeContract logNode = createTypeNode(typeName, archiveTreeContract);
+            ArchiveTreeContract logNode = createTypeNode(typeName, 0,archiveTreeContract);
             /** 如果到时候修改需求,只显示有日志的,则下面文件存在再add*/
             addNode.add(logNode);
             //然后再从分组中获取,如果存在值则转换为档案文件
@@ -1249,7 +1250,7 @@ public class ArchiveTreeContractSyncImpl {
         //循环下级节点
         for (ImageClassificationConfig imageType : imageTypes) {
             //把分类生成为影像资料的下级节点
-            ArchiveTreeContract imageNode = createTypeNode(imageType.getClassfName(),archiveTreeContract);
+            ArchiveTreeContract imageNode = createTypeNode(imageType.getClassfName(), 0, archiveTreeContract);
             addNode.add(imageNode);
             //如果当前分类下存在文件,则根据类型生成树,还是日期
             List<ImageClassificationFileDTO> files = imageMap.get(imageType.getId());
@@ -1447,7 +1448,7 @@ public class ArchiveTreeContractSyncImpl {
         archiveFile.setNodeId(parentNode.getId()+"");
         archiveFile.setFileNumber(vo.getReportNo());
         //规格型号 + 试验名称
-        archiveFile.setFileName(vo.getSpecificationModel()+vo.getMaterialName());
+        archiveFile.setFileName(StringUtil.isNotBlank(vo.getSpecificationModel()) ? vo.getSpecificationModel() + vo.getMaterialName() : vo.getMaterialName());
         if (vo.getReportDate() != null) {
             archiveFile.setFileTime(new SimpleDateFormat("yyyy-MM-dd").format(vo.getReportDate()));
         }
@@ -1490,7 +1491,7 @@ public class ArchiveTreeContractSyncImpl {
         archiveFile.setNodeId(parentNode.getId()+"");
         archiveFile.setFileNumber(vo.getReportNo());
         //规格型号 + 试验名称
-        archiveFile.setFileName(vo.getSpecificationModel() + vo.getTrialProjectName());
+        archiveFile.setFileName(StringUtils.isNotBlank(vo.getSpecificationModel()) ? vo.getSpecificationModel() + vo.getTrialProjectName() : vo.getTrialProjectName());
         if (vo.getReportDate() != null) {
             archiveFile.setFileTime(new SimpleDateFormat("yyyy-MM-dd").format(vo.getReportDate()));
         }
@@ -1604,7 +1605,7 @@ public class ArchiveTreeContractSyncImpl {
      * 档案同步质检影像资料时,为影像资料-日志资料   节点下级创建分类节点
      * 传入分类名称
      */
-    public ArchiveTreeContract createTypeNode(String nodeName,ArchiveTreeContract archiveTreeContract){
+    public ArchiveTreeContract createTypeNode(String nodeName, Integer sort,ArchiveTreeContract archiveTreeContract){
         ArchiveTreeContract archiveTreeContractTemp = new ArchiveTreeContract();
         //设置基本信息
         archiveTreeContractTemp.setId(SnowFlakeUtil.getId());
@@ -1616,6 +1617,7 @@ public class ArchiveTreeContractSyncImpl {
         archiveTreeContractTemp.setNodeName(nodeName);
         archiveTreeContractTemp.setNodeType(1);
         archiveTreeContractTemp.setFullName(nodeName);
+        archiveTreeContractTemp.setSort(sort);
         archiveTreeContractTemp.setStatus(1);
         archiveTreeContractTemp.setIsDeleted(0);
         //设置关联