From b1161ad21938f1fde021249b9c3dff6f884647b8 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 17 十月 2023 19:02:37 +0800
Subject: [PATCH] 首页主数据统计功能接口实现

---
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java                   |    7 +
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/MdmCount.java                    |   12 +
 Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClient.java               |   18 ++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IMdmCountService.java                   |    4 
 Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/MdmCountConfigMapper.xml                            |    7 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java                       |    3 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java           |   91 +++++++++++-
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java            |    6 
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MdmCountConfigServiceImpl.java |   55 +++++++
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/feign/SysClient.java                        |   19 ++
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/MdmCountConfigMapper.java            |   12 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmCountController.java              |   39 +++++
 Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClientFallback.java       |   10 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml                                     |    5 
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMdmCountConfigService.java         |   28 ++++
 Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/entity/MdmCountConfig.java          |   42 ++++++
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java           |   16 ++
 17 files changed, 360 insertions(+), 14 deletions(-)

diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/MdmCount.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/MdmCount.java
index 2754020..fef494b 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/MdmCount.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/MdmCount.java
@@ -1,6 +1,8 @@
 package com.vci.ubcs.code.entity;
 
+import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
 
@@ -10,6 +12,8 @@
  * @date 2023/10/16 16:04
  */
 @Data
+@AllArgsConstructor
+@NoArgsConstructor
 public class MdmCount implements Serializable {
 
 	/**
@@ -38,8 +42,14 @@
 	private String icon;
 
 	/**
-	 * 鏄惁榛樿鏄剧ず
+	 * 鏄惁榛樿鏄剧ず:0榛樿涓嶆樉绀猴紝1榛樿鏄剧ず
 	 */
 	private Integer isDefault;
 
+	public MdmCount(String menuName, String menuRoute, String icon) {
+		this.menuName = menuName;
+		this.menuRoute = menuRoute;
+		this.icon = icon;
+	}
+
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/entity/MdmCountConfig.java b/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/entity/MdmCountConfig.java
new file mode 100644
index 0000000..48c11fc
--- /dev/null
+++ b/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/entity/MdmCountConfig.java
@@ -0,0 +1,42 @@
+package com.vci.ubcs.system.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.extern.java.Log;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 涓绘暟鎹粺璁″璞�
+ * @author ludc
+ * @date 2023/10/17 14:46
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName("PL_SYS_MDMCOUNT_CONFIG")
+public class MdmCountConfig implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 涓婚敭
+	 */
+	@TableId
+	private Long id;
+
+	/**
+	 * 鐢ㄦ埛id
+	 */
+	private Long  userId;
+
+	/**
+	 * 涓绘暟鎹悕绉�
+	 */
+	private String mdmName;
+
+}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClient.java b/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClient.java
index 5e646a4..78d93a2 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClient.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClient.java
@@ -42,6 +42,8 @@
 
 	String API_PREFIX = "/client";
 	String MENU = API_PREFIX + "/menu";
+	String MENU_BY_CODES = API_PREFIX + "/menu-by-codes";
+	String MDM_COUNT_CONFIG = API_PREFIX + "/mdm-count-config";
 	String MENU_BUTTON = API_PREFIX + "/menu-button";
 	String DEPT = API_PREFIX + "/dept";
 	String TREE = API_PREFIX + "/tree";
@@ -87,6 +89,22 @@
 	R<Menu> getMenu(@RequestParam("id") Long id);
 
 	/**
+	 * 鏍规嵁Code鑾峰彇鑿滃崟淇℃伅
+	 * @param codes
+	 * @return
+	 */
+	@GetMapping(MENU_BY_CODES)
+	R<List<Menu>> getMenuByCodes(@RequestParam("codes") List<String> codes);
+
+	/**
+	 * 鑾峰彇鐢ㄩ厤缃殑涓绘暟鎹粺璁�
+ 	 * @param userId
+	 * @return
+	 */
+	@GetMapping(MDM_COUNT_CONFIG)
+	R<MdmCountConfig> getMdmCountConfig (@RequestParam("userId") String userId);
+
+	/**
 	 * 鑾峰彇鑿滃崟涓嬮潰鐨勬寜閽�
 	 *
 	 * @param btmType 涓氬姟绫诲瀷
diff --git a/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClientFallback.java b/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClientFallback.java
index 742f018..2f24bdf 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClientFallback.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClientFallback.java
@@ -38,6 +38,16 @@
 	}
 
 	@Override
+	public R<List<Menu>> getMenuByCodes(List<String> codes) {
+		return R.fail("鑾峰彇鏁版嵁澶辫触");
+	}
+
+	@Override
+	public R<MdmCountConfig> getMdmCountConfig(String userId) {
+		return R.fail("鑾峰彇鏁版嵁澶辫触");
+	}
+
+	@Override
 	public R<List<Menu>> getMenuButtonByType(String btmType) {
 		return R.fail("鑾峰彇鏁版嵁澶辫触");
 	}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java
index 4e65f82..b79d2c4 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java
@@ -868,7 +868,11 @@
 	}
 
 	public static String getTableName(String btmname) {
-		return (VciQueryWrapperForDO.USER_TABLE_COMPATIBILITY ? "vcibt_" : "pl_code_") + btmname.trim().toLowerCase();
+		return (VciQueryWrapperForDO.USER_TABLE_COMPATIBILITY ? "PLBT_CODE" : "PL_CODE_") + btmname.trim().toLowerCase();
+	}
+
+	public static String getTableName(String btmname,Boolean isMdmTable) {
+		return (isMdmTable ? "PLBT_CODE_" : "PL_CODE_") + btmname.trim().toLowerCase();
 	}
 
 	public static Field getTsField(Class c) {
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmCountController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmCountController.java
new file mode 100644
index 0000000..96497ad
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmCountController.java
@@ -0,0 +1,39 @@
+package com.vci.ubcs.code.controller;
+
+import com.vci.ubcs.code.entity.MdmCount;
+import com.vci.ubcs.code.service.IMdmCountService;
+import com.vci.ubcs.code.service.MdmProductCodeService;
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author ludc
+ * @date 2023/10/16 22:57
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/mdmCount")
+@Api(value = "棣栭〉-涓绘暟鎹�绘暟缁熻", tags = "棣栭〉-涓绘暟鎹�绘暟缁熻鎺ュ彛")
+public class MdmCountController {
+
+	private final IMdmCountService mdmCountService;
+
+	/**
+	 * 鏌ヨ涓绘暟鎹�绘暟
+	 * @param userId
+	 * @return
+	 */
+	@GetMapping("/getMdmCounts")
+	public R<List<MdmCount>> getMdmCounts(@Param("userId") String userId)throws ServiceException {
+		return R.data(mdmCountService.getMdmCounts(userId));
+	}
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java
index eb99034..86c4727 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java
@@ -22,6 +22,8 @@
 
 	int  queryCountBySql(@Param("inSql") String inSql);
 
+	String queryCountStringBySql(@Param("inSql") String inSql);
+
 	List<Map> selectBySql(@Param("inSql") String inSql);
 
 	List<Map<String,String>> queryByOnlySqlForMap(@Param("inSql") String inSql);
@@ -34,6 +36,7 @@
 	 * @return 鎻掑叆鎴愬姛鐨勬潯鏁�
 	 */
 	Integer insertByBaseModel(String tableName,Map<String,String> columnMap,List<Map<String,String>> mapList);
+
 	/**
 	 * 浼犲叆琛ㄥ悕锛宮ap锛宭ist<map>瀹屾垚鎵归噺鏇存柊鎿嶄綔
 	 * @param tableName 琛ㄥ悕
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IMdmCountService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IMdmCountService.java
index 5d250e3..04785d5 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IMdmCountService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IMdmCountService.java
@@ -1,6 +1,7 @@
 package com.vci.ubcs.code.service;
 
 import com.vci.ubcs.code.entity.MdmCount;
+import org.springblade.core.log.exception.ServiceException;
 
 import java.util.List;
 
@@ -15,7 +16,6 @@
 	 * 缁熻涓绘暟鎹�绘暟
 	 * @return
 	 */
-	List<MdmCount> getMdmCounts();
-
+	List<MdmCount> getMdmCounts(String userId) throws ServiceException;
 
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java
index 92c6569..d877d1b 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java
@@ -4,15 +4,26 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.vci.ubcs.code.entity.CodeClassify;
 import com.vci.ubcs.code.entity.MdmCount;
+import com.vci.ubcs.code.mapper.CommonsMapper;
 import com.vci.ubcs.code.service.ICodeClassifyService;
 import com.vci.ubcs.code.service.IMdmCountService;
+import com.vci.ubcs.system.entity.MdmCountConfig;
+import com.vci.ubcs.system.entity.Menu;
 import com.vci.ubcs.system.feign.ISysClient;
 import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
-import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
+
+import static com.vci.ubcs.starter.web.util.VciBaseUtil.getTableName;
 
 /**
  * 涓绘暟鎹粺璁℃湇鍔�
@@ -32,18 +43,80 @@
 	@Resource
 	private ICodeClassifyService codeClassifyService;
 
+	@Resource
+	private CommonsMapper commonsMapper;
+
+	/**
+	 * 鏌ヨ涓绘暟鎹�绘暟
+	 * @param userId
+	 * @return
+	 * @throws ServiceException
+	 */
 	@Override
-	public List<MdmCount> getMdmCounts() {
-		// 1銆侀渶瑕佸厛鏌ヨ鍑哄垎绫讳笅椤剁骇鑺傜偣鏈夊摢浜涗富鏁版嵁,鎷垮埌涓氬姟绫诲瀷鍚嶇О
+	public List<MdmCount> getMdmCounts(String userId) throws ServiceException{
+		/** 1銆佸厛鏌ヨ鍑哄悇鍒嗙被椤跺眰鑺傜偣鏈夊摢浜涗富鏁版嵁,鎷垮埌涓氬姟绫诲瀷鍚嶇О锛岀浉褰撲簬鎷垮埌涓绘暟鎹〃鍚�
+			椤跺眰鑺傜偣鐨刡tmtypeid杩橀渶瑕佺敤浣滄煡璇㈡潯浠跺搴旂殑鑿滃崟琛ㄧ殑code瀛楁
+			浣嗘槸涓轰簡鍑忓皯鏌ヨ娆℃暟锛屽氨闇�鍦ㄦ煡璇㈡槸浣跨敤btmtypeid瀛楁杩涜鎺掑簭
+		 */
 		LambdaQueryWrapper<CodeClassify> wrapper = Wrappers.<CodeClassify>query()
 			.lambda()
-			.isNull(CodeClassify::getParentCodeClassifyOid).select(CodeClassify::getBtmTypeId);
-		Map<String, Object> map = codeClassifyService.getMap(wrapper);
-		// 2銆佺劧鍚庨渶瑕佹煡璇㈠嚭鑿滃崟璺敱鍜屽浘鏍�
+			.isNull(CodeClassify::getParentCodeClassifyOid).select(CodeClassify::getBtmTypeId)
+			.orderByAsc(CodeClassify::getBtmTypeId);
+		List<CodeClassify> codeClassifies = codeClassifyService.list(wrapper);
+		List<String> btyTypeIds = codeClassifies.stream().map(CodeClassify::getBtmTypeId).collect(Collectors.toList());
+		// 2銆佺劧鍚巉eign璋冪敤闇�瑕佹煡璇㈠嚭鑿滃崟璺敱鍜屽浘鏍�
+		R<List<Menu>> menuList = sysClient.getMenuByCodes(btyTypeIds);
+		if(!menuList.isSuccess() && menuList.getData().isEmpty()){
+			throw new ServiceException("鑾峰彇涓绘暟鎹粺璁℃椂锛屼富鏁版嵁鑿滃崟鏌ヨ涓虹┖锛屽師鍥狅細"+menuList.getMsg());
+		}
+		List<MdmCount> mdmCountList = new ArrayList<>();
+		// 3銆佹煡璇㈠綋鍓嶇櫥褰曠殑鐢ㄦ埛閰嶇疆浜嗛偅浜涗富鏁版嵁缁熻椤�
+		R<MdmCountConfig> mdmCountConfig = sysClient.getMdmCountConfig(userId);
+		if(!mdmCountConfig.isSuccess()){
+			throw new ServiceException("鑾峰彇涓绘暟鎹粺璁¢」閰嶇疆鏃跺嚭鐜伴敊璇紝鍘熷洜锛�"+mdmCountConfig.getMsg());
+		}
+		List<String> mdmNames = null;
+		if(Func.isBlank(mdmCountConfig.getData().getMdmName())){
+			AtomicInteger count = new AtomicInteger();
+			mdmNames = menuList.getData().stream().map(item->{
+				if(count.getAndIncrement() <5){
+					return item.getCode();
+				}
+				return null;
+			}).collect(Collectors.toList());
+		}else {
+			mdmNames = Arrays.stream(mdmCountConfig.getData().getMdmName().split(",")).collect(Collectors.toList());
+		}
+		final List<String> mdmNamesFinal = mdmNames;
+		// 4銆佺劧鍚巗et杩涘璞′腑
+		menuList.getData().stream().forEach(item->{
+			Integer isDefault = mdmNamesFinal.contains(item.getCode()) ? 1:0;
+			MdmCount mdmCount = new MdmCount(
+				item.getName(),
+				getCountByTableName(item.getCode()), /*鏌ヨ涓绘暟鎹�绘暟*/
+				item.getPath(),
+				item.getSource(),
+				isDefault
+			);
+			mdmCountList.add(mdmCount);
+		});
+		return mdmCountList;
+	}
 
-		// 3銆佺劧鍚庤缃繘
-
-		return null;
+	/**
+	 * 鎷兼帴琛ㄥ悕鏌ヨ鎬绘暟
+	 * @param tableName
+	 * @return
+	 */
+	private String getCountByTableName(String tableName){
+		String sql = "SELECT COUNT(*) FROM " + getTableName(tableName,true) +";";
+		String count = "0";
+		try {
+			count = commonsMapper.queryCountStringBySql(sql);
+		}catch (Exception e){
+			throw new ServiceException("涓绘暟鎹�绘暟鏌ヨ澶辫触锛屽師鍥狅細"+e.getCause());
+		}
+		return count;
 	}
 
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml
index 47f27e2..eb6db99 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml
@@ -13,7 +13,6 @@
           and w.LASTV = '1'
     </select>
 
-
     <select id="selectById" resultType="java.lang.String">
         ${inSql}
     </select>
@@ -26,6 +25,10 @@
         ${inSql}
     </select>
 
+    <select id="queryCountStringBySql" resultType="java.lang.String">
+        ${inSql}
+    </select>
+
     <select id="queryByOnlySqlForMap" resultType="java.util.Map">
         ${inSql}
     </select>
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/feign/SysClient.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/feign/SysClient.java
index 2aafe53..1816a69 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/feign/SysClient.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/feign/SysClient.java
@@ -59,11 +59,25 @@
 
 	private final ICombinationService combinationService;
 
+	private final IMdmCountConfigService mdmCountConfigService;
+
 	@Override
 	@GetMapping(MENU)
 	public R<Menu> getMenu(Long id) {
 		return R.data(menuService.getById(id));
 	}
+
+	/**
+	 * 鏍规嵁code鏌ヨ鑿滃崟淇℃伅
+	 * @param codes
+	 * @return
+	 */
+	@Override
+	@GetMapping(MENU_BY_CODES)
+	public R<List<Menu>> getMenuByCodes(List<String> codes) {
+		return R.data(menuService.getMenuByCodes(codes));
+	}
+
 	@Override
 	@GetMapping(MENU_BUTTON)
 	public R<List<Menu>> getMenuButtonByType(String btmType) {
@@ -241,5 +255,10 @@
 		return R.data(combinationService.getRegexList(combinationIds));
 	}
 
+	@Override
+	@GetMapping(MDM_COUNT_CONFIG)
+	public R<MdmCountConfig> getMdmCountConfig (String userId) {
+		return R.data(mdmCountConfigService.getMdmCountConfig(userId));
+	}
 
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/MdmCountConfigMapper.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/MdmCountConfigMapper.java
new file mode 100644
index 0000000..516b52b
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/MdmCountConfigMapper.java
@@ -0,0 +1,12 @@
+package com.vci.ubcs.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.vci.ubcs.system.entity.MdmCountConfig;
+
+/**
+ * @author ludc
+ * @date 2023/10/17 14:53
+ */
+public interface MdmCountConfigMapper extends BaseMapper<MdmCountConfig> {
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMdmCountConfigService.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMdmCountConfigService.java
new file mode 100644
index 0000000..1e5ffd6
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMdmCountConfigService.java
@@ -0,0 +1,28 @@
+package com.vci.ubcs.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.vci.ubcs.system.entity.MdmCountConfig;
+import org.springblade.core.tool.api.R;
+
+/**
+ * 涓绘暟鎹粺璁¢椤甸厤缃湇鍔�
+ * @author ludc
+ * @date 2023/10/17 14:44
+ */
+public interface IMdmCountConfigService extends IService<MdmCountConfig> {
+
+	/**
+	 * 淇濆瓨鐢ㄦ埛閰嶇疆鐨勪富鏁版嵁缁熻椤�
+	 * @param mdmCountConfig
+	 * @return
+	 */
+	boolean saveMdmCountConfig(MdmCountConfig mdmCountConfig);
+
+	/**
+	 * 鑾峰彇褰撳墠鐢ㄦ埛鏈夐偅浜涗富鏁版嵁缁熻閰嶇疆鍦ㄩ椤�
+	 * @param userId
+	 * @return
+	 */
+	MdmCountConfig getMdmCountConfig(String userId);
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java
index 8c799fb..c4d6ba8 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java
@@ -175,6 +175,13 @@
 	List<Menu> getMenuButtonByType(String btmType);
 
 	/**
+	 * 鏍规嵁code鏌ヨ鑿滃崟淇℃伅
+	 * @param codes
+	 * @return
+	 */
+	List<Menu> getMenuByCodes(List<String> codes);
+
+	/**
 	 * 瀵筀eepAlive鍊艰浆鎹㈡垚甯冨皵绫诲瀷杩涜灏佽
 	 *
 	 * @param childMenu
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MdmCountConfigServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MdmCountConfigServiceImpl.java
new file mode 100644
index 0000000..cf22c3e
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MdmCountConfigServiceImpl.java
@@ -0,0 +1,55 @@
+package com.vci.ubcs.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vci.ubcs.system.entity.MdmCountConfig;
+import com.vci.ubcs.system.mapper.MdmCountConfigMapper;
+import com.vci.ubcs.system.service.IMdmCountConfigService;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.sql.Wrapper;
+import java.util.Date;
+
+/**
+ * 涓绘暟鎹粺璁¢椤甸厤缃湇鍔�
+ * @author ludc
+ * @date 2023/10/17 14:45
+ */
+@Service
+public class MdmCountConfigServiceImpl extends ServiceImpl<MdmCountConfigMapper, MdmCountConfig> implements IMdmCountConfigService {
+
+	@Override
+	public boolean saveMdmCountConfig(MdmCountConfig mdmCountConfig) throws ServiceException{
+		if(Func.isEmpty(mdmCountConfig) || Func.isBlank(mdmCountConfig.getUserId().toString())){
+			throw new ServiceException("涓绘暟鎹粺璁¢厤缃繚瀛樻椂缂哄皯蹇呭~鍙傛暟!");
+		}
+		boolean res = false;
+		try {
+			MdmCountConfig mdmCountConfigDB = getMdmCountConfig(mdmCountConfig.getUserId().toString());
+			//鏂板
+			if(Func.isBlank(mdmCountConfig.getId().toString())){
+				Func.copy(mdmCountConfig,mdmCountConfigDB);
+			}else {
+				//淇敼
+				mdmCountConfigDB.setMdmName(mdmCountConfig.getMdmName());
+			}
+			res = this.saveOrUpdate(mdmCountConfigDB);
+		}catch (Exception e){
+			throw new ServiceException("閰嶇疆淇濆瓨澶辫触,鍘熷洜锛�"+e.getCause());
+		}
+		return res;
+	}
+
+	@Override
+	public MdmCountConfig getMdmCountConfig(String userId) {
+		LambdaQueryWrapper<MdmCountConfig> wrapper = Wrappers.<MdmCountConfig>query().
+			lambda().eq(MdmCountConfig::getUserId, userId);
+		return this.getOne(wrapper);
+	}
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java
index 344a9ef..cc258f7 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java
@@ -312,6 +312,22 @@
     }
 
 	/**
+	 * 鏍规嵁code鏌ヨ鑿滃崟淇℃伅
+	 * @param codes
+	 * @return
+	 */
+	@Override
+	public List<Menu> getMenuByCodes(List<String> codes) {
+		LambdaQueryWrapper<Menu> wrapper = Wrappers.<Menu>query()
+			.lambda()
+			.in(Menu::getCode, codes)
+			.eq(Menu::getIsDeleted,0) /*鏈鍒犻櫎*/
+			.eq(Menu::getCategory,1) /*鑿滃崟绫诲瀷涓嶈兘涓烘寜閽�*/
+			.orderByAsc(Menu::getCode);  /*鏍规嵁code鎺掑簭涓巆lassify鐨刡tmtypeid瀵瑰簲*/
+		return this.list(wrapper);
+	}
+
+	/**
 	 * 瀵筀eepAlive鍊艰浆鎹㈡垚甯冨皵绫诲瀷杩涜灏佽
 	 *
 	 * @param childMenu
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/MdmCountConfigMapper.xml b/Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/MdmCountConfigMapper.xml
new file mode 100644
index 0000000..58b17ca
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/MdmCountConfigMapper.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.vci.ubcs.system.mapper.MdmCountConfigMapper">
+
+
+
+</mapper>

--
Gitblit v1.9.3