From 1d5845e4b98f9c69833e54ef69253d85d0c69fe8 Mon Sep 17 00:00:00 2001
From: yuxc <653031404@qq.com>
Date: 星期五, 09 六月 2023 15:10:59 +0800
Subject: [PATCH] 1、对MDM服务的接口测试更改。 2、增加sys的菜单接口用于通过业务类型获取相关的界面按钮。

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java |   65 ++++++++++++++++++++++++++++----
 1 files changed, 56 insertions(+), 9 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
index 689147f..526c013 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -21,6 +21,7 @@
 import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
 import com.vci.ubcs.starter.web.pagemodel.DataGrid;
 import com.vci.ubcs.starter.web.pagemodel.KeyValue;
+import com.vci.ubcs.starter.web.util.LangBaseUtil;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import com.vci.ubcs.starter.web.util.VciDateUtil;
 import lombok.AllArgsConstructor;
@@ -37,6 +38,7 @@
 
 import javax.annotation.Resource;
 import java.io.File;
+import java.io.IOException;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -255,15 +257,60 @@
 		String redisUUid=batchImportCodes(orderDTO,templateVO,dataSet,errorMap,true);
 		CodeImProtRusultVO codeImProtRusultVO = new CodeImProtRusultVO();
 		List<String> needRowIndexList = new ArrayList<>();
-//		String filePath = returnErrorToExcel(dataSet.getRowData(), errorMap, needRowIndexList, dataSet.getColName());
-//		if(StringUtils.isNotBlank(filePath)) {
-//			codeImProtRusultVO.setFilePath(filePath);
-//		}
-//		if(StringUtils.isNotBlank(redisUUid)){
-//			codeImProtRusultVO.setRedisUuid(redisUUid);
-//		}
-		return null;
-//		return codeImProtRusultVO;
+		String filePath = returnErrorToExcel(dataSet.getRowData(), errorMap, needRowIndexList, dataSet.getColName());
+		if(StringUtils.isNotBlank(filePath)) {
+			codeImProtRusultVO.setFilePath(filePath);
+		}
+		if(StringUtils.isNotBlank(redisUUid)){
+			codeImProtRusultVO.setRedisUuid(redisUUid);
+		}
+//		return null;
+		return codeImProtRusultVO;
+	}
+
+	/**
+	 * 閿欒淇℃伅杩斿洖excel
+	 * @param rowDataList 鎵�鏈夌殑瀵煎叆鏁版嵁
+	 * @param errorMap 閿欒鐨勪俊鎭�
+	 * @param needRowIndexList 闇�瑕佸啓鍏ョ殑鏁版嵁鐨勮鍙�
+	 * @param titleRowData 鏍囬琛�
+	 *
+	 * @return 閿欒鐨別xcel鏂囦欢锛屾病鏈夐敊璇細杩斿洖绌�
+	 */
+	private String returnErrorToExcel(Collection<SheetRowData> rowDataList,
+									  Map<String,String> errorMap,
+									  List<String> needRowIndexList,List<String> titleRowData){
+		if(CollectionUtils.isEmpty(errorMap)){
+			return "";
+		}
+		Map<String, SheetRowData> rowIndexDataMap = rowDataList.stream().filter(s -> !needRowIndexList.contains(s.getRowIndex())).collect(Collectors.toMap(s -> s.getRowIndex(), t -> t));
+		List<WriteExcelData> errorDataList = new ArrayList<>();
+		errorDataList.add(new WriteExcelData(0,0,"閿欒淇℃伅"));
+		for (int i = 0; i < titleRowData.size(); i++) {
+			//閿欒淇℃伅鍦ㄦ渶鍚�
+			errorDataList.add(new WriteExcelData(0,i+1,titleRowData.get(i)));
+		}
+		Integer[] newRowIndex = new Integer[]{1};
+		errorMap.forEach((index,error)->{
+			//閿欒淇℃伅鍏ㄩ儴缁勫悎鍒颁竴璧�
+			SheetRowData rowData = rowIndexDataMap.getOrDefault(index, null);
+			if(rowData!=null){
+				errorDataList.add(new WriteExcelData(newRowIndex[0],0,error));
+				rowData.getData().forEach((colIndex,value)->{
+					errorDataList.add(new WriteExcelData(newRowIndex[0],colIndex+1,value));
+				});
+				newRowIndex[0]++;
+			}
+		});
+		String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + "閿欒淇℃伅.xls";
+		WriteExcelOption eo = new WriteExcelOption(errorDataList);
+		try {
+			new File(excelFileName).createNewFile();
+		} catch (IOException e) {
+			throw new VciBaseException(LangBaseUtil.getErrorMsg(e));
+		}
+		ExcelUtil.writeDataToFile(excelFileName,eo);
+		return excelFileName;
 	}
 
 	/**

--
Gitblit v1.9.3