From 3534b13391b2a6152d0f91b72fda343b13a947cb Mon Sep 17 00:00:00 2001
From: ludc <ludc@vci-tech.com>
Date: 星期三, 22 一月 2025 15:55:27 +0800
Subject: [PATCH] 分类码段码值管理查询去除null的情况,分类码段生成编码时去除码值为null的情况

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java | 1035 ++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 880 insertions(+), 155 deletions(-)

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 9ceecf8..7e3cf21 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
@@ -1,22 +1,26 @@
 package com.vci.ubcs.code.controller;
 
-
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.nacos.common.utils.StringUtils;
-import com.vci.ubcs.code.dto.CodeOrderDTO;
-import com.vci.ubcs.code.dto.CodeOrderSecDTO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.vci.ubcs.code.applyjtcodeservice.vo.BaseModelVO;
+import com.vci.ubcs.code.dto.*;
 import com.vci.ubcs.code.dto.datapush.BaseModelDTO;
 import com.vci.ubcs.code.service.MdmEngineService;
 import com.vci.ubcs.code.service.MdmIOService;
-import com.vci.ubcs.code.vo.pagemodel.CodeImProtRusultVO;
-import com.vci.ubcs.code.vo.pagemodel.MdmUIInfoVO;
+import com.vci.ubcs.code.vo.pagemodel.*;
+import com.vci.ubcs.flow.core.dto.FlowStatusDTO;
 import com.vci.ubcs.starter.annotation.VciBusinessLog;
+import com.vci.ubcs.starter.revision.model.BaseModel;
+import com.vci.ubcs.starter.revision.model.TreeQueryObject;
 import com.vci.ubcs.starter.util.LocalFileUtil;
-import com.vci.ubcs.starter.web.pagemodel.DataGrid;
+import com.vci.ubcs.starter.util.SaveLogUtil;
+import com.vci.ubcs.starter.web.pagemodel.*;
 import com.vci.ubcs.starter.web.util.ControllerUtil;
 import com.vci.ubcs.starter.web.util.LangBaseUtil;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import io.swagger.annotations.Api;
-import lombok.AllArgsConstructor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springblade.core.tool.api.R;
@@ -28,158 +32,879 @@
 import java.io.File;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @RestController
-//@AllArgsConstructor
 @RequestMapping("/mdmEngineController")
 @Api(value = "缂栫爜鏁版嵁绠$悊", tags = "缂栫爜鏁版嵁绠$悊")
 public class MdmEngineController {
-//
-////	/**
-////	 * 鏃ュ織
-////	 */
-//	private Logger logger = LoggerFactory.getLogger(getClass());
-//	/**
-//	 * 涓绘暟鎹紩鎿庢湇鍔�
-//	 */
-//	@Autowired
-//	private MdmEngineService engineService;
-//	/**
-//	 * 涓绘暟鎹鍏ュ鍑烘湇鍔�
-//	 */
-//	@Autowired
-//	private MdmIOService mdmIOService;
-//
-//	/**
-//	 * 涓嬭浇鎵归噺鐢宠鐨勫鍏ユā鏉�
-//	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
-//	 * @param response 鍝嶅簲瀵硅薄
-//	 * @throws IOException 鎶涘嚭寮傚父
-//	 */
-//	@GetMapping("/downloadImportExcel")
-//	@VciBusinessLog(operateName = "涓嬭浇鎵归噺鐢宠缂栫爜鐨勫鍏ユā鏉�")
-//	public void downloadImportExcel(String codeClassifyOid, HttpServletResponse response) throws IOException{
-//		String excelName = mdmIOService.createImportExcel(codeClassifyOid,false);
-//		try {
-//			ControllerUtil.writeFileToResponse(response,excelName);
-//		} catch (Throwable e) {
-//			//濡傛灉鍑洪敊,鎶婇敊璇俊鎭啓鍒皌ext
-//			String msg = LangBaseUtil.getErrorMsg(e);
-//			if(StringUtils.isBlank(msg)){
-//				msg = "鏈煡閿欒";
-//			}
-//			ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null);
-//		}
-//	}
-//
-//
-//	/**
-//	 * 鎵归噺鐢宠缂栫爜鐨勪俊鎭�
-//	 * @param secDTOList 鐢宠缂栫爜鐨勪俊鎭紝蹇呴』鍖呭惈鐮佹鍜屽垎绫讳富閿殑淇℃伅
-//	 * @param file 鏂囦欢鐨勫唴瀹�
-//	 */
-//	@VciBusinessLog(operateName = "鎵归噺鐢宠缂栫爜鐨勪俊鎭�")
-//	@PostMapping("/batchImportCode")
-//	public R batchImportCode(String secDTOList, String codeClassifyOid, MultipartFile file, HttpServletResponse response) throws Throwable {
-//		CodeOrderDTO orderDTO = new CodeOrderDTO();
-//		orderDTO.setCodeClassifyOid(codeClassifyOid);
-//		if(StringUtils.isNotBlank(secDTOList)){
-//			List<CodeOrderSecDTO> secDTOS = JSONObject.parseArray(secDTOList, CodeOrderSecDTO.class);
-//			orderDTO.setSecDTOList(secDTOS);
-//		}
-//		String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + LocalFileUtil.getFileNameForIE(file.getOriginalFilename());
-//		File file1 = new File(excelFileName);
-//		try {
-//			file.transferTo(new File(excelFileName));
-//			CodeImProtRusultVO codeImProtRusultVO = mdmIOService.batchImportCode(orderDTO,file1);
-//			if(StringUtils.isNotBlank(codeImProtRusultVO.getFilePath())||StringUtils.isNotBlank(codeImProtRusultVO.getRedisUuid())){
-//				//鏀惧埌map閲�
-//				R result = R.fail("瀵煎叆澶辫触");
-//				if(StringUtils.isNotBlank(codeImProtRusultVO.getFilePath())) {
-//					String filedUUid = ControllerUtil.putErrorFile(codeImProtRusultVO.getFilePath());
-//					codeImProtRusultVO.setFileOid(filedUUid);
-//				}
-//				result.setData(codeImProtRusultVO);
-//				return result;
-//			}else {
-//				return R.success("鎿嶄綔鎴愬姛锛�");
-//			}
-//		}catch (Throwable e) {
-//			logger.error("瀵煎叆閿欒",e);
-//			String errorFile = LocalFileUtil.getDefaultTempFolder() + File.separator + "閿欒.txt";
-//			LocalFileUtil.writeContentToFile( LangBaseUtil.getErrorMsg(e),errorFile);
-//			String uuid=ControllerUtil.putErrorFile(errorFile);
-//			CodeImProtRusultVO codeImProtRusultVO =new CodeImProtRusultVO();
-//			codeImProtRusultVO.setRedisUuid("");
-//			codeImProtRusultVO.setFileOid(uuid);
-//			codeImProtRusultVO.setFilePath(errorFile);
-//			R result = R.fail("瀵煎叆澶辫触");
-//			result.setData(codeImProtRusultVO);
-////			result.setObj(codeImProtRusultVO);
-//			return result;
-//		}finally {
-//			file1.delete();
-//		}
-//	}
-//
-//
-//	/**
-//	 * 淇敼鐘舵��
-//	 * @param baseModelDTO 鏁版嵁浼犺緭瀵硅薄
-//	 * @return 鎵ц缁撴灉
-//	 */
-//	@PostMapping("changeStatus")
-//	public R changeStatus(BaseModelDTO baseModelDTO) {
-//		engineService.changeStatus(baseModelDTO);
-//		return R.success("鎿嶄綔鎴愬姛锛�");
-//	}
-//
-//
-//	/**
-//	 * 鐢宠缂栫爜淇濆瓨
-//	 * @param orderDTO 缂栫爜鐢宠鐩稿叧鐨勪俊鎭紝闇�瑕佹湁灞炴�у拰鐮佹鐩稿叧鐨勪俊鎭�
-//	 * @return 鎵ц缁撴灉
-//	 */
-//	@PostMapping("/addSaveCode")
-//	@VciBusinessLog(operateName = "鐢宠鍗曚釜缂栫爜")
-//	public R addSaveCode(@RequestBody CodeOrderDTO orderDTO){
-//		return R.success(engineService.addSaveCode(orderDTO));
-//	}
-//
-//
-//	/**
-//	 * 浣跨敤妯℃澘鐨勪富閿幏鍙栬〃鍗曠殑瀹氫箟
-//	 * @param templateOid 妯℃澘鐨勪富閿�
-//	 * @param codeClassifyOid 浣跨敤妯℃澘鐨勫垎绫讳富閿�
-//	 * @return UI鐩稿叧鐨勪俊鎭紙浠呭寘鍚〃鍗曪級
-//	 */
-//	@GetMapping("/getFormDefineByTemplateOid")
-//	public MdmUIInfoVO getFormDefineByTemplateOid(String templateOid, String codeClassifyOid){
-//		return engineService.getFormDefineByTemplateOid(templateOid,codeClassifyOid);
-//	}
-//
-//	/**
-//	 * 鐩镐技椤规煡璇�
-//	 * @param orderDTO 缂栫爜鐨勭浉鍏充俊鎭�
-//	 * @return 鏁版嵁鍒楄〃
-//	 */
-//	@PostMapping("/resembleQuery")
-//	public DataGrid<Map<String,String>> resembleQuery(@RequestBody CodeOrderDTO orderDTO){
-//		return engineService.resembleQuery(orderDTO);
-//	}
-//
-//	/**
-//	 * 淇敼鍗曟潯涓婚搴撶殑鏁版嵁
-//	 * @param orderDTO 缂栫爜鐢宠鐩稿叧鐨勪俊鎭紝涓嶉渶瑕佺爜娈电殑淇℃伅
-//	 * @return 鎵ц缁撴灉
-//	 */
-//	@PutMapping("/editSaveCode")
-//	@VciBusinessLog(operateName = "淇敼缂栫爜鏁版嵁")
-//	public R editSaveCode(@RequestBody CodeOrderDTO orderDTO){
-//		engineService.editSaveCode(orderDTO);
-//		return  R.success("淇敼鎴愬姛锛�");
-//	}
 
+	/**
+	 * 鏃ュ織
+	 */
+	private Logger logger = LoggerFactory.getLogger(getClass());
+	/**
+	 * 涓绘暟鎹紩鎿庢湇鍔�
+	 */
+	@Autowired
+	private MdmEngineService engineService;
+	/**
+	 * 涓绘暟鎹鍏ュ鍑烘湇鍔�
+	 */
+	@Autowired
+	private MdmIOService mdmIOService;
+	/**
+	 * 鏃ュ織淇濆瓨宸ュ叿绫�
+	 */
+	@Autowired
+	private SaveLogUtil saveLogUtil;
+
+	/**
+	 * 涓嬭浇鎵归噺鐢宠鐨勫鍏ユā鏉�
+	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @param response 鍝嶅簲瀵硅薄
+	 * @throws IOException 鎶涘嚭寮傚父
+	 */
+	@GetMapping("/downloadImportExcel")
+	@VciBusinessLog(operateName = "涓嬭浇鎵归噺鐢宠缂栫爜鐨勫鍏ユā鏉�")
+	public void downloadImportExcel(String codeClassifyOid, HttpServletResponse response) throws IOException{
+		String excelName = mdmIOService.createImportExcel(codeClassifyOid,false);
+		try {
+			ControllerUtil.writeFileToResponse(response,excelName);
+		} catch (Throwable e) {
+			//濡傛灉鍑洪敊,鎶婇敊璇俊鎭啓鍒皌ext
+			String msg = LangBaseUtil.getErrorMsg(e);
+			if(StringUtils.isBlank(msg)){
+				msg = "鏈煡閿欒";
+			}
+			ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null);
+		}
+	}
+
+	/**
+	 * 涓嬭浇鎵归噺鐢宠鐨勫鍏ユā鏉�
+	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @param response 鍝嶅簲瀵硅薄
+	 * @throws IOException 鎶涘嚭寮傚父
+	 */
+	@GetMapping("/downloadExcelBatchEdit")
+	@VciBusinessLog(operateName = "涓嬭浇鎵归噺鐢宠缂栫爜鐨勫鍏ユā鏉�")
+	public void downloadImportExcelBatchEdit(String codeClassifyOid, HttpServletResponse response) throws IOException{
+		String excelName = mdmIOService.downloadImportExcelBatchEdit(codeClassifyOid);
+		try {
+			ControllerUtil.writeFileToResponse(response,excelName);
+		} catch (Throwable e) {
+			//濡傛灉鍑洪敊,鎶婇敊璇俊鎭啓鍒皌ext
+			String msg = LangBaseUtil.getErrorMsg(e);
+			if(StringUtils.isBlank(msg)){
+				msg = "鏈煡閿欒";
+			}
+			ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null);
+		}
+	}
+
+	/**
+	 * 瀵煎叆鎵归噺缂栬緫鏁版嵁
+	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @param classifyAttr 鍒嗙被璺緞浣跨敤鐨勫睘鎬�
+	 * @param file 鏂囦欢鐨勫唴瀹�
+	 */
+	@VciBusinessLog(operateName = "瀵煎叆鎵归噺缂栬緫鏁版嵁")
+	@PostMapping("/batchImportEdit")
+	public R batchImportEdit(String codeClassifyOid, String classifyAttr,MultipartFile file,HttpServletResponse response) throws Throwable {
+		String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + file.getOriginalFilename();
+		File file1 = new File(excelFileName);
+		try {
+			file.transferTo(new File(excelFileName));
+			CodeImProtRusultVO codeImProtRusultVO =mdmIOService.batchImportEdit(codeClassifyOid, classifyAttr,file1);
+			if(StringUtils.isNotBlank(codeImProtRusultVO.getFilePath())||StringUtils.isNotBlank(codeImProtRusultVO.getRedisUuid())){
+				//鏀惧埌map閲�
+				R result = R.fail("瀵煎叆澶辫触");
+				if(StringUtils.isNotBlank(codeImProtRusultVO.getFilePath())) {
+					String filedUUid = ControllerUtil.putErrorFile(codeImProtRusultVO.getFilePath());
+					codeImProtRusultVO.setFileOid(filedUUid);
+				}
+				result.setData(codeImProtRusultVO);
+				return result;
+			}else {
+				return R.success("鎿嶄綔鎴愬姛锛�");
+			}
+		}catch (Throwable e) {
+			logger.error("瀵煎叆閿欒",e);
+			String errorFile = LocalFileUtil.getDefaultTempFolder() + File.separator + "閿欒.txt";
+			LocalFileUtil.writeContentToFile(LangBaseUtil.getErrorMsg(e),errorFile);
+			String uuid=ControllerUtil.putErrorFile(errorFile);
+			CodeImProtRusultVO codeImProtRusultVO =new CodeImProtRusultVO();
+			codeImProtRusultVO.setRedisUuid("");
+			codeImProtRusultVO.setFileOid(uuid);
+			codeImProtRusultVO.setFilePath(errorFile);
+			R r = R.fail("瀵煎叆澶辫触");
+			r.setData(codeImProtRusultVO);
+			return r;
+		}finally {
+			file1.delete();
+		}
+	}
+
+	/**
+	 * 涓嬭浇鎵归噺鐢宠鐨勫鍏ユā鏉�
+	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @param response 鍝嶅簲瀵硅薄
+	 * @throws IOException 鎶涘嚭寮傚父
+	 */
+	@GetMapping("/downloadTopImportExcel")
+	@VciBusinessLog(operateName = "涓嬭浇鎵归噺鐢宠缂栫爜鐨勫鍏ユā鏉�")
+	public void downloadTopImportExcel(String codeClassifyOid,HttpServletResponse response) throws IOException{
+		String excelName = mdmIOService.downloadTopImportExcel(codeClassifyOid);
+		try {
+			ControllerUtil.writeFileToResponse(response,excelName);
+		} catch (Throwable e) {
+			//濡傛灉鍑洪敊,鎶婇敊璇俊鎭啓鍒皌ext
+			String msg = LangBaseUtil.getErrorMsg(e);
+			if(StringUtils.isBlank(msg)){
+				msg = "鏈煡閿欒";
+			}
+			ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null);
+		}
+	}
+
+	/**
+	 * 瀵煎嚭涓婚搴撶殑鏁版嵁
+	 * @param exportAttrDTO 瀵煎嚭鐨勭浉鍏抽厤缃�
+	 */
+	@VciBusinessLog(operateName = "瀵煎嚭涓婚搴撶殑鏁版嵁")
+	@PostMapping("/exportCode")
+	public void exportCode(CodeExportAttrDTO exportAttrDTO, HttpServletResponse response) throws IOException {
+		try {
+			String excelName = mdmIOService.exportCode(exportAttrDTO);
+			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 codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @param response 鍝嶅簲瀵硅薄
+	 * @throws IOException 鎶涘嚭寮傚父
+	 */
+	@GetMapping("/downloadImportExcelHistory")
+	@VciBusinessLog(operateName = "涓嬭浇鍘嗗彶鏁版嵁瀵煎叆妯℃澘")
+	public void downloadImportExcelHistory(String codeClassifyOid,HttpServletResponse response) throws IOException{
+		String excelName = mdmIOService.createImportExcel(codeClassifyOid,true);
+		//String excelName = mdmIOService.downloadTopImportExcel(codeClassifyOid);
+		try {
+			ControllerUtil.writeFileToResponse(response,excelName);
+		} catch (Throwable e) {
+			//濡傛灉鍑洪敊,鎶婇敊璇俊鎭啓鍒皌ext
+			String msg = LangBaseUtil.getErrorMsg(e);
+			if(StringUtils.isBlank(msg)){
+				msg = "鏈煡閿欒";
+			}
+			ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null);
+		}
+	}
+
+	/**
+	 * 鎵归噺鐢宠缂栫爜鐨勪俊鎭紙褰撳墠鍒嗙被涓婃壒閲忕敵璇凤級
+	 * @param secDTOList 鐢宠缂栫爜鐨勪俊鎭紝蹇呴』鍖呭惈鐮佹鍜屽垎绫讳富閿殑淇℃伅
+	 * @param file 鏂囦欢鐨勫唴瀹�
+	 */
+	@VciBusinessLog(operateName = "鎵归噺鐢宠缂栫爜鐨勪俊鎭�")
+	@PostMapping("/batchImportCode")
+	public R batchImportCode(String secDTOList, String codeClassifyOid, MultipartFile file, HttpServletResponse response) throws Throwable {
+		CodeOrderDTO orderDTO = new CodeOrderDTO();
+		orderDTO.setCodeClassifyOid(codeClassifyOid);
+		if(StringUtils.isNotBlank(secDTOList)){
+			List<CodeOrderSecDTO> secDTOS = JSONObject.parseArray(secDTOList, CodeOrderSecDTO.class);
+			orderDTO.setSecDTOList(secDTOS);
+		}
+		String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + LocalFileUtil.getFileNameForIE(file.getOriginalFilename());
+		File file1 = new File(excelFileName);
+		try {
+			file.transferTo(new File(excelFileName));
+			CodeImProtRusultVO codeImProtRusultVO = mdmIOService.batchImportCode(orderDTO,file1);
+			if(StringUtils.isNotBlank(codeImProtRusultVO.getFilePath())||StringUtils.isNotBlank(codeImProtRusultVO.getRedisUuid())){
+				//鏀惧埌map閲�
+				R result = R.fail("瀵煎叆澶辫触");
+				if(StringUtils.isNotBlank(codeImProtRusultVO.getFilePath())) {
+					String filedUUid = ControllerUtil.putErrorFile(codeImProtRusultVO.getFilePath());
+					codeImProtRusultVO.setFileOid(filedUUid);
+				}
+				result.setData(codeImProtRusultVO);
+				return result;
+			}else {
+				return R.success("鎿嶄綔鎴愬姛锛�");
+			}
+		}catch (Throwable e) {
+			logger.error("瀵煎叆閿欒",e);
+			String errorFile = LocalFileUtil.getDefaultTempFolder() + File.separator + "閿欒.txt";
+			LocalFileUtil.writeContentToFile( LangBaseUtil.getErrorMsg(e),errorFile);
+			String uuid=ControllerUtil.putErrorFile(errorFile);
+			CodeImProtRusultVO codeImProtRusultVO =new CodeImProtRusultVO();
+			codeImProtRusultVO.setRedisUuid("");
+			codeImProtRusultVO.setFileOid(uuid);
+			codeImProtRusultVO.setFilePath(errorFile);
+			R result = R.fail("瀵煎叆澶辫触");
+			result.setData(codeImProtRusultVO);
+//			result.setObj(codeImProtRusultVO);
+			return result;
+		}finally {
+			file1.delete();
+		}
+//		return null;
+	}
+
+	/**
+	 * 瀵煎叆鍘嗗彶鏁版嵁
+	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @param classifyAttr 鍒嗙被璺緞浣跨敤鐨勫睘鎬�
+	 * @param file 鏂囦欢鐨勫唴瀹�
+	 */
+	@VciBusinessLog(operateName = "瀵煎叆缂栫爜鐨勫巻鍙叉暟鎹�")
+	@PostMapping("/batchImportHistoryData")
+	public R batchImportHistoryData(String codeClassifyOid, String classifyAttr,MultipartFile file,HttpServletResponse response) throws Throwable {
+		String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + file.getOriginalFilename();
+		File file1 = new File(excelFileName);
+		try {
+			file.transferTo(new File(excelFileName));
+			CodeImProtRusultVO codeImProtRusultVO =mdmIOService.batchImportHistoryData(codeClassifyOid, classifyAttr,file1);
+			if(StringUtils.isNotBlank(codeImProtRusultVO.getFilePath())||StringUtils.isNotBlank(codeImProtRusultVO.getRedisUuid())){
+				//鏀惧埌map閲�
+				R result = R.fail("瀵煎叆澶辫触");
+				if(StringUtils.isNotBlank(codeImProtRusultVO.getFilePath())) {
+					String filedUUid = ControllerUtil.putErrorFile(codeImProtRusultVO.getFilePath());
+					codeImProtRusultVO.setFileOid(filedUUid);
+				}
+				result.setData(codeImProtRusultVO);
+				return result;
+			}else {
+				return R.success("鎿嶄綔鎴愬姛锛�");
+			}
+		}catch (Throwable e) {
+			logger.error("瀵煎叆閿欒",e);
+			String errorFile = LocalFileUtil.getDefaultTempFolder() + File.separator + "閿欒.txt";
+			LocalFileUtil.writeContentToFile(LangBaseUtil.getErrorMsg(e),errorFile);
+			String uuid=ControllerUtil.putErrorFile(errorFile);
+			CodeImProtRusultVO codeImProtRusultVO =new CodeImProtRusultVO();
+			codeImProtRusultVO.setRedisUuid("");
+			codeImProtRusultVO.setFileOid(uuid);
+			codeImProtRusultVO.setFilePath(errorFile);
+			R r = R.fail("瀵煎叆澶辫触");
+			r.setData(codeImProtRusultVO);
+			return r;
+		}finally {
+			file1.delete();
+		}
+	}
+
+	/**
+	 * 瀵煎叆鍘嗗彶鏁版嵁(浠庨《灞傚垎绫诲鐨�)
+	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @param classifyAttr 鍒嗙被璺緞浣跨敤鐨勫睘鎬�
+	 * @param file 鏂囦欢鐨勫唴瀹�
+	 */
+	@VciBusinessLog(operateName = "鎵归噺鐢宠缂栫爜鐨勪俊鎭�")
+	@PostMapping("/batchTopImportCode")
+	public R batchTopImportCode(String codeClassifyOid, String classifyAttr,MultipartFile file,HttpServletResponse response) throws Throwable {
+		String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + file.getOriginalFilename();
+		File file1 = new File(excelFileName);
+		try {
+			file.transferTo(new File(excelFileName));
+			CodeImProtRusultVO codeImProtRusultVO =mdmIOService.batchTopImportCode(codeClassifyOid, classifyAttr,file1);
+			if(StringUtils.isNotBlank(codeImProtRusultVO.getFilePath())||StringUtils.isNotBlank(codeImProtRusultVO.getRedisUuid())){
+				//鏀惧埌map閲�
+				R r = R.fail("瀵煎叆澶辫触锛�");
+				if(StringUtils.isNotBlank(codeImProtRusultVO.getFilePath())) {
+					String filedUUid = ControllerUtil.putErrorFile(codeImProtRusultVO.getFilePath());
+					codeImProtRusultVO.setFileOid(filedUUid);
+					r = R.success("瀵煎叆鎴愬姛锛�");
+				}
+				r.setData(codeImProtRusultVO);
+				return r;
+			}else {
+				return R.success("瀵煎叆鎴愬姛锛�");
+			}
+		}catch (Throwable e) {
+			e.printStackTrace();
+			logger.error("瀵煎叆閿欒",e);
+			String errorFile = LocalFileUtil.getDefaultTempFolder() + File.separator + "閿欒.txt";
+			LocalFileUtil.writeContentToFile(LangBaseUtil.getErrorMsg(e),errorFile);
+			String uuid=ControllerUtil.putErrorFile(errorFile);
+			CodeImProtRusultVO codeImProtRusultVO =new CodeImProtRusultVO();
+			codeImProtRusultVO.setRedisUuid("");
+			codeImProtRusultVO.setFileOid(uuid);
+			codeImProtRusultVO.setFilePath(errorFile);
+
+			R r = R.fail("瀵煎叆澶辫触");
+			r.setData(codeImProtRusultVO);
+
+			return r;
+		}finally {
+			file1.delete();
+		}
+	}
+
+	/**
+	 * 淇敼鐘舵��
+	 * @param baseModelDTO 鏁版嵁浼犺緭瀵硅薄
+	 * @return 鎵ц缁撴灉
+	 */
+	@PostMapping("/changeStatus")
+	public R changeStatus(@RequestBody BaseModelDTO baseModelDTO) {
+		engineService.changeStatus(baseModelDTO);
+		return R.success("鎿嶄綔鎴愬姛锛�");
+	}
+
+	/**
+	 * 鐢宠缂栫爜淇濆瓨
+	 * @param orderDTO 缂栫爜鐢宠鐩稿叧鐨勪俊鎭紝闇�瑕佹湁灞炴�у拰鐮佹鐩稿叧鐨勪俊鎭�
+	 * @return 鎵ц缁撴灉
+	 */
+	@PostMapping("/addSaveCode")
+	@VciBusinessLog(operateName = "鐢宠鍗曚釜缂栫爜")
+	public R addSaveCode(@RequestBody CodeOrderDTO orderDTO) throws Exception {
+		String s = null;
+		try {
+			s = engineService.addSaveCode(orderDTO);
+			saveLogUtil.operateLog("缂栫爜鐢宠",false,orderDTO.toString());
+		}catch (Exception e){
+			saveLogUtil.operateLog("缂栫爜鐢宠",true,e.toString());
+			throw e;
+		}
+		return R.success(s);
+	}
+
+	/**
+	 * 浣跨敤妯℃澘鐨勪富閿幏鍙栬〃鍗曠殑瀹氫箟
+	 * @param templateOid 妯℃澘鐨勪富閿�
+	 * @param codeClassifyOid 浣跨敤妯℃澘鐨勫垎绫讳富閿�
+	 * @return UI鐩稿叧鐨勪俊鎭紙浠呭寘鍚〃鍗曪級
+	 */
+	@GetMapping("/getFormDefineByTemplateOid")
+	public MdmUIInfoVO getFormDefineByTemplateOid(String templateOid, String codeClassifyOid){
+		return engineService.getFormDefineByTemplateOid(templateOid,codeClassifyOid);
+	}
+
+	/**
+	 * 鐩镐技椤规煡璇�
+	 * @param orderDTO 缂栫爜鐨勭浉鍏充俊鎭�
+	 * @return 鏁版嵁鍒楄〃
+	 */
+	@PostMapping("/resembleQuery")
+	public DataGrid<Map<String,String>> resembleQuery(@RequestBody CodeOrderDTO orderDTO){
+		return engineService.resembleQuery(orderDTO);
+	}
+
+	/**
+	 * 淇敼鍗曟潯涓婚搴撶殑鏁版嵁
+	 * @param orderDTO 缂栫爜鐢宠鐩稿叧鐨勪俊鎭紝涓嶉渶瑕佺爜娈电殑淇℃伅
+	 * @return 鎵ц缁撴灉
+	 */
+	@PutMapping("/editSaveCode")
+	@VciBusinessLog(operateName = "淇敼缂栫爜鏁版嵁")
+	public R editSaveCode(@RequestBody CodeOrderDTO orderDTO){
+		engineService.editSaveCode(orderDTO);
+		return  R.success("淇敼鎴愬姛锛�");
+	}
+
+	/**
+	 * 鎵归噺鍒犻櫎涓婚搴撶殑鏁版嵁
+	 * @param deleteBatchDTO 鍒犻櫎鐨勪俊鎭紝蹇呴』瑕佹湁涓婚敭鍜屽垎绫荤殑涓婚敭
+	 * @return 鎵ц缁撴灉
+	 */
+	@VciBusinessLog(operateName = "鎵归噺鍒犻櫎涓婚搴撶殑鏁版嵁")
+	@DeleteMapping("/deleteCode")
+	public R deleteCode(@RequestBody CodeDeleteBatchDTO deleteBatchDTO){
+		engineService.deleteCode(deleteBatchDTO);
+		return R.success("鍒犻櫎鎴愬姛锛�");
+	}
+
+	/**
+	 * 浣跨敤鍒嗙被鍜岄樁娈电殑缂栧彿锛岃幏鍙栧寘鍚殑灞炴��
+	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @param phase 闃舵鐨勫悕绉�
+	 * @return 鍖呭惈鐨勫睘鎬э紝璇疯幏鍙杘bj灞炴��
+	 */
+	@VciBusinessLog(operateName = "鑾峰彇闃舵鐨勫睘鎬т俊鎭�")
+	@GetMapping("/listPhaseAttrByClassifyOid")
+	public R listPhaseAttrByClassifyOid(String codeClassifyOid,String phase){
+		return R.data(engineService.listPhaseAttrByClassifyOid(codeClassifyOid,phase));
+	}
+
+	/**
+	 * 鑾峰彇褰撳墠鍒嗙被鎵�鍦ㄨ矾寰勪笂鐨勫垎绫诲睘鎬�
+	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @return 鍖呭惈浜嗗綋鍓嶅垎绫荤殑涓婄骇鍜屾墍鏈夊眰绾х殑涓嬬骇
+	 */
+	@GetMapping("/hasSelfClassifyTree")
+	public List<Tree> hasSelfClassifyTree(String codeClassifyOid){
+		return engineService.hasSelfClassifyTree(codeClassifyOid);
+	}
+
+	/**
+	 * 浣跨敤鍒嗙被鑾峰彇瀵瑰簲鐨勬暟鎹�
+	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @param templateOid 妯℃澘鐨勪富閿�
+	 * @param queryObject 鍩虹鏌ヨ瀵硅薄
+	 * @return 鏁版嵁鐨勪俊鎭紙鍖呭惈涓嬬骇鍒嗙被锛�
+	 */
+	@GetMapping("/gridTableDataByClassifyOid")
+	@VciBusinessLog(operateName = "鏌ヨ涓婚搴撳垎绫荤殑鏁版嵁")
+	public DataGrid<Map<String,String>> gridTableDataByClassifyOid(String codeClassifyOid, String templateOid, BaseQueryObject queryObject){
+		//TODO鍚庣画鍙互瀹氫箟鏌ヨ妯℃澘鏉ユ煡璇�
+		return engineService.gridTableDataByClassifyOid(codeClassifyOid,templateOid,queryObject.getConditionMap(),queryObject.getPageHelper());
+	}
+
+	/**
+	 * 鑾峰彇鍒嗙被瀵硅薄
+	 * @param redisOid
+	 * @return
+	 */
+	@GetMapping("/gridclassifys")
+	public R gridclassifys(String redisOid){
+		List<CodeImportTemplateVO> codeImportTemplateVOs=mdmIOService.gridclassifys(redisOid);
+		return R.data(codeImportTemplateVOs);
+	}
+
+	/**
+	 * 浠巖edis缂撳瓨閲岃幏鍙栧埌瀵煎叆姝g‘鐨勬暟鎹�
+	 * @param codeClassifyOid
+	 * @param redisOid
+	 * @return
+	 */
+	@GetMapping("/gridValidata")
+	public DataGrid<Map<String,String>> gridValidata(String codeClassifyOid,String redisOid){
+		return mdmIOService.gridDatas(codeClassifyOid,redisOid);
+	}
+
+	/**
+	 * 浠巖edis缂撳瓨閲岃幏鍙栧埌瀵煎叆琛岀浉浼奸」鐨勬暟鎹�
+	 * @param dataOid
+	 * @param redisOid
+	 * @return
+	 */
+	@GetMapping("/gridRowResemble")
+	public DataGrid<Map<String,String>> gridRowResemble(String dataOid,String redisOid){
+		return mdmIOService.gridRowResemble(dataOid,redisOid);
+	}
+
+	/**
+	 * 浠巖edis缂撳瓨閲岃幏鍙栧埌瀵煎叆鍏锋湁鐩镐技椤圭殑鏁版嵁
+	 * @param codeClassifyOid
+	 * @param redisOid
+	 * @return
+	 */
+	@GetMapping("/gridResemble")
+	public DataGrid<Map<String,String>> gridResemble(String codeClassifyOid,String redisOid){
+		return mdmIOService.gridDatas(codeClassifyOid,redisOid);
+	}
+
+	/**
+	 * 瀵煎叆鏁版嵁
+	 * @param codeImprotSaveDatVO//鏁版嵁瀵硅薄
+	 * @return
+	 */
+	@PostMapping("/batchImportData")
+	public R batchImportData(@RequestBody CodeImprotParmaDatVO codeImprotSaveDatVO){
+		return mdmIOService.batchImportData(codeImprotSaveDatVO.getCodeImprotSaveDatVOList(),codeImprotSaveDatVO.getClassifyAttr(),codeImprotSaveDatVO.getImprot());
+	}
+
+	/**
+	 * 鏍规嵁鏁版嵁oid浠庣紦瀛樹腑绉婚櫎鏁版嵁
+	 * @param redisOid redisid
+	 * @param codeClassifyOid 瀛樺偍瑙勫垯鐨刼id
+	 * @param dataOids  鎵�闇�鍒犻櫎鐨勬暟鎹�
+	 * @return
+	 */
+	@GetMapping("/deleteDatas")
+	public  R deleteDatas(String redisOid,String codeClassifyOid,String dataOids){
+		return mdmIOService.deleteDatas(redisOid,codeClassifyOid,dataOids);
+	}
+
+	/**
+	 * 鎵归噺淇濆瓨娴佺▼鎵ц椤甸潰淇敼鐨勫唴瀹�
+	 * @param orderDTOList 缂栫爜鐩稿叧鐨勪俊鎭紝涓嶉渶瑕佺爜娈电殑淇℃伅
+	 * @return 鎵ц缁撴灉
+	 */
+	@PostMapping("/batchUpdateCode")
+	public R batchUpdateCode(@RequestBody List<CodeOrderDTO> orderDTOList){
+		return engineService.batchUpdateCode(orderDTOList);
+	}
+
+	/**
+	 * 鏍囪娴佺▼涓笟鍔℃暟鎹槸鍚﹂�氳繃
+	 * @param oid 涓氬姟鏁版嵁涓婚敭
+	 * @param btmName 涓氬姟绫诲瀷
+	 * @param pass 鏄惁閫氳繃 true-閫氳繃;false-涓嶉�氳繃
+	 * @return 鎵ц缁撴灉
+	 */
+	@PostMapping("/markPass")
+	public R markDataPassing(String oid,String btmName,Boolean pass){
+		return engineService.markDataPassing(oid,btmName,pass);
+	}
+
+	/**
+	 * 缁勫悎瑙勫垯鐨勯瑙堢殑鍐呭
+	 * @param orderDTO 鐢宠缂栫爜淇℃伅
+	 * @return 鍏紡杞崲鍚庣殑鍊�
+	 */
+	@PostMapping("/previewCompRule")
+	public R previewCompRule(@RequestBody CodeOrderDTO orderDTO){
+		return R.data(engineService.previewCompRule(orderDTO));
+	}
+
+	/**
+	 * 鍒嗙被娉ㄥ叆鐨勫唴瀹�
+	 * @param orderDTO 鐢宠缂栫爜鐨勪俊鎭紝鍖呭惈鍒嗙被鐨勪富閿拰妯℃澘鐨勪富閿�
+	 * @return 鎵ц缁撴灉
+	 */
+	@PostMapping("/previewClassify")
+	public R previewClassify(@RequestBody CodeOrderDTO orderDTO){
+		VciBaseUtil.alertNotNull(orderDTO,"鐢宠鐨勪俊鎭�",orderDTO.getCodeClassifyOid(),"鍒嗙被涓婚敭",orderDTO.getTemplateOid(),"妯℃澘鐨勪富閿�");
+		Map<String,String> classifyMap = engineService.previewClassify(orderDTO.getCodeClassifyOid(),orderDTO.getTemplateOid());
+		return R.data(classifyMap);
+	}
+
+	/**
+	 * 涓嬭浇閿欒鐨勬枃浠朵俊鎭�
+	 * @param uuid 鍞竴鏍囪瘑
+	 * @param response 鍝嶅簲瀵硅薄
+	 * @throws IOException 鎶涘嚭寮傚父
+	 */
+	@GetMapping("/downloadErrorFile")
+	public void downloadErrorFile(String uuid,HttpServletResponse response) throws IOException {
+		ControllerUtil.downloadErrorFile(response,uuid);
+	}
+
+	/**
+	 * 鍗囩増缂栫爜鏁版嵁
+	 * @param orderDTO 缂栫爜鐩稿叧鐨勪俊鎭紝涓嶉渶瑕佺爜娈电殑淇℃伅
+	 * @return 鎵ц缁撴灉
+	 */
+	@VciBusinessLog(operateName = "鍗囩増缂栫爜鏁版嵁")
+	@PostMapping("/upSaveCode")
+	public R upSaveCode(@RequestBody CodeOrderDTO orderDTO){
+		engineService.upSaveCode(orderDTO);
+		return R.success("鎿嶄綔鎴愬姛锛�");
+	}
+
+	/**
+	 * 浣跨敤鐮佹鐨勪富閿幏鍙栧垎绫荤殑鐮佸�煎唴瀹�
+	 * @param classifySecOid 鐮佹鐨勪富閿�
+	 * @param parentClassifyValueOid 涓婄骇鍒嗙被鐨勪富閿�
+	 * @return 鍒嗙被鐮佸�肩殑鍐呭
+	 */
+	@GetMapping("/listCodeClassifyValueBySecOid")
+	public IPage<CodeClassifyValueVO> listCodeClassifyValueBySecOid(String classifySecOid, String parentClassifyValueOid){
+		List<CodeClassifyValueVO> valueVOS = engineService.listCodeClassifyValueBySecOid(classifySecOid, parentClassifyValueOid);
+		IPage<CodeClassifyValueVO> valueVOIPage = new Page<>();
+		valueVOIPage.setRecords(valueVOS);
+		valueVOIPage.setTotal(valueVOS==null?0:valueVOS.size());
+		return valueVOIPage;
+	}
+
+	/**
+	 * 浣跨敤鍒嗙被鐨勪富閿潵鑾峰彇缂栫爜瑙勫垯
+	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @return 缂栫爜瑙勫垯鐨勫唴瀹�
+	 */
+	@GetMapping("/getCodeRuleByClassifyOid")
+	//	@VciUnCheckRight
+	public R<CodeRuleVO> getCodeRuleByClassifyOid(String codeClassifyOid){
+		return R.data(engineService.getCodeRuleByClassifyOid(codeClassifyOid));
+	}
+
+	/**
+	 * 浣跨敤涓婚敭鑾峰彇鏁版嵁
+	 * @param oid 鏁版嵁涓婚敭
+	 * @param templateOid 妯℃澘鐨勪富閿�
+	 * @return 鏁版嵁鍐呭
+	 */
+	@GetMapping("/getDataByOid")
+	public R<List<Map<String,String>>> getDataByOid(String oid,String templateOid){
+		return engineService.getDataByOid(oid,templateOid);
+	}
+
+	/**
+	 * 浣跨敤鍒嗙被妯℃澘涓婚敭+妯℃澘娴佺▼鍚嶇О鑾峰彇鍦ㄥ鎵归〉闈笂宸︿晶鏄剧ず鐨勫睘鎬�
+	 * @param templateOid 鍒嗙被妯℃澘鐨勪富閿�
+	 * @param executionId 娴佺▼鎵цid
+	 * @param processUse 娴佺▼鐨勭敤閫�
+	 * @return 鏍戣妭鐐规樉绀虹殑鍚嶇О
+	 */
+	@GetMapping("/getFieldByProcessTemplate")
+	public List<String> getFieldByProcessTemplate(String templateOid,String executionId,String processUse){
+		return engineService.getFieldByProcessTemplate(templateOid,executionId,processUse);
+	}
+
+	/**
+	 * 浣跨敤鍒嗙被鐨勪富閿幏鍙栦笟鍔℃暟鎹�
+	 * @param btmType 涓氬姟绫诲瀷
+	 * @param queryObject 鏌ヨ瀵硅薄
+	 * @return 琛ㄦ牸鐨勬樉绀哄璞″��
+	 */
+	@GetMapping("/getTableDataByOids")
+	public DataGrid<Map<String,String>> getTableDataByOids(String btmType,BaseQueryObject queryObject){
+		return engineService.getTableDataByExecutionId(btmType,queryObject);
+	}
+
+	/**
+	 * 浣跨敤鍒嗙被鐨勪富閿幏鍙栬〃鏍肩殑瀹氫箟
+	 * @param codeClassifyOid 鍒嗙被涓婚敭
+	 * @param phase 闃舵鐨勫悕绉�
+	 * @return UI鐩稿叧鐨勪俊鎭紙浠呭寘鍚〃鍗�)
+	 */
+	@GetMapping("/getTableDefineByClassifyOid")
+	public MdmUIInfoVO getTableDefineByClassifyOid(String codeClassifyOid,String phase){
+		return engineService.getTableDefineByClassifyOid_v2(codeClassifyOid,phase);
+	}
+
+	/**
+	 * 浣跨敤鍒嗙被鐨勭殑缂栧彿璺緞锛岃幏鍙栬〃鍗曠殑瀹氫箟
+	 * @param idPath 缂栧彿鐨勮矾寰�
+	 * @return UI鐩稿叧鐨勪俊鎭紙浠呭寘鍚〃鍗�)
+	 */
+	//	@VciUnCheckRight
+	@GetMapping("/getFormDefineByClassifyIdPath")
+	public MdmUIInfoVO getFormDefineByClassifyIdPath(String idPath){
+		return engineService.getFormDefineByClassifyIdPath(idPath);
+	}
+
+	/**
+	 * 浣跨敤鍒嗙被鐨勪富閿幏鍙栬〃鍗曠殑瀹氫箟
+	 * @param codeClassifyOid 鍒嗙被涓婚敭
+	 * @return UI鐩稿叧鐨勪俊鎭紙浠呭寘鍚〃鍗�)
+	 */
+	@GetMapping("/getFormDefineByClassifyOid")
+	public MdmUIInfoVO getFormDefineByClassifyOid(String codeClassifyOid){
+		return engineService.getFormDefineByClassifyOid(codeClassifyOid);
+	}
+
+	/**
+	 * 鏍规嵁妯℃澘鐨勪富閿幏鍙栬〃鏍肩殑瀹氫箟
+	 * @param templateOid 妯℃澘鐨勪富閿�
+	 * @return ui鐩稿叧鐨勪俊鎭紙浠呭寘鍚〃鏍硷級
+	 */
+	@GetMapping("/getTableDefineByTemplateOid")
+	public MdmUIInfoVO getTableDefineByTemplateOid(String templateOid){
+		return engineService.getTableDefineByTemplateOid(templateOid);
+	}
+
+	/**
+	 * 浣跨敤鍒嗙被鐨勭紪鍙疯矾寰勶紝鑾峰彇琛ㄦ牸鐨勭浉鍏冲畾涔�
+	 * @param codeClassifyIdPath 鍒嗙被鐨勭紪鍙疯矾寰勶紝蹇呴』鏄粠椤跺眰鑺傜偣寮�濮嬶紝xxx/yy/zz杩欐牱鐨勬牸寮�
+	 * @param functionId 鍔熻兘鐨勭紪鍙�
+	 * @return UI鐩稿叧鐨勪俊鎭紙浠呭寘鍚〃鏍�)
+	 */
+	@GetMapping("/getUIInfoByClassifyIdPath")
+	public MdmUIInfoVO getUIInfoByClassifyIdPath(String codeClassifyIdPath,String functionId){
+		return engineService.getUIInfoByClassifyIdPath(codeClassifyIdPath,functionId);
+	}
+
+	/**
+	 * 浣跨敤鍒嗙被鑾峰彇琛ㄦ牸鐨勫畾涔�
+	 * @param codeClassifyOid 鍒嗙被涓婚敭
+	 * @param functionId 鍔熻兘鐨勭紪鍙�
+	 * @return UI鐩稿叧鐨勪俊鎭紙浠呭寘鍚〃鏍硷級
+	 */
+	@GetMapping("/getUIInfoByClassifyOid")
+	public MdmUIInfoVO getUIInfoByClassifyOid(String codeClassifyOid,String functionId){
+		return engineService.getUIInfoByClassifyOid(codeClassifyOid,functionId);
+	}
+
+	/**
+	 * 浣跨敤鍒嗙被鑾峰彇琛ㄦ牸鐨勫畾涔�
+	 * @param codeClassifyOid 鍒嗙被涓婚敭
+	 * @param functionId 鍔熻兘鐨勭紪鍙�
+	 * @return UI鐩稿叧鐨勪俊鎭紙浠呭寘鍚〃鏍硷級
+	 */
+	@GetMapping("/getFlowdUIInfoByClassifyOid")
+	public MdmUIInfoVO getFlowUIInfoByClassifyOid(String codeClassifyOid,String functionId,String templateId,String taskId,String modelKey){
+		return engineService.getFlowUIInfoByClassifyOid(codeClassifyOid,functionId,templateId,taskId,modelKey);
+	}
+
+	@GetMapping("/thisistest")
+	@ResponseBody
+	public Integer thisistest(String codeClassifyOid, String functionId) throws Exception {
+//		return engineService.selectByTypeAndOid("wupin", "b1511bb3-a773-43e2-ac85-a7fde7314a0f,3e08970024835e69f6c2b2ecd90c48c3,582ff205-0dfb-43e0-8223-e772ff1851ab,db0400fe-cc90-4d9d-8da7-1edf06b1481b");
+
+		List<BaseModel> models = new ArrayList<>();
+		BaseModel baseModel = new BaseModel();
+		Map<String,String > map = new HashMap<>();
+		map.put("JZL","6789");
+		map.put("JZRXX","67891");
+		map.put("JZXZB","67892");
+		map.put("JSZGL","67893");
+		map.put("JSSXT","67894");
+		baseModel.setBtmname("djii");
+		baseModel.setCreator("fjivis");
+		baseModel.setId("vcia");
+		baseModel.setOid("0d86b1ba-9e9e-4d3d-9ae4-f862c3684e74");
+		baseModel.setCreateTime(new Date());
+		baseModel.setTs(new Date());
+		baseModel.setData(map);
+		models.add(baseModel);
+
+		BaseModel baseModel1 = new BaseModel();
+		Map<String,String > map1 = new HashMap<>();
+		map1.put("JZL","6789z");
+		map1.put("JZRXX","67891z");
+		map1.put("JZXZB","67892z");
+		map1.put("JSZGL","67893z");
+		map1.put("JSSXT","67894z");
+		baseModel1.setBtmname("djiiz");
+		baseModel1.setCreator("fjivisz");
+		baseModel1.setId("vciaz");
+		baseModel1.setTs(new Date());
+		baseModel1.setOid("4a00be07-f5a8-4a9b-88fb-d52a0d9cf546");
+		baseModel1.setCreateTime(new Date());
+		baseModel1.setData(map1);
+		models.add(baseModel1);
+
+		BaseModel baseModel2 = new BaseModel();
+		Map<String,String > map2 = new HashMap<>();
+		map2.put("JZL","67892");
+		map2.put("JZRXX","678912");
+		map2.put("JZXZB","678922");
+		map2.put("JSZGL","678932");
+		map2.put("JSSXT","678942");
+		baseModel2.setBtmname("djii2");
+		baseModel2.setCreator("fjivis2");
+		baseModel2.setTs(new Date());
+		baseModel2.setId("vcia2");
+		baseModel2.setOid("fa430ff9-f141-4dcf-8809-6f87905c1dea");
+		baseModel2.setCreateTime(new Date());
+		baseModel2.setData(map2);
+		models.add(baseModel2);
+
+		return 0;
+
+
+
+//		return engineService.updateBatchByBaseModel("wupin", models);
+//		return engineService.getUIInfoByClassifyOid(codeClassifyOid,functionId);
+	}
+
+	/**
+	 * 榛樿鐨勫弬鐓у垪琛�
+	 * @param referConfigVO 鍙傜収鐨勯厤缃俊鎭�
+	 * @return 鎵ц鐨勭粨鏋�
+	 */
+	@RequestMapping(value = "/defaultReferDataGrid",method = {RequestMethod.POST, RequestMethod.GET})
+	public IPage<BaseModelVO> defaultReferDataGrid(UIFormReferVO referConfigVO, BaseQueryObject baseQueryObject){
+		return engineService.referDataGrid(referConfigVO,baseQueryObject);
+	}
+
+	/**
+	 * 榛樿鐨勬爲褰㈠弬鐓у垪琛�
+	 * @param referConfigVO 鍙傜収鐨勯厤缃俊鎭�
+	 * @return 鎵ц鐨勭粨鏋�
+	 */
+	@GetMapping("/defaultReferTree")
+	public List<Tree> defaultReferTree(UIFormReferVO referConfigVO, TreeQueryObject queryObject){
+		return engineService.referTree(referConfigVO,queryObject);
+	}
+
+	/**
+	 * 娴佺▼涓彉鏇寸姸鎬佺殑绠�鏄撴帴鍙�
+	 * @param flowDTO 娴佺▼涓惡甯︾殑body
+	 * @return
+	 */
+	@PostMapping("/processChangeStatus")
+	public R processChangeStatus(@RequestBody FlowStatusDTO flowDTO){
+		return engineService.processChangeStatus(flowDTO);
+	}
+
+	/**
+	 * 鏍囧噯鐢宠鍜屼慨璁㈢敤
+	 * @param codeBZApplyDTO 缂栫爜鐢宠鐩稿叧鐨勪俊鎭紝闇�瑕佹湁灞炴�у拰鐮佹鐩稿叧鐨勪俊鎭�
+	 * @return 鎵ц缁撴灉
+	 */
+	@PostMapping("/addSaveBZ")
+	@VciBusinessLog(operateName = "鐢宠鍗曚釜缂栫爜")
+	public R addSaveBZ (@RequestBody CodeBZApplyDTO codeBZApplyDTO) throws Exception {
+		return R.success(engineService.addSaveBZ(codeBZApplyDTO));
+	}
+
+	/**
+	 * 涓嬭浇鎵归噺鐢宠鐨勫鍏ユā鏉�
+	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @param response 鍝嶅簲瀵硅薄
+	 * @throws IOException 鎶涘嚭寮傚父
+	 */
+	@GetMapping("/exportGroupCodeExcel")
+	@VciBusinessLog(operateName = "瀵煎嚭闆嗗洟鐮�")
+	public void exportGroupCodeExcel(String codeClassifyOid, HttpServletResponse response) throws IOException {
+		try {
+			String excelName = mdmIOService.exportGroupCodeExcel(codeClassifyOid);
+			ControllerUtil.writeFileToResponse(response,excelName);
+		} catch (Throwable e) {
+			//濡傛灉鍑洪敊,鎶婇敊璇俊鎭啓鍒皌ext
+			String msg = LangBaseUtil.getErrorMsg(e);
+			if(StringUtils.isBlank(msg)){
+				msg = "鏈煡閿欒";
+			}
+			String errorFile = LocalFileUtil.getDefaultTempFolder() + File.separator + "閿欒.txt";
+			LocalFileUtil.writeContentToFile(msg,errorFile);
+			ControllerUtil.writeFileToResponse(response,errorFile);
+		//	return R.fail(msg);
+		}
+	//	return R.status(true);
+	}
+
+	/**
+	 * 闆嗗洟鐮佸鍏�
+	 * @param codeClassifyOid
+	 * @param file
+	 * @param response
+	 * @return
+	 */
+	@PostMapping("/importGroupCode")
+	public R  importGroupCode(String codeClassifyOid,MultipartFile file,HttpServletResponse response){
+
+		String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + file.getOriginalFilename();
+		File file1 = new File(excelFileName);
+		try {
+			file.transferTo(new File(excelFileName));
+			String excelName=mdmIOService.importGroupCode(codeClassifyOid,file1);
+			if(StringUtils.isNotBlank(excelName)) {
+				ControllerUtil.writeFileToResponse(response,excelName);
+				return	R.fail("闆嗗洟鐮佸鍏ュ嚭鐜伴棶棰橈紝璇锋煡鐪嬫枃浠�");
+			}else{
+				return R.status(true);
+			}
+		}catch (Throwable e) {
+			logger.error("瀵煎叆閿欒",e);
+			String errorFile = LocalFileUtil.getDefaultTempFolder() + File.separator + "閿欒.txt";
+			LocalFileUtil.writeContentToFile(LangBaseUtil.getErrorMsg(e),errorFile);
+			String uuid=ControllerUtil.putErrorFile(errorFile);
+			CodeImProtRusultVO codeImProtRusultVO =new CodeImProtRusultVO();
+			codeImProtRusultVO.setRedisUuid("");
+			codeImProtRusultVO.setFileOid(uuid);
+			codeImProtRusultVO.setFilePath(errorFile);
+			R r = R.fail("闆嗗洟鐮佸鍏ュけ璐�");
+			r.setData(codeImProtRusultVO);
+			return r;
+		}finally {
+			file1.delete();
+		}
+
+	}
+
+	/**
+	 * 鑾峰彇缁熻鍒嗘瀽鏁版嵁
+	 * @param btmNames 涓氬姟绫诲瀷
+	 * @return
+	 */
+	@GetMapping("/getStatisticAnalysis")
+	@VciBusinessLog(operateName = "鑾峰彇缁熻鍒嗘瀽鏁版嵁")
+	public R getStatisticAnalysis(String btmNames) {
+		return engineService.getStatisticAnalysis(btmNames);
+	}
 }

--
Gitblit v1.9.3