From f2e6e77dc5a984e2fec4416717baa7c47118fcb1 Mon Sep 17 00:00:00 2001
From: yuxc <653031404@qq.com>
Date: 星期五, 14 四月 2023 17:26:58 +0800
Subject: [PATCH] 主题库相关的代码实现功能,包括excel导入导出,树形查看等功能

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java |  124 ++++++++++++++++++++++++++++++++++++++---
 1 files changed, 115 insertions(+), 9 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java
index add68b8..8232b33 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java
@@ -20,9 +20,15 @@
 import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
 import com.vci.ubcs.code.entity.CodeClassify;
 import com.vci.ubcs.code.mapper.CodeClassifyMapper;
+import com.vci.ubcs.code.vo.CodeOsattributeVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
 import com.vci.ubcs.code.vo.pagemodel.TreeQueryObject;
+import com.vci.ubcs.com.vci.starter.util.LocalFileUtil;
+import com.vci.ubcs.com.vci.starter.web.pagemodel.BaseQueryObject;
+import com.vci.ubcs.com.vci.starter.web.pagemodel.DataGrid;
 import com.vci.ubcs.com.vci.starter.web.pagemodel.Tree;
+import com.vci.ubcs.com.vci.starter.web.util.ControllerUtil;
+import com.vci.ubcs.com.vci.starter.web.util.LangBaseUtil;
 import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -39,13 +45,16 @@
 import org.springblade.core.tool.api.IResultCode;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springframework.web.bind.annotation.*;
 import com.vci.ubcs.code.wrapper.CodeClassifyWrapper;
 import com.vci.ubcs.code.service.ICodeClassifyService;
 import org.springblade.core.boot.ctrl.BladeController;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.util.Collection;
 import java.util.Date;
 import java.util.List;
@@ -78,6 +87,17 @@
 		CodeClassify detail = codeClassifyMapper.selectOne(Condition.getQueryWrapper(codeClassify));
 		return R.data(CodeClassifyWrapper.build().entityVO(detail));
 	}
+
+	/**
+	 * 涓婚搴撳垎绫绘爲
+	 * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
+	 * @return 涓婚搴撳垎绫绘樉绀烘爲
+	 */
+	@GetMapping("/treeCodeClassify")
+	public List<Tree> treeCodeClassify(TreeQueryObject treeQueryObject)  {
+		return  codeClassifyService. treeCodeClassify(treeQueryObject);
+	}
+
 	/**
 	 * 涓婚搴撳畾涔夎〃 鍒嗛〉
 	 */
@@ -217,14 +237,100 @@
 	@GetMapping("/exportClassify")
 	public void exportClassify(String oid, HttpServletResponse response) throws IOException {
 		String excelName = codeClassifyService.exportClassify(oid);
-//		try {
-//			ControllerUtil.writeFileToResponse(response,excelName);
-//		} catch (Throwable e) {
-//			//濡傛灉鍑洪敊,鎶婇敊璇俊鎭啓鍒皌ext
-//			String msg = LangBaseUtil.getErrorMsg(e);
-//			String errorFile = LocalFileUtil.getDefaultTempFolder() + File.separator + "閿欒.txt";
-//			LocalFileUtil.writeContentToFile(msg,errorFile);
-//			ControllerUtil.writeFileToResponse(response,errorFile);
-//		}
+		try {
+			ControllerUtil.writeFileToResponse(response,excelName);
+		} catch (Throwable e) {
+			//濡傛灉鍑洪敊,鎶婇敊璇俊鎭啓鍒皌ext
+			String msg = LangBaseUtil.getErrorMsg(e);
+			String errorFile = LocalFileUtil.getDefaultTempFolder() + File.separator + "閿欒.txt";
+			LocalFileUtil.writeContentToFile(msg,errorFile);
+			ControllerUtil.writeFileToResponse(response,errorFile);
+		}
+	}
+
+	/**
+	 * 涓嬭浇瀵煎叆鐨勬ā鏉�
+	 * @param response 鍝嶅簲瀵硅薄
+	 * @throws IOException 鎶涘嚭寮傚父
+	 */
+	@GetMapping("/downloadImportExcel")
+	public void downloadImportExcel(HttpServletResponse response) throws IOException{
+		String excelName = codeClassifyService.createImportExcel();
+		try {
+			ControllerUtil.writeFileToResponse(response,excelName);
+		} catch (Throwable e) {
+			//濡傛灉鍑洪敊,鎶婇敊璇俊鎭啓鍒皌ext
+			String msg = LangBaseUtil.getErrorMsg(e);
+			if(StringUtil.isBlank(msg)){
+				msg = "鏈煡閿欒";
+			}
+			ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null);
+		}
+	}
+
+	/**
+	 * 瀵煎叆鍒嗙被
+	 * @param file excel鐨勫唴瀹�
+	 * @return 鎵ц缁撴灉锛宱bj鏈夊�艰〃绀烘湁閿欒淇℃伅锛岄渶瑕佽闂甦ownloadErrorFile鏉ヤ笅杞�
+	 */
+	@PostMapping("/importClassify")
+	public R importClassify(MultipartFile file) {
+		String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + LocalFileUtil.getFileNameForIE(file.getOriginalFilename());
+		File file1 = new File(excelFileName);
+		try {
+			file.transferTo(new File(excelFileName));
+			codeClassifyService.importClassify(file1);
+			return R.success("瀵煎叆鎴愬姛锛�");
+		}catch (Throwable e) {
+			String errorFile = LocalFileUtil.getDefaultTempFolder() + File.separator + "閿欒淇℃伅.txt";
+			LocalFileUtil.writeContentToFile(LangBaseUtil.getErrorMsg(e),errorFile);
+			//鏀惧埌map閲�
+//			R result = R.fail("瀵煎叆澶辫触");
+//			result.(ControllerUtil.putErrorFile(errorFile));
+			return R.data(400,errorFile,"瀵煎叆澶辫触");
+		}finally {
+			file1.delete();
+		}
+	}
+
+	/**
+	 * 涓嬭浇閿欒鐨勬枃浠朵俊鎭�
+	 * @param uuid 鍞竴鏍囪瘑
+	 * @param response 鍝嶅簲瀵硅薄
+	 * @throws IOException 鎶涘嚭寮傚父
+	 */
+	@GetMapping("/downloadErrorFile")
+	public void downloadErrorFile(String uuid, HttpServletResponse response) throws IOException {
+		ControllerUtil.downloadErrorFile(response,uuid);
+	}
+
+	/**
+	 * 鑾峰彇鍒嗙被鍏宠仈鐨勫睘鎬�
+	 * @param baseQueryObject 鏌ヨ瀵硅薄锛屽繀椤绘湁codeClassifyOid锛屾敮鎸乮d鍜宯ame涓ょ鏌ヨ鏉′欢(涓嶆敮鎸佸垎椤�)
+	 * @return 灞炴�х殑淇℃伅锛屽寘鍚粯璁ょ殑灞炴��
+	 */
+	@GetMapping("/listClassifyLinkAttr")
+	public DataGrid<CodeOsattributeVO> listClassifyLinkAttr(BaseQueryObject baseQueryObject){
+		return codeClassifyService.listClassifyLinkAttr(baseQueryObject);
+	}
+
+	/**
+	 * 浣跨敤缂栧彿鐨勮矾寰勮幏鍙栧璞�
+	 * @param idPath 缂栧彿鐨勮矾寰勶紝涓�瀹氳浠庢渶椤跺眰鑺傜偣寮�濮嬶紝鏍煎紡涓簒xx/yyy/zz 杩欐牱
+	 * @return 鍒嗙被鐨勬樉绀哄璞�
+	 */
+	@GetMapping("/getObjectByIdPath")
+	public CodeClassifyVO getObjectByIdPath(String idPath){
+		return codeClassifyService.getObjectByIdPath(idPath);
+	}
+
+	/**
+	 * 涓婚搴撶殑鏍�
+	 * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
+	 * @return 涓婚搴撴樉绀烘爲
+	 */
+	@GetMapping("/treeTopCodeClassify")
+	public List<Tree> treeTopCodeClassify(TreeQueryObject treeQueryObject){
+		return codeClassifyService.treeTopCodeClassify(treeQueryObject);
 	}
 }

--
Gitblit v1.9.3