zhuwei 2 месяцев назад
Родитель
Сommit
b67b972686

+ 13 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchiveFileController.java

@@ -12,6 +12,7 @@ import lombok.SneakyThrows;
 import org.apache.commons.lang.StringUtils;
 import org.springblade.archive.service.IArchivesAutoService;
 import org.springblade.archive.utils.FileUtils;
+import org.springblade.archive.vo.ArchiveDataVo;
 import org.springblade.business.entity.ArchiveFile;
 import org.springblade.business.feign.ArchiveFileClient;
 import org.springblade.business.feign.MetadataClassificationClient;
@@ -435,4 +436,16 @@ public class ArchiveFileController extends BladeController {
         }
         return R.data(true);
     }
+
+
+    /**
+     * 智慧工地推送文件至电子档案数据规则 接口
+     */
+    @PostMapping("/sendFileToEArchives")
+    @ApiOperationSupport(order = 18)
+    @ApiOperation(value = "智慧工地推送文件至电子档案数据规则接口")
+    public R<Boolean> sendFileToEArchives(@RequestBody ArchiveDataVo vo) {
+        //数据入库
+        return  autoService.sendFileToEArchives(vo);
+    }
 }

+ 2 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.java

@@ -224,4 +224,6 @@ public interface ArchivesAutoMapper extends BaseMapper<ArchivesAuto> {
 	 * @return
 	 */
 	Map<String, BigDecimal> getAllArchiveByContractTypeSummary(@Param("projectId") Long projectId,@Param("type") String typ);
+
+	String getArchiveFileByParentId(@Param("nodeId") String nodeId,@Param("contractId") String contractId);
 }

+ 4 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.xml

@@ -1396,5 +1396,9 @@
         )a
     </select>
 
+    <select id="getArchiveFileByParentId" resultType="java.lang.String">
+        SELECT b.id from m_archive_tree a ,m_archive_tree_contract b where a.id=b.from_id and a.id=#{nodeId} and contract_id=#{contractId} and a.is_deleted=0 and b.is_deleted=0
+    </select>
+
 
 </mapper>

+ 2 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/IArchivesAutoService.java

@@ -154,4 +154,6 @@ public interface IArchivesAutoService extends BaseService<ArchivesAuto> {
 	List<List<Map<String, List<CabinetVO>>>> getUnitAllCabinet(Long projectId, Integer type);
 
     List<JiLinArchiveAutoDto> getArchiveAutoDtoList(Long projId, List<JiLinQueryDto>dtos);
+
+	R sendFileToEArchives(ArchiveDataVo dataInfo);
 }

+ 46 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -4022,6 +4022,8 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 	}
 
 
+
+
 	public void deleteFile(String defaultDir,Long id){
 		String dir = defaultDir+"/"+id;
 		String file = defaultDir+"/"+id+".zip";
@@ -4060,4 +4062,48 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 	}
 
 
+	@Override
+	public R sendFileToEArchives(ArchiveDataVo dataInfo) {
+
+		if(dataInfo==null || Func.isNull(dataInfo)){
+			return R.fail("请根据接口文档上传参数");
+		}
+
+		String nodeId = dataInfo.getNodeId();
+		String contractId = dataInfo.getContractId();
+		String fileUrl = dataInfo.getFileUrl();
+		String fileName = dataInfo.getFileNmae();
+		if(nodeId==null || Func.isNull(nodeId)){
+			return R.fail("请上传nodeId");
+		}
+		if(contractId==null || Func.isNull(contractId)){
+			R.fail("请上传contractId");
+		}
+		if(fileUrl==null || Func.isNull(fileUrl)){
+			R.fail("请上传fileUrl");
+		}
+		if(fileName==null || Func.isNull(fileName)){
+			R.fail("请上传fileName");
+		}
+
+		ContractInfo contractInfo = contractClient.getContractById(Func.toLong(contractId));
+		if(contractInfo==null){
+			return R.fail("请传输正确的contractId");
+		}
+		//获取文件的父节点Id
+		String treeContractId = baseMapper.getArchiveFileByParentId(nodeId, contractId);
+		if(treeContractId==null || Func.isNull(treeContractId)){
+			R.fail("请校验传输的nodeId和contractId,没有查到父节点Id");
+		}
+		// 将数据插入到 auto表中
+		ArchivesAuto archivesAuto = new ArchivesAuto();
+		long newPkId = SnowFlakeUtil.getId(); //主键Id
+		archivesAuto.setId(newPkId);
+		archivesAuto.setProjectId(Func.toLong(contractInfo.getPId()));
+		archivesAuto.setContractId(Func.toLong(contractId));
+		archivesAuto.setName(fileName);
+
+		return null;
+	}
+
 }