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; } } 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; } 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 ä¸å¡ç±»å 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("è·åæ°æ®å¤±è´¥"); } 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) { 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)); } } 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); /** * ä¼ å ¥è¡¨åï¼mapï¼list<map>宿æ¹éæ´æ°æä½ * @param tableName 表å 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; } 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ãå æ¥è¯¢åºåå类顶å±èç¹æåªäºä¸»æ°æ®,æ¿å°ä¸å¡ç±»ååç§°ï¼ç¸å½äºæ¿å°ä¸»æ°æ®è¡¨å é¡¶å±èç¹çbtmtypeidè¿éè¦ç¨ä½æ¥è¯¢æ¡ä»¶å¯¹åºçèå表ç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ãç¶åfeignè°ç¨éè¦æ¥è¯¢åºèåè·¯ç±å徿 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ãç¶åsetè¿å¯¹è±¡ä¸ 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; } } 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> 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)); } } 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> { } 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); } 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); /** * 对KeepAliveå¼è½¬æ¢æå¸å°ç±»åè¿è¡å°è£ * * @param childMenu 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); } } 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æåºä¸classifyçbtmtypeid对åº*/ return this.list(wrapper); } /** * 对KeepAliveå¼è½¬æ¢æå¸å°ç±»åè¿è¡å°è£ * * @param childMenu 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>