Эх сурвалжийг харах

档案利用-档案查询-按文件查询

qianxb 2 жил өмнө
parent
commit
9120d18229

+ 6 - 0
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/vo/ArchivesAutoVO.java

@@ -47,6 +47,12 @@ public class ArchivesAutoVO extends ArchivesAuto {
 	@ApiModelProperty("当前页显示条数")
 	private Integer size;
 
+	/**
+	 * 搜索类型
+	 */
+	@ApiModelProperty("搜索类型1案卷2文件")
+	private Integer searchType;
+
 	/**
 	 * 年
 	 */

+ 3 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java

@@ -94,7 +94,9 @@ public class ArchivesAutoController extends BladeController {
 			@ApiImplicitParam(name = "month", value = "yue"),
 			@ApiImplicitParam(name = "storageTime", value = "保管期限"),
 			@ApiImplicitParam(name = "secretLevel", value = "保密级别"),
-			@ApiImplicitParam(name = "carrierType", value = "类别")
+			@ApiImplicitParam(name = "carrierType", value = "类别"),
+			@ApiImplicitParam(name = "queryValue", value = "输入框模糊搜索"),
+			@ApiImplicitParam(name = "searchType", value = "搜索类型1案卷2文件")
 	})
 	public R<IPage<ArchivesAuto>> pageByArchivesAuto(ArchivesAutoVO archivesAuto) {
 		IPage<ArchivesAuto> pages = archivesAutoService.pageByArchivesAuto(archivesAuto);

+ 28 - 2
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -42,6 +42,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import java.time.LocalDateTime;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  *  服务实现类
@@ -96,9 +97,34 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		lqw.eq(StringUtils.isNotBlank(vo.getStorageTime()),ArchivesAuto::getStorageTime,vo.getStorageTime())
 				.eq(StringUtils.isNotBlank(vo.getSecretLevel()),ArchivesAuto::getSecretLevel,vo.getSecretLevel())
 					.eq(StringUtils.isNotBlank(vo.getCarrierType()),ArchivesAuto::getCarrierType,vo.getCarrierType());
+		//按案卷搜索完成,判断是否按文件搜索
+		if (vo.getSearchType() == 1){
+			lqw.like(StringUtils.isNotBlank(vo.getQueryValue()),ArchivesAuto::getName,vo.getQueryValue());
+			this.page(page,lqw);
+			return page;
+		}else {
+			List<ArchivesAuto> list = this.list(lqw);
+			list = list.stream().filter(auto -> {
+				List<ArchiveFile> files = archiveFileClient.getArchiveFileByArchivesId(auto.getId() + "", "");
+				if (files != null && files.size() > 0){
+					files = files.stream().filter(file->file.getFileName().contains(vo.getQueryValue())).collect(Collectors.toList());
+				}
+				if (files != null && files.size() > 0){
+					return true;
+				}else {
+					return false;
+				}
+			}).collect(Collectors.toList());
+			if (list != null && list.size() > 0){
+				List<Long> ids = list.stream().map(l -> l.getId()).collect(Collectors.toList());
+				this.page(page,new LambdaQueryWrapper<ArchivesAuto>().in(ArchivesAuto::getId,ids));
+				return page;
+			}else {
+				return  null;
+			}
+
+		}
 
-		this.page(page,lqw);
-		return page;
 	}
 
 	@Override