Explorar el Código

历史数据处理

humuyu hace 2 años
padre
commit
d91e3c3c0f
Se han modificado 36 ficheros con 2552 adiciones y 56 borrados
  1. 1 0
      eladmin-common/src/main/java/me/zhengjie/config/FileProperties.java
  2. 23 3
      eladmin-common/src/main/java/me/zhengjie/utils/DateUtil.java
  3. 2 1
      eladmin-system/pom.xml
  4. 29 20
      eladmin-system/src/main/java/me/zhengjie/archives/controller/ArchivesController.java
  5. 351 0
      eladmin-system/src/main/java/me/zhengjie/archives/controller/OldArchivesController.java
  6. 21 0
      eladmin-system/src/main/java/me/zhengjie/archives/dao/IGzArchivesDao.java
  7. 18 0
      eladmin-system/src/main/java/me/zhengjie/archives/dao/IGzArchivesExDao.java
  8. 19 0
      eladmin-system/src/main/java/me/zhengjie/archives/dao/IGzDetailDao.java
  9. 18 0
      eladmin-system/src/main/java/me/zhengjie/archives/dao/IGzFileTempDao.java
  10. 20 0
      eladmin-system/src/main/java/me/zhengjie/archives/dao/IGzFilepathDao.java
  11. 121 0
      eladmin-system/src/main/java/me/zhengjie/archives/dto/ArchivesDto.java
  12. 57 0
      eladmin-system/src/main/java/me/zhengjie/archives/dto/GzArchivesDto.java
  13. 122 0
      eladmin-system/src/main/java/me/zhengjie/archives/dto/GzDetailDto.java
  14. 392 0
      eladmin-system/src/main/java/me/zhengjie/archives/entity/GzArchivesEntity.java
  15. 58 0
      eladmin-system/src/main/java/me/zhengjie/archives/entity/GzArchivesExEntity.java
  16. 266 0
      eladmin-system/src/main/java/me/zhengjie/archives/entity/GzDetailEntity.java
  17. 67 0
      eladmin-system/src/main/java/me/zhengjie/archives/entity/GzFileTempEntity.java
  18. 253 0
      eladmin-system/src/main/java/me/zhengjie/archives/entity/GzFilepathEntity.java
  19. 9 0
      eladmin-system/src/main/java/me/zhengjie/archives/service/GzArchivesExService.java
  20. 32 0
      eladmin-system/src/main/java/me/zhengjie/archives/service/GzArchivesService.java
  21. 19 0
      eladmin-system/src/main/java/me/zhengjie/archives/service/GzDetailService.java
  22. 16 0
      eladmin-system/src/main/java/me/zhengjie/archives/service/GzFileTempService.java
  23. 18 0
      eladmin-system/src/main/java/me/zhengjie/archives/service/GzFilepathService.java
  24. 9 21
      eladmin-system/src/main/java/me/zhengjie/archives/service/impl/ArchivesServiceImpl.java
  25. 21 0
      eladmin-system/src/main/java/me/zhengjie/archives/service/impl/GzArchivesExServiceImpl.java
  26. 411 0
      eladmin-system/src/main/java/me/zhengjie/archives/service/impl/GzArchivesServiceImpl.java
  27. 21 0
      eladmin-system/src/main/java/me/zhengjie/archives/service/impl/GzDetailServiceImpl.java
  28. 21 0
      eladmin-system/src/main/java/me/zhengjie/archives/service/impl/GzFileTempServiceImpl.java
  29. 23 0
      eladmin-system/src/main/java/me/zhengjie/archives/service/impl/GzFilepathServiceImpl.java
  30. 4 2
      eladmin-system/src/main/java/me/zhengjie/archives/vo/ArchivesVo.java
  31. 64 0
      eladmin-system/src/main/java/me/zhengjie/archives/vo/GzArchivesVo.java
  32. 23 0
      eladmin-system/src/main/java/me/zhengjie/archives/vo/GzPortraitVo.java
  33. 7 0
      eladmin-system/src/main/java/me/zhengjie/config/ConfigurerAdapter.java
  34. 3 2
      eladmin-system/src/main/resources/config/application-dev.yml
  35. 11 5
      eladmin-system/src/main/resources/config/application-test.yml
  36. 2 2
      eladmin-system/src/main/resources/config/application.yml

+ 1 - 0
eladmin-common/src/main/java/me/zhengjie/config/FileProperties.java

@@ -56,5 +56,6 @@ public class FileProperties {
         private String path;
 
         private String avatar;
+        private String gzPath;
     }
 }

+ 23 - 3
eladmin-common/src/main/java/me/zhengjie/utils/DateUtil.java

@@ -31,6 +31,7 @@ public class DateUtil {
 
 	public static final DateTimeFormatter DFY_MD_HMS = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
 	public static final DateTimeFormatter DFY_MD = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+	public static final DateTimeFormatter DFYMD = DateTimeFormatter.ofPattern("yyyyMMdd");
 	public static final DateTimeFormatter yyyy_mm_dd = DateTimeFormatter.ofPattern("yyyy-MM-dd");
 
 	/**
@@ -125,7 +126,18 @@ public class DateUtil {
 	public String localDateTimeFormatyMd(LocalDateTime localDateTime) {
 		return DFY_MD.format(localDateTime);
 	}
-
+	/**
+	 * 日期格式化 yyyy-MM-dd
+	 *
+	 * @param localDateTime /
+	 * @return /
+	 */
+	public static String formatYmd(LocalDate localDateTime) {
+		return DFYMD.format(localDateTime);
+	}
+	public static LocalDate parseYmd(String localDateTime) {
+		return LocalDate.parse(localDateTime, DFYMD);
+	}
 	/**
 	 * 字符串转 LocalDateTime ,字符串格式 yyyy-MM-dd
 	 *
@@ -157,12 +169,18 @@ public class DateUtil {
 			String formatDate = targetFormat.format(d);
 			return formatDate;
 		} catch (ParseException e) {
-			
+
 			e.printStackTrace();
 		}
 		return date;
 	}
 
+	public static String localDate(LocalDate date) {
+
+		return DFY_MD.format(date);
+
+	}
+
 	/**
 	 * 字符串转 LocalDateTime ,字符串格式 yyyy-MM-dd HH:mm:ss
 	 *
@@ -172,7 +190,9 @@ public class DateUtil {
 	public static LocalDateTime parseLocalDateTimeFormatyMdHms(String localDateTime) {
 		return LocalDateTime.from(DFY_MD_HMS.parse(localDateTime));
 	}
+
 	public static void main(String[] args) {
-		System.out.println(DateUtil.format("20230601"));;
+		System.out.println(DateUtil.format("20230601"));
+		;
 	}
 }

+ 2 - 1
eladmin-system/pom.xml

@@ -103,8 +103,9 @@
 		<dependency>
 			<groupId>com.baomidou</groupId>
 			<artifactId>mybatis-plus-boot-starter</artifactId>
-			<version>3.5.1</version>
+			<version>3.5.3.1</version>
 		</dependency>
+
 		<dependency>
 			<groupId>org.apache.pdfbox</groupId>
 			<artifactId>pdfbox</artifactId>

+ 29 - 20
eladmin-system/src/main/java/me/zhengjie/archives/controller/ArchivesController.java

@@ -7,6 +7,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import javax.servlet.http.HttpServletResponse;
 
@@ -17,8 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Pageable;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -43,7 +43,11 @@ import me.zhengjie.base.ResponseDTO;
 import me.zhengjie.config.FileProperties;
 import me.zhengjie.exception.BadRequestException;
 import me.zhengjie.modules.mnt.service.dto.AppQueryCriteria;
+import me.zhengjie.modules.security.service.dto.JwtUserDto;
 import me.zhengjie.modules.system.service.DictDetailService;
+import me.zhengjie.modules.system.service.dto.RoleSmallDto;
+import me.zhengjie.modules.system.service.dto.UserLoginDto;
+import me.zhengjie.utils.SecurityUtils;
 
 /**
  * <p>
@@ -76,6 +80,7 @@ public class ArchivesController {
 	@AnonymousPostMapping("/mergeSubmit")
 	public ResponseDTO<Map<String, String>> mergeSubmit(@RequestBody CasePortraitVo archives) throws Exception {
 		vadateImage(archives);
+
 		archivesService.mergeSubmit(archives);
 		return ResponseDTO.success();
 	}
@@ -106,24 +111,11 @@ public class ArchivesController {
 	@AnonymousPostMapping("/stage")
 	public ResponseDTO<Map<String, String>> stage(@RequestBody CasePortraitVo archives) throws Exception {
 
-//		List<String> images = archives.getImageIds();
-//		if (CollectionUtils.isEmpty(archives.getImageIds())) {
-//			throw new BadRequestException("当前图片为空!");
-//		}
-//		// 判断图片是否含有null
-//		for (int j = 0; j < images.size(); j++) {
-//			if (StringUtils.isEmpty(images.get(j)) || images.get(j).equalsIgnoreCase("null")||images.get(j).equalsIgnoreCase("undefined")) {
-//				throw new BadRequestException("当前第" + j + "页码是空值!");
-//			}
-//		}
-//		if (CollectionUtils.isEmpty(archives.getPages())) {
-//			throw new BadRequestException("当页码不能为空!");
-//		}
 		vadateImage(archives);
 		ArchivesEntity archiveEntity = new ArchivesEntity();
 		archiveEntity.setId(archives.getId());
+		// 0是为提交,1是以提交,2是合并中,3是暂存
 		archiveEntity.setStatus("3");
-
 		archiveEntity.setImageJson(JSON.toJSONString(archives));
 		archivesService.updateById(archiveEntity);
 		return ResponseDTO.success();
@@ -183,7 +175,8 @@ public class ArchivesController {
 		QueryWrapper<ArchivesEntity> qw = new QueryWrapper<>();
 		qw.eq("annual", year);
 		qw.eq("catalog_num", catalogNum);
-		qw.select("IFNULL(max(case_num),0) caseNum");
+		qw.select(" IFNULL(max(CAST(case_num as SIGNED)),0) caseNum");
+
 		Map<String, Object> map = archivesService.getMap(qw);
 		Object caseNum = map.get("caseNum");
 		if (caseNum != null) {
@@ -306,9 +299,7 @@ public class ArchivesController {
 	public ResponseDTO<ArchivesEntity> detail(@RequestBody ArchivesVo archives) {
 		ArchivesEntity entity = new ArchivesEntity();
 		entity = archivesService.getById(archives.getId());
-		if (entity.getStatus().equalsIgnoreCase("1")) {
 
-		}
 		String previewPath = dictDetailService.getValueByName("file_path").get("preview_path");
 		entity.setPdfPath(previewPath + entity.getPdfPath());
 		return ResponseDTO.success(entity);
@@ -361,7 +352,25 @@ public class ArchivesController {
 	 */
 	@AnonymousGetMapping("/list")
 	public ResponseEntity<Object> list(ArchivesVo archives, Pageable pageable) {
-
+		UserDetails userDetail = SecurityUtils.getCurrentUser();
+		JwtUserDto jwtUser = (JwtUserDto) userDetail;
+		//先判断是否是管理员
+		UserLoginDto user=	jwtUser.getUser();
+	    if(!user.getIsAdmin()) {
+		  //判断数据权限范围
+		   Set<RoleSmallDto> roles=user.getRoles();
+		   //如果选择全部则,查询所有,否则查询当个
+		   boolean allScope=false;
+		   for (RoleSmallDto role:roles) {
+			if(role.getDataScope().equals("全部")) {
+				allScope=true;
+			}
+		  }
+		   if(!allScope) {
+			     archives.setNotary(user.getNickName().trim());
+		   }
+	    }
+		
 		archives.setIndex(pageable.getPageNumber());
 		archives.setSize(pageable.getPageSize());
 		Map<String, Object> map = archivesService.page(archives);

+ 351 - 0
eladmin-system/src/main/java/me/zhengjie/archives/controller/OldArchivesController.java

@@ -0,0 +1,351 @@
+package me.zhengjie.archives.controller;
+
+import java.io.File;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Pageable;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import cn.hutool.core.img.ImgUtil;
+import me.zhengjie.annotation.rest.AnonymousGetMapping;
+import me.zhengjie.annotation.rest.AnonymousPostMapping;
+import me.zhengjie.archives.dto.GzDetailDto;
+import me.zhengjie.archives.dto.FilePreviewDto;
+import me.zhengjie.archives.dto.GzArchivesDto;
+import me.zhengjie.archives.entity.ArchivesEntity;
+import me.zhengjie.archives.entity.FileInfoEntity;
+import me.zhengjie.archives.entity.GzArchivesEntity;
+import me.zhengjie.archives.entity.GzArchivesExEntity;
+import me.zhengjie.archives.entity.GzDetailEntity;
+import me.zhengjie.archives.entity.GzFileTempEntity;
+import me.zhengjie.archives.entity.GzFilepathEntity;
+import me.zhengjie.archives.service.FileInfoService;
+import me.zhengjie.archives.service.GzArchivesExService;
+import me.zhengjie.archives.service.GzArchivesService;
+import me.zhengjie.archives.service.GzDetailService;
+import me.zhengjie.archives.service.GzFileTempService;
+import me.zhengjie.archives.service.GzFilepathService;
+import me.zhengjie.archives.vo.CasePortraitVo;
+import me.zhengjie.archives.vo.FileUploadVO;
+import me.zhengjie.archives.vo.GzArchivesVo;
+import me.zhengjie.archives.vo.GzPortraitVo;
+import me.zhengjie.base.ResponseDTO;
+import me.zhengjie.config.FileProperties;
+import me.zhengjie.exception.BadRequestException;
+import me.zhengjie.modules.security.service.dto.JwtUserDto;
+import me.zhengjie.modules.system.service.DictDetailService;
+import me.zhengjie.modules.system.service.dto.RoleSmallDto;
+import me.zhengjie.modules.system.service.dto.UserLoginDto;
+import me.zhengjie.utils.BeanCopyUtils;
+import me.zhengjie.utils.FileUtil;
+import me.zhengjie.utils.SecurityUtils;
+import me.zhengjie.utils.UUIDGenerator;
+
+@RestController
+@RequestMapping("/api/old/archives")
+public class OldArchivesController {
+	@Autowired
+	GzArchivesService gzArchivesService;
+	@Autowired
+	FileInfoService fileInfoService;
+	@Autowired
+	GzArchivesExService gzArchivesExService;
+	@Autowired
+	DictDetailService dictDetailService;
+	@Autowired
+	private FileProperties properties;
+	@Autowired
+	private GzDetailService gzDetailService;
+
+	@Autowired
+	private GzFileTempService gzFileTempService;
+
+	@AnonymousGetMapping("/list")
+	public ResponseEntity<Object> list(GzArchivesVo req, Pageable pageable) {
+		
+		req.setIndex(pageable.getPageNumber());
+		req.setSize(pageable.getPageSize());
+		UserDetails userDetail = SecurityUtils.getCurrentUser();
+		JwtUserDto jwtUser = (JwtUserDto) userDetail;
+		//先判断是否是管理员
+		UserLoginDto user=	jwtUser.getUser();
+	    if(!user.getIsAdmin()) {
+		  //判断数据权限范围
+		   Set<RoleSmallDto> roles=user.getRoles();
+		   //如果选择全部则,查询所有,否则查询当个
+		   boolean allScope=false;
+		   for (RoleSmallDto role:roles) {
+			if(role.getDataScope().equals("全部")) {
+				allScope=true;
+			}
+		  }
+		   if(!allScope) {
+			   req.setNotary(user.getNickName().trim());
+		   }
+	    }
+		Map<String, Object> map = gzArchivesService.page(req);
+		return new ResponseEntity<>(map, HttpStatus.OK);
+	}
+
+	/**
+	 * 文件和图片
+	 *
+	 * @return
+	 */
+	@AnonymousPostMapping("/redo")
+	public ResponseDTO<Map<String, Object>> redo(@RequestBody GzPortraitVo req) {
+		GzArchivesExEntity gzEx = new GzArchivesExEntity();
+		gzEx.setGzArchivesId(req.getId());
+		GzArchivesExEntity entity = gzArchivesExService.getOne(gzEx);
+		List<JSONObject> jsonObjs = new ArrayList<>();
+		List<String> pages = new ArrayList<>();
+		int gzlen = properties.getWindows().getGzPath().length();
+		if (entity != null && StringUtils.isNotBlank(entity.getImageJson())) {
+			String imageJson = entity.getImageJson();
+			GzPortraitVo caseVo = JSONObject.parseObject(imageJson, GzPortraitVo.class);
+			List<String> imageIds = caseVo.getImageIds();
+			// 区分是新增加的,还是老的数据,历史数据是32位,新的是22位
+			List<String> fileInfoImages = new ArrayList<>();
+			List<String> gzFileImages = new ArrayList<>();
+			// 判断
+			for (String imageId : imageIds) {
+				if (imageId.length() == 32) {
+					gzFileImages.add(imageId);
+				} else {
+					fileInfoImages.add(imageId);
+				}
+			}
+			// 这个是新的图片地址
+			Map<String, FileInfoEntity> fileInfoMap = new HashMap<>();
+			if(CollectionUtils.isNotEmpty(fileInfoImages)) {
+				List<FileInfoEntity> fileInfo = fileInfoService.listByIds(fileInfoImages);
+				for (FileInfoEntity file : fileInfo) {
+					fileInfoMap.put(file.getId(), file);
+				}
+			}
+			
+			// ------------------------这个是老的地址
+			Map<String, GzFileTempEntity> tempFilesMap = new HashMap<>();
+			if(CollectionUtils.isNotEmpty(gzFileImages)) {
+				List<GzFileTempEntity> tempFiles = gzFileTempService.listByIds(gzFileImages);
+				for (GzFileTempEntity file : tempFiles) {
+					tempFilesMap.put(file.getId(), file);
+				}
+			}
+			String previewPath = dictDetailService.getValueByName("file_path").get("preview_path");
+			String gzPath = dictDetailService.getValueByName("file_path").get("gz_path");
+			for (String imageId : imageIds) {
+				JSONObject json = new JSONObject();
+				if (imageId.length() == 32) {
+					if(tempFilesMap.get(imageId)!=null) {
+						GzFileTempEntity gzFileEntity = tempFilesMap.get(imageId);
+						json.put("imageId", imageId);
+						String filePath = gzFileEntity.getFilePath();
+						String tempFilePath = filePath.substring(gzlen);
+						json.put("fileUrl", gzPath + tempFilePath + gzFileEntity.getFileName());
+						json.put("smallUrl", gzPath + tempFilePath + "s-" + gzFileEntity.getFileName());
+					}
+				} else {
+					if(fileInfoMap.get(imageId)!=null) {
+						json.put("imageId", imageId);
+						json.put("fileUrl", previewPath + fileInfoMap.get(imageId).getPath());
+						json.put("smallUrl", previewPath + fileInfoMap.get(imageId).getSmallPath());
+					}
+				}
+				jsonObjs.add(json);
+			}
+			pages = caseVo.getPages();
+		} else {
+			// 查询以前的路径
+			QueryWrapper<GzFileTempEntity> tempFile = new QueryWrapper<>();
+			tempFile.eq("pid", req.getId());
+			tempFile.orderByAsc("soft");
+			List<GzFileTempEntity> tempFiles = gzFileTempService.list(tempFile);
+			String gzPath = dictDetailService.getValueByName("file_path").get("gz_path");
+			for (GzFileTempEntity gzFileEntity : tempFiles) {
+				JSONObject json = new JSONObject();
+				json.put("imageId", gzFileEntity.getId());
+				String filePath = gzFileEntity.getFilePath();
+				String tempFilePath = filePath.substring(gzlen);
+				json.put("fileUrl", gzPath + tempFilePath + gzFileEntity.getFileName());
+				json.put("smallUrl", gzPath + tempFilePath + "s-" + gzFileEntity.getFileName());
+				jsonObjs.add(json);
+			}
+			QueryWrapper<GzDetailEntity> qw = new QueryWrapper<>();
+			qw.eq("puuid", req.getId());
+			qw.orderByAsc(" arccode+0 ");
+			List<GzDetailEntity> gzIds = gzDetailService.list(qw);
+			for (GzDetailEntity gzentity : gzIds) {
+				pages.add(StringUtils.isEmpty(gzentity.getPageno()) ? "" : gzentity.getPageno());
+			}
+		}
+		Map<String, Object> result = new HashMap<>();
+		result.put("imageList", jsonObjs);
+		result.put("pages", pages);
+
+		return ResponseDTO.success(result);
+	}
+
+	/**
+	 * 文件和图片
+	 *
+	 * @return
+	 */
+	@AnonymousPostMapping("/edit")
+	public ResponseDTO<GzArchivesEntity> edit(@RequestBody GzArchivesVo req) {
+		
+		// 验证案卷号是否正确
+		return gzArchivesService.edit(req);
+	
+	}
+
+	@AnonymousPostMapping("/detail")
+	public ResponseDTO<GzDetailDto> detail(@RequestBody GzArchivesVo req) {
+		return gzArchivesService.detail(req);
+	}
+
+
+	/**
+	 * 文件和图片
+	 *
+	 * @return
+	 * @throws Exception
+	 */
+	@AnonymousPostMapping("/reMergeSubmit")
+	public ResponseDTO<Map<String, String>> reMergeSubmit(@RequestBody GzPortraitVo archives) throws Exception {
+		vadateImage(archives);
+		GzArchivesEntity archiveEntity = new GzArchivesEntity();
+		archiveEntity.setId(archives.getId());
+		archiveEntity.setRecflag("2");
+		gzArchivesService.updateById(archiveEntity);
+		gzArchivesService.mergeSubmit(archives);
+		return ResponseDTO.success();
+	}
+
+	/**
+	 * 文件和图片
+	 *
+	 * @return
+	 * @throws Exception
+	 */
+	@AnonymousPostMapping("/stage")
+	public ResponseDTO<Map<String, String>> stage(@RequestBody GzPortraitVo archives) throws Exception {
+		vadateImage(archives);
+		GzArchivesEntity archiveEntity = new GzArchivesEntity();
+		archiveEntity.setId(archives.getId());
+		archiveEntity.setRecflag("3");
+		GzArchivesExEntity archiveExEntity = new GzArchivesExEntity();
+		archiveExEntity.setGzArchivesId(archives.getId());
+		gzArchivesService.updateById(archiveEntity);
+		GzArchivesExEntity gzEx = gzArchivesExService.getOne(archiveExEntity);
+		if (gzEx == null) {
+			gzEx = new GzArchivesExEntity();
+			gzEx.setGzArchivesId(archives.getId());
+			gzEx.setImageJson(JSON.toJSONString(archives));
+			gzEx.setCreateTime(LocalDateTime.now());
+			gzEx.setUpdateTime(LocalDateTime.now());
+			gzArchivesExService.save(archiveExEntity);
+		} else {
+			gzEx.setImageJson(JSON.toJSONString(archives));
+			gzEx.setUpdateTime(LocalDateTime.now());
+			gzArchivesExService.updateById(gzEx);
+		}
+		return ResponseDTO.success();
+	}
+
+	public void vadateImage(GzPortraitVo archives) {
+		List<String> images = archives.getImageIds();
+		if (CollectionUtils.isEmpty(archives.getImageIds())) {
+			throw new BadRequestException("当前图片为空!");
+		}
+		// 判断图片是否含有null
+		for (int j = 0; j < images.size(); j++) {
+			if (StringUtils.isEmpty(images.get(j)) || images.get(j).equalsIgnoreCase("null")
+					|| images.get(j).equalsIgnoreCase("undefined")) {
+				throw new BadRequestException("当前第" + j + "页码是空值!");
+			}
+		}
+		if (CollectionUtils.isEmpty(archives.getPages())) {
+			throw new BadRequestException("当页码不能为空!");
+		}
+	}
+
+	/**
+	 * 文件和图片
+	 *
+	 * @return
+	 */
+	@AnonymousPostMapping("/rotate")
+	public ResponseDTO<FilePreviewDto> uploadFiles(@RequestBody FileUploadVO fileVo) {
+		if (fileVo.getId().length() == 32) {
+			int gzlen = properties.getWindows().getGzPath().length();
+			String gzPath = dictDetailService.getValueByName("file_path").get("gz_path");
+			GzFileTempEntity entity = gzFileTempService.getById(fileVo.getId());
+
+			String name = UUIDGenerator.uuid();
+
+			String fileName = name + FileUtil.JPG;
+			String smallfileName = "s-" + fileName + FileUtil.JPG;
+			File sourceFile = new File(entity.getFilePath() + entity.getFileName());
+			File sourceSmall = new File(entity.getFilePath() + "s-" + entity.getFileName());
+			ImgUtil.rotate(sourceFile, fileVo.getDegree(), new File(entity.getFilePath() + fileName));
+			ImgUtil.rotate(sourceSmall, fileVo.getDegree(), new File(entity.getFilePath() + smallfileName));
+			// 删除文件
+			FileUtil.deleteFile(sourceFile);
+			FileUtil.deleteFile(sourceSmall);
+			FilePreviewDto filePreview = new FilePreviewDto();
+			filePreview.setFileId(fileVo.getId());
+			String previewPath = entity.getFilePath().substring(gzlen);
+			filePreview.setFileUrl(gzPath + previewPath + fileName);
+			filePreview.setSmallUrl(gzPath + previewPath + smallfileName);
+			// 更新数据
+			GzFileTempEntity gzFile = new GzFileTempEntity();
+			gzFile.setId(fileVo.getId());
+			gzFile.setFileName(fileName);
+			gzFileTempService.updateById(gzFile);
+			return ResponseDTO.success(filePreview);
+		}
+		String previewPath = dictDetailService.getValueByName("file_path").get("preview_path");
+		FileInfoEntity entity = fileInfoService.getById(fileVo.getId());
+		String path = properties.getPath().getPath();
+		String name = UUIDGenerator.uuid();
+		String filePath = FileUtil.getUploadPath(path);
+		String fileName = filePath + name;
+		String targetPath = fileName + FileUtil.JPG;
+		String smallPath = fileName + FileUtil.SMALL + FileUtil.JPG;
+		File sourceFile = new File(path + entity.getPath());
+		File sourceSmall = new File(path + entity.getSmallPath());
+		ImgUtil.rotate(sourceFile, fileVo.getDegree(), new File(path + targetPath));
+		ImgUtil.rotate(sourceSmall, fileVo.getDegree(), new File(path + smallPath));
+		// 删除文件
+		FileUtil.deleteFile(sourceFile);
+		FileUtil.deleteFile(sourceSmall);
+		FilePreviewDto filePreview = new FilePreviewDto();
+		filePreview.setFileId(fileVo.getId());
+		filePreview.setFileUrl(previewPath + targetPath);
+		filePreview.setSmallUrl(previewPath + smallPath);
+		// 更新数据
+		FileInfoEntity fileInfo = new FileInfoEntity();
+		fileInfo.setId(fileVo.getId());
+		fileInfo.setPath(targetPath);
+		fileInfo.setSmallPath(smallPath);
+		fileInfoService.updateById(fileInfo);
+		return ResponseDTO.success(filePreview);
+	}
+
+}

+ 21 - 0
eladmin-system/src/main/java/me/zhengjie/archives/dao/IGzArchivesDao.java

@@ -0,0 +1,21 @@
+package me.zhengjie.archives.dao;
+
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import me.zhengjie.archives.entity.GzArchivesEntity;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-25
+ */
+@Mapper
+public interface IGzArchivesDao extends BaseMapper<GzArchivesEntity> {
+
+}

+ 18 - 0
eladmin-system/src/main/java/me/zhengjie/archives/dao/IGzArchivesExDao.java

@@ -0,0 +1,18 @@
+package me.zhengjie.archives.dao;
+
+import me.zhengjie.archives.entity.GzArchivesExEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-26
+ */
+@Mapper
+public interface IGzArchivesExDao extends BaseMapper<GzArchivesExEntity> {
+
+}

+ 19 - 0
eladmin-system/src/main/java/me/zhengjie/archives/dao/IGzDetailDao.java

@@ -0,0 +1,19 @@
+package me.zhengjie.archives.dao;
+
+import me.zhengjie.archives.entity.GzDetailEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * Mapper 接口
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-26
+ */
+@Mapper
+public interface IGzDetailDao extends BaseMapper<GzDetailEntity> {
+
+}

+ 18 - 0
eladmin-system/src/main/java/me/zhengjie/archives/dao/IGzFileTempDao.java

@@ -0,0 +1,18 @@
+package me.zhengjie.archives.dao;
+
+import me.zhengjie.archives.entity.GzFileTempEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-28
+ */
+@Mapper
+public interface IGzFileTempDao extends BaseMapper<GzFileTempEntity> {
+
+}

+ 20 - 0
eladmin-system/src/main/java/me/zhengjie/archives/dao/IGzFilepathDao.java

@@ -0,0 +1,20 @@
+package me.zhengjie.archives.dao;
+
+import me.zhengjie.archives.entity.GzFilepathEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-26
+ */
+@Mapper
+public interface IGzFilepathDao extends BaseMapper<GzFilepathEntity> {
+
+}

+ 121 - 0
eladmin-system/src/main/java/me/zhengjie/archives/dto/ArchivesDto.java

@@ -0,0 +1,121 @@
+package me.zhengjie.archives.dto;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class ArchivesDto {
+
+	/**
+	 * 主键
+	 */
+	private String id;
+
+	/**
+	 * 案卷类型
+	 */
+	private String dossierType;
+	/**
+	 * 档案号
+	 */
+
+	private String archivesNum;
+	/**
+	 * 卷宗号
+	 */
+
+	private String dossierNum;
+	/**
+	 * 公证类型
+	 */
+	private String notarizationType;
+
+	/**
+	 * 公证事项
+	 */
+
+	private String notarizedItem;
+
+	/**
+	 * 公证书编号
+	 */
+
+	private String notarialNum;
+
+	/**
+	 * 公证员
+	 */
+
+	private String notary;
+
+	/**
+	 * 当事人姓名
+	 */
+
+	private String partyName;
+
+	/**
+	 * 受理号
+	 */
+
+	private String acceptNum;
+
+	/**
+	 * 承办人
+	 */
+
+	private String undertaker;
+
+	private String annual;
+
+	private String acceptDate;
+
+	private String completeDate;
+
+	private String filingDate;
+
+	private String secrecyType;
+
+	private String saveTerm;
+
+	private String notaryFullName;
+
+	private String catalogNum;
+
+	private String caseNum;
+
+	private String fondsNum;
+
+	private String boxNum;
+
+	private String pdfPath;
+
+	private String status;
+
+	private String createBy;
+
+	private String updateBy;
+
+	private String submitTime;
+
+	
+	private LocalDateTime createTime;
+
+	private LocalDateTime updateTime;
+
+	private String isDelete;
+
+	private String isClean;
+
+	private Integer redoCount;
+
+	private Integer cleanCount;
+
+	private String imageJson;
+	//pdfPath pdf路径
+	List<String> pdfPaths;
+}

+ 57 - 0
eladmin-system/src/main/java/me/zhengjie/archives/dto/GzArchivesDto.java

@@ -0,0 +1,57 @@
+package me.zhengjie.archives.dto;
+
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+@Getter
+@Setter
+@ToString
+public class GzArchivesDto {
+	//主键
+	private String id;
+	//	档案号:arcno		
+	private String arcno;
+	//	卷宗号: dossierNum
+	private String dossierNum;
+	//	案卷类型	notarizationtypefull
+	private String notarizationtypefull;
+	//	公证事项	title
+	private String title;
+	//	公证书编号	notarizationnumber
+	private String notarizationnumber;
+	//	公证员	notary
+	private String notary;
+	//	承办人	undertaker	
+	private String undertaker;
+	//	当事人姓名	concernedname
+	private String concernedname;
+	//	受理号	acceptno	
+	private String acceptno;
+	//	年度	year
+	private String year;
+	//	受理日期	acceptdate
+	private String acceptdate;
+	//	办结日期	filedate
+	private String filedate;
+	//	归档日期	finishdate
+	private String finishdate;
+	//	保密类型	secretclass (0:非密卷,1:密卷)
+	private String secretclass;
+	//	保管期限	keepingterm
+	private String keepingterm;
+	//	公证处全称	fondname
+	private String fondname;
+	//	案卷号	fileno
+	private String fileno;
+	//	全宗号	fondcode
+	private String fondcode;
+	//	目录号	menuno
+	private String menuno;
+	//	盒号	boxnumber
+	private String boxnumber;
+	//pdfPath pdf路径
+	List<String> pdfPaths;
+}

+ 122 - 0
eladmin-system/src/main/java/me/zhengjie/archives/dto/GzDetailDto.java

@@ -0,0 +1,122 @@
+package me.zhengjie.archives.dto;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class GzDetailDto {
+
+	/**
+	 * 主键
+	 */
+	private String id;
+
+	/**
+	 * 案卷类型
+	 */
+	private String dossierType;
+	/**
+	 * 档案号
+	 */
+
+	private String archivesNum;
+	/**
+	 * 卷宗号
+	 */
+
+	private String dossierNum;
+	/**
+	 * 公证类型
+	 */
+	private String notarizationType;
+
+	/**
+	 * 公证事项
+	 */
+
+	private String notarizedItem;
+
+	/**
+	 * 公证书编号
+	 */
+
+	private String notarialNum;
+
+	/**
+	 * 公证员
+	 */
+
+	private String notary;
+
+	/**
+	 * 当事人姓名
+	 */
+
+	private String partyName;
+
+	/**
+	 * 受理号
+	 */
+
+	private String acceptNum;
+
+	/**
+	 * 承办人
+	 */
+
+	private String undertaker;
+
+	private String annual;
+
+	private String acceptDate;
+
+	private String completeDate;
+
+	private String filingDate;
+
+	private String secrecyType;
+
+	private String saveTerm;
+
+	private String notaryFullName;
+
+	private String catalogNum;
+
+	private String caseNum;
+
+	private String fondsNum;
+
+	private String boxNum;
+
+	private String pdfPath;
+
+	private String status;
+
+	private String createBy;
+
+	private String updateBy;
+
+	private String submitTime;
+
+	
+	private LocalDateTime createTime;
+
+	private LocalDateTime updateTime;
+
+	private String isDelete;
+
+	private String isClean;
+
+	private Integer redoCount;
+
+	private Integer cleanCount;
+
+	private String imageJson;
+	//pdfPath pdf路径
+	List<Map<String, String>> filePath;
+}

+ 392 - 0
eladmin-system/src/main/java/me/zhengjie/archives/entity/GzArchivesEntity.java

@@ -0,0 +1,392 @@
+package me.zhengjie.archives.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import lombok.Getter;
+import lombok.Setter;
+import me.zhengjie.archives.plus.QueryKeyword;
+import me.zhengjie.archives.plus.QueryWapper;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-25
+ */
+@Getter
+@Setter
+@TableName("gz_archives")
+public class GzArchivesEntity implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * id, pk
+	 */
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private String id;
+
+	/**
+	 * 年度
+	 */
+	@QueryWapper({ QueryKeyword.LIKE })
+	@TableField("year")
+	private Integer year;
+
+	/**
+	 * 目录号
+	 */
+	@QueryWapper({ QueryKeyword.LIKE })
+	@TableField("menuno")
+	private String menuno;
+
+	/**
+	 * 编号
+	 */
+	@TableField("no")
+	private String no;
+
+	/**
+	 * 全宗名称
+	 */
+	@TableField("fondname")
+	private String fondname;
+
+	/**
+	 * 全宗号
+	 */
+	@TableField("fondcode")
+	private String fondcode;
+
+	/**
+	 * 历史全宗号
+	 */
+	@TableField("fond_history")
+	private String fondHistory;
+
+	/**
+	 * 分类号
+	 */
+	@TableField("classno")
+	private String classno;
+
+	/**
+	 * 分类名称
+	 */
+	@TableField("classname")
+	private String classname;
+
+	/**
+	 * 历史案卷号
+	 */
+	@TableField("arccode")
+	private String arccode;
+
+	/**
+	 * 档号
+	 */
+	@QueryWapper({ QueryKeyword.LIKE })
+	@TableField("arcno")
+	private String arcno;
+
+	/**
+	 * 受理号
+	 */
+	@QueryWapper({ QueryKeyword.LIKE })
+	@TableField("acceptno")
+	private String acceptno;
+
+	/**
+	 * 公证书编号
+	 */
+	@QueryWapper({ QueryKeyword.LIKE })
+	@TableField("notarizationnumber")
+	private String notarizationnumber;
+
+	/**
+	 * 案卷号
+	 */
+	@QueryWapper({ QueryKeyword.LIKE })
+	@TableField("fileno")
+	private String fileno;
+
+	/**
+	 * 重号
+	 */
+	@TableField("serialno")
+	private String serialno;
+
+	/**
+	 * 当事人名称
+	 */
+	@QueryWapper({ QueryKeyword.LIKE })
+	@TableField("concernedname")
+	private String concernedname;
+
+	/**
+	 * 当事人证件号码
+	 */
+	@TableField("concernedidno")
+	private String concernedidno;
+
+	/**
+	 * 相关人员名称
+	 */
+	@TableField("related_name")
+	private String relatedName;
+
+	/**
+	 * 相关人员证件号码
+	 */
+	@TableField("related_no")
+	private String relatedNo;
+
+	/**
+	 * 公证员
+	 */
+	@TableField("notary")
+	private String notary;
+
+	/**
+	 * 公证事项
+	 */
+	@QueryWapper({ QueryKeyword.LIKE })
+	@TableField("title")
+	private String title;
+
+	/**
+	 * 受理日期
+	 */
+	@QueryWapper(attribute = { "startTime", "endTime" }, value = { QueryKeyword.RANGE })
+	@TableField("acceptdate")
+	private LocalDate acceptdate;
+
+	/**
+	 * 归档日期
+	 */
+	@TableField("filedate")
+	private LocalDate filedate;
+
+	/**
+	 * 办结日期
+	 */
+	@TableField("finishdate")
+	private LocalDate finishdate;
+
+	/**
+	 * 鉴定日期
+	 */
+	@TableField("appraisaldate")
+	private LocalDate appraisaldate;
+
+	/**
+	 * 创建人uuid
+	 */
+	@TableField("creater_uuid")
+	private String createrUuid;
+
+	/**
+	 * 创建人
+	 */
+	@TableField("createperson")
+	private String createperson;
+
+	@TableField("createtime")
+	private LocalDateTime createtime;
+
+	/**
+	 * 更新人uuid
+	 */
+	@TableField("update_uuid")
+	private String updateUuid;
+
+	/**
+	 * 更新人
+	 */
+	@TableField("updateperson")
+	private String updateperson;
+
+	/**
+	 * 是否删除,默认否
+	 */
+	@TableField("status")
+	private String status;
+
+	/**
+	 * 承办人
+	 */
+	@QueryWapper({ QueryKeyword.LIKE })
+	@TableField("undertaker")
+	private String undertaker;
+
+	/**
+	 * 公证处简称
+	 */
+	@TableField("notarial_office")
+	private String notarialOffice;
+
+	/**
+	 * 公证处全称
+	 */
+	@TableField("notarial_office_full")
+	private String notarialOfficeFull;
+
+	/**
+	 * 公证类型
+	 */
+	@TableField("notarizationtype")
+	private String notarizationtype;
+
+	/**
+	 * 公证类型全称
+	 */
+	@TableField("notarizationtypefull")
+	private String notarizationtypefull;
+
+	/**
+	 * 保管期限
+	 */
+	@TableField("keepingterm")
+	private String keepingterm;
+
+	/**
+	 * 密级
+	 */
+	@TableField("secretclass")
+	private String secretclass;
+
+	/**
+	 * 备注
+	 */
+	@TableField("remark")
+	private String remark;
+
+	/**
+	 * 是否放开登记 否
+	 */
+	@TableField("opening")
+	private String opening;
+
+	/**
+	 * 属性 9表示公证书撤回
+	 */
+	@QueryWapper({ QueryKeyword.LIKE })
+	@TableField("recflag")
+	private String recflag;
+
+	/**
+	 * 源服务器标识
+	 */
+	@TableField("ssysflag")
+	private String ssysflag;
+
+	/**
+	 * 子集数量
+	 */
+	@TableField("soncnt")
+	private String soncnt;
+
+	/**
+	 * 盒号
+	 */
+	@TableField("boxnumber")
+	private String boxnumber;
+
+	/**
+	 * 件数
+	 */
+	@TableField("filenum")
+	private Integer filenum;
+
+	/**
+	 * 页数
+	 */
+	@TableField("pagenums")
+	private Integer pagenums;
+
+	/**
+	 * 封面页数
+	 */
+	@TableField("covernums")
+	private Integer covernums;
+
+	/**
+	 * 对象全局ID
+	 */
+	@TableField("guid")
+	private String guid;
+
+	/**
+	 * 编号1 案卷号的数字
+	 */
+	@TableField("no_one")
+	private Integer noOne;
+
+	/**
+	 * 页号 用不到
+	 */
+	@TableField("page_no")
+	private String pageNo;
+
+	/**
+	 * puuidb 用不到
+	 */
+	@TableField("puuid")
+	private String puuid;
+
+	/**
+	 * 流水号 用不到
+	 */
+	@TableField("serialno_temp")
+	private String serialnoTemp;
+
+	/**
+	 * 机构code
+	 */
+	@TableField("organ_code")
+	private String organCode;
+
+	/**
+	 * 更新时间
+	 */
+	@TableField("updatetime")
+	private LocalDateTime updatetime;
+
+	/**
+	 * 导入来源
+	 */
+	@TableField("datasource_type")
+	private String datasourceType;
+
+	/**
+	 * 是否导入
+	 */
+	@TableField("is_import")
+	private Boolean isImport;
+
+	/**
+	 * 导入状态
+	 */
+	@TableField("compose_status")
+	private String composeStatus;
+	@QueryWapper(attribute = { "submitStartTime", "submitEndTime" }, value = { QueryKeyword.RANGE })
+	@TableField("pdftime")
+	private LocalDate pdftime;
+
+	/**
+	 * 0未删除1已删除
+	 */
+	@TableField("is_delete")
+	private String isDelete;
+
+	@TableField("field")
+	private String field;
+
+}

+ 58 - 0
eladmin-system/src/main/java/me/zhengjie/archives/entity/GzArchivesExEntity.java

@@ -0,0 +1,58 @@
+package me.zhengjie.archives.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-26
+ */
+@Getter
+@Setter
+@TableName("gz_archives_ex")
+public class GzArchivesExEntity implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private Integer id;
+
+	/**
+	 * pdf路径
+	 */
+	@TableField("pdf_path")
+	private String pdfPath;
+
+	/**
+	 * 页面保存的数据,图片和写的页号
+	 */
+	@TableField("image_json")
+	private String imageJson;
+
+	/**
+	 * gz归档表的外键
+	 */
+	@TableField("gz_archives_id")
+	private String gzArchivesId;
+
+	@TableField("create_time")
+	private LocalDateTime createTime;
+
+	@TableField("update_time")
+	private LocalDateTime updateTime;
+
+}

+ 266 - 0
eladmin-system/src/main/java/me/zhengjie/archives/entity/GzDetailEntity.java

@@ -0,0 +1,266 @@
+package me.zhengjie.archives.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-26
+ */
+@Getter
+@Setter
+@TableName("gz_detail")
+public class GzDetailEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id pk
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private String id;
+
+    /**
+     * gz_archives.id
+     */
+    @TableField("puuid")
+    private String puuid;
+
+    /**
+     * 原系统uuid
+     */
+    @TableField("old_uuid")
+    private String oldUuid;
+
+    /**
+     * 年度
+     */
+    @TableField("year")
+    private Integer year;
+
+    /**
+     * 文件名称
+     */
+    @TableField("title")
+    private String title;
+
+    /**
+     * 页数
+     */
+    @TableField("pageno")
+    private String pageno;
+
+    /**
+     * 起始页
+     */
+    @TableField("startno")
+    private String startno;
+
+    /**
+     * 结束页
+     */
+    @TableField("endno")
+    private String endno;
+
+    /**
+     * 责任者
+     */
+    @TableField("responser")
+    private String responser;
+
+    /**
+     * 电子文档1
+     */
+    @TableField("e_doc1")
+    private String eDoc1;
+
+    /**
+     * 电子文档2
+     */
+    @TableField("e_doc2")
+    private String eDoc2;
+
+    /**
+     * 档号
+     */
+    @TableField("arcno")
+    private String arcno;
+
+    /**
+     * 案卷档号
+     */
+    @TableField("archives_arcno")
+    private String archivesArcno;
+
+    /**
+     * 全宗号
+     */
+    @TableField("fondcode")
+    private String fondcode;
+
+    /**
+     * 历史全宗号
+     */
+    @TableField("fond_history")
+    private String fondHistory;
+
+    /**
+     * 分类号
+     */
+    @TableField("classno")
+    private String classno;
+
+    /**
+     * 分类名称
+     */
+    @TableField("classname")
+    private String classname;
+
+    /**
+     * 顺序号
+     */
+    @TableField("arccode")
+    private String arccode;
+
+    /**
+     * 流水号
+     */
+    @TableField("serialno")
+    private String serialno;
+
+    /**
+     * 页号
+     */
+    @TableField("page_no")
+    private String pageNo;
+
+    /**
+     * 创建人uuid
+     */
+    @TableField("creater_uuid")
+    private String createrUuid;
+
+    /**
+     * 创建人
+     */
+    @TableField("createperson")
+    private String createperson;
+
+    @TableField("createtime")
+    private LocalDateTime createtime;
+
+    /**
+     * 更新人uuid
+     */
+    @TableField("update_uuid")
+    private String updateUuid;
+
+    /**
+     * 更新人
+     */
+    @TableField("updateperson")
+    private String updateperson;
+
+    /**
+     * 公证员
+     */
+    @TableField("notary")
+    private String notary;
+
+    /**
+     * 公证书编号
+     */
+    @TableField("notarizationnumber")
+    private String notarizationnumber;
+
+    /**
+     * 公证类型
+     */
+    @TableField("notarizationtype")
+    private String notarizationtype;
+
+    /**
+     * 鉴定日期
+     */
+    @TableField("appraisaldate")
+    private LocalDate appraisaldate;
+
+    /**
+     * 是否删除,默认否
+     */
+    @TableField("status")
+    private String status;
+
+    /**
+     * 保管期限
+     */
+    @TableField("keepingterm")
+    private String keepingterm;
+
+    /**
+     * 密级
+     */
+    @TableField("secretclass")
+    private String secretclass;
+
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+
+    /**
+     * 是否放开登记 否
+     */
+    @TableField("opening")
+    private String opening;
+
+    /**
+     * 属性 
+     */
+    @TableField("recflag")
+    private String recflag;
+
+    /**
+     * 源服务器标识 
+     */
+    @TableField("ssysflag")
+    private String ssysflag;
+
+    /**
+     * 子集数量 
+     */
+    @TableField("soncnt")
+    private String soncnt;
+
+    /**
+     * 未知A 
+     */
+    @TableField("A")
+    private String a;
+
+    /**
+     * 未知B 
+     */
+    @TableField("B")
+    private String b;
+
+    /**
+     * 更新时间
+     */
+    @TableField("updatetime")
+    private LocalDateTime updatetime;
+
+
+}

+ 67 - 0
eladmin-system/src/main/java/me/zhengjie/archives/entity/GzFileTempEntity.java

@@ -0,0 +1,67 @@
+package me.zhengjie.archives.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-28
+ */
+@Getter
+@Setter
+@TableName("gz_file_temp")
+public class GzFileTempEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private String id;
+
+    /**
+     * 文件名字
+     */
+    @TableField("file_name")
+    private String fileName;
+
+    /**
+     * 文件路径
+     */
+    @TableField("file_path")
+    private String filePath;
+
+    /**
+     * 序号
+     */
+    @TableField("soft")
+    private Integer soft;
+
+    /**
+     * 档案id
+     */
+    @TableField("pid")
+    private String pid;
+
+    /**
+     * 是否删除
+     */
+    @TableField("is_delete")
+    private String isDelete;
+
+    @TableField("createtime")
+    private LocalDateTime createtime;
+
+
+}

+ 253 - 0
eladmin-system/src/main/java/me/zhengjie/archives/entity/GzFilepathEntity.java

@@ -0,0 +1,253 @@
+package me.zhengjie.archives.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-26
+ */
+@Getter
+@Setter
+@TableName("gz_filepath")
+public class GzFilepathEntity implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * id pk
+	 */
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private String id;
+
+	/**
+	 * gz_archives.id
+	 */
+	@TableField("puuid")
+	private String puuid;
+
+	/**
+	 * 文件名称
+	 */
+	@TableField("name")
+	private String name;
+
+	/**
+	 * 文件名
+	 */
+	@TableField("filename")
+	private String filename;
+
+	/**
+	 * 服务器名
+	 */
+	@TableField("svrname")
+	private String svrname;
+
+	/**
+	 * 子目录名
+	 */
+	@TableField("subpath")
+	private String subpath;
+
+	/**
+	 * 文本内容
+	 */
+	@TableField("textinfo")
+	private String textinfo;
+
+	/**
+	 * 数据流
+	 */
+	@TableField("efilecmt")
+	private String efilecmt;
+
+	/**
+	 * 文件大小
+	 */
+	@TableField("fsize")
+	private String fsize;
+
+	/**
+	 * 是否定版
+	 */
+	@TableField("vslck")
+	private String vslck;
+
+	/**
+	 * 序号
+	 */
+	@TableField("arccode")
+	private String arccode;
+
+	/**
+	 * 档号
+	 */
+	@TableField("arcno")
+	private String arcno;
+
+	/**
+	 * 流水号
+	 */
+	@TableField("serialno")
+	private String serialno;
+
+	/**
+	 * 标题
+	 */
+	@TableField("title")
+	private String title;
+
+	/**
+	 * 扩展名
+	 */
+	@TableField("ext")
+	private String ext;
+
+	/**
+	 * 全宗号
+	 */
+	@TableField("fondcode")
+	private String fondcode;
+
+	/**
+	 * 历史全宗号
+	 */
+	@TableField("fond_history")
+	private String fondHistory;
+
+	/**
+	 * 鉴定日期
+	 */
+	@TableField("appraisaldate")
+	private LocalDate appraisaldate;
+
+	/**
+	 * 版本号
+	 */
+	@TableField("versionno")
+	private String versionno;
+
+	/**
+	 * 是否数据库保存
+	 */
+	@TableField("indb")
+	private String indb;
+
+	/**
+	 * 是否删除,默认否
+	 */
+	@TableField("status")
+	private String status;
+
+	/**
+	 * 保管期限
+	 */
+	@TableField("keepingterm")
+	private String keepingterm;
+
+	/**
+	 * 密级
+	 */
+	@TableField("secretclass")
+	private String secretclass;
+
+	/**
+	 * 备注
+	 */
+	@TableField("remark")
+	private String remark;
+
+	/**
+	 * 是否放开登记 否
+	 */
+	@TableField("opening")
+	private String opening;
+
+	/**
+	 * 属性
+	 */
+	@TableField("recflag")
+	private String recflag;
+
+	/**
+	 * 源服务器标识
+	 */
+	@TableField("ssysflag")
+	private String ssysflag;
+
+	/**
+	 * 分类号
+	 */
+	@TableField("classno")
+	private String classno;
+
+	/**
+	 * 分类名称
+	 */
+	@TableField("classname")
+	private String classname;
+
+	/**
+	 * 子集数量
+	 */
+	@TableField("soncnt")
+	private String soncnt;
+
+	/**
+	 * did
+	 */
+	@TableField("did")
+	private String did;
+
+	/**
+	 * 公证员
+	 */
+	@TableField("notary")
+	private String notary;
+
+	/**
+	 * 创建人uuid
+	 */
+	@TableField("creater_uuid")
+	private String createrUuid;
+
+	/**
+	 * 创建人
+	 */
+	@TableField("createperson")
+	private String createperson;
+
+	@TableField("createtime")
+	private LocalDateTime createtime;
+
+	/**
+	 * 更新人uuid
+	 */
+	@TableField("update_uuid")
+	private String updateUuid;
+
+	/**
+	 * 更新人
+	 */
+	@TableField("updateperson")
+	private String updateperson;
+
+	/**
+	 * 更新时间
+	 */
+	@TableField("updatetime")
+	private LocalDateTime updatetime;
+
+}

+ 9 - 0
eladmin-system/src/main/java/me/zhengjie/archives/service/GzArchivesExService.java

@@ -0,0 +1,9 @@
+package me.zhengjie.archives.service;
+
+import me.zhengjie.archives.entity.GzArchivesExEntity;
+import me.zhengjie.archives.plus.AbstractService;
+
+
+public interface GzArchivesExService extends AbstractService<GzArchivesExEntity> {
+
+}

+ 32 - 0
eladmin-system/src/main/java/me/zhengjie/archives/service/GzArchivesService.java

@@ -0,0 +1,32 @@
+package me.zhengjie.archives.service;
+
+import java.util.Map;
+
+import org.springframework.web.bind.annotation.RequestBody;
+
+import me.zhengjie.archives.dto.GzDetailDto;
+import me.zhengjie.archives.dto.GzArchivesDto;
+import me.zhengjie.archives.entity.ArchivesEntity;
+import me.zhengjie.archives.entity.GzArchivesEntity;
+import me.zhengjie.archives.plus.AbstractService;
+import me.zhengjie.archives.vo.ArchivesVo;
+import me.zhengjie.archives.vo.GzArchivesVo;
+import me.zhengjie.archives.vo.GzPortraitVo;
+import me.zhengjie.base.ResponseDTO;
+
+/**
+ * <p>
+ * 服务类
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-25
+ */
+public interface GzArchivesService extends AbstractService<GzArchivesEntity> {
+	public Map<String, Object> page(GzArchivesVo req);
+
+	public void mergeSubmit(GzPortraitVo archives) throws Exception;
+
+	public ResponseDTO<GzDetailDto> detail(GzArchivesVo req);
+	public ResponseDTO<GzArchivesEntity> edit(@RequestBody GzArchivesVo req) ;
+}

+ 19 - 0
eladmin-system/src/main/java/me/zhengjie/archives/service/GzDetailService.java

@@ -0,0 +1,19 @@
+package me.zhengjie.archives.service;
+
+import me.zhengjie.archives.entity.GzDetailEntity;
+import me.zhengjie.archives.plus.AbstractService;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-26
+ */
+public interface GzDetailService extends AbstractService<GzDetailEntity> {
+
+}

+ 16 - 0
eladmin-system/src/main/java/me/zhengjie/archives/service/GzFileTempService.java

@@ -0,0 +1,16 @@
+package me.zhengjie.archives.service;
+
+import me.zhengjie.archives.entity.GzFileTempEntity;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-28
+ */
+public interface GzFileTempService extends IService<GzFileTempEntity> {
+
+}

+ 18 - 0
eladmin-system/src/main/java/me/zhengjie/archives/service/GzFilepathService.java

@@ -0,0 +1,18 @@
+package me.zhengjie.archives.service;
+
+import me.zhengjie.archives.entity.GzFilepathEntity;
+import me.zhengjie.archives.plus.AbstractService;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-26
+ */
+public interface GzFilepathService extends AbstractService<GzFilepathEntity> {
+
+}

+ 9 - 21
eladmin-system/src/main/java/me/zhengjie/archives/service/impl/ArchivesServiceImpl.java

@@ -9,24 +9,18 @@ import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
-
-import javax.annotation.PostConstruct;
 import javax.servlet.http.HttpServletResponse;
-
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-
 import me.zhengjie.archives.dao.IArchivesDao;
 import me.zhengjie.archives.dao.IModelDao;
 import me.zhengjie.archives.entity.ArchivesEntity;
@@ -43,7 +37,6 @@ import me.zhengjie.archives.util.PdfUtils;
 import me.zhengjie.archives.vo.ArchivesVo;
 import me.zhengjie.archives.vo.CasePortraitVo;
 import me.zhengjie.config.FileProperties;
-import me.zhengjie.modules.mnt.service.dto.AppDto;
 import me.zhengjie.modules.system.service.DictDetailService;
 import me.zhengjie.utils.BeanCopyUtils;
 import me.zhengjie.utils.DateUtil;
@@ -64,27 +57,21 @@ public class ArchivesServiceImpl extends AbstractServiceImpl<IArchivesDao, Archi
 	@Autowired
 	HtmlConvertToPdf htmlConvertToPdf;
 
-//	@PostConstruct
-//	public void init() {
-//		new Thread(()-> {deleteNoUserImage();}).start();
-//		
-//	}
-
 	public Map<String, Object> page(ArchivesVo req) {
 		IPage<ArchivesEntity> page = new Page<>(req.getIndex() + 1, req.getSize());
 		ArchivesEntity entity = BeanCopyUtils.convertObj(req, ArchivesEntity.class);
 		entity.setIsDelete("1");
 		QueryMap queryMap = new QueryMap();
 		Map<String, Object> map = new HashMap<>();
-		List<String> accept = req.getAcceptDate();
+		List<String> accept = req.getAcceptDates();
 		if (CollectionUtils.isNotEmpty(accept)) {
 			String stringDate = accept.get(0).replaceAll("-", "");
 			map.put("startTime", stringDate.split(" ")[0]);
-			String endDate=accept.get(1).replaceAll("-", "");
-			map.put("endTime",endDate.split(" ")[0]);
+			String endDate = accept.get(1).replaceAll("-", "");
+			map.put("endTime", endDate.split(" ")[0]);
 			queryMap.setMap(map);
 		}
-		List<String> submitTime = req.getSubmitTime();
+		List<String> submitTime = req.getSubmitTimes();
 		if (CollectionUtils.isNotEmpty(submitTime)) {
 			map.put("submitStartTime", submitTime.get(0));
 			map.put("submitEndTime", submitTime.get(1));
@@ -352,17 +339,17 @@ public class ArchivesServiceImpl extends AbstractServiceImpl<IArchivesDao, Archi
 	@Override
 	public void download(ArchivesVo req, HttpServletResponse response) throws IOException {
 
-		List<String> accept = req.getAcceptDate();
+		List<String> accept = req.getAcceptDates();
 		QueryMap queryMap = new QueryMap();
 		Map<String, Object> map = new HashMap<>();
 		if (CollectionUtils.isNotEmpty(accept)) {
 			String stringDate = accept.get(0).replaceAll("-", "");
 			map.put("startTime", stringDate.split(" ")[0]);
-			String endDate=accept.get(1).replaceAll("-", "");
-			map.put("endTime",endDate.split(" ")[0]);
+			String endDate = accept.get(1).replaceAll("-", "");
+			map.put("endTime", endDate.split(" ")[0]);
 			queryMap.setMap(map);
 		}
-		List<String> submitTime = req.getSubmitTime();
+		List<String> submitTime = req.getSubmitTimes();
 		if (CollectionUtils.isNotEmpty(submitTime)) {
 			map.put("submitStartTime", submitTime.get(0));
 			map.put("submitEndTime", submitTime.get(1));
@@ -450,6 +437,7 @@ public class ArchivesServiceImpl extends AbstractServiceImpl<IArchivesDao, Archi
 
 		}
 	}
+
 	public static void main(String[] args) {
 		System.out.println("20200101 00:00:00".split(" ")[0].length());
 	}

+ 21 - 0
eladmin-system/src/main/java/me/zhengjie/archives/service/impl/GzArchivesExServiceImpl.java

@@ -0,0 +1,21 @@
+package me.zhengjie.archives.service.impl;
+
+import me.zhengjie.archives.entity.GzArchivesExEntity;
+import me.zhengjie.archives.plus.AbstractServiceImpl;
+import me.zhengjie.archives.dao.IGzArchivesExDao;
+import me.zhengjie.archives.service.GzArchivesExService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-26
+ */
+@Service
+public class GzArchivesExServiceImpl extends AbstractServiceImpl<IGzArchivesExDao, GzArchivesExEntity> implements GzArchivesExService {
+
+}

+ 411 - 0
eladmin-system/src/main/java/me/zhengjie/archives/service/impl/GzArchivesServiceImpl.java

@@ -0,0 +1,411 @@
+package me.zhengjie.archives.service.impl;
+
+import java.io.File;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import me.zhengjie.annotation.rest.AnonymousPostMapping;
+import me.zhengjie.archives.dao.IGzArchivesDao;
+import me.zhengjie.archives.dao.IModelDao;
+import me.zhengjie.archives.dto.GzDetailDto;
+import me.zhengjie.archives.entity.ArchivesEntity;
+import me.zhengjie.archives.entity.FileInfoEntity;
+import me.zhengjie.archives.entity.GzArchivesEntity;
+import me.zhengjie.archives.entity.GzArchivesExEntity;
+import me.zhengjie.archives.entity.GzDetailEntity;
+import me.zhengjie.archives.entity.GzFileTempEntity;
+import me.zhengjie.archives.entity.GzFilepathEntity;
+import me.zhengjie.archives.entity.ModelEntity;
+import me.zhengjie.archives.plus.AbstractServiceImpl;
+import me.zhengjie.archives.plus.QueryMap;
+import me.zhengjie.archives.service.FileInfoService;
+import me.zhengjie.archives.service.GzArchivesExService;
+import me.zhengjie.archives.service.GzArchivesService;
+import me.zhengjie.archives.service.GzDetailService;
+import me.zhengjie.archives.service.GzFileTempService;
+import me.zhengjie.archives.service.GzFilepathService;
+import me.zhengjie.archives.util.HtmlToImage;
+import me.zhengjie.archives.util.PdfUtils;
+import me.zhengjie.archives.vo.GzArchivesVo;
+import me.zhengjie.archives.vo.GzPortraitVo;
+import me.zhengjie.base.ResponseDTO;
+import me.zhengjie.config.FileProperties;
+import me.zhengjie.exception.BadRequestException;
+import me.zhengjie.modules.system.service.DictDetailService;
+import me.zhengjie.utils.DateUtil;
+import me.zhengjie.utils.FileUtil;
+import me.zhengjie.utils.PageUtil;
+import me.zhengjie.utils.UUIDGenerator;
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-25
+ */
+@Service
+public class GzArchivesServiceImpl extends AbstractServiceImpl<IGzArchivesDao, GzArchivesEntity>
+		implements GzArchivesService {
+	@Autowired
+	DictDetailService dictDetailService;
+	@Autowired
+	IModelDao modelDao;
+	@Autowired
+	private FileProperties properties;
+	@Autowired
+	FileInfoService fileInfoService;
+	@Autowired
+	private GzFileTempService gzFileTempService;
+	@Autowired
+	GzArchivesExService gzArchivesExService;
+	@Autowired
+	private GzDetailService gzDetailService;
+	@Autowired
+	private GzFilepathService gzFilepathService;
+
+	public void mergeSubmit(GzPortraitVo archives) throws Exception {
+
+		image(archives);
+	}
+
+	public void image(GzPortraitVo archives) throws Exception {
+
+		String path = properties.getPath().getPath();
+		// 查询对应的值
+		GzArchivesEntity entity = this.getById(archives.getId());
+		// 保管期限
+		String saveTerm = dictDetailService.getLabelByValue("saveTerm_type", entity.getKeepingterm());
+		// 卷宗号
+		String dossierNum = entity.getYear() + "-" + entity.getNotarizationtypefull() + "-" + saveTerm + "-"
+				+ entity.getFileno();
+		// TODO 当事人很多,需要修改字体-------------------页号开始------------------------
+		QueryWrapper<ModelEntity> queryWrapper = new QueryWrapper<ModelEntity>();
+		queryWrapper.eq("code", 1);
+		ModelEntity model = modelDao.selectOne(queryWrapper);
+
+		String fileRelatePath = FileUtil.getUploadPath(path);
+		String filePath = path + fileRelatePath;
+		String headPageHtml = model.getContent();
+		// 替换内容
+		headPageHtml = headPageHtml.replace("${year}", entity.getYear().toString())
+				.replace("${notarialNum}", entity.getNo()).replace("${notarizedItem}", entity.getTitle())
+				.replace("${partyName}", entity.getConcernedname()).replace("${undertaker}", entity.getUndertaker())
+				.replace("${notary}", entity.getNotary())
+				.replace("${acceptDate}", DateUtil.localDate(entity.getAcceptdate()))
+				.replace("${completeDate}", DateUtil.localDate(entity.getFinishdate()))
+				.replace("${filingDate}", DateUtil.localDate(entity.getFiledate())).replace("${saveTerm}", saveTerm)
+				.replace("${dossierNum}", dossierNum).replace("${acceptNum}", entity.getAcceptno())
+				.replace("${fondsNum}", entity.getFondcode()).replace("${catalogNum}", entity.getMenuno())
+				.replace("${caseNum}", entity.getFileno());
+		String headPagePath = filePath + UUIDGenerator.uuid() + ".html";
+		String headPageToImage = filePath + UUIDGenerator.uuid() + ".jpg";
+		// 先写入文本
+		FileUtil.writeUtf8String(headPageHtml, headPagePath);
+		// 然后生成jpg
+		String exePath = dictDetailService.getValueByName("file_path").get("exe_path");
+		HtmlToImage.htmlToImg(exePath, headPagePath, headPageToImage);
+		FileUtil.deleteFile(new File(headPagePath));
+		// -------------------页号结束------------------------
+		// --------------------目录号开始---------
+		queryWrapper = new QueryWrapper<ModelEntity>();
+		queryWrapper.eq("code", 2);
+		model = modelDao.selectOne(queryWrapper);
+		String catalogHtml = model.getContent();
+		int j = 0;
+		List<String> pages = archives.getPages();
+		for (int i = 0; i < pages.size(); i++) {
+			j = i + 1;
+			catalogHtml = catalogHtml.replace("${num" + j + "}", pages.get(i));
+		}
+		String catalogPath = filePath + UUIDGenerator.uuid() + ".html";
+		String catalogToImage = filePath + UUIDGenerator.uuid() + ".jpg";
+		// 先写入文本
+		FileUtil.writeUtf8String(catalogHtml, catalogPath);
+		// 然后生成jpg
+		HtmlToImage.htmlToImg(exePath, catalogPath, catalogToImage);
+		FileUtil.deleteFile(new File(catalogPath));
+		List<File> files = new ArrayList<File>();
+		// 页头第一个
+		files.add(new File(headPageToImage));
+		// 目录放在第二个
+		files.add(new File(catalogToImage));
+		List<String> imageIds = archives.getImageIds();
+		// 区分是新增加的,还是老的数据,历史数据是32位,新的是22位
+		List<String> fileInfoImages = new ArrayList<>();
+		List<String> gzFileImages = new ArrayList<>();
+		// 判断
+		for (String imageId : imageIds) {
+			if (imageId.length() == 32) {
+				gzFileImages.add(imageId);
+			} else {
+				fileInfoImages.add(imageId);
+			}
+		}
+		// 这个是新的图片地址
+		Map<String, FileInfoEntity> fileInfoMap = new HashMap<>();
+		if(CollectionUtils.isNotEmpty(fileInfoImages)) {
+			List<FileInfoEntity> fileInfo = fileInfoService.listByIds(fileInfoImages);
+			for (FileInfoEntity file : fileInfo) {
+				fileInfoMap.put(file.getId(), file);
+			}
+		}
+		// ------------------------这个是老的地址
+		Map<String, GzFileTempEntity> tempFilesMap = new HashMap<>();
+		if(CollectionUtils.isNotEmpty(gzFileImages)) {
+			List<GzFileTempEntity> tempFiles = gzFileTempService.listByIds(gzFileImages);
+			for (GzFileTempEntity file : tempFiles) {
+				tempFilesMap.put(file.getId(), file);
+			}
+		}
+		
+		for (String imageId : imageIds) {
+			if (imageId.length() == 32) {
+				if(tempFilesMap.get(imageId)!=null) {
+					GzFileTempEntity gzFileEntity = tempFilesMap.get(imageId);
+					files.add(new File(gzFileEntity.getFilePath() + gzFileEntity.getFileName()));
+				}
+			} else {
+				if(fileInfoMap.get(imageId)!=null) {
+					files.add(new File(path + fileInfoMap.get(imageId).getPath()));
+				}
+				
+			}
+		}
+
+		// --------------------------------------------------
+		String fileName = "merge_pdf" + UUIDGenerator.uuid() + ".pdf";
+		String toPdfTarget = filePath + fileName;
+		// pdf进行合并
+		PdfUtils.manyImageToOnePdf(files, toPdfTarget);
+		// 先更新主表
+		entity = new GzArchivesEntity();
+		entity.setId(archives.getId());
+		entity.setRecflag("1");
+		entity.setPdftime(LocalDate.now());
+		this.updateById(entity);
+		// -------------------
+		GzArchivesExEntity archiveEntity = new GzArchivesExEntity();
+		archiveEntity.setGzArchivesId(archives.getId());
+		GzArchivesExEntity gzEx = gzArchivesExService.getOne(archiveEntity);
+		if (gzEx == null) {
+			gzEx = new GzArchivesExEntity();
+			gzEx.setPdfPath(fileRelatePath + fileName);
+			gzEx.setGzArchivesId(archives.getId());
+			gzEx.setImageJson(JSON.toJSONString(archives));
+			gzEx.setCreateTime(LocalDateTime.now());
+			gzEx.setUpdateTime(LocalDateTime.now());
+			gzEx.setPdfPath(fileRelatePath+fileName);
+			gzArchivesExService.save(gzEx);
+		} else {
+			 
+			gzEx.setGzArchivesId(archives.getId());
+			gzEx.setPdfPath(fileRelatePath + fileName);
+			gzEx.setImageJson(JSON.toJSONString(archives));
+			gzEx.setPdfPath(fileRelatePath+fileName);
+			gzEx.setUpdateTime(LocalDateTime.now());
+			gzArchivesExService.updateById(gzEx);
+		}
+		UpdateWrapper<FileInfoEntity> updateWrapper = new UpdateWrapper<>();
+		updateWrapper.in("id", imageIds);
+		updateWrapper.set("loan_no", archives.getId());
+
+		this.fileInfoService.update(updateWrapper);
+
+	}
+
+	@AnonymousPostMapping("/detail")
+	public ResponseDTO<GzDetailDto> detail(GzArchivesVo req) {
+		GzArchivesEntity entity = this.getById(req.getId());
+//		GzArchivesDto dto = BeanCopyUtils.convertObj(entity, GzArchivesDto.class);
+		GzDetailDto dto = new GzDetailDto();
+		convertArchives(entity, dto);
+		// 先查询有没有处理过,然后再处理老的数据
+		GzArchivesExEntity gzExEntity = new GzArchivesExEntity();
+		gzExEntity.setGzArchivesId(req.getId());
+		gzExEntity = gzArchivesExService.getOne(gzExEntity);
+		if (gzExEntity != null) {
+			String previewPath = dictDetailService.getValueByName("file_path").get("preview_path");
+			Map<String,String> pdfFileName = new HashMap<>();
+			pdfFileName.put("pdfPath", previewPath + gzExEntity.getPdfPath());
+			// 卷宗号
+			pdfFileName.put("pdfName", entity.getArcno());
+			List<Map<String,String>> pdfList=new ArrayList<>();
+			pdfList.add(pdfFileName);
+			dto.setFilePath(pdfList);
+			return ResponseDTO.success(dto);
+		}
+		QueryWrapper<GzDetailEntity> qw = new QueryWrapper<>();
+		qw.eq("puuid", req.getId());
+		List<String> gzIds = gzDetailService.list(qw).stream().map(e -> e.getId()).collect(Collectors.toList());
+		QueryWrapper<GzFilepathEntity> gzFilepathQw = new QueryWrapper<>();
+		gzFilepathQw.in("puuid", gzIds);
+		gzFilepathQw.orderByAsc(" arccode+0 ");
+		String gzPath = dictDetailService.getValueByName("file_path").get("gz_path");
+		List<GzFilepathEntity> gzFilePaths = gzFilepathService.list(gzFilepathQw);
+		if (CollectionUtils.isNotEmpty(gzFilePaths)) {
+			List<Map<String,String>> pdfs = new ArrayList<>();
+			for (GzFilepathEntity gz : gzFilePaths) {
+				//pdfs.add(gzPath + gz.getSubpath() + gz.getFilename() + gz.getExt());
+				Map<String,String> pdfFileName = new HashMap<>();
+				pdfFileName.put("pdfPath", gzPath + gz.getSubpath() + gz.getFilename() + gz.getExt());
+				pdfFileName.put("pdfName", gz.getFilename());
+				pdfs.add(pdfFileName);
+			}
+			dto.setFilePath(pdfs);
+			return ResponseDTO.success(dto);
+		}
+		return ResponseDTO.success(dto);
+	}
+
+	public Map<String, Object> page(GzArchivesVo req) {
+		IPage<GzArchivesEntity> page = new Page<>(req.getIndex() + 1, req.getSize());
+		GzArchivesEntity gzArchives = new GzArchivesEntity();
+		convertGz(gzArchives, req);
+		QueryMap queryMap = new QueryMap();
+		Map<String, Object> map = new HashMap<>();
+		List<String> accept = req.getAcceptDates();
+		if (CollectionUtils.isNotEmpty(accept)) {
+			String stringDate = accept.get(0);
+			map.put("startTime", stringDate);
+			String endDate = accept.get(1);
+			map.put("endTime", endDate);
+			queryMap.setMap(map);
+		}
+		List<String> submitTime = req.getSubmitTimes();
+		if (CollectionUtils.isNotEmpty(submitTime)) {
+			map.put("submitStartTime", submitTime.get(0));
+			map.put("submitEndTime", submitTime.get(1));
+			queryMap.setMap(map);
+		}
+		page = page(page, gzArchives, queryMap);
+		List<GzDetailDto> list = new ArrayList<>();
+		if (page.getRecords() != null) {
+			for (GzArchivesEntity gz : page.getRecords()) {
+				GzDetailDto archivesEntity = new GzDetailDto();
+				convertArchives(gz, archivesEntity);
+				list.add(archivesEntity);
+			}
+		}
+		return PageUtil.toPage(list, page.getTotal());
+	}
+
+	private void convertArchives(GzArchivesEntity gz, GzDetailDto archivesEntity) {
+		StringBuffer sb = new StringBuffer();
+		sb.append(gz.getYear() + "-");
+		sb.append(gz.getNotarizationtypefull() + "-");
+		sb.append(gz.getKeepingterm() + "-");
+		sb.append(gz.getFileno());
+		archivesEntity.setId(gz.getId());
+		archivesEntity.setArchivesNum(gz.getArcno());
+		archivesEntity.setDossierNum(sb.toString());
+		archivesEntity.setNotarizationType(gz.getNotarialOfficeFull());
+		archivesEntity.setNotarizedItem(gz.getTitle());
+		archivesEntity.setNotarialNum(gz.getNotarizationnumber());
+		archivesEntity.setNotary(gz.getNotary());
+		archivesEntity.setUndertaker(gz.getUndertaker());
+		archivesEntity.setPartyName(gz.getConcernedname());
+		archivesEntity.setAcceptNum(gz.getAcceptno());
+		archivesEntity.setAnnual(gz.getYear().toString());
+		archivesEntity.setAcceptDate(DateUtil.formatYmd(gz.getAcceptdate()));
+		archivesEntity.setCompleteDate(DateUtil.formatYmd(gz.getFinishdate()));
+		archivesEntity.setFilingDate(DateUtil.formatYmd(gz.getFiledate()));
+		archivesEntity.setSaveTerm(gz.getKeepingterm());
+		archivesEntity.setSecrecyType(gz.getSecretclass());
+		archivesEntity.setNotaryFullName(gz.getNotarialOfficeFull());
+		archivesEntity.setCaseNum(gz.getFileno());
+		archivesEntity.setStatus(gz.getRecflag());
+		archivesEntity.setFondsNum(gz.getFondcode());
+		archivesEntity.setCatalogNum(gz.getMenuno());
+		archivesEntity.setBoxNum(gz.getBoxnumber());
+		archivesEntity.setCreateTime(gz.getCreatetime());
+		archivesEntity.setDossierType(gz.getMenuno().split("\\.")[1]);
+	}
+
+	public static void main(String[] args) {
+		System.out.println("1.2".split("\\.")[1]);
+	}
+
+	public ResponseDTO<GzArchivesEntity> edit(@RequestBody GzArchivesVo req) {
+		GzArchivesEntity entity = getById(req.getId());
+		String arcno=entity.getArcno();
+		convertGz(entity, req);
+		QueryWrapper<GzArchivesEntity> qw = new QueryWrapper<>();
+		qw.ne("arcno", arcno);
+		qw.eq("arcno", req.getArchivesNum());
+
+		long result = this.count(qw);
+		// 过来掉自己
+		if (result >= 1) {
+			// return ResponseDTO.error(ResultCode.ARCHIVES_NUM_ALREADY_EXISTS,
+			// archives.getArchivesNum());
+			throw new BadRequestException(entity.getArcno() + "档案号已存在!");
+		}
+		this.updateById(entity);
+	
+		return ResponseDTO.success();
+	}
+
+	private void convertGz(GzArchivesEntity gz, GzArchivesVo archivesEntity) {
+		// 目录号
+		gz.setMenuno(archivesEntity.getCatalogNum());
+		// caseNum 案卷号
+		gz.setFileno(archivesEntity.getCaseNum());
+		// 公证书编号
+		gz.setNotarizationnumber(archivesEntity.getNotarialNum());
+		// 当事人姓名
+		gz.setConcernedname(archivesEntity.getPartyName());
+		// 公证员
+		gz.setNotary(archivesEntity.getNotary());
+		// 承办人
+		gz.setUndertaker(archivesEntity.getUndertaker());
+		// 公证事项
+		gz.setTitle(archivesEntity.getNotarizedItem());
+		// 受理号
+		gz.setAcceptno(archivesEntity.getAcceptNum());
+		if (StringUtils.isNotBlank(archivesEntity.getAnnual())) {
+			gz.setYear(Integer.parseInt(archivesEntity.getAnnual()));
+		}
+		// 年度
+		gz.setArcno(archivesEntity.getArchivesNum());
+		// 三个时间
+		if (StringUtils.isNotBlank(archivesEntity.getAcceptDate())) {
+			gz.setAcceptdate(DateUtil.parseYmd(archivesEntity.getAcceptDate()));
+		}
+		if (StringUtils.isNotBlank(archivesEntity.getCompleteDate())) {
+			gz.setFinishdate(DateUtil.parseYmd(archivesEntity.getCompleteDate()));
+		}
+		if (StringUtils.isNotBlank(archivesEntity.getFilingDate())) {
+			gz.setFiledate(DateUtil.parseYmd(archivesEntity.getFilingDate()));
+		}
+		//设置状态值
+		gz.setRecflag(archivesEntity.getStatus());
+		// 保管类型
+		gz.setSecretclass(archivesEntity.getSecrecyType());
+		// 保管期限
+		gz.setKeepingterm(archivesEntity.getSaveTerm());
+		// 将类型转成汉字
+		String dossierType = dictDetailService.getLabelByValue("saveTerm_type", archivesEntity.getDossierType());
+		gz.setNotarizationtypefull(dossierType);
+		gz.setFondcode(archivesEntity.getFondsNum());
+		gz.setBoxnumber(archivesEntity.getBoxNum());
+	}
+}

+ 21 - 0
eladmin-system/src/main/java/me/zhengjie/archives/service/impl/GzDetailServiceImpl.java

@@ -0,0 +1,21 @@
+package me.zhengjie.archives.service.impl;
+
+import org.springframework.stereotype.Service;
+
+import me.zhengjie.archives.dao.IGzDetailDao;
+import me.zhengjie.archives.entity.GzDetailEntity;
+import me.zhengjie.archives.plus.AbstractServiceImpl;
+import me.zhengjie.archives.service.GzDetailService;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-26
+ */
+@Service
+public class GzDetailServiceImpl extends AbstractServiceImpl<IGzDetailDao, GzDetailEntity> implements GzDetailService {
+
+}

+ 21 - 0
eladmin-system/src/main/java/me/zhengjie/archives/service/impl/GzFileTempServiceImpl.java

@@ -0,0 +1,21 @@
+package me.zhengjie.archives.service.impl;
+
+import me.zhengjie.archives.dao.IGzFileTempDao;
+import me.zhengjie.archives.entity.GzFileTempEntity;
+
+import me.zhengjie.archives.service.GzFileTempService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-28
+ */
+@Service
+public class GzFileTempServiceImpl extends ServiceImpl<IGzFileTempDao, GzFileTempEntity> implements GzFileTempService {
+
+}

+ 23 - 0
eladmin-system/src/main/java/me/zhengjie/archives/service/impl/GzFilepathServiceImpl.java

@@ -0,0 +1,23 @@
+package me.zhengjie.archives.service.impl;
+
+import me.zhengjie.archives.entity.GzFilepathEntity;
+import me.zhengjie.archives.plus.AbstractServiceImpl;
+import me.zhengjie.archives.dao.IGzFilepathDao;
+import me.zhengjie.archives.service.GzFilepathService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2023-06-26
+ */
+@Service
+public class GzFilepathServiceImpl extends AbstractServiceImpl<IGzFilepathDao, GzFilepathEntity> implements GzFilepathService {
+
+}

+ 4 - 2
eladmin-system/src/main/java/me/zhengjie/archives/vo/ArchivesVo.java

@@ -31,9 +31,11 @@ public class ArchivesVo extends PageVo {
 	// 公证事项
 	private String annual;
 	// 接受時間
-	List<String> acceptDate;
+	List<String> acceptDates;
 	// 接受時間
-	List<String> submitTime;
+	List<String> submitTimes;
 	// 主键
 	private Long id;
+	//notary
+	private String notary;
 }

+ 64 - 0
eladmin-system/src/main/java/me/zhengjie/archives/vo/GzArchivesVo.java

@@ -0,0 +1,64 @@
+package me.zhengjie.archives.vo;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+@Getter
+@Setter
+@ToString
+public class GzArchivesVo extends PageVo {
+
+	// 档案号
+	private String archivesNum;
+	// 案卷号
+	private String caseNum;
+	// 当事人姓名
+	private String partyName;
+	// 公证员
+	private String notary;
+	// 状态
+	private String status;
+	// 输入目录号
+	private String catalogNum;
+	// 输入公证书编号
+	private String notarialNum;
+	// 受理号
+	private String acceptNum;
+	// 公证事项
+	private String notarizedItem;
+	// 承办人
+	private String undertaker;
+	// 年份
+	private String annual;
+	// 受理日期
+	private List<String> acceptDates;
+	// 受理时间
+	private String acceptDate;
+	// 办结日期
+	private String completeDate;
+	// 归档日期
+	private String filingDate;
+	// 提交时间
+	private List<String> submitTimes;
+	// 保密类型0:非密卷,1:密卷
+	private String secrecyType;
+	//全宗号
+	private String fondsNum;
+	//盒号
+	private String boxNum;
+	// 主键
+	private String id;
+	/**
+	 * 保管期限,1:永久,2:长期 3:短期
+	 */
+	private String saveTerm;
+	/**
+	 * 案卷类型
+	 */
+	private String dossierType;
+}

+ 23 - 0
eladmin-system/src/main/java/me/zhengjie/archives/vo/GzPortraitVo.java

@@ -0,0 +1,23 @@
+package me.zhengjie.archives.vo;
+
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * 案卷影像提交
+ * 
+ * @author auas
+ *
+ */
+@Getter
+@Setter
+@ToString
+public class GzPortraitVo {
+	private String id;
+
+	private List<String> pages;
+	private List<String> imageIds;
+}

+ 7 - 0
eladmin-system/src/main/java/me/zhengjie/config/ConfigurerAdapter.java

@@ -18,6 +18,8 @@ package me.zhengjie.config;
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.alibaba.fastjson.support.config.FastJsonConfig;
 import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
+
+import org.apache.commons.lang.StringUtils;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.http.MediaType;
@@ -63,11 +65,16 @@ public class ConfigurerAdapter implements WebMvcConfigurer {
 
     @Override
     public void addResourceHandlers(ResourceHandlerRegistry registry) {
+    	//com.github.yulichang.base.MPJBaseService fdsa;
         FileProperties.ElPath path = properties.getPath();
         String avatarUtl = "file:" + path.getAvatar().replace("\\","/");
         String pathUtl = "file:" + path.getPath().replace("\\","/");
+        String gzPath = "file:" + path.getGzPath().replace("\\","/");
         registry.addResourceHandler("/avatar/**").addResourceLocations(avatarUtl).setCachePeriod(0);
         registry.addResourceHandler("/file/**").addResourceLocations(pathUtl).setCachePeriod(0);
+        if(StringUtils.isNotBlank(gzPath)) {
+        	registry.addResourceHandler("/gz/**").addResourceLocations(gzPath).setCachePeriod(0);
+        }
         registry.addResourceHandler("/**").addResourceLocations("classpath:/META-INF/resources/").setCachePeriod(0);
     }
 

+ 3 - 2
eladmin-system/src/main/resources/config/application-dev.yml

@@ -4,9 +4,9 @@ spring:
     druid:
       db-type: com.alibaba.druid.pool.DruidDataSource
       driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
-      url: jdbc:log4jdbc:mysql://114.55.230.80:3306/efs?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
+      url: jdbc:log4jdbc:mysql://127.0.0.1:3306/notary_office?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
       username: root
-      password: QopraffaQWPRPPR123
+      password: admin
       # 初始连接数
       initial-size: 5
       # 最小连接数
@@ -120,6 +120,7 @@ file:
   windows:
     path: E:\eladmin\file\
     avatar: E:\eladmin\avatar\
+    gzPath: D:\upload\901\
   # 文件大小 /M
   maxSize: 100
   avatarMaxSize: 5

+ 11 - 5
eladmin-system/src/main/resources/config/application-test.yml

@@ -4,9 +4,9 @@ spring:
     druid:
       db-type: com.alibaba.druid.pool.DruidDataSource
       driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
-      url: jdbc:log4jdbc:mysql://114.55.230.80:3306/efs?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
+      url: jdbc:log4jdbc:mysql://192.168.0.110:3306/notary_office?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
       username: root
-      password: QopraffaQWPRPPR123
+      password: admin
       # 初始连接数
       initial-size: 5
       # 最小连接数
@@ -51,11 +51,11 @@ spring:
   redis:
     #数据库索引
     database: 0
-    host: 114.55.230.80
+    host: 127.0.0.1
     port: 6379
-    password: 123qysd!@#
     #连接超时时间
     timeout: 5000
+#    password: 123456
 # 登录相关配置
 login:
   #  是否限制单用户登录
@@ -110,7 +110,12 @@ swagger:
 # IP 本地解析
 ip:
   local-parsing: true
-
+mybatis-plus:
+  configuration:
+    map-underscore-to-camel-case: true
+    auto-mapping-behavior: full
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+  mapper-locations: classpath*:mapper/*Mapper.xml
 # 文件存储路径
 file:
   mac:
@@ -122,6 +127,7 @@ file:
   windows:
     path: C:\eladmin\file\
     avatar: C:\eladmin\avatar\
+    gzPath: D:\upload\901\
   # 文件大小 /M
   maxSize: 100
   avatarMaxSize: 5

+ 2 - 2
eladmin-system/src/main/resources/config/application.yml

@@ -5,7 +5,7 @@ spring:
   freemarker:
     check-template-location: false
   profiles:
-    active: dev
+    active: test
   jackson:
     time-zone: GMT+8
   data:
@@ -27,7 +27,7 @@ spring:
     database: 12
     host: 127.0.0.1
     port: 6379
-#    password: 123qysd!@#
+    password: 123456
     #连接超时时间
     timeout: 5000