package com.cabletech.business.desktop.service.impl; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.cabletech.baseinfo.business.Service.BaseInfoProvider; import com.cabletech.baseinfo.business.entity.UserInfo; import com.cabletech.business.desktop.dao.ContractorResEquipDao; import com.cabletech.business.desktop.dao.DesktopDao; import com.cabletech.business.desktop.service.OnlineManService; import com.cabletech.common.base.BaseDao; import com.cabletech.common.base.BaseServiceImpl; /** * 在线人员服务实现 * * @author zhaobi * @date 2012-8-14 */ @Service @SuppressWarnings("rawtypes") public class OnlineManServiceImpl extends BaseServiceImpl implements OnlineManService { // 桌面服务Dao @Resource(name = "desktopDao") private DesktopDao desktopDao; // 代维资源配备统计 @Resource(name = "contractorResEquipDao") private ContractorResEquipDao contractorResEquipDao; @Resource(name = "baseInfoProvider") private BaseInfoProvider baseInfoProvider; @Override @Transactional public List<Map<String, Object>> getOnlineManTreeList(UserInfo user) { // TODO Auto-generated method stub List<Map<String, Object>> list = desktopDao.getOnlineManTreeList(user); return list; } @Override @SuppressWarnings("unchecked") @Transactional public Map<String, Object> getPatrolGroupOnlineMan(UserInfo user) { // chart最后数据 Map<String, Object> chartdate = new HashMap<String, Object>(); // 图表中呈现数据 List series = new ArrayList(); List orgnamelist = new ArrayList(); Map<String, Object> mapdate = new HashMap<String, Object>(); // 组织ID String orgid = user.getOrgId(); // 组织名称 String orgname = user.getOrgName(); // 作为PIE图名称 orgnamelist.add(orgname); List<Map<String, Object>> grouplist = contractorResEquipDao .getOnlineManGroupByOrgID(orgid); // 在线人员总数 int allcount = 0; // 在线人员数量 int rlmancount = 0; // 饼内饼数据 Map<String, Object> drilldownMap = new HashMap<String, Object>(); List olmancountlist = new ArrayList(); List groupnamelist = new ArrayList(); if (null != grouplist && grouplist.size() > 0) { for (int j = 0; j < grouplist.size(); j++) { // 饼内饼名称 groupnamelist.add(grouplist.get(j).get("NAME")); int olmancount = Integer.valueOf(grouplist.get(j) .get("OLMANCOUNT").toString()); // 饼内饼数量 olmancountlist.add(olmancount); // 饼数据 allcount += Integer.valueOf(grouplist.get(j).get("ALLMANCOUNT") .toString()); // 在线人员总数 rlmancount += olmancount; } groupnamelist.add("非在线人员"); olmancountlist.add(allcount - rlmancount); drilldownMap.put("name", orgname); drilldownMap.put("categories", groupnamelist); drilldownMap.put("data", olmancountlist); mapdate.put("y", allcount); mapdate.put("drilldown", drilldownMap); series.add(mapdate); } chartdate.put("categories", orgnamelist); chartdate.put("data", series); return chartdate; } @Override @SuppressWarnings("unchecked") @Transactional public Map<String, Object> getContractoridOnlineMan(UserInfo user) { // 获取市移动用户所有代维 List<Map<String, Object>> orglist = contractorResEquipDao .getOnlineManOrgByRegionID(user.getRegionId()); // chart最后数据 Map<String, Object> chartdate = new HashMap<String, Object>(); // 图表中呈现数据 List series = new ArrayList(); if (null != orglist && orglist.size() > 0) { List orgnamelist = new ArrayList(); for (int i = 0; i < orglist.size(); i++) { Map<String, Object> mapdate = new HashMap<String, Object>(); // 组织ID String orgid = orglist.get(i).get("ID").toString(); // 组织名称 String orgname = orglist.get(i).get("NAME").toString(); // 作为PIE图名称 orgnamelist.add(orgname); List<Map<String, Object>> grouplist = contractorResEquipDao .getOnlineManGroupByOrgID(orgid); // 在线人员总数 int allcount = 0; // 在线人员数量 int rlmancount = 0; // 饼内饼数据 Map<String, Object> drilldownMap = new HashMap<String, Object>(); List olmancountlist = new ArrayList(); List groupnamelist = new ArrayList(); if (null != grouplist && grouplist.size() > 0) { for (int j = 0; j < grouplist.size(); j++) { // 饼内饼名称 groupnamelist.add(grouplist.get(j).get("NAME") .toString()); int olmancount = Integer.valueOf(grouplist.get(j) .get("OLMANCOUNT").toString()); // 饼内饼数量 olmancountlist.add(olmancount); // 饼数据 allcount += Integer.valueOf(grouplist.get(j) .get("ALLMANCOUNT").toString()); // 在线人员总数 rlmancount += olmancount; } } groupnamelist.add("非在线人员"); olmancountlist.add(allcount - rlmancount); drilldownMap.put("name", orgname); drilldownMap.put("categories", groupnamelist); drilldownMap.put("data", olmancountlist); mapdate.put("y", allcount); mapdate.put("drilldown", drilldownMap); series.add(mapdate); } chartdate.put("categories", orgnamelist); chartdate.put("data", series); return chartdate; } return null; } @Override @SuppressWarnings("unchecked") @Transactional public Map<String, Object> getRegionOnlineMan(UserInfo user) { // 获取省用户所有市级区域 List<Map<String, Object>> regionlist = baseInfoProvider .getRegionService().regionIteration(user.getRegionId(), "2"); // chart最后数据 Map<String, Object> chartdate = new HashMap<String, Object>(); // 图表中呈现数据 List series = new ArrayList(); if (null != regionlist && regionlist.size() > 0) { List regionnamelist = new ArrayList(); for (int i = 0; i < regionlist.size(); i++) { Map<String, Object> mapdate = new HashMap<String, Object>(); // 区域ID String regionid = regionlist.get(i).get("REGIONID").toString(); // 区域名称 String regionname = regionlist.get(i).get("REGIONNAME") .toString(); // 作为PIE图名称 regionnamelist.add(regionname); List<Map<String, Object>> orglist = contractorResEquipDao .getOnlineManOrgByRegionID(regionid); // 在线人员总数 int allcount = 0; // 在线人员数量 int rlmancount = 0; // 饼内饼数据 Map<String, Object> drilldownMap = new HashMap<String, Object>(); List olmancountlist = new ArrayList(); List orgnamelist = new ArrayList(); if (null != orglist && orglist.size() > 0) { for (int j = 0; j < orglist.size(); j++) { // 饼内饼名称 orgnamelist.add(orglist.get(j).get("NAME")); int olmancount = Integer.valueOf(orglist.get(j) .get("OLMANCOUNT").toString()); // 饼内饼数量 olmancountlist.add(olmancount); // 饼数据 allcount += Integer.valueOf(orglist.get(j) .get("ALLMANCOUNT").toString()); // 在线人员总数 rlmancount += olmancount; } } orgnamelist.add("非在线人员"); olmancountlist.add(allcount - rlmancount); drilldownMap.put("name", regionname); drilldownMap.put("categories", orgnamelist); drilldownMap.put("data", olmancountlist); mapdate.put("y", allcount); mapdate.put("drilldown", drilldownMap); series.add(mapdate); } chartdate.put("categories", regionnamelist); chartdate.put("data", series); return chartdate; } return null; } @Override protected BaseDao getBaseDao() { // TODO Auto-generated method stub return null; } }