package com.hp.cmsz.service; import java.util.ArrayList; import java.util.List; import java.util.Set; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import com.hp.cmsz.entity.Business; import com.hp.cmsz.entity.Channel; import com.hp.cmsz.entity.DataSource; import com.hp.cmsz.entity.Kpi; import com.hp.cmsz.repository.ChannelDao; import com.hp.cmsz.repository.KpiDao; /** * * @author Ma wenmeng * */ //Spring Bean的标识. @Component //默认将类中的所有public函数纳入事务管理. @Transactional(readOnly = true) public class KpiService { @Autowired private KpiDao kpiDao; @Autowired private ChannelDao channelDao; //获取所有的业务 public List<Kpi> getAllKpis(){ return (List<Kpi>) kpiDao.findAll(); } public List<Kpi> getByBusinessIdIn(List<Long> businessIdList){ return (List<Kpi>)kpiDao.findByBusinessIdIn(businessIdList); } public List<String> getAllKpiIdAndKpiName(){ List<Object[]> list = kpiDao.findAllKpiIdAndKpiName(); List<String> kpiList = new ArrayList<String>(); for(int i=0;i<list.size();i++){ Object[] obj1 = list.get(i); for(int j=0;j<list.size();j++){ if(j!=i){ Object[] obj2 = list.get(j); if(obj1[1].equals(obj2[1])){ obj1[0] = obj1[0]+","+obj2[0]; list.remove(j); j--; } } } kpiList.add(obj1[0].toString()); kpiList.add(obj1[1].toString()); } return kpiList; } public List<String> getKpiByBusinessName(String businessName){ List<Object[]> list = kpiDao.findKpiByBusinessName(businessName); List<String> kpiList = new ArrayList<String>(); for(int i=0;i<list.size();i++){ Object[] obj1 = list.get(i); for(int j=0;j<list.size();j++){ if(j!=i){ Object[] obj2 = list.get(j); if(obj1[1].equals(obj2[1])){ obj1[0] = obj1[0]+","+obj2[0]; list.remove(j); j--; } } } kpiList.add(obj1[0].toString()); kpiList.add(obj1[1].toString()); } return kpiList; } public String getKpiNameByKpiId(List<Long> kpiIds){ List<Kpi> kpiList = kpiDao.findByKpiIdIn(kpiIds); String kpiName=""; for(int i=0;i<kpiList.size();i++){ if(i==kpiList.size()-1){ kpiName += kpiList.get(i).getKpiName(); }else{ kpiName += kpiList.get(i).getKpiName()+" "; } } return kpiName; } public List<DataSource> getDateSourceByChannelId(List<Long> channelIdList) { return kpiDao.getDateSourceByChannelId(channelIdList); } public List<Business> getBusinessByChannelId(List<Long> channelIdList) { return kpiDao.getBusinessByChannelId(channelIdList); } public List<Kpi> getKpiByChannelIds(List<Long> channelIdList) { return kpiDao.getKpiByChannelIds(channelIdList); } public List<Business> getBusinessByChannelIdAndDataSourceId(List<Long> channelIdList, List<Long> dataSourceIdList) { return kpiDao.getBusinessByChannelIdAndDataSourceId(channelIdList, dataSourceIdList); } public List<Kpi> getKpiByChannelIdsAndDataSourceId(List<Long> channelIdList, List<Long> dataSourceIdList) { return kpiDao.getKpiByChannelIdsAndDataSourceId(channelIdList, dataSourceIdList); } public List<Kpi> getKpiByBusinessId(List<Long> businessIdList) { return kpiDao.getKpiByBusinessId(businessIdList); } public List<Kpi> findKpiList() { return (List<Kpi>) kpiDao.findAll(); } public List<Channel> getChannelByRuleId(List<Long> kpiIdList) { return kpiDao.getChannelByRuleId(kpiIdList); } public List<DataSource> getDataSourceByRuleId(List<Long> kpiIdList) { return kpiDao.getDataSourceByRuleId(kpiIdList); } public List<Business> getBusinessByRuleId(List<Long> kpiIdList) { return kpiDao.getBusinessByRuleId(kpiIdList); } public List<Long> convertToIdList(Set<Kpi> kpiList) { List<Long> idList = new ArrayList<Long>(); for (Kpi kpi : kpiList) { idList.add(kpi.getKpiId()); } return idList; } public List<Long> getIdList(String ids) { List<Long> idList = new ArrayList<Long>(); for (String channelId : StringUtils.split(ids, ',')) { idList.add(new Long(channelId)); } return idList; } public List<Business> getBusinessByChannelId(List<Long> channelIdList, List<Long> dataSourceIdList) { return kpiDao.getBusinessByChannelId(channelIdList, dataSourceIdList); } public List<Kpi> findKpiList(String warningType) { return kpiDao.getAllKpi(warningType); } //new public List<DataSource> getDataSourceList(String warningType) { return kpiDao.findByChannelNameIn(warningType); } public List<DataSource> getChannelByDataSourceId(List<Long> dataSourceIdList) { return kpiDao.getChannelByDataSourceId(dataSourceIdList); } public List<Business> getBusinessByDataSourceId(List<Long> dataSourceIdList) { return kpiDao.getBusinessByDataSourceId(dataSourceIdList); } public List<Kpi> getKpiByDataSourceId(List<Long> dataSourceIdList) { return kpiDao.getKpiByDataSourceId(dataSourceIdList); } }