From 977b4b2f4b0ce0af4d259a113f076e93053a5d96 Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期一, 04 十二月 2023 01:28:00 +0800
Subject: [PATCH] 集团码导出模板功能添加

---
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/标准系列修订(跨年).json                                  |    0 
 Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/DockingPreAttrMappingServiceImpl.java |    3 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/ExecGroupCodePortDataDTO.java                                           |   32 ++++
 Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/IDockingPreAttrMappingService.java         |    9 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java                                                  |  264 +++++++++++++++++++++-----------
 Source/UBCS/ubcs-service-api/ubcs-applyjtcodeservice-api/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feign/IMdmInterJtClient.java               |   11 +
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeAndGroupCodeAttrRnageDTO.java                                       |   30 +++
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/标准系列申请.json                                      |    0 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeAndGroupCodeAttrMappingDTO.java                                     |   50 ++++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java                                                 |    4 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/标准修订(跨年).json                                    |    0 
 Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java                        |   22 ++
 12 files changed, 327 insertions(+), 98 deletions(-)

diff --git a/Source/UBCS/ubcs-service-api/ubcs-applyjtcodeservice-api/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feign/IMdmInterJtClient.java b/Source/UBCS/ubcs-service-api/ubcs-applyjtcodeservice-api/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feign/IMdmInterJtClient.java
index 42920c9..ddf5d0c 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-applyjtcodeservice-api/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feign/IMdmInterJtClient.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-applyjtcodeservice-api/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feign/IMdmInterJtClient.java
@@ -2,12 +2,15 @@
 
 
 import com.vci.ubcs.code.applyjtcodeservice.vo.DockingClassifyModelAttrVO;
+import com.vci.ubcs.code.applyjtcodeservice.vo.DockingPreAttrMappingVO;
 import com.vci.ubcs.code.applyjtcodeservice.vo.DockingReturnStoreVO;
 import org.springblade.core.tool.api.R;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
 
 
 /****
@@ -24,6 +27,7 @@
 	String RETURNGROUPCODE = API_PREFIX + "/getApplyGroupCode";
 	String PUBMDMMODEL = API_PREFIX + "/pubMdmModel";
 	String RECEIVE_EDITAPPLY =API_PREFIX + "/receiveEditApply";
+	String LIST_MAPPING=API_PREFIX + "/listMapping";
 
 	/***
 	 * 灏嗛泦鍥㈢敵璇锋垚鍔熺殑缂栫爜瀛樺叆鐩稿叧鏁版嵁涔嬩腑
@@ -34,6 +38,13 @@
 	@GetMapping(APPLYGROUPCODE)
 	public R applyGroupCode(@RequestParam("oids")String oids,@RequestParam("btmName")String btmName);
 
+	/***
+	 *
+	 * @param codeClassifyOid
+	 * @return
+	 */
+	@GetMapping(LIST_MAPPING)
+	public R<List<DockingPreAttrMappingVO>> list_mapping(@RequestParam("codeClassifyOid")String codeClassifyOid);
 
 	/***
 	 * 闆嗗洟缂栫爜鏁版嵁淇敼
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeAndGroupCodeAttrMappingDTO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeAndGroupCodeAttrMappingDTO.java
new file mode 100644
index 0000000..cc86306
--- /dev/null
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeAndGroupCodeAttrMappingDTO.java
@@ -0,0 +1,50 @@
+package com.vci.ubcs.code.dto;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/***
+ * 闆嗗洟鍩熷睘鎬ф槧灏勫叧绯�
+ */
+@Data
+public class CodeAndGroupCodeAttrMappingDTO {
+
+	/***
+	 * 榛樿鍊�
+	 */
+	private String defaultValue;
+	/***
+	 *灞炴�d
+	 */
+	private String metaListId;
+
+	/***
+	 * 婧愬睘鎬у唴閮ㄥ悕绉�
+	 */
+	private String sourceAttrKey;
+
+	/***
+	 * 婧愬睘鎬у悕绉�
+	 */
+	private String sourceAttrName;
+
+	/**
+	 * 鐩爣灞炴�id
+	 */
+	private String targetAttrId;
+
+	/***
+	 * 鐩爣灞炴�у唴閮ㄥ悕绉�
+	 */
+	private String targetAttrKey;
+
+	/***
+	 * 鐩爣灞炴�у悕绉�
+	 */
+	private String targetAttrName;
+
+	List<CodeAndGroupCodeAttrRnageDTO> codeAndGroupCodeAttrRnageDTOList;
+
+}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeAndGroupCodeAttrRnageDTO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeAndGroupCodeAttrRnageDTO.java
new file mode 100644
index 0000000..f1818c2
--- /dev/null
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeAndGroupCodeAttrRnageDTO.java
@@ -0,0 +1,30 @@
+package com.vci.ubcs.code.dto;
+
+import lombok.Data;
+
+@Data
+public class CodeAndGroupCodeAttrRnageDTO {
+
+	/***
+	 *灞炴�d
+	 */
+	private String metaListId;
+
+	/**
+	 * 灞炴�ф灇涓炬樉绀哄悕绉�
+	 */
+	private  String numText;
+	/**
+	 * 灞炴�ф灇涓惧唴閮ㄥ悕绉�
+	 */
+	private String numTextValue;
+
+	/**
+	 * 婧愬睘鎬ф灇涓炬樉绀哄悕绉�
+	 */
+	private  String targetNumText;
+	/**
+	 * 婧愬睘鎬ф灇涓惧唴閮ㄥ悕绉�
+	 */
+	private String targetNumTextValue;
+}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/ExecGroupCodePortDataDTO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/ExecGroupCodePortDataDTO.java
new file mode 100644
index 0000000..451b70f
--- /dev/null
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/ExecGroupCodePortDataDTO.java
@@ -0,0 +1,32 @@
+package com.vci.ubcs.code.dto;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class ExecGroupCodePortDataDTO {
+	/***
+     * sheet鍚嶇О
+	 */
+	private String sheetName;
+	/***
+     * 鍘熷瀛楁
+	 */
+	private LinkedList<String> fieldList=new LinkedList<>();
+	/**
+	 * 鏁版嵁闆嗘垚
+	 */
+	private List<Map<String,String>> dataList=new ArrayList<>();
+	/***
+     * 鍒楀悕
+	 */
+	private LinkedList<String> colName=new LinkedList<>();
+	/***
+	 * 闆嗗洟灞炴�т笌缂栫爜灞炴�ф槧灏勫叧绯�
+	 */
+	private List<CodeAndGroupCodeAttrMappingDTO> codeAttrMapGroupAttrDTOS=new ArrayList<>();
+}
diff --git "a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\346\240\207\345\207\206\344\277\256\350\256\242\346\234\210\344\273\275\345\244\247\344\272\2161\347\232\204.json" "b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\346\240\207\345\207\206\344\277\256\350\256\242\050\350\267\250\345\271\264\051.json"
similarity index 100%
rename from "Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\346\240\207\345\207\206\344\277\256\350\256\242\346\234\210\344\273\275\345\244\247\344\272\2161\347\232\204.json"
rename to "Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\346\240\207\345\207\206\344\277\256\350\256\242\050\350\267\250\345\271\264\051.json"
diff --git "a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\347\263\273\345\210\227\346\265\201\346\260\264\347\224\263\350\257\267\345\244\247\344\272\2161.json" "b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\346\240\207\345\207\206\347\263\273\345\210\227\344\277\256\350\256\242\357\274\210\350\267\250\345\271\264\357\274\211.json"
similarity index 100%
rename from "Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\347\263\273\345\210\227\346\265\201\346\260\264\347\224\263\350\257\267\345\244\247\344\272\2161.json"
rename to "Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\346\240\207\345\207\206\347\263\273\345\210\227\344\277\256\350\256\242\357\274\210\350\267\250\345\271\264\357\274\211.json"
diff --git "a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\347\263\273\345\210\227\346\265\201\346\260\264.json" "b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\346\240\207\345\207\206\347\263\273\345\210\227\347\224\263\350\257\267.json"
similarity index 100%
rename from "Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\347\263\273\345\210\227\346\265\201\346\260\264.json"
rename to "Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\346\240\207\345\207\206\347\263\273\345\210\227\347\224\263\350\257\267.json"
diff --git a/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java b/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java
index 0924909..42e4177 100644
--- a/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java
+++ b/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java
@@ -56,8 +56,10 @@
 	 * 闆嗗洟鍒嗙被鐢宠鍗曟湇鍔�
 	 */
 	private final IDockingPreClassifyService dockingPreClassifyService;
-
-
+	/***
+	 * 灞炴�ф槧灏勬湇鍔�
+	 */
+	private final IDockingPreAttrMappingService dockingPreAttrMappingService;
 	/**
 	 * 闆嗗洟鍙栧�艰寖鍥寸敵璇峰崟鏈嶅姟
 	 */
@@ -81,6 +83,22 @@
 			return R.fail("闆嗗洟鐮佺敵璇峰け璐ワ細"+e.getMessage());
 		}
 	}
+
+	/***
+	 * 鏌ヨ闆嗗洟灞炴�ф槧灏�
+	 * @param codeClassifyOid:缂栫爜鍒嗙被oid
+	 * @return
+	 */
+	@Override
+	public R<List<DockingPreAttrMappingVO>> list_mapping(String codeClassifyOid) {
+		List<DockingPreAttrMapping> dockingPreAttrMappings=	dockingPreAttrMappingService.selectByWrapper(Wrappers.<DockingPreAttrMapping>query().lambda().eq(DockingPreAttrMapping::getTargetClassifyId,codeClassifyOid));
+		List<DockingPreAttrMappingVO> dockingPreAttrMappingVOList=new ArrayList<>();
+		if(!CollectionUtils.isEmpty(dockingPreAttrMappings)){
+			dockingPreAttrMappingVOList=dockingPreAttrMappingService.dockingPreAttrMappingDO2VOS(dockingPreAttrMappings,true);
+		}
+		return R.data(dockingPreAttrMappingVOList);
+	}
+
 	/***
 	 * 鐢宠闆嗗洟缂栫爜鏁版嵁缁存姢
 	 * @return
diff --git a/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/IDockingPreAttrMappingService.java b/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/IDockingPreAttrMappingService.java
index 28a6f73..b28d66d 100644
--- a/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/IDockingPreAttrMappingService.java
+++ b/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/IDockingPreAttrMappingService.java
@@ -8,6 +8,7 @@
 import com.vci.ubcs.starter.exception.VciBaseException;
 import org.springblade.core.tool.api.R;
 
+import java.util.Collection;
 import java.util.List;
 
 /**
@@ -51,4 +52,12 @@
 	 * @return
 	 */
 	public R search(DokingAttributeSerchVO dokingAttributeSerchVO);
+
+	/***
+	 * 杞崲闆嗗洟灞炴�ф槧灏勯厤缃�
+	 * @param dockingPreAttrMappings
+	 * @param contain 鏄惁鏌ュ巻鍙叉暟鎹�
+	 * @return
+	 */
+	List<DockingPreAttrMappingVO> dockingPreAttrMappingDO2VOS(Collection<DockingPreAttrMapping> dockingPreAttrMappings, boolean contain);
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/DockingPreAttrMappingServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/DockingPreAttrMappingServiceImpl.java
index 86a2b9b..0711970 100644
--- a/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/DockingPreAttrMappingServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/DockingPreAttrMappingServiceImpl.java
@@ -242,7 +242,8 @@
 	 * @param dockingPreAttrMappings
 	 * @return
 	 */
-	private List<DockingPreAttrMappingVO> dockingPreAttrMappingDO2VOS(Collection<DockingPreAttrMapping> dockingPreAttrMappings,boolean contain) {
+	@Override
+	public List<DockingPreAttrMappingVO> dockingPreAttrMappingDO2VOS(Collection<DockingPreAttrMapping> dockingPreAttrMappings,boolean contain) {
 		List<DockingPreAttrMappingVO> dockingPreAttrMappingVOList=new ArrayList<>();
 			dockingPreAttrMappingVOList=DockingPreAttrMappingWrapper.build().entityVOs(dockingPreAttrMappings);
 			if(CollectionUtils.isEmpty(dockingPreAttrMappingVOList)){
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java
index db787cb..2dac4c4 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java
@@ -779,9 +779,9 @@
 	@GetMapping("/exportGroupCodeExcel")
 	@VciBusinessLog(operateName = "瀵煎嚭闆嗗洟鐮�")
 	public void exportGroupCodeExcel(String codeClassifyOid, HttpServletResponse response) throws IOException{
-		String excelName = mdmIOService.exportGroupCodeExcel(codeClassifyOid);
+
 		try {
-			ControllerUtil.writeFileToResponse(response,excelName);
+			String excelName = mdmIOService.exportGroupCodeExcel(codeClassifyOid);
 		} catch (Throwable e) {
 			//濡傛灉鍑洪敊,鎶婇敊璇俊鎭啓鍒皌ext
 			String msg = LangBaseUtil.getErrorMsg(e);
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 96383b7..e19dc23 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
@@ -5,12 +5,14 @@
 import com.alibaba.nacos.common.utils.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.google.protobuf.ServiceException;
+import com.vci.ubcs.code.applyjtcodeservice.entity.DockingPreAttrMapping;
 import com.vci.ubcs.code.applyjtcodeservice.feign.IMdmInterJtClient;
+import com.vci.ubcs.code.applyjtcodeservice.vo.DockingPreAttrMappingVO;
 import com.vci.ubcs.code.bo.AttributeValue;
 import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
 import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO;
-import com.vci.ubcs.code.dto.CodeExportAttrDTO;
-import com.vci.ubcs.code.dto.CodeOrderDTO;
+import com.vci.ubcs.code.constant.MdmEngineConstant;
+import com.vci.ubcs.code.dto.*;
 import com.vci.ubcs.code.entity.CodeAllCode;
 import com.vci.ubcs.code.enumpack.CodeDefaultLC;
 import com.vci.ubcs.code.enumpack.CodeLevelTypeEnum;
@@ -4611,106 +4613,182 @@
 	 */
 	@Override
 	public String exportGroupCodeExcel(String codeClassifyOid) {
-		List<CodeClassifyTemplateVO> templateVOList=new ArrayList<>();
-		VciBaseUtil.alertNotNull("瀵煎嚭妯℃澘","瀵煎嚭鐨勯厤缃�",codeClassifyOid,"涓婚搴撳垎绫荤殑涓婚敭");
-		CodeClassifyVO codeClassifyVO = classifyService.getObjectByOid(codeClassifyOid);
-		//鎵炬ā鏉�
+		VciBaseUtil.alertNotNull(codeClassifyOid,"涓婚搴撳垎绫荤殑涓婚敭");
+		CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyOid);
+		CodeClassifyVO codeClassifyVO= classifyFullInfo.getCurrentClassifyVO();
+		//鑾峰彇鏈�鏂扮殑妯℃澘
 		CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyOid);
-		templateVOList.add(templateVO);
-		WriteExcelOption eo = new WriteExcelOption();
-		eo.setAppend(true);
+		LinkedList<String> colName=new LinkedList<>();//鍒楀ご
+		LinkedList<String> fieldList=new LinkedList<>();//鍒楀瓧娈�
+
+		ExecGroupCodePortDataDTO execGroupCodePortDataDTO=new ExecGroupCodePortDataDTO();
+		createExportGroupCodeMapConfig(templateVO,execGroupCodePortDataDTO);//缁勭粐鏁版嵁
+		fieldList=execGroupCodePortDataDTO.getFieldList();
+		List<Map<String,String>>dataList=new ArrayList<>();
+		getDatas(classifyFullInfo,templateVO,fieldList,dataList);
+		execGroupCodePortDataDTO.setDataList(dataList);//鏀炬暟鎹�
+		execGroupCodePortDataDTO.setSheetName(codeClassifyVO.getName()+"闆嗗洟鐮佸鍏ユā鏉�");
+		String tempFolder = LocalFileUtil.getDefaultTempFolder();
+		String excelName = tempFolder + File.separator +
+			classifyFullInfo.getCurrentClassifyVO().getId() + "_" + classifyFullInfo.getCurrentClassifyVO().getName() + "_闆嗗洟鐮佸鍑烘ā鏉�.xls";
+		try {
+			new File(excelName).createNewFile();
+		} catch (Throwable e) {
+			throw new VciBaseException(LangBaseUtil.getErrorMsg(e), new String[]{excelName}, e);
+		}
+		LinkedList<String> finalFieldList = fieldList;
+		Map<String, CodeClassifyTemplateAttrVO> attrVOMap = templateVO.getAttributes().stream().filter(s-> finalFieldList.contains(s.getId().toLowerCase(Locale.ROOT))).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
+		List<WriteExcelData> excelDataList = new ArrayList<>();
+		Workbook workbook = new HSSFWorkbook();
+		List<CodeAndGroupCodeAttrMappingDTO>  codeAndGroupCodeAttrMappingDTOList=	execGroupCodePortDataDTO.getCodeAttrMapGroupAttrDTOS();
+
+		Map<String, CodeAndGroupCodeAttrMappingDTO> jAttrVOMap = codeAndGroupCodeAttrMappingDTOList.stream().filter(s-> finalFieldList.contains(s.getTargetAttrKey().toLowerCase(Locale.ROOT))).collect(Collectors.toMap(s -> s.getTargetAttrKey().toLowerCase(Locale.ROOT), t -> t));
+
+		WriteExcelData codeExcelData = new WriteExcelData(0, 0, "浼佷笟缂栫爜");
+		WriteExcelData groupExcelData = new WriteExcelData(0, 1, "闆嗗洟鐮�");
+		excelDataList.add(codeExcelData);
+		excelDataList.add(groupExcelData);
+		for (int i = 0; i < fieldList.size(); i++) {
+			String attrId=fieldList.get(i);
+			if(attrId.equals(CODE_FIELD)||attrId.equals(CODE_GROUP_FIELD)){
+				continue;
+			}
+			if (attrVOMap.containsKey(attrId)) {
+				CodeClassifyTemplateAttrVO attrVO = attrVOMap.get(attrId);
+				//Object text = attrVO.getName();
+				CodeAndGroupCodeAttrMappingDTO codeAttrMappingDTO = jAttrVOMap.get(attrId);
+				Object text = codeAttrMappingDTO.getSourceAttrName();
+				text = exportKeyAndRequired(workbook, attrVO, text);
+				WriteExcelData excelData = new WriteExcelData(0, i, text);
+				if (text instanceof RichTextString) {
+					excelData.setFontColor(String.valueOf(HSSFColor.HSSFColorPredefined.RED.getIndex()));
+				}
+				excelDataList.add(excelData);
+			}
+		}
+		final Integer[] rowIndex = {0};
+		dataList.stream().forEach(data -> {
+			rowIndex[0]++;
+			String id=data.getOrDefault("id", "");
+			excelDataList.add(new WriteExcelData(rowIndex[0], 0, id));
+			String groupCode=data.getOrDefault("groupcode", "");
+			excelDataList.add(new WriteExcelData(rowIndex[0], 1, groupCode));
+			List<String> newFieldList = finalFieldList.stream().filter(e -> !e.equals("id") &&!e.equals("groupcode")).collect(Collectors.toList());
+
+			for (int i = 0; i < newFieldList.size(); i++) {
+				String attrId = newFieldList.get(i).toLowerCase(Locale.ROOT);
+				if(attrId.equals("id")){
+
+				}else if(attrId.equals("groupcode")){
+
+				}else{
+					if (attrVOMap.containsKey(attrId)) {
+						CodeClassifyTemplateAttrVO attrVO = attrVOMap.get(attrId);
+						if (StringUtils.isNotBlank(attrVO.getEnumId()) || StringUtils.isNotBlank(attrVO.getEnumString())) {
+							attrId = attrId + "Text";
+						}
+						if (StringUtils.isNotBlank(attrVO.getReferBtmId()) || StringUtils.isNotBlank(attrVO.getReferConfig())) {
+							attrId = attrId + "name";
+						}
+						if (VciQueryWrapperForDO.LC_STATUS_FIELD.equalsIgnoreCase(attrId)) {
+							attrId = VciQueryWrapperForDO.LC_STATUS_FIELD_TEXT.toLowerCase(Locale.ROOT);
+						}
+						excelDataList.add(new WriteExcelData(rowIndex[0], i+2, data.getOrDefault(attrId, "")));
+					}
+				}
+			}
+		});
+		WriteExcelOption excelOption = new WriteExcelOption();
+		excelOption.addSheetDataList(execGroupCodePortDataDTO.getSheetName(),excelDataList);
+
 		//澧炲姞妯℃澘鐨勪俊鎭鍏�
 		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);
+		excelOption.addSheetDataList("妯℃澘淇℃伅銆愯鍕垮垹闄ゆ垨绉诲姩銆�",tempEDList);
+		ExcelUtil.writeDataToFile(excelName, excelOption);
+		log.info("鏂囦欢璺緞"+excelName);
 		return excelName;
 	}
+	/***
+	 *
+	 */
+	private void createExportGroupCodeMapConfig(CodeClassifyTemplateVO templateVO,ExecGroupCodePortDataDTO execGroupCodePortDataDTO){
+		String classOid=templateVO.getCodeclassifyoid();
+		String templateOid=templateVO.getOid();
+		R r=mdmInterJtClient.list_mapping(classOid);
+		if(r.isSuccess()){
+			List<DockingPreAttrMappingVO>dockingPreAttrMappingVOList= (List<DockingPreAttrMappingVO>) r.getData();
+			List<CodeAndGroupCodeAttrMappingDTO> codeAttrMapGroupAttrDTOS=new ArrayList<>();
+			LinkedList<String> fieldList=new LinkedList<>();
+			LinkedList<String> colNameList=new LinkedList<>();
+			dockingPreAttrMappingVOList.stream().forEach(dockingPreAttrMappingVO -> {
+				CodeAndGroupCodeAttrMappingDTO codeAndGroupCodeAttrMappingDTO=new CodeAndGroupCodeAttrMappingDTO();
+				if(StringUtils.isNotBlank(dockingPreAttrMappingVO.getTargetAttrId())){
+					codeAndGroupCodeAttrMappingDTO.setDefaultValue(dockingPreAttrMappingVO.getDefaultValue());
+					codeAndGroupCodeAttrMappingDTO.setMetaListId(dockingPreAttrMappingVO.getMetaListId());
+					codeAndGroupCodeAttrMappingDTO.setSourceAttrKey(dockingPreAttrMappingVO.getSourceAttrKey());
+					codeAndGroupCodeAttrMappingDTO.setSourceAttrName(dockingPreAttrMappingVO.getSourceAttrName());
+					codeAndGroupCodeAttrMappingDTO.setTargetAttrId(dockingPreAttrMappingVO.getTargetAttrId());
+					codeAndGroupCodeAttrMappingDTO.setTargetAttrKey(dockingPreAttrMappingVO.getTargetAttrKey());
+					codeAndGroupCodeAttrMappingDTO.setTargetAttrName(dockingPreAttrMappingVO.getTargetAttrName());
+					fieldList.add(dockingPreAttrMappingVO.getTargetAttrKey());
+					colNameList.add(dockingPreAttrMappingVO.getSourceAttrName());
+				}
+				codeAttrMapGroupAttrDTOS.add(codeAndGroupCodeAttrMappingDTO);
+			});
+			execGroupCodePortDataDTO.setCodeAttrMapGroupAttrDTOS(codeAttrMapGroupAttrDTOS);
+			execGroupCodePortDataDTO.setFieldList(fieldList);
+			execGroupCodePortDataDTO.setColName(colNameList);
+		}
+	}
+	/***
+	 * 鏌ヨ鏁版嵁
+	 * @param classifyFullInfo
+	 * @param templateVO
+	 */
+	private void getDatas(CodeClassifyFullInfoBO classifyFullInfo,CodeClassifyTemplateVO templateVO,LinkedList<String> selectFieldList,List<Map<String,String>>dataList){
+
+		//鍏堟煡璇㈡暟鎹�
+		String btmTypeId = classifyFullInfo.getTopClassifyVO().getBtmTypeId();
+		String codeClassifyOid=classifyFullInfo.getCurrentClassifyVO().getOid();
+		Map<String, String> conditionMap = new HashMap<>();
+		if(conditionMap == null){
+			conditionMap = new HashMap<>();
+		}
+		if(conditionMap.containsKey(VciQueryWrapperForDO.OID_FIELD)){
+			conditionMap.put(VciQueryWrapperForDO.OID_FIELD,QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(conditionMap.get(VciQueryWrapperForDO.OID_FIELD)) + ")");
+		}
+		conditionMap.put("codeclsfpath","*" + codeClassifyOid + "*");
+		conditionMap.put("groupcode_null", "null");
+		conditionMap.put("lastr", "1");
+		conditionMap.put("lastv", "1");
+
+		R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Arrays.asList(btmTypeId));
+		String tableName = "";
+		if(listR.isSuccess() && !listR.getData().isEmpty()){
+			tableName = Func.isNotBlank(listR.getData().get(0).getTableName()) ? listR.getData().get(0).getTableName():VciBaseUtil.getTableName(btmTypeId);
+		}else{
+			tableName = VciBaseUtil.getTableName(btmTypeId);
+		}
+		PageHelper pageHelper = new PageHelper();
+		pageHelper.setLimit(1000000);
+		pageHelper.setPage(1);
+		pageHelper.addDefaultDesc("createTime");
+		DataGrid<Map<String, String>> dataGrid = engineService.queryGrid(btmTypeId, templateVO, conditionMap, pageHelper);
+		//杞崲鏁版嵁
+		if(!CollectionUtils.isEmpty(dataGrid.getData())){
+			dataList.addAll(dataGrid.getData());
+		}
+		//灏佽鏌ヨ鍑烘潵鐨勬暟鎹�
+		engineService.wrapperData(dataList, templateVO, selectFieldList,false);
+		//modify by weidy@2022-09-27
+		//鍥犱负鍦ㄥ垪琛ㄥ拰琛ㄥ崟鐨勬樉绀虹殑鏃跺�欙紝鎴戜滑鐨勫紑鍏崇被鍨嬮〉闈細澶勭悊锛屼絾鏄湪瀵煎嚭鐨勬椂鍊欙紝鎴戜滑闇�瑕佸皢true鍜宖alse閮芥浛鎹㈡垚涓枃
+		engineService.wrapperBoolean(dataList,templateVO);
+		log.info("瀵煎嚭妯℃澘鐨勬暟鎹潯鐩暟:"+dataList.size());
+	}
 }

--
Gitblit v1.9.3