From 3aae81075a18a11d6b605c7583eb03b75366b466 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期四, 18 四月 2024 00:08:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java |   93 +++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 83 insertions(+), 10 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..87ff975 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,7 +11,9 @@
 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.BtmTreeVO;
 import com.vci.ubcs.omd.vo.BtmTypeVO;
+import com.vci.ubcs.omd.vo.DomainVO;
 import com.vci.ubcs.omd.wrapper.BtmTypeWrapper;
 import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
@@ -21,13 +25,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: 涓氬姟绫诲瀷鎺у埗鍣�
@@ -46,7 +50,6 @@
 	 * 涓氬姟绫诲瀷鏈嶅姟
 	 */
 	private final IBtmTypeService btmTypeService;
-
 
 	/**
 	 * 鏌ョ湅璇︽儏
@@ -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<>();
@@ -102,7 +105,6 @@
 		return R.data(pageVO);
 	}
 
-
 	/**
 	 * 鏂板鎴栦慨鏀�
 	 *
@@ -110,7 +112,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 +126,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,13 +143,84 @@
 	 * 鑾峰彇棰嗗煙鍊�
 	 */
 	@GetMapping("/domain")
-	@ApiOperationSupport(order = 5)
+	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "鑾峰彇棰嗗煙鍊�")
-	public R<List<String>> getDomain(){
+	public R<List<DomainVO>> getDomain(){
 		try {
 			return R.data(DomainRepeater.getDomain());
 		} catch (NacosException e) {
 			return R.fail(e.getErrMsg());
 		}
 	}
+
+	/**
+	 * 鎸塪omain鍒嗙粍锛屾煡璇笟鍔$被鍨嬬殑鏍戝舰缁撴瀯
+	 */
+	@GetMapping("/tree-domain")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "涓氬姟绫诲瀷鏍戝舰缁撴瀯", notes = "涓氬姟绫诲瀷鏍戝舰缁撴瀯")
+	public R<List<BtmTreeVO>> 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));
+	}
+
+	/**
+	 * 鑾峰彇榛樿灞炴��
+	 * @param defaultAttrType
+	 * @return
+	 */
+	@GetMapping("/getDefaultAttr")
+	@ApiOperation(value = "鑾峰彇榛樿灞炴��",notes = "鑾峰彇榛樿灞炴��")
+	@ApiOperationSupport(order = 10)
+	public R getDefaultAttr(String defaultAttrType){
+		return R.data(this.btmTypeService.getDefaultAttr(defaultAttrType));
+	}
+
 }

--
Gitblit v1.9.3