From 41c256180e5e7900c88b71a9f22590db21f87a7a Mon Sep 17 00:00:00 2001
From: lihang <lihang@vci-tech.com>
Date: 星期二, 09 五月 2023 16:54:36 +0800
Subject: [PATCH] 业务类型修正

---
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java |   75 ++++++++++++++++++++++++++++++++++---
 1 files changed, 68 insertions(+), 7 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java
index 698a29a..87a2030 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java
@@ -1,7 +1,9 @@
 package com.vci.ubcs.omd.controller;
 
+import com.alibaba.cloud.commons.lang.StringUtils;
 import com.alibaba.nacos.api.exception.NacosException;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.vci.ubcs.omd.constant.OmdCacheConstant;
@@ -9,6 +11,7 @@
 import com.vci.ubcs.omd.entity.BtmType;
 import com.vci.ubcs.omd.repeater.DomainRepeater;
 import com.vci.ubcs.omd.service.IBtmTypeService;
+import com.vci.ubcs.omd.vo.BtmTypeTreeVO;
 import com.vci.ubcs.omd.vo.BtmTypeVO;
 import com.vci.ubcs.omd.wrapper.BtmTypeWrapper;
 import io.swagger.annotations.*;
@@ -21,13 +24,13 @@
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
 import javax.validation.Valid;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * Description: 涓氬姟绫诲瀷鎺у埗鍣�
@@ -92,7 +95,7 @@
 		@ApiImplicitParam(name = "name", value = "涓氬姟绫诲瀷涓枃鍚嶇О", paramType = "query", dataType = "string"),
 		@ApiImplicitParam(name = "tableName", value = "涓氬姟绫诲瀷鏁版嵁搴撹〃鍚�", paramType = "query", dataType = "string"),
 	})
-	@ApiOperationSupport(order = 2)
+	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "鏌ヨ鍒楄〃", notes = "浼犲叆鏌ヨ")
 	public R<IPage<BtmTypeVO>> parentList(@ApiIgnore @RequestParam Map<String, Object> condition, Query query) {
 		IPage<BtmTypeVO> pageVO = new Page<>();
@@ -110,7 +113,7 @@
 	 * @return 鎵ц缁撴灉
 	 */
 	@PostMapping("/submit/{auto}")
-	@ApiOperationSupport(order = 3)
+	@ApiOperationSupport(order = 4)
 	@ApiOperation(value = "鏂板鎴栦慨鏀�", notes = "浼犲叆涓氬姟绫诲瀷瀵硅薄")
 	public R submit(@Valid @RequestBody BtmTypeDTO dto,@PathVariable(value = "auto") boolean auto) {
 		CacheUtil.clear(OmdCacheConstant.BTM_CACHE);
@@ -124,7 +127,7 @@
 	 * @return 鎵ц缁撴灉
 	 */
 	@PostMapping("/remove")
-	@ApiOperationSupport(order = 4)
+	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "鍒犻櫎", notes = "涓婚敭闆嗗悎")
 	public R remove(@ApiParam(value = "涓婚敭闆嗗悎", required = true) @RequestParam String ids) {
 		CacheUtil.clear(OmdCacheConstant.BTM_CACHE);
@@ -141,7 +144,7 @@
 	 * 鑾峰彇棰嗗煙鍊�
 	 */
 	@GetMapping("/domain")
-	@ApiOperationSupport(order = 5)
+	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "鑾峰彇棰嗗煙鍊�")
 	public R<List<String>> getDomain(){
 		try {
@@ -150,4 +153,62 @@
 			return R.fail(e.getErrMsg());
 		}
 	}
+
+	/**
+	 * 鎸塪omain鍒嗙粍锛屾煡璇笟鍔$被鍨嬬殑鏍戝舰缁撴瀯
+	 */
+	@GetMapping("/tree-domain")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "涓氬姟绫诲瀷鏍戝舰缁撴瀯", notes = "涓氬姟绫诲瀷鏍戝舰缁撴瀯")
+	public R<List<BtmTypeTreeVO>> treeDomain(){
+		return R.data(btmTypeService.treeDomain());
+	}
+
+	/**
+	 * 浠庢暟鎹簱琛ㄤ腑鑾峰彇
+	 * @param domain 棰嗗煙鍊�
+	 * @return 璇诲彇缁撴灉
+	 */
+	@GetMapping("/get-from-table")
+	@ApiOperation(value = "浠庢暟鎹簱琛ㄤ腑璇诲彇",notes = "浠庢暟鎹簱琛ㄤ腑璇诲彇")
+	@ApiOperationSupport(order = 8)
+	public R<List<BtmTypeVO>> getFromTable(String domain){
+		return R.data(btmTypeService.getFromTable(domain));
+	}
+
+	/**
+	 * 鏁版嵁搴撻�夋嫨鐨勮〃淇濆瓨涓轰笟鍔$被鍨�
+	 * @param btmTypeDTOList 椤甸潰浼犺緭瀵硅薄
+	 * @return 鎵ц缁撴灉
+	 */
+	@PostMapping("/save-from-table/{domain}")
+	@ApiOperation(value = "浠庢暟鎹簱涓繚瀛�",notes = "浠庢暟鎹簱涓繚瀛�")
+	@ApiOperationSupport(order = 9)
+	public R saveFromTable(@RequestBody List<BtmTypeDTO> btmTypeDTOList,@PathVariable(value = "domain") String domain){
+		// 鏁版嵁搴撹〃涓嶈兘閲嶅
+		Set<String> tableNames = btmTypeDTOList.stream().map(BtmTypeDTO::getTableName).filter(StringUtils::isNotBlank).collect(Collectors.toSet());
+		long count = btmTypeService.count(Wrappers.<BtmType>query().lambda().in(BtmType::getTableName,tableNames));
+		if (count > 0){
+			return R.fail("鎵�閫夎〃鍦ㄤ笟鍔$被鍨嬩腑宸插瓨鍦�");
+		}
+		// 涓氬姟绫诲瀷涓嶈兘閲嶅
+		btmTypeDTOList = btmTypeDTOList.stream().peek(s -> {
+			String id;
+			String tableName = s.getTableName();
+			if (tableName.contains(StringPool.UNDERSCORE)) {
+				List<String> strList = Arrays.asList(tableName.split(StringPool.UNDERSCORE));
+				id = strList.get(strList.size() - 1);
+			} else {
+				id = tableName;
+			}
+			s.setId(id.toLowerCase());
+		}).collect(Collectors.toList());
+		List<String> btmTypeIdList = btmTypeDTOList.stream().map(BtmTypeDTO::getId).collect(Collectors.toList());
+
+		long countId = btmTypeService.count(Wrappers.<BtmType>query().lambda().in(BtmType::getId, btmTypeIdList));
+		if (countId > 0){
+			return R.fail("鎵�閫夎〃涓庡凡瀛樺湪涓氬姟绫诲瀷鍐茬獊");
+		}
+		return R.data(btmTypeService.saveFromTable(btmTypeDTOList,domain));
+	}
 }

--
Gitblit v1.9.3