zhoulisky 8 months ago
parent
commit
dc7d272fe1

+ 80 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/controller/ArchiveCenterController.java

@@ -0,0 +1,80 @@
+
+package org.sky.scientific.controller;
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.Valid;
+import lombok.AllArgsConstructor;
+import org.sky.core.boot.ctrl.KdController;
+import org.sky.core.tool.api.R;
+import org.sky.scientific.pojo.entity.ArchiveAttachEntity;
+import org.sky.scientific.service.IArchiveService;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 科研档案管理 控制器
+ *
+ * @author Kd
+ * @since 2025-07-01
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/archive")
+@Tag(name = "科研档案管理")
+public class ArchiveCenterController extends KdController {
+
+	private final IArchiveService service;
+
+	@GetMapping("fjbczl")
+	@ApiOperationSupport(order = 1)
+	@Operation(summary = "附件补充资料-查询")
+	public R<ArchiveAttachEntity> fjbczl(String year) {
+		return R.data(service.fjbczl(year));
+	}
+
+	@PostMapping("fjbczl")
+	@ApiOperationSupport(order = 2)
+	@Operation(summary = "附件补充资料-保存")
+	public R<Boolean> updateFjbczl(@Valid @RequestBody ArchiveAttachEntity attach) {
+		return R.status(service.fjbczlUpdate(attach));
+	}
+
+	@GetMapping("fjbczl/export")
+	@ApiOperationSupport(order = 3)
+	@Operation(summary = "附件补充资料-导出")
+	public void exportFjbczl(HttpServletResponse response, String year) {
+		service.exportFjbczl(response, year);
+	}
+
+	@GetMapping("fjbczl/download")
+	@ApiOperationSupport(order = 5)
+	@Operation(summary = "附件补充资料-一键下载")
+	public void ownloadFjbczlZipFiles(HttpServletRequest request, HttpServletResponse response, String year){
+		service.downloadFjbczlZipFiles(request,response, year);
+	}
+
+	@GetMapping("center/download")
+	@ApiOperationSupport(order = 6)
+	@Operation(summary = "档案中心-一键下载")
+	public void downloadCenterZipFiles(HttpServletRequest request, HttpServletResponse response, String year){
+		service.downloadCenterZipFiles(request,response, year);
+	}
+
+	@GetMapping("center/high-tech/download")
+	@ApiOperationSupport(order = 8)
+	@Operation(summary = "档案中心-一键导出高新备查")
+	public void downloadCenterHighTechZipFiles(HttpServletRequest request, HttpServletResponse response, String year){
+		service.downloadHighTechZipFiles(request,response, year);
+	}
+
+	@GetMapping("center/deduction/download")
+	@ApiOperationSupport(order = 10)
+	@Operation(summary = "档案中心-一键导出加计备查")
+	public void downloadCenterDeductionZipFiles(HttpServletRequest request, HttpServletResponse response, String year){
+		service.downloadDeductionZipFiles(request,response, year);
+	}
+
+}

+ 0 - 21
kd-service/kd-scientific/src/main/java/org/sky/scientific/controller/EnterpriseController.java

@@ -196,25 +196,4 @@ public class EnterpriseController extends KdController {
 		enterpriseInfoService.exportGqnb(response, year);
 	}
 
-	@GetMapping("fjbczl")
-	@ApiOperationSupport(order = 50)
-	@Operation(summary = "科研档案管理-附件补充资料")
-	public R<ArchiveAttachEntity> fjbczl(String year) {
-		return R.data(enterpriseInfoService.fjbczl(year));
-	}
-
-	@PostMapping("fjbczl")
-	@ApiOperationSupport(order = 51)
-	@Operation(summary = "科研档案管理-附件补充资料-保存")
-	public R<Boolean> updateFjbczl(@Valid @RequestBody ArchiveAttachEntity attach) {
-		return R.status(enterpriseInfoService.fjbczlUpdate(attach));
-	}
-
-	@GetMapping("fjbczl/export")
-	@ApiOperationSupport(order = 52)
-	@Operation(summary = "科研档案管理-附件补充资料-导出")
-	public void exportFjbczl(HttpServletResponse response, String year) {
-		enterpriseInfoService.exportFjbczl(response, year);
-	}
-
 }

+ 37 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/IArchiveService.java

@@ -0,0 +1,37 @@
+package org.sky.scientific.service;
+
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import org.sky.scientific.pojo.entity.ArchiveAttachEntity;
+
+public interface IArchiveService {
+
+	/**
+	 * 科研档案-附件资料补充
+	 * @param year
+	 * @return
+	 */
+	ArchiveAttachEntity fjbczl(String year);
+
+	/**
+	 * 科研档案-附件资料补充-修改
+	 * @param attach
+	 * @return
+	 */
+	boolean fjbczlUpdate(ArchiveAttachEntity attach);
+
+	/**
+	 * 科研档案-附件资料补充-导出
+	 * @param response
+	 * @param year
+	 */
+	void exportFjbczl(HttpServletResponse response, String year);
+
+	void downloadFjbczlZipFiles(HttpServletRequest request, HttpServletResponse response, String year);
+
+	void downloadCenterZipFiles(HttpServletRequest request, HttpServletResponse response, String year);
+
+	void downloadHighTechZipFiles(HttpServletRequest request, HttpServletResponse response, String year);
+
+	void downloadDeductionZipFiles(HttpServletRequest request, HttpServletResponse response, String year);
+}

+ 0 - 22
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/IEnterpriseInfoService.java

@@ -5,8 +5,6 @@ import jakarta.servlet.http.HttpServletResponse;
 import org.sky.core.mp.base.BaseService;
 import org.sky.scientific.pojo.entity.*;
 import org.sky.scientific.pojo.vo.*;
-import org.springframework.core.io.InputStreamResource;
-import org.springframework.http.ResponseEntity;
 
 import java.util.List;
 
@@ -139,24 +137,4 @@ public interface IEnterpriseInfoService extends BaseService<EnterpriseInfoEntity
 	 */
 	void exportGqnb(HttpServletResponse response, String year);
 
-	/**
-	 * 科研档案-附件资料补充
-	 * @param year
-	 * @return
-	 */
-	ArchiveAttachEntity fjbczl(String year);
-
-	/**
-	 * 科研档案-附件资料补充-修改
-	 * @param attach
-	 * @return
-	 */
-	boolean fjbczlUpdate(ArchiveAttachEntity attach);
-
-	/**
-	 * 科研档案-附件资料补充-导出
-	 * @param response
-	 * @param year
- 	 */
-	void exportFjbczl(HttpServletResponse response, String year);
 }

+ 84 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/ArchiveServiceImpl.java

@@ -0,0 +1,84 @@
+package org.sky.scientific.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.AllArgsConstructor;
+import org.sky.core.log.exception.ServiceException;
+import org.sky.core.secure.utils.SecureUtil;
+import org.sky.core.tool.utils.Func;
+import org.sky.scientific.mapper.ArchiveAttachMapper;
+import org.sky.scientific.pojo.entity.ArchiveAttachEntity;
+import org.sky.scientific.service.IArchiveService;
+import org.springframework.stereotype.Service;
+
+@Service
+@AllArgsConstructor
+public class ArchiveServiceImpl implements IArchiveService {
+
+	private final ArchiveAttachMapper attachMapper;
+
+	@Override
+	public ArchiveAttachEntity fjbczl(String year) {
+		if (Func.isNull(year)) {
+			throw new ServiceException("参数year不能为空");
+		}
+		if (year.length() != 4) {
+			throw new ServiceException("参数year为年份,如2025");
+		}
+
+		ArchiveAttachEntity attach = attachMapper.selectOne(Wrappers.<ArchiveAttachEntity>lambdaQuery().eq(ArchiveAttachEntity::getYearAndMonth, year));
+		if (Func.isNull(attach)) {
+			attach = new ArchiveAttachEntity();
+		}
+
+		return attach;
+	}
+
+	@Override
+	public boolean fjbczlUpdate(ArchiveAttachEntity attach) {
+		if (Func.isNull(attach.getYearAndMonth())) {
+			throw new ServiceException("参数yearAndMonth不能为空");
+		}
+		if (attach.getYearAndMonth().length() != 4) {
+			throw new ServiceException("参数yearAndMonth为年份,如2025");
+		}
+		LambdaQueryWrapper<ArchiveAttachEntity> eq = Wrappers.<ArchiveAttachEntity>lambdaQuery().eq(ArchiveAttachEntity::getYearAndMonth, attach.getYearAndMonth());
+		ArchiveAttachEntity one = attachMapper.selectOne(eq);
+		if (Func.isNull(one)) {
+			attach.setTenantId(SecureUtil.getTenantId());
+			return attachMapper.insert(attach) == 1;
+		} else {
+			attach.setId(one.getId());
+			return attachMapper.updateById(attach) == 1;
+		}
+	}
+
+	@Override
+	public void exportFjbczl(HttpServletResponse response, String year) {
+		ArchiveAttachEntity fjbczl = this.fjbczl(year);
+
+	}
+
+	@Override
+	public void downloadFjbczlZipFiles(HttpServletRequest request, HttpServletResponse response, String year) {
+
+	}
+
+	@Override
+	public void downloadCenterZipFiles(HttpServletRequest request, HttpServletResponse response, String year) {
+
+	}
+
+	@Override
+	public void downloadHighTechZipFiles(HttpServletRequest request, HttpServletResponse response, String year) {
+
+	}
+
+	@Override
+	public void downloadDeductionZipFiles(HttpServletRequest request, HttpServletResponse response, String year) {
+
+	}
+
+}

+ 1 - 43
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/EnterpriseInfoServiceImpl.java

@@ -71,7 +71,7 @@ public class EnterpriseInfoServiceImpl extends BaseServiceImpl<EnterpriseInfoMap
 	private final CgJsbzMapper jsbzMapper;
 	private final CgRjzzqMapper rjzzqMapper;
 	private final CgQtMapper qtMapper;
-	private final ArchiveAttachMapper attachMapper;
+
 	private final XmWwxmCostMapper wwxmCostMapper;
 	private final IXmCostDetailsService xmCostDetailsService;
 	private final EnterpriseInfoMapper enterpriseInfoMapper;
@@ -1055,46 +1055,4 @@ public class EnterpriseInfoServiceImpl extends BaseServiceImpl<EnterpriseInfoMap
 		template.process(techYBVO, new OutputStreamWriter(response.getOutputStream()));
 	}
 
-	@Override
-	public ArchiveAttachEntity fjbczl(String year) {
-		if (Func.isNull(year)) {
-			throw new ServiceException("参数year不能为空");
-		}
-		if (year.length() != 4) {
-			throw new ServiceException("参数year为年份,如2025");
-		}
-
-		ArchiveAttachEntity attach = attachMapper.selectOne(Wrappers.<ArchiveAttachEntity>lambdaQuery().eq(ArchiveAttachEntity::getYearAndMonth, year));
-		if (Func.isNull(attach)) {
-			attach = new ArchiveAttachEntity();
-		}
-
-		return attach;
-	}
-
-	@Override
-	public boolean fjbczlUpdate(ArchiveAttachEntity attach) {
-		if (Func.isNull(attach.getYearAndMonth())) {
-			throw new ServiceException("参数yearAndMonth不能为空");
-		}
-		if (attach.getYearAndMonth().length() != 4) {
-			throw new ServiceException("参数yearAndMonth为年份,如2025");
-		}
-		LambdaQueryWrapper<ArchiveAttachEntity> eq = Wrappers.<ArchiveAttachEntity>lambdaQuery().eq(ArchiveAttachEntity::getYearAndMonth, attach.getYearAndMonth());
-		ArchiveAttachEntity one = attachMapper.selectOne(eq);
-		if (Func.isNull(one)) {
-			attach.setTenantId(SecureUtil.getTenantId());
-			return attachMapper.insert(attach) == 1;
-		} else {
-			attach.setId(one.getId());
-			return attachMapper.updateById(attach) == 1;
-		}
-	}
-
-	@Override
-	public void exportFjbczl(HttpServletResponse response, String year) {
-		ArchiveAttachEntity fjbczl = this.fjbczl(year);
-
-	}
-
 }

+ 11 - 15
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/YfzdServiceImpl.java

@@ -17,8 +17,7 @@ import org.sky.scientific.pojo.entity.YfzdEntity;
 import org.sky.scientific.service.IYfzdService;
 import org.sky.scientific.utils.ZipDownloadUtils;
 import org.sky.scientific.utils.ZipFileRef;
-import org.sky.scientific.utils.ZipGroup;
-import org.sky.scientific.utils.ZipSubDir;
+import org.sky.scientific.utils.ZipDir;
 import org.springframework.stereotype.Service;
 
 import java.io.BufferedOutputStream;
@@ -69,23 +68,23 @@ public class YfzdServiceImpl extends BaseServiceImpl<YfzdMapper, YfzdEntity> imp
 	@Override
 	public void downloadZipFiles(HttpServletRequest request, HttpServletResponse response, String year) {
 		// ==== 示例数据 ====
-		List<ZipGroup> data = new ArrayList<>();
+		List<ZipDir> data = new ArrayList<>();
 
 		YfzdEntity yfzd = new YfzdEntity();
 		yfzd.setYearAndMonth(year);
 		Map<String, List<YfzdEntity>> map = selectYfzd(yfzd);
 		for (String type : map.keySet()) {
-			ZipGroup group = new ZipGroup();
+			ZipDir group = new ZipDir();
 			group.setDirName(type);
 
 			List<YfzdEntity> list = map.get(type);
 			//企业制度
-			ZipSubDir qiyezhiduDir = new ZipSubDir();
-			qiyezhiduDir.setSubDirName("企业制度");
+			ZipDir qiyezhiduDir = new ZipDir();
+			qiyezhiduDir.setDirName("企业制度");
 			qiyezhiduDir.setFileRefs(new ArrayList<>());
 			//实施证明
-			ZipSubDir shishizhengmDir = new ZipSubDir();
-			shishizhengmDir.setSubDirName("企业制度实施证明");
+			ZipDir shishizhengmDir = new ZipDir();
+			shishizhengmDir.setDirName("企业制度实施证明");
 			shishizhengmDir.setFileRefs(new ArrayList<>());
 
 			for (YfzdEntity entity : list) {
@@ -104,12 +103,9 @@ public class YfzdServiceImpl extends BaseServiceImpl<YfzdMapper, YfzdEntity> imp
 					ref.setHttpUrl(obj.getString("value"));
 					shishizhengmDir.getFileRefs().add(ref);
 				}
-
 			}
-
 			group.setSubDirs(Arrays.asList(qiyezhiduDir, shishizhengmDir));
 			data.add(group);
-
 		}
 
 		try (BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());
@@ -118,15 +114,15 @@ public class YfzdServiceImpl extends BaseServiceImpl<YfzdMapper, YfzdEntity> imp
 			ZipDownloadUtils.setResponse(request, response, fileName);
 			// 快速压缩
 			zipOut.setLevel(Deflater.BEST_SPEED);
-			for (ZipGroup group : data) {
+			for (ZipDir group : data) {
 				String groupDir = ZipDownloadUtils.safeName(group.getDirName()) + "/";
-				List<ZipSubDir> subDirs = group.getSubDirs();
+				List<ZipDir> subDirs = group.getSubDirs();
 				if (subDirs == null || subDirs.isEmpty()) {
  					ZipDownloadUtils.writeEmptyDirToZip(zipOut, groupDir);
 					continue;
 				}
-				for (ZipSubDir subDir : subDirs) {
-					String subDirPath = groupDir + ZipDownloadUtils.safeName(subDir.getSubDirName()) + "/";
+				for (ZipDir subDir : subDirs) {
+					String subDirPath = groupDir + ZipDownloadUtils.safeName(subDir.getDirName()) + "/";
 					List<ZipFileRef> fileRefs = subDir.getFileRefs();
 					if (fileRefs == null || fileRefs.isEmpty()) {
 						ZipDownloadUtils.writeEmptyDirToZip(zipOut, subDirPath);

+ 6 - 8
kd-service/kd-scientific/src/main/java/org/sky/scientific/utils/ZipSubDir.java

@@ -9,14 +9,12 @@ import java.util.List;
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
-public class ZipSubDir {
-
-	/**
-	 * 子目录
-	 */
-	private String subDirName;
-
+ public class ZipDir {
+	//目录名
+	private String dirName;
+	//子目录集合
+	private List<ZipDir> subDirs;
+	//文件集合
 	private List<ZipFileRef> fileRefs;
 
-
 }

+ 0 - 17
kd-service/kd-scientific/src/main/java/org/sky/scientific/utils/ZipGroup.java

@@ -1,17 +0,0 @@
-package org.sky.scientific.utils;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.util.List;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
- public class ZipGroup {
-
-	private String dirName;
-	private List<ZipSubDir> subDirs;
-
-}