From deb49773f332f83dafb78788bc3d9b2b39fa421c Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 23 十二月 2024 09:50:03 +0800
Subject: [PATCH] 项目库上传后端逻辑完善
---
business/src/main/java/com/ycl/listener/excel/ProjectImportListener.java | 1
business/src/main/java/com/ycl/controller/ProjectInfoController.java | 2
business/src/main/java/com/ycl/domain/excel/ProjectExcelTemplate.java | 81 ++++++++++++++++++++++------------------
business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java | 12 +++++-
start/src/main/resources/application.yml | 4 +-
5 files changed, 59 insertions(+), 41 deletions(-)
diff --git a/business/src/main/java/com/ycl/controller/ProjectInfoController.java b/business/src/main/java/com/ycl/controller/ProjectInfoController.java
index 375f5ad..5ab6f3c 100644
--- a/business/src/main/java/com/ycl/controller/ProjectInfoController.java
+++ b/business/src/main/java/com/ycl/controller/ProjectInfoController.java
@@ -156,7 +156,7 @@
* @return
*/
@PostMapping("/import")
- public Result importProject(@RequestPart("file") MultipartFile file) {
+ public Result importProject(MultipartFile file) {
if (file.getSize() > 100 * 1024 * 1024) {
throw new BaseException("鏂囦欢杩囧ぇ锛屾枃浠朵笉寰楄秴杩�100MB");
}
diff --git a/business/src/main/java/com/ycl/domain/excel/ProjectExcelTemplate.java b/business/src/main/java/com/ycl/domain/excel/ProjectExcelTemplate.java
index b1fdfa3..510292d 100644
--- a/business/src/main/java/com/ycl/domain/excel/ProjectExcelTemplate.java
+++ b/business/src/main/java/com/ycl/domain/excel/ProjectExcelTemplate.java
@@ -1,12 +1,14 @@
package com.ycl.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycl.common.enums.business.ImportanceTypeEnum;
import com.ycl.common.enums.business.ProjectStatusEnum;
import com.ycl.common.enums.business.ProjectTypeEnum;
import com.ycl.common.utils.excel.annotation.ExcelEnumFormat;
import com.ycl.common.utils.excel.convert.ExcelEnumConvert;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@@ -90,12 +92,6 @@
private String competentDepartment;
/**
- * 椤圭洰褰掑睘鍦�
- */
- @ExcelProperty(value = "椤圭洰褰掑睘鍦�")
- private String projectLocation;
-
- /**
* 缁忓害
*/
@ExcelProperty(value = "缁忓害")
@@ -113,11 +109,11 @@
@ExcelProperty(value = "绠$悊褰掑彛")
private String managementCentralization;
- /**
- * 椤圭洰鐢虫姤闃舵
- */
- @ExcelProperty(value = "椤圭洰鐢虫姤闃舵")
- private String projectApplicationPhase;
+// /**
+// * 椤圭洰鐢虫姤闃舵
+// */
+// @ExcelProperty(value = "椤圭洰鐢虫姤闃舵")
+// private String projectApplicationPhase;
/**
* 椤圭洰瀹℃壒绫诲瀷
@@ -125,11 +121,11 @@
@ExcelProperty(value = "椤圭洰瀹℃壒绫诲瀷")
private String projectApprovalType;
- /**
- * 鎶曡祫鐩綍
- */
- @ExcelProperty(value = "鎶曡祫鐩綍")
- private String investmentCatalogue;
+// /**
+// * 鎶曡祫鐩綍
+// */
+// @ExcelProperty(value = "鎶曡祫鐩綍")
+// private String investmentCatalogue;
/**
* 瀹℃壒璁″垝涔�
@@ -137,25 +133,25 @@
@ExcelProperty(value = "瀹℃壒璁″垝涔︼紙闄勪欢鍚嶏級")
private String approvalPlan;
- /**
- * 鏄惁绔嬮」
- */
- @ExcelProperty(value = "鏄惁绔嬮」")
- private String isSetProject;
+// /**
+// * 鏄惁绔嬮」
+// */
+// @ExcelProperty(value = "鏄惁绔嬮」")
+// private String isSetProject;
/**
- * 鎴愮珛鏃堕棿
+ * 绔嬮」鏃堕棿
*/
- @ExcelProperty(value = "鎴愮珛鏃堕棿")
+ @ExcelProperty(value = "绔嬮」鏃堕棿")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private Date setTime;
+ private Date createProjectTime;
- /**
- * 璧嬬爜鐘舵��
- */
- @ExcelProperty(value = "璧嬬爜鐘舵��")
- private String assignmentStatus;
+// /**
+// * 璧嬬爜鐘舵��
+// */
+// @ExcelProperty(value = "璧嬬爜鐘舵��")
+// private String assignmentStatus;
/**
* 琛屾斂鍖哄垝
@@ -187,7 +183,7 @@
* 璇︾粏鍦板潃
*/
@ExcelProperty(value = "璇︾粏鍦板潃")
- private String address;
+ private String projectAddress;
/**
* 寤鸿鍐呭
@@ -231,7 +227,9 @@
@ExcelProperty(value = "鏈勾璁″垝鎶曡祫")
private BigDecimal yearInvestAmount;
-
+ @ExcelProperty("浣跨敤鐘舵��")
+ /** 浣跨敤鐘舵�侊紙0锛氳崏绋匡紝1锛氭彁浜�,2:瀹℃牳閫氳繃锛�-1锛氶┏鍥烇級 */
+ private Integer usedStatus;
/* 鎶曡祫椤圭洰鍩虹淇℃伅琛� */
/**
@@ -604,37 +602,48 @@
* 鏄惁灞炰簬銆婁骇涓氱粨鏋勮皟鏁存寚瀵肩洰褰曘�嬩笅鐨勯」鐩�
*/
@ExcelProperty(value = "灞炰簬銆婁骇涓氱粨鏋勮皟鏁存寚瀵肩洰褰曘�嬩笅鐨勯」鐩�")
- private String belongsToIndustryAdjustmentDirectory;
+ private Boolean belongsToIndustryAdjustmentDirectory;
/**
* 鏄惁灞炰簬鏈垪鍏ャ�婁骇涓氱粨鏋勮皟鏁存寚瀵肩洰褰曘�嬬殑鍏佽绫婚」鐩�
*/
@ExcelProperty(value = "灞炰簬鏈垪鍏ャ�婁骇涓氱粨鏋勮皟鏁存寚瀵肩洰褰曘�嬬殑鍏佽绫婚」鐩�")
- private String belongsToAllowedProjects;
+ private Boolean belongsToAllowedProjects;
/**
* 鏄惁灞炰簬銆婅タ閮ㄥ湴鍖洪紦鍔辩被浜т笟鐩綍銆嬬殑椤圭洰
*/
@ExcelProperty(value = "灞炰簬銆婅タ閮ㄥ湴鍖洪紦鍔辩被浜т笟鐩綍銆嬬殑椤圭洰")
- private String belongsToWesternEncouragedDirectory;
+ private Boolean belongsToWesternEncouragedDirectory;
/**
* 鏄惁涓嶅睘浜庝骇涓氭斂绛栫姝㈡姇璧勫缓璁炬垨瀹炶鏍稿噯銆佸鎵圭鐞嗙殑椤圭洰
*/
@ExcelProperty(value = "涓嶅睘浜庝骇涓氭斂绛栫姝㈡姇璧勫缓璁炬垨瀹炶鏍稿噯銆佸鎵圭鐞嗙殑椤圭洰")
- private String notBannedOrControlledProject;
+ private Boolean notBannedOrControlledProject;
/**
* 濉姤淇℃伅鏄惁鐪熷疄
*/
@ExcelProperty(value = "濉姤淇℃伅鏄惁鐪熷疄")
- private String informationIsTrue;
+ private Boolean informationIsTrue;
/**
* 涓撻」瑙勫垝澶嶅悎鎯呭喌
*/
@ExcelProperty(value = "涓撻」瑙勫垝澶嶅悎鎯呭喌")
private String specialPlanningCompliance;
+ /**
+ * 鑺傝兘瀹℃煡
+ */
+ @ExcelProperty(value = "鑺傝兘瀹℃煡")
+ private Boolean energyCheck;
+
+ /**
+ * 涓嶅啀鍗曠嫭杩涜鑺傝兘瀹℃煡鐨勭被鍨�
+ */
+ @ExcelProperty("涓嶅啀鍗曠嫭杩涜鑺傝兘瀹℃煡鐨勭被鍨�")
+ private Integer noOnlyCheckType;
/**
* 椤圭洰鑳借�楁儏鍐�
diff --git a/business/src/main/java/com/ycl/listener/excel/ProjectImportListener.java b/business/src/main/java/com/ycl/listener/excel/ProjectImportListener.java
index b535353..7d38308 100644
--- a/business/src/main/java/com/ycl/listener/excel/ProjectImportListener.java
+++ b/business/src/main/java/com/ycl/listener/excel/ProjectImportListener.java
@@ -85,6 +85,7 @@
hasData = true;
//澶勭悊椤圭洰鍩虹淇℃伅
ProjectInfo projectInfo = BeanUtil.toBean(projectExcelTemplate, ProjectInfo.class);
+ //TODO锛氶」鐩爜鍙兘瑕佸湪杩欓噷琛ュ厖
projectInfoService.checkProjectNameUnique(projectInfo);
projectInfoService.save(projectInfo);
//瀹℃壒璁″垝涔�
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java
index 0dd853d..7a70638 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java
@@ -1,6 +1,8 @@
package com.ycl.service.impl;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.io.IORuntimeException;
+import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.ZipUtil;
@@ -570,7 +572,13 @@
}
tempDir = Files.createTempDirectory("temp-dir").toFile();
- ZipUtil.unzip(tempZip, tempDir, StandardCharsets.ISO_8859_1);
+
+ try {
+ ZipUtil.unzip(tempZip, tempDir, CharsetUtil.CHARSET_UTF_8);
+ }catch (IORuntimeException e){
+ log.error("瑙e帇澶辫触锛屽皾璇曚娇鐢℅BK缂栫爜瑙e帇...");
+ ZipUtil.unzip(tempZip, tempDir, CharsetUtil.CHARSET_GBK);
+ }
Path path = tempDir.toPath();
ProjectImportListener projectImportListener = new ProjectImportListener();
@@ -609,7 +617,7 @@
files.forEach(attachmentFile -> {
try {
//涓婁紶
- String url = FileUploadUtils.upload(filePath, file);
+ String url = FileUploadUtils.uploadIOFile(filePath, attachmentFile);
//瀛樻斁鐨勬枃浠跺悕浼氬姞涓奯鏃堕棿鎴崇殑鍚庣紑
String newName = FileUtils.getName(url);
attachments.add(new File()
diff --git a/start/src/main/resources/application.yml b/start/src/main/resources/application.yml
index 462aa1d..3be20ad 100644
--- a/start/src/main/resources/application.yml
+++ b/start/src/main/resources/application.yml
@@ -64,9 +64,9 @@
servlet:
multipart:
# 鍗曚釜鏂囦欢澶у皬
- max-file-size: 10MB
+ max-file-size: 100MB
# 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
- max-request-size: 20MB
+ max-request-size: 100MB
# 鏈嶅姟妯″潡
devtools:
restart:
--
Gitblit v1.8.0