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 |  212 ++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 186 insertions(+), 26 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 37533a7..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,15 +1,11 @@
 package com.vci.ubcs.code.controller;
 
-
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.nacos.common.utils.StringUtils;
 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.CodeDeleteBatchDTO;
-import com.vci.ubcs.code.dto.CodeExportAttrDTO;
-import com.vci.ubcs.code.dto.CodeOrderDTO;
-import com.vci.ubcs.code.dto.CodeOrderSecDTO;
+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;
@@ -19,6 +15,7 @@
 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.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;
@@ -35,11 +32,9 @@
 import java.io.File;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
-import java.rmi.ServerException;
 import java.util.*;
 
 @RestController
-//@AllArgsConstructor
 @RequestMapping("/mdmEngineController")
 @Api(value = "缂栫爜鏁版嵁绠$悊", tags = "缂栫爜鏁版嵁绠$悊")
 public class MdmEngineController {
@@ -58,7 +53,11 @@
 	 */
 	@Autowired
 	private MdmIOService mdmIOService;
-
+	/**
+	 * 鏃ュ織淇濆瓨宸ュ叿绫�
+	 */
+	@Autowired
+	private SaveLogUtil saveLogUtil;
 
 	/**
 	 * 涓嬭浇鎵归噺鐢宠鐨勫鍏ユā鏉�
@@ -81,6 +80,72 @@
 			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 鍒嗙被鐨勪富閿�
@@ -101,8 +166,6 @@
 			}
 			ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null);
 		}
-
-
 	}
 
 	/**
@@ -112,8 +175,8 @@
 	@VciBusinessLog(operateName = "瀵煎嚭涓婚搴撶殑鏁版嵁")
 	@PostMapping("/exportCode")
 	public void exportCode(CodeExportAttrDTO exportAttrDTO, HttpServletResponse response) throws IOException {
-		String excelName = mdmIOService.exportCode(exportAttrDTO);
 		try {
+			String excelName = mdmIOService.exportCode(exportAttrDTO);
 			ControllerUtil.writeFileToResponse(response,excelName);
 		} catch (Throwable e) {
 			//濡傛灉鍑洪敊,鎶婇敊璇俊鎭啓鍒皌ext
@@ -148,7 +211,7 @@
 	}
 
 	/**
-	 * 鎵归噺鐢宠缂栫爜鐨勪俊鎭�
+	 * 鎵归噺鐢宠缂栫爜鐨勪俊鎭紙褰撳墠鍒嗙被涓婃壒閲忕敵璇凤級
 	 * @param secDTOList 鐢宠缂栫爜鐨勪俊鎭紝蹇呴』鍖呭惈鐮佹鍜屽垎绫讳富閿殑淇℃伅
 	 * @param file 鏂囦欢鐨勫唴瀹�
 	 */
@@ -241,7 +304,7 @@
 	}
 
 	/**
-	 * 瀵煎叆鍘嗗彶鏁版嵁
+	 * 瀵煎叆鍘嗗彶鏁版嵁(浠庨《灞傚垎绫诲鐨�)
 	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
 	 * @param classifyAttr 鍒嗙被璺緞浣跨敤鐨勫睘鎬�
 	 * @param file 鏂囦欢鐨勫唴瀹�
@@ -292,7 +355,7 @@
 	 * @param baseModelDTO 鏁版嵁浼犺緭瀵硅薄
 	 * @return 鎵ц缁撴灉
 	 */
-	@PostMapping("changeStatus")
+	@PostMapping("/changeStatus")
 	public R changeStatus(@RequestBody BaseModelDTO baseModelDTO) {
 		engineService.changeStatus(baseModelDTO);
 		return R.success("鎿嶄綔鎴愬姛锛�");
@@ -306,7 +369,15 @@
 	@PostMapping("/addSaveCode")
 	@VciBusinessLog(operateName = "鐢宠鍗曚釜缂栫爜")
 	public R addSaveCode(@RequestBody CodeOrderDTO orderDTO) throws Exception {
-		return R.success(engineService.addSaveCode(orderDTO));
+		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);
 	}
 
 	/**
@@ -390,7 +461,7 @@
 		return engineService.gridTableDataByClassifyOid(codeClassifyOid,templateOid,queryObject.getConditionMap(),queryObject.getPageHelper());
 	}
 
-	/***
+	/**
 	 * 鑾峰彇鍒嗙被瀵硅薄
 	 * @param redisOid
 	 * @return
@@ -401,7 +472,7 @@
 		return R.data(codeImportTemplateVOs);
 	}
 
-	/***
+	/**
 	 * 浠巖edis缂撳瓨閲岃幏鍙栧埌瀵煎叆姝g‘鐨勬暟鎹�
 	 * @param codeClassifyOid
 	 * @param redisOid
@@ -412,7 +483,7 @@
 		return mdmIOService.gridDatas(codeClassifyOid,redisOid);
 	}
 
-	/***
+	/**
 	 * 浠巖edis缂撳瓨閲岃幏鍙栧埌瀵煎叆琛岀浉浼奸」鐨勬暟鎹�
 	 * @param dataOid
 	 * @param redisOid
@@ -423,7 +494,7 @@
 		return mdmIOService.gridRowResemble(dataOid,redisOid);
 	}
 
-	/***
+	/**
 	 * 浠巖edis缂撳瓨閲岃幏鍙栧埌瀵煎叆鍏锋湁鐩镐技椤圭殑鏁版嵁
 	 * @param codeClassifyOid
 	 * @param redisOid
@@ -433,18 +504,19 @@
 	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());
+		return mdmIOService.batchImportData(codeImprotSaveDatVO.getCodeImprotSaveDatVOList(),codeImprotSaveDatVO.getClassifyAttr(),codeImprotSaveDatVO.getImprot());
 	}
 
-	/***
-	 *鏍规嵁鏁版嵁oid浠庣紦瀛樹腑绉婚櫎鏁版嵁
+	/**
+	 * 鏍规嵁鏁版嵁oid浠庣紦瀛樹腑绉婚櫎鏁版嵁
 	 * @param redisOid redisid
 	 * @param codeClassifyOid 瀛樺偍瑙勫垯鐨刼id
 	 * @param dataOids  鎵�闇�鍒犻櫎鐨勬暟鎹�
@@ -454,6 +526,7 @@
 	public  R deleteDatas(String redisOid,String codeClassifyOid,String dataOids){
 		return mdmIOService.deleteDatas(redisOid,codeClassifyOid,dataOids);
 	}
+
 	/**
 	 * 鎵归噺淇濆瓨娴佺▼鎵ц椤甸潰淇敼鐨勫唴瀹�
 	 * @param orderDTOList 缂栫爜鐩稿叧鐨勪俊鎭紝涓嶉渶瑕佺爜娈电殑淇℃伅
@@ -518,7 +591,7 @@
 	@PostMapping("/upSaveCode")
 	public R upSaveCode(@RequestBody CodeOrderDTO orderDTO){
 		engineService.upSaveCode(orderDTO);
-		return  R.success("鎿嶄綔鎴愬姛锛�");
+		return R.success("鎿嶄綔鎴愬姛锛�");
 	}
 
 	/**
@@ -597,7 +670,7 @@
 	 * @param idPath 缂栧彿鐨勮矾寰�
 	 * @return UI鐩稿叧鐨勪俊鎭紙浠呭寘鍚〃鍗�)
 	 */
-//	@VciUnCheckRight
+	//	@VciUnCheckRight
 	@GetMapping("/getFormDefineByClassifyIdPath")
 	public MdmUIInfoVO getFormDefineByClassifyIdPath(String idPath){
 		return engineService.getFormDefineByClassifyIdPath(idPath);
@@ -652,7 +725,7 @@
 	 * @return UI鐩稿叧鐨勪俊鎭紙浠呭寘鍚〃鏍硷級
 	 */
 	@GetMapping("/getFlowdUIInfoByClassifyOid")
-	public MdmUIInfoVO getUIInfoByClassifyOid(String codeClassifyOid,String functionId,String templateId,String taskId,String modelKey){
+	public MdmUIInfoVO getFlowUIInfoByClassifyOid(String codeClassifyOid,String functionId,String templateId,String taskId,String modelKey){
 		return engineService.getFlowUIInfoByClassifyOid(codeClassifyOid,functionId,templateId,taskId,modelKey);
 	}
 
@@ -747,4 +820,91 @@
 	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