Pārlūkot izejas kodu

档案查询,获取柜子内部数据

qianxb 1 gadu atpakaļ
vecāks
revīzija
65cd2eb82b

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

@@ -138,6 +138,15 @@ public class ArchivesAutoVO extends ArchivesAuto {
 	 */
 	private String contractType;
 
+	/**
+	 * 柜子编号
+	 */
+	private Integer cabinetNumber;
+
+	/**
+	 * 案卷柜子里的状态
+	 */
+
 	@ApiModelProperty("批量保存")
 	private List<ArchivesAutoVO> list;
 	/**

+ 10 - 2
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java

@@ -141,8 +141,16 @@ public class ArchivesAutoController extends BladeController {
 			return R.data(pages);
 		}else {
 			//档案柜
-			List<Map<String,List<Map<String,String>>>> lists =  archivesAutoService.getArchivesCabinet(archivesAuto);
-			return R.data(lists);
+			if(archivesAuto.getCabinetNumber() == null) {
+				List<Map<String, List<Map<String, String>>>> lists = archivesAutoService.getArchivesCabinet(archivesAuto);
+				return R.data(lists);
+			}else {
+				//查询具体柜子里的数据
+				archivesAuto.setSize(160);
+				archivesAuto.setCurrent(archivesAuto.getCabinetNumber());
+				List<ArchivesAutoVO> pages = archivesAutoService.pageByArchivesAuto2(archivesAuto);
+				return R.data(pages);
+			}
 		}
 	}
 

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

@@ -127,4 +127,6 @@ public interface ArchivesAutoMapper extends BaseMapper<ArchivesAuto> {
     String getUserRoleName(@Param("projectId") Long projectId, @Param("contractId") Long contractId, @Param("userId") Long userId);
 
     List<ArchivesAutoVO> getArchivesCabinet(@Param("vo") ArchivesAutoVO archivesAuto);
+
+	List<ArchivesAutoVO> pageByArchivesAuto3(IPage page, @Param("vo") ArchivesAutoVO vo);
 }

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

@@ -477,6 +477,53 @@
         order by uaa.tree_sort,uaa.auto_file_sort,uaa.file_number asc
     </select>
 
+    <select id="pageByArchivesAuto3" resultMap="archivesAutoResultMap">
+        select uaa.* from
+        (SELECT id FROM m_archive_tree_contract WHERE project_id =#{vo.projectId}
+        and  ancestors like concat('%',#{vo.nodeId},'%')
+        ) matc left join u_archives_auto uaa on matc.id = uaa.node_id left join u_archive_file uaf on uaa.id =
+        uaf.archive_id
+        where uaa.is_deleted = 0 and uaa.is_archive = 1
+        <if test="vo.searchType == 1 and vo.queryValue != null and vo.queryValue != ''">
+            and uaa.name like concat('%',#{vo.queryValue},'%')
+        </if>
+        <if test="vo.searchType == 2 and vo.queryValue != null and vo.queryValue != ''">
+            and uaf.file_name like concat('%',#{vo.queryValue},'%')
+        </if>
+        <if test="vo.storageTimes != null and vo.storageTimes != ''">
+            and uaa.storage_time in
+            <foreach collection="vo.storageTimes" item="storageTime" open="(" separator="," close=")">
+                #{storageTime}
+            </foreach>
+        </if>
+        <if test="vo.secretLevels != null and vo.secretLevels != ''">
+            and uaa.secret_level in
+            <foreach collection="vo.secretLevels" item="secretLevel" open="(" separator="," close=")">
+                #{secretLevel}
+            </foreach>
+        </if>
+        <if test="vo.carrierTypes != null and vo.carrierTypes != ''">
+            and uaa.carrier_type in
+            <foreach collection="vo.carrierTypes" item="carrierType" open="(" separator="," close=")">
+                #{carrierType}
+            </foreach>
+        </if>
+        <if test="vo.years != null and vo.years != ''">
+            and
+            <foreach collection="vo.years" item="year" separator=" or" open="(" close=")">
+                #{year} BETWEEN DATE_FORMAT(uaa.start_date,'%Y') and DATE_FORMAT(uaa.end_date ,'%Y')
+            </foreach>
+        </if>
+        <if test="vo.months != null and vo.months != ''">
+            and
+            <foreach collection="vo.months" item="month" separator=" or" open="(" close=")">
+                #{month} BETWEEN DATE_FORMAT(uaa.start_date,'%c') and DATE_FORMAT(uaa.end_date ,'%c')
+            </foreach>
+        </if>
+        GROUP BY uaa.id
+        order by uaa.tree_sort,uaa.auto_file_sort,uaa.file_number asc
+    </select>
+
     <select id="getArchivesCabinet" resultMap="archivesAutoResultMap">
         select uaa.* from
         (SELECT id FROM m_archive_tree_contract WHERE project_id =#{vo.projectId}

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

@@ -85,4 +85,6 @@ public interface IArchivesAutoService extends BaseService<ArchivesAuto> {
 	List<User> getArchiveDestroyUser();
 
 	List<Map<String,List<Map<String,String>>>> getArchivesCabinet(ArchivesAutoVO archivesAuto);
+
+	List<ArchivesAutoVO> pageByArchivesAuto2(ArchivesAutoVO archivesAuto);
 }

+ 47 - 4
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -156,6 +156,45 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		return page.setRecords(archivesAutos);
 	}
 
+	@Override
+	public List<ArchivesAutoVO> pageByArchivesAuto2(ArchivesAutoVO vo) {
+		IPage<ArchivesAutoVO> page = new Page<>(vo.getCurrent(),vo.getSize());
+		if (StringUtils.isNotBlank(vo.getStorageTime())) {
+			vo.setStorageTimes(Arrays.asList(vo.getStorageTime().split(",")));
+		}
+		if (StringUtils.isNotBlank(vo.getSecretLevel())){
+			vo.setSecretLevels(Arrays.asList(vo.getSecretLevel().split(",")));
+		}
+		if (StringUtils.isNotBlank(vo.getCarrierType())) {
+			vo.setCarrierTypes(Arrays.asList(vo.getCarrierType().split(",")));
+		}
+		if (StringUtils.isNotBlank(vo.getYear())) {
+			vo.setYears(Arrays.asList(vo.getYear().split(",")));
+		}
+		if (StringUtils.isNotBlank(vo.getMonth())) {
+			vo.setMonths(Arrays.asList(vo.getMonth().split(",")));
+		}
+		if (StringUtils.isNotBlank(vo.getCarrierType())) {
+			vo.setCarrierTypes(Arrays.asList(vo.getCarrierType().split(",")));
+		}
+		//获取单位首节点
+		ArchiveTreeContract	contract = archiveTreeContractClient.getFirstNodeByTreeCode(vo.getProjectId(),vo.getArchiveType());
+		vo.setNodeId(contract.getId());
+		//根据单位查询所有档案
+		List<ArchivesAutoVO> archivesAutos = baseMapper.pageByArchivesAuto3(page, vo);
+		if (archivesAutos != null && archivesAutos.size() >0) {
+			archivesAutos.stream().forEach(aa -> {
+				if (StringUtils.isNotBlank(aa.getStorageTime())) {
+					aa.setStorageTimeValue("3".equals(aa.getStorageTime()) ? "永久" : ("2".equals(aa.getStorageTime()) ? "30年" : "10年"));
+				}
+				if (StringUtils.isNotBlank(aa.getSecretLevel())) {
+					aa.setSecretLevelValue("1".equals(aa.getSecretLevel()) ? "机密" : ("2".equals(aa.getSecretLevel()) ? "绝密" : "秘密"));
+				}
+			});
+		}
+		return archivesAutos;
+	}
+
 	/**
 	 * 根据搜索获取档案柜
 	 * @param archivesAuto
@@ -180,10 +219,14 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 				//一个柜子
 				Map<String, String> map = new HashMap<>();
 				map.put("id",CabinetTotal+"");
-				map.put("name",CabinetTotal+"");
-				String[] min = list.get(0).getFileNumber().split("-");
-				String[] max = list.get(list.size()-1).getFileNumber().split("-");
-				map.put("content",min[min.length-1]+"~"+max[max.length-1]);
+				if (CabinetTotal < 10){
+					map.put("name","0"+CabinetTotal);
+				}else {
+					map.put("name",CabinetTotal+"");
+				}
+				String[] min = list.get(0).getFileNumber().split("_");
+				String[] max = list.get(list.size()-1).getFileNumber().split("_");
+				map.put("content","档号"+min[min.length-1]+"~"+"档号"+max[max.length-1]);
 				//把每一个柜子都添加
 				allCabinet.add(map);
 			}

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

@@ -333,7 +333,7 @@
     <select id="getAllArchiveFileByContractType" resultType="org.springblade.business.vo.ArchiveFileVO">
         SELECT uaf.*, matc.tree_code as 'contractType'
         FROM u_archive_file uaf
-                 inner join m_archive_tree_contract matc on uaf.node_id = matc.id
+                 left join m_archive_tree_contract matc on uaf.node_id = matc.id
         WHERE uaf.project_id = #{projectId} and uaf.is_deleted = 0
             and (uaf.is_auto_file is null or uaf.is_auto_file != 1);
     </select>