From e374aba8fd09d57ed79691a3876ef11625fbac6d Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期五, 01 十二月 2023 15:27:58 +0800
Subject: [PATCH] 集团码导出模板功能添加

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java |  108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 108 insertions(+), 0 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 99278b3..96383b7 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
@@ -4605,4 +4605,112 @@
 		}
 	}
 
+	/***
+	 * @param codeClassifyOid
+	 * @return
+	 */
+	@Override
+	public String exportGroupCodeExcel(String codeClassifyOid) {
+		List<CodeClassifyTemplateVO> templateVOList=new ArrayList<>();
+		VciBaseUtil.alertNotNull("瀵煎嚭妯℃澘","瀵煎嚭鐨勯厤缃�",codeClassifyOid,"涓婚搴撳垎绫荤殑涓婚敭");
+		CodeClassifyVO codeClassifyVO = classifyService.getObjectByOid(codeClassifyOid);
+		//鎵炬ā鏉�
+		CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyOid);
+		templateVOList.add(templateVO);
+		WriteExcelOption eo = new WriteExcelOption();
+		eo.setAppend(true);
+		//澧炲姞妯℃澘鐨勪俊鎭鍏�
+		LinkedList<WriteExcelData> tempEDList = new LinkedList<>();
+		tempEDList.add(new WriteExcelData(0,0,"妯℃澘涓婚敭"));
+		tempEDList.add(new WriteExcelData(0,1,"妯℃澘浠e彿"));
+		tempEDList.add(new WriteExcelData(0,2,"妯℃澘鍚嶇О"));
+		CodeClassifyTemplateVO codeClassifyTemplateVO = new CodeClassifyTemplateVO();
+		BeanUtils.copyProperties(templateVO,codeClassifyTemplateVO);
+		//缁勫悎鏍煎紡鐨勪笉瀵煎叆锛�
+		// 鏋氫妇鐨勬彁渚涘簭鍒楃殑閫夋嫨
+		//鏃堕棿鍏ㄩ儴缁熶竴涓簓yyy-MM-dd HH:mm:ss
+		//鍙傜収鐨勮嚜琛岃緭鍏ュ悕绉�
+		//鍒嗙被娉ㄥ叆鐨勪笉鐢紝閮芥槸瀵煎叆鍚庤嚜鍔ㄥ鐞嗙殑
+		//缂栫爜锛岀姸鎬佺瓑瀛楁涓嶅鍏�
+		List<CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrVOList=codeClassifyTemplateVO.getAttributes();
+		if(!CollectionUtils.isEmpty(codeClassifyTemplateAttrVOList)) {
+			if (CollectionUtils.isEmpty(codeClassifyTemplateAttrVOList)) {
+				throw new VciBaseException("妯℃澘娌℃湁閰嶇疆灞炴��");
+			}
+		}
+		List<CodeClassifyTemplateAttrVO> templateAttrVOS = codeClassifyTemplateAttrVOList.stream().filter(s ->
+			!DEFAULT_ATTR_LIST.contains(s.getId())
+				&& StringUtils.isBlank(s.getComponentRule())
+				&& StringUtils.isBlank(s.getClassifyInvokeAttr())
+				&& (VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
+		).collect(Collectors.toList());
+
+		if (CollectionUtils.isEmpty(templateAttrVOS)) {
+			throw new VciBaseException("妯℃澘娌℃湁閰嶇疆浠讳綍銆愯〃鍗曟樉绀恒�戜负銆愭槸銆戠殑灞炴��");
+		}
+		List<CodeClassifyTemplateAttrVO> idAttrVOList = codeClassifyTemplateVO.getAttributes().stream().filter(s -> s.getId().equalsIgnoreCase(CODE_FIELD)).collect(Collectors.toList());
+		LinkedList<WriteExcelData> excelDataList = new LinkedList<>();
+		Workbook workbook = new HSSFWorkbook();
+		excelDataList.add(new WriteExcelData(0,0,!CollectionUtils.isEmpty(idAttrVOList)?idAttrVOList.get(0).getName():"浼佷笟缂栫爜",idAttrVOList.get(0).getId()));
+		excelDataList.add(new WriteExcelData(0,1,"闆嗗洟鐮�",""));
+		for (int i = 0; i < templateAttrVOS.size(); i++) {
+			CodeClassifyTemplateAttrVO attrVO = templateAttrVOS.get(i);
+
+			Object text = attrVO.getName();
+			text = exportKeyAndRequired(workbook, attrVO, text);
+			int colIndex = 2 + i;
+			WriteExcelData excelData = new WriteExcelData(0, colIndex, text, attrVO.getId());
+			if (StringUtils.isNotBlank(attrVO.getCodeDateFormat())
+				|| VciFieldTypeEnum.VTDateTime.name().equalsIgnoreCase(attrVO.getAttributeDataType())
+				|| VciFieldTypeEnum.VTDate.name().equalsIgnoreCase(attrVO.getAttributeDataType())
+				|| VciFieldTypeEnum.VTTime.name().equalsIgnoreCase(attrVO.getAttributeDataType())) {
+				excelData.setDateFormat(VciDateUtil.DateTimeFormat);
+			}
+			if (text instanceof RichTextString) {
+				excelData.setFontColor(String.valueOf(HSSFColor.HSSFColorPredefined.RED.getIndex()));
+			}
+			excelDataList.add(excelData);
+			if (StringUtils.isNotBlank(attrVO.getEnumString()) || StringUtils.isNotBlank(attrVO.getEnumId())) {
+				//娣诲姞鏁版嵁鏈夋晥鎬�
+				List<String> enumValueList = new ArrayList<>();
+				enumValueList.add("");
+				List<KeyValue> valueList = engineService.listComboboxItems(attrVO);
+				if (!CollectionUtils.isEmpty(valueList)) {
+					valueList.stream().forEach(kv -> {
+						enumValueList.add(kv.getValue());
+					});
+				}
+				//榛樿鍔�1涓囨潯
+				WriteExcelData ed = new WriteExcelData(1, colIndex, "");
+				ed.setRowTo(100);
+				ed.setColTo(colIndex);
+				ed.setValidation(true);
+				ed.setValidationDataList(enumValueList);
+				ed.setValidationErrorMsg("璇峰湪搴忓垪涓�夋嫨姝g‘鐨勫��");
+				excelDataList.add(ed);
+			}
+			if (VciFieldTypeEnum.VTBoolean.name().equalsIgnoreCase(attrVO.getAttributeDataType())) {
+				List<String> booleanList = new ArrayList<>();
+
+				booleanList.add("鏄�");
+				booleanList.add("鍚�");
+				//榛樿鍔�1涓囨潯
+				WriteExcelData ed = new WriteExcelData(1, colIndex, "");
+				ed.setRowTo(100);
+				ed.setColTo(colIndex);
+				ed.setValidation(true);
+				ed.setValidationDataList(booleanList);
+				ed.setValidationErrorMsg("璇峰湪搴忓垪涓�夋嫨姝g‘鐨勫��");
+				excelDataList.add(ed);
+			}
+		}
+		eo.addSheetDataList(templateVO.getName(),excelDataList);
+		tempEDList.add(new WriteExcelData(1,0,templateVO.getOid()));
+		tempEDList.add(new WriteExcelData(1,1,templateVO.getId()));
+		tempEDList.add(new WriteExcelData(1,2,templateVO.getName()));
+		String excelName = LocalFileUtil.getDefaultTempFolder() + File.separator + codeClassifyVO.getName() + "闆嗗洟鐮乢瀵煎叆妯℃澘.xls";
+		eo.addSheetDataList(templateVOList.size()+"妯℃澘淇℃伅銆愯鍕垮垹闄ゆ垨绉诲姩銆�",tempEDList);
+		ExcelUtil.writeDataToFile(excelName,eo);
+		return excelName;
+	}
 }

--
Gitblit v1.9.3