| | |
| | | package com.vci.web.service.impl; |
| | | |
| | | import com.vci.client.common.providers.ServiceProvider; |
| | | import com.vci.corba.common.PLException; |
| | | import com.vci.corba.omd.atm.AttributeDef; |
| | | import com.vci.corba.omd.btm.BizType; |
| | | import com.vci.corba.omd.ltm.LinkType; |
| | | import com.vci.pagemodel.*; |
| | | import com.vci.starter.web.annotation.log.VciUnLog; |
| | | import com.vci.starter.web.enumpck.BooleanEnum; |
| | | import com.vci.starter.web.exception.VciBaseException; |
| | |
| | | import com.vci.starter.web.util.BeanUtil; |
| | | import com.vci.starter.web.util.VciBaseUtil; |
| | | import com.vci.starter.web.util.VciDateUtil; |
| | | import com.vci.web.constant.CacheKeyConstant; |
| | | import com.vci.web.pageModel.*; |
| | | import com.vci.web.service.*; |
| | | import com.vci.web.util.ConcurrentDateFormat; |
| | | import com.vci.web.util.Func; |
| | | import com.vci.web.util.PlatformClientUtil; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.cache.annotation.CacheEvict; |
| | | import org.springframework.cache.annotation.Cacheable; |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static com.vci.web.constant.CacheNameConstant.VCI_OBJECT_SERVICE; |
| | | |
| | | /** |
| | | * 业务类型服务 |
| | |
| | | /** |
| | | * 平台的调用工具类 |
| | | */ |
| | | //@Autowired |
| | | //private PlatformClientUtil platformClientUtil; |
| | | @Autowired |
| | | private PlatformClientUtil platformClientUtil; |
| | | |
| | | /** |
| | | * 属性的服务 |
| | |
| | | @VciUnLog |
| | | public List<OsBtmTypeVO> selectAllBtm() { |
| | | try { |
| | | // return btmDO2VOs(Arrays.stream(platformClientUtil.getBtmService().getAllBtmItem("")).collect(Collectors.toList())); |
| | | // return btmDO2VOs(Arrays.stream(ServiceProvider.getOMDService().getBTMService().getAllBtmItem("")).collect(Collectors.toList())); |
| | | return btmDO2VOs(Arrays.stream(ServiceProvider.getOMDService().getBTMService().getBizTypes("")).collect(Collectors.toList())); |
| | | return btmDO2VOs(Arrays.stream(platformClientUtil.getBtmService().getBizTypes("")).collect(Collectors.toList())); |
| | | } catch (PLException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | @VciUnLog |
| | | @Cacheable(value = VCI_OBJECT_SERVICE,key = CacheKeyConstant.ALL_BTM,unless = "#result == null") |
| | | public Map<String, OsBtmTypeVO> selectAllBtmMap() { |
| | | return Optional.ofNullable(self.selectAllBtm()).orElseGet(()->new ArrayList<OsBtmTypeVO>()).stream().collect(Collectors.toMap(s->s.getId().toLowerCase(), t->t,(o1,o2)->o1)); |
| | | } |
| | |
| | | * 清除缓存 |
| | | */ |
| | | @Override |
| | | @CacheEvict(value = VCI_OBJECT_SERVICE,key = CacheKeyConstant.ALL_BTM) |
| | | public void clearCache() { |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 修改业务类型中对应属性名的属性 |
| | | * @param apName |
| | | * @return |
| | | * @throws PLException |
| | | */ |
| | | @Override |
| | | public boolean alterAp(String apName) throws PLException { |
| | | String[] btmNames = null; |
| | | List<String> btmNameList = new ArrayList<String>(); |
| | | AttributeDef abItem = null; |
| | | try { |
| | | abItem = platformClientUtil.getAttributeService().getAttributeDefByName(apName); |
| | | } catch (PLException e1) { |
| | | e1.printStackTrace(); |
| | | } |
| | | if(abItem == null || abItem.equals("")){ |
| | | return true; |
| | | } |
| | | try { |
| | | btmNames = platformClientUtil.getBtmService().getBTNamesByAPName(apName); |
| | | } catch (PLException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | if(btmNames == null || btmNames.length <= 0){ |
| | | return true; |
| | | } |
| | | |
| | | btmNameList = Arrays.asList(btmNames); |
| | | for(Iterator<String> i = btmNameList.iterator(); i.hasNext();){ |
| | | String btmName = i.next(); |
| | | try { |
| | | platformClientUtil.getBtmService().modifyBTAttribute(btmName, apName); |
| | | } catch (PLException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | String erreMsg = "调整业务类型中【"+apName+"】属性时出现错误,原因:"+e.getMessage(); |
| | | logger.error(erreMsg); |
| | | throw new PLException("500",new String[]{erreMsg}); |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * 判断该属性是否已经在业务类型中产生了数据 |
| | | * @param abName |
| | | * @return |
| | | * @throws PLException |
| | | */ |
| | | @Override |
| | | public boolean hasInstance(String abName) throws PLException { |
| | | String[] btmNames = platformClientUtil.getBtmService().getBTNamesByAPName(abName); |
| | | if(btmNames == null || btmNames.length == 0){ |
| | | return false; |
| | | } |
| | | for(int i = 0; i < btmNames.length; i++){ |
| | | String btmName = btmNames[i]; |
| | | boolean flag; |
| | | flag = platformClientUtil.getBtmService().hasData(btmName); |
| | | if(flag){ |
| | | return flag; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * 获取名字以filter开始的业务类型(for 查询),主要用于属性池的业务类型选择对话框 |
| | | * 获取全部业务类型,传参filter为"" |
| | | * @param btmName |
| | | * @return |
| | | * @throws PLException |
| | | */ |
| | | @Override |
| | | public BizType[] getBizTypes(String btmName) throws PLException { |
| | | if(null == btmName){ |
| | | btmName = ""; |
| | | } |
| | | return platformClientUtil.getBtmService().getBizTypes(btmName); |
| | | } |
| | | |
| | | /** |
| | | * 参照业务类型 |
| | | * |
| | | * @param conditionMap 查询条件 |