package com.vci.web.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.vci.corba.portal.PortalServicePrx; import com.vci.corba.portal.data.PLIcon; import com.vci.dto.PLIconDTO; import com.vci.pagemodel.PLIconGroupVO; import com.vci.pagemodel.PLIconVO; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.PageHelper; import com.vci.web.service.WebIconserviceI; import com.vci.web.util.PlatformClientUtil; import com.vci.web.util.WebUtil; import edu.stanford.smi.protege.util.HashList; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.io.File; import java.util.*; import java.util.stream.Collectors; /** * @Description 图标服务 * @Author dangsn * @Date 2024/12/20 10:27 */ @Service public class WebIconServiceImpl implements WebIconserviceI { /** * 客户端工具 */ @Resource private PlatformClientUtil platformClientUtil; /** * 导入图标 * * @param type * @param groups * @param iconFile 图标文件 * @return 执行结果 */ @Override public void importIcon(String type, String groups, File iconFile) { try { String fileContent = FileUtils.readFileToString(iconFile, "UTF-8"); JSONArray jsonArray = JSON.parseArray(fileContent); //获取所有的图标信息 PortalServicePrx portalServicePrx = platformClientUtil.getPortalService(); PLIcon[] iconArr = portalServicePrx.getAllPLIcon(); List nameList = new ArrayList<>(); Map iconMap = new HashMap<>(); for(PLIcon icon : iconArr){ nameList.add(icon.name); iconMap.put(icon.name, icon); } List addList = new ArrayList<>(); List updateList = new ArrayList<>(); for(int i = 0; i getIconName() { try { PortalServicePrx portalServicePrx = platformClientUtil.getPortalService(); String[] nameArr = portalServicePrx.getPLIconName(); return Arrays.asList(nameArr); } catch (Exception e) { throw new RuntimeException(e); } } /** * @param baseQueryObject * @return */ @Override public List getAllIcon(BaseQueryObject baseQueryObject) { Map conditionMap = baseQueryObject.getConditionMap(); PLIcon plIcon = new PLIcon(); String iconName = conditionMap.get("name"); if(StringUtils.isNotBlank(iconName)){ plIcon.name = iconName.toLowerCase(); } plIcon.type = conditionMap.get("type"); plIcon.groups = conditionMap.get("groups"); try { PortalServicePrx portalServicePrx = platformClientUtil.getPortalService(); PLIcon[] iconArr = portalServicePrx.getPagePLIcon(plIcon, 0, -1); List groupVOS = new ArrayList<>(); List voList = COS2VOS(Arrays.asList(iconArr)); Map> voMap = voList.stream().collect(Collectors.groupingBy(PLIconVO::getLable)); voMap.forEach((key, value)->{ PLIconGroupVO groupVO = new PLIconGroupVO(); groupVO.setLable(key); groupVO.setList(value); groupVOS.add(groupVO); }); return groupVOS; } catch (Exception e) { throw new RuntimeException(e); } } private List COS2VOS(List iconList){ List voList = new ArrayList<>(); if(!CollectionUtils.isEmpty(iconList)){ iconList.forEach(co->{ voList.add(CO2VO(co)); }); } return voList; } private PLIconVO CO2VO(PLIcon icon){ PLIconVO vo = new PLIconVO(); vo.setOid(icon.oid); vo.setName(icon.name); vo.setContent(icon.content); vo.setType(icon.type); vo.setGroups(icon.groups); vo.setPlCreateTime(icon.plCreateTime); vo.setPlCreateUser(icon.plCreateUser); vo.setPlModifyTime(icon.plModifyTime); vo.setPlModifyUser(icon.plModifyUser); String[] nameArr = icon.name.split(":"); if(nameArr.length > 1){ vo.setLable(nameArr[0]); } return vo; } /** * 获取图标表格数据 * * @param baseQueryObject 查询对象 * @return 图标信息 */ @Override public DataGrid getGrid(BaseQueryObject baseQueryObject) { Map conditionMap = baseQueryObject.getConditionMap(); PageHelper pageHelper = baseQueryObject.getPageHelper(); PLIcon plIcon = new PLIcon(); String iconName = conditionMap.get("name"); if(StringUtils.isNotBlank(iconName)){ plIcon.name = iconName.toLowerCase(); } plIcon.type = conditionMap.get("type"); plIcon.groups = conditionMap.get("groups"); try { PortalServicePrx portalServicePrx = platformClientUtil.getPortalService(); PLIcon[] iconArr = portalServicePrx.getPagePLIcon(plIcon, pageHelper.getPage(), pageHelper.getLimit()); List voList = COS2VOS(Arrays.asList(iconArr)); DataGrid dataGrid = new DataGrid<>(); dataGrid.setData(voList); long count = portalServicePrx.getCountPLIcon(plIcon); dataGrid.setTotal(count); return dataGrid; } catch (Exception e) { throw new RuntimeException(e); } } }