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-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java | 91 +++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 82 insertions(+), 9 deletions(-) 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; } } -- Gitblit v1.9.3