Browse Source

计量需求

huangtf 1 năm trước cách đây
mục cha
commit
39d7c317e0
14 tập tin đã thay đổi với 222 bổ sung0 xóa
  1. 11 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/ArchiveFileClient.java
  2. 4 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/ArchiveTreeContractClient.java
  3. 3 0
      blade-service/blade-archive/src/main/java/org/springblade/archive/service/IArchiveAutoPdfService.java
  4. 23 0
      blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchiveAutoPdfServiceImpl.java
  5. 10 0
      blade-service/blade-archive/src/main/java/org/springblade/archive/utils/FileUtils.java
  6. 6 0
      blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ArchiveFileClientImpl.java
  7. 2 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.java
  8. 10 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml
  9. 9 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeContractController.java
  10. 6 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/feign/ArchiveTreeContractImpl.java
  11. 6 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IArchiveTreeContractService.java
  12. 2 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IProjectInfoService.java
  13. 103 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java
  14. 27 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ProjectInfoServiceImpl.java

+ 11 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/ArchiveFileClient.java

@@ -96,6 +96,15 @@ public interface ArchiveFileClient {
     @PostMapping(API_PREFIX + "/getListByNodeID")
     List<ArchiveFile> getListByNodeID(@RequestParam String nodeId);
 
+    /**
+     * 获取节点下未归档的文件
+     *
+     * @param nodeId
+     * @return
+     */
+    @PostMapping(API_PREFIX + "/getListByNodeIDName")
+    public List<ArchiveFile> getListByNodeIDName(@RequestParam String nodeId,@RequestParam String fileName);
+
 
     /**
      * 获取案卷下的文件
@@ -106,6 +115,8 @@ public interface ArchiveFileClient {
     @PostMapping(API_PREFIX + "/getArchiveFileByArchiveID")
     List<ArchiveFile> getArchiveFileByArchiveID(@RequestParam Long archiveId);
 
+
+
     /**
      * 项目下所有工序资料PDF
      *

+ 4 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/ArchiveTreeContractClient.java

@@ -50,4 +50,8 @@ public interface ArchiveTreeContractClient {
 
     @PostMapping(API_PREFIX + "/writeBusinessData")
     Integer writeBusinessData(@RequestParam Long keyId,@RequestParam Long contractId,@RequestParam String formDataId);
+
+    @PostMapping(API_PREFIX + "/getMeasurementPeriodNode")
+    public ArchiveTreeContract getMeasurementPeriodNode(@RequestParam String projectName,@RequestParam String contractName,
+                                                        @RequestParam String periodName);
 }

+ 3 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/IArchiveAutoPdfService.java

@@ -4,6 +4,7 @@ import org.springblade.archive.entity.ArchivesAuto;
 import org.springblade.business.entity.ArchiveFile;
 import org.springblade.manager.entity.ArchiveTreeContract;
 
+import java.io.InputStream;
 import java.util.List;
 import java.util.Map;
 
@@ -30,4 +31,6 @@ public interface IArchiveAutoPdfService {
     //合并pdf
     String MergePdfAndUpload(List<String> urlList, String fileName, String filePath, Long projectId);
 
+    String upFile(InputStream inputStream, Long projectId);
+
 }

+ 23 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchiveAutoPdfServiceImpl.java

@@ -861,6 +861,29 @@ public class ArchiveAutoPdfServiceImpl implements IArchiveAutoPdfService {
         return url;
     }
 
+    @Override
+    public String upFile(InputStream inputStream,Long projectId) {
+        String url = "";
+        Long id = SnowFlakeUtil.getId();
+        String localPdf = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL) + "/pdf/" + id + ".pdf";
+        String fileName = id + ".pdf";
+        try {
+            //合并pdf
+            byte[] bytes = FileUtils.InputStreamToBytes(inputStream);
+            OutputStream outputStream = new FileOutputStream(localPdf);
+            outputStream.write(bytes);
+
+            //上传到oss
+            String absoluteFileName = FileUtils.getOssPath(OssConstant.ARCHIVE_DIRECTORY,fileName,projectId);
+            BladeFile file = newIOSSClient.uploadFile(absoluteFileName + ".pdf", localPdf);
+
+            url = file.getLink();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return url;
+    }
+
 
 
 }

+ 10 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/utils/FileUtils.java

@@ -729,4 +729,14 @@ public class FileUtils {
         demo.shutdown();*/
     }
 
+    public static byte[] InputStreamToBytes(InputStream is) throws IOException {
+        BufferedInputStream bis = new BufferedInputStream(is);
+        ByteArrayOutputStream os = new ByteArrayOutputStream();
+        int date;
+        while ((date = bis.read()) != -1) {
+            os.write(date);
+        }
+        return os.toByteArray();
+    }
+
 }

+ 6 - 0
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ArchiveFileClientImpl.java

@@ -277,6 +277,12 @@ public class ArchiveFileClientImpl implements ArchiveFileClient {
         return files;
     }
 
+    @Override
+    public List<ArchiveFile> getListByNodeIDName(String nodeId,String fileName) {
+        List<ArchiveFile> files = fileMapper.getListByNodeIDName(nodeId,fileName);
+        return files;
+    }
+
     @Override
     public List<ArchiveFile> getArchiveFileByArchiveID(Long archiveId) {
         List<ArchiveFile> files = fileMapper.getArchiveFileByArchiveID(archiveId);

+ 2 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.java

@@ -83,6 +83,8 @@ public interface ArchiveFileMapper extends BaseMapper<ArchiveFile> {
 
     public List<ArchiveFile> getListByNodeID(@Param("nodeId") String nodeId);
 
+    public List<ArchiveFile> getListByNodeIDName(@Param("nodeId") String nodeId,@Param("fileName") String fileName);
+
     public List<ArchiveFile> getArchiveFileByArchiveID(@Param("archiveId") Long archiveId);
 
 

+ 10 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml

@@ -363,6 +363,16 @@
         order by sort
     </select>
 
+    <select id="getListByNodeIDName" resultMap="archiveFileResultMap">
+        select *
+        from u_archive_file
+        where node_id = #{nodeId} and file_name = #{fileName}
+          and (is_archive = 0 OR is_archive IS NULL)
+          and (is_auto_file is null or is_auto_file != 1)
+          and is_deleted = 0
+        order by sort
+    </select>
+
     <select id="getArchiveFileByArchiveID" resultMap="archiveFileResultMap">
         select *
         from u_archive_file

+ 9 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeContractController.java

@@ -433,4 +433,13 @@ public class ArchiveTreeContractController extends BladeController {
 
         return R.success("开始同步合同段,请耐心等待" );
     }
+
+    @PostMapping("test2")
+    @ApiOperation(value = "同步业务数据", notes = "传入节点id")
+    public R getMeasurementPeriodNode(Long contractId, String periodName) {
+
+        ArchiveTreeContract contract = archiveTreeContractService.getMeasurementPeriodNode(contractId,periodName);
+
+        return R.success("开始同步合同段,请耐心等待" );
+    }
 }

+ 6 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/ArchiveTreeContractImpl.java

@@ -107,5 +107,11 @@ public class ArchiveTreeContractImpl implements ArchiveTreeContractClient {
         return archiveTreeContractService.writeBusinessData(keyId,contractId,formDataId);
     }
 
+    @Override
+    public ArchiveTreeContract getMeasurementPeriodNode(String projectName,String contractName,
+                                                 String periodName){
+        return archiveTreeContractService.getMeasurementPeriodNode(projectName,contractName,periodName);
+    }
+
 
 }

+ 6 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IArchiveTreeContractService.java

@@ -118,4 +118,10 @@ public interface IArchiveTreeContractService extends BaseService<ArchiveTreeCont
     void updateAllSonNodeIdsForArchiveAutoRule(ArchiveTreeContract archiveTreeContract);
 
     Integer writeBusinessData(Long keyId, Long contractId, String formDataId);
+
+    ArchiveTreeContract getMeasurementPeriodNode(Long contractId,
+                                                        String periodName);
+
+    ArchiveTreeContract getMeasurementPeriodNode(String projectName,String contractName,
+                                                 String periodName);
 }

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IProjectInfoService.java

@@ -23,4 +23,6 @@ public interface IProjectInfoService extends BaseService<ProjectInfo> {
 
     ProjectInfoVO2 getOneByCondition(Long id, Long referenceWbsTemplateId, String referenceWbsTemplateType);
 
+    Long getContractIdbyName(String projectName,String contractName);
+
 }

+ 103 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java

@@ -38,8 +38,10 @@ import org.springblade.common.utils.ForestNodeMergerEx;
 import org.springblade.manager.vo.*;
 import org.springblade.manager.mapper.ArchiveTreeContractMapper;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -1097,7 +1099,108 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 
 	}
 
+	/**
+	 * 返回关联质检资料的节点
+	 * @param contractId
+	 * @return
+	 */
+
+	public ArchiveTreeContract getMeasurementInterfaceNode(Long contractId,
+												 String periodName) {
+		List<ArchiveTreeContract> archiveTreeContracts =  baseMapper.selectList(Wrappers.<ArchiveTreeContract>query().lambda()
+				.eq(ArchiveTreeContract::getContractId, contractId)
+				.eq(ArchiveTreeContract::getIsDeleted, 0)
+				.eq(ArchiveTreeContract::getNodeName, periodName));
+		if (archiveTreeContracts == null || archiveTreeContracts.size() ==0) {
+			return null;
+		}
+		return archiveTreeContracts.get(0);
+	}
 
 
 
+	/**
+	 * 返回存储类型为计量的节点
+	 * @param contractId
+	 * @return
+	 */
+
+	public ArchiveTreeContract getMeasurementNode(Long contractId) {
+		List<ArchiveTreeContract> archiveTreeContracts =  baseMapper.selectList(Wrappers.<ArchiveTreeContract>query().lambda()
+				.eq(ArchiveTreeContract::getContractId, contractId)
+				.eq(ArchiveTreeContract::getIsDeleted, 0)
+				.eq(ArchiveTreeContract::getIsStorageNode, 1)
+				.eq(ArchiveTreeContract::getStorageType, 3)
+				.isNull(ArchiveTreeContract::getInterfaceType)
+				);
+		if (archiveTreeContracts == null || archiveTreeContracts.size() ==0) {
+			return null;
+		}
+		return archiveTreeContracts.get(0);
+	}
+
+	/**
+	 * 根据项目名称,合同名称信息
+	 * @param projectName
+	 * @param contractName
+	 * @param periodName
+	 * @return
+	 */
+	public ArchiveTreeContract getMeasurementPeriodNode(String projectName,String contractName,
+														String periodName) {
+
+		Long contractId = projectInfoService.getContractIdbyName(projectName,contractName);
+		return getMeasurementPeriodNode(contractId,periodName);
+	}
+
+
+	/**
+	 * 返回存储类型为计量的节点
+	 * @param contractId
+	 * @return
+	 */
+
+	public ArchiveTreeContract getMeasurementPeriodNode(Long contractId,
+												  String periodName) {
+
+		ArchiveTreeContract rootNode = getMeasurementNode(contractId);
+
+		//获取子节点里名字是periodName,并且存储类型是计量的,没有新建一个
+		//没有找到则新建一个,否则
+		ArchiveTreeContract periodNode = null;
+		List<ArchiveTreeContract> archiveTreeContracts =  baseMapper.selectList(Wrappers.<ArchiveTreeContract>query().lambda()
+				.eq(ArchiveTreeContract::getParentId, rootNode.getId())
+				.eq(ArchiveTreeContract::getIsDeleted, 0)
+				.eq(ArchiveTreeContract::getNodeName, periodName)
+				.eq(ArchiveTreeContract::getInterfaceType,2));
+		if (archiveTreeContracts == null || archiveTreeContracts.size() ==0) {
+			//新建并保存
+			periodNode  = new ArchiveTreeContract();
+			periodNode.setProjectId(rootNode.getProjectId());
+			periodNode.setContractId(rootNode.getContractId());
+			periodNode.setIsDeleted(0);
+			periodNode.setIsInterfaceNode(1);
+			periodNode.setInterfaceType(2);
+			periodNode.setNodeName(periodName);
+			periodNode.setIsStorageNode(1);
+			periodNode.setStorageType(3);
+			periodNode.setNodeType(2);
+			periodNode.setParentId(rootNode.getId());
+			ArchiveTreeContractDTO archiveTreeContractDTO = new ArchiveTreeContractDTO();
+			try {
+				BeanUtils.copyProperties(periodNode, archiveTreeContractDTO);
+			} catch (Exception e) {
+				// 处理异常情况
+			}
+			submit(archiveTreeContractDTO);
+			periodNode.setId(archiveTreeContractDTO.getId());
+
+		}else {
+			periodNode = archiveTreeContracts.get(0);
+		}
+
+		return periodNode;
+	}
+
+
 }

+ 27 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ProjectInfoServiceImpl.java

@@ -1,5 +1,7 @@
 package org.springblade.manager.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.manager.entity.ContractInfo;
 import org.springblade.manager.vo.*;
 import org.springblade.manager.entity.ProjectInfo;
 import org.springblade.manager.entity.WbsInfo;
@@ -87,4 +89,29 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
         return projectInfoVO2;
     }
 
+    @Override
+    public Long getContractIdbyName(String projectName,String contractName) {
+        Long contractId = null;
+        List<ProjectInfo> projectInfos = baseMapper.selectList(Wrappers.<ProjectInfo>query().lambda()
+                .eq(ProjectInfo::getIsDeleted, 0)
+                .and(wrapper -> wrapper.eq(ProjectInfo::getProjectName, projectName).or().eq(ProjectInfo::getProjectAlias, projectName))
+        );
+        if (projectInfos == null || projectInfos.size() == 0) {
+            return contractId;
+        }
+        Long pid = projectInfos.get(0).getId();
+
+        List<ContractInfo> contractInfos = contractInfoMapper.selectList(Wrappers.<ContractInfo>query().lambda()
+                .eq(ContractInfo::getIsDeleted, 0)
+                .eq(ContractInfo::getContractName, contractName)
+                .eq(ContractInfo::getPId, pid)
+        );
+        if (contractInfos == null || contractInfos.size() == 0) {
+            return contractId;
+        }
+
+        return  contractInfos.get(0).getId();
+
+    }
+
 }