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 com.cabletech.baseinfo.business.entity.UserInfo; import com.cabletech.business.desktop.dao.LinePatrolAnalysisDao; import com.cabletech.business.desktop.service.PatrolPlanSeivice; import com.cabletech.business.wplan.plan.dao.PatrolanalysisDao; import com.cabletech.common.base.BaseDao; import com.cabletech.common.base.BaseServiceImpl; import com.cabletech.common.base.SysConstant; /** * 获取巡检统计分析服务 * * @author Administrator * */ @SuppressWarnings("rawtypes") @Service public class PatrolPlanSeiviceImpl extends BaseServiceImpl implements PatrolPlanSeivice { /** * 巡检分析信息DAO */ @Resource(name = "patrolanalysisDao") private PatrolanalysisDao patrolanalysisDao; /** * 线路巡检分析 */ @Resource(name = "linePatrolAnalysisDao") private LinePatrolAnalysisDao linePatrolAnalysisDao; /** * 计算巡检率 * @param loginUser 此用户 * @param timetype 时间类型 */ @SuppressWarnings("unchecked") public Map<String, Object> getPatrolRate(UserInfo loginUser,String timetype) { List<Map<String, Object>> bzTypesList = loginUser.getBusinessTypes(); List namelist = new ArrayList(); // chart最后数据 Map<String, Object> chartdate = new HashMap<String, Object>(); if (null != bzTypesList && bzTypesList.size() > 0) { // 图表中呈现数据 List series = new ArrayList(); for (int i = 0; i < bzTypesList.size(); i++) { String bustypstr = bzTypesList.get(i).get("CODEVALUE") .toString(); Map<String, Object> map = new HashMap<String, Object>(); if (SysConstant.usebtypeList().contains(bustypstr)) { List<Map<String, Object>> planrate = null; if (SysConstant.DICTIONARY_FORMITEM_BUSINESSTYPE_C30 .equals(bustypstr)) { planrate = getLineRate(loginUser); } else { planrate = getWPlanRate(loginUser, bustypstr, timetype); } if (null != planrate && planrate.size() > 0) { List reslist = new ArrayList(); for (int j = 0; j < planrate.size(); j++) { if (!namelist.contains(planrate.get(j).get("NAME"))) { namelist.add(planrate.get(j).get("NAME")); } reslist.add(Float.valueOf(planrate.get(j) .get("RATE").toString())); } map.put("name", bzTypesList.get(i).get("LABLE") .toString()); map.put("data", reslist); series.add(map); } } } chartdate.put("xcategories", namelist); chartdate.put("series", series); return chartdate; } return null; } /** * 获取线路巡检率 * * @param loginUser * @return */ private List<Map<String, Object>> getLineRate(UserInfo loginUser) { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); if (loginUser.isProvinceMobile()) {// 省移动用户 list = linePatrolAnalysisDao .getRegionLinePatrolResultRateList(loginUser.getRegionId()); } else if (loginUser.isCityMobile()) {// 市移动用户 list = linePatrolAnalysisDao .getContractorLinePatrolResultRateList(loginUser .getRegionId()); } else if (loginUser.isContractor()) {// 代维用户 list = linePatrolAnalysisDao .getPatrolGroupLinePatrolResultRateList( loginUser.getRegionId(), loginUser.getOrgId()); } else {// 其它用户 list = linePatrolAnalysisDao .getRegionLinePatrolResultRateList(loginUser.getRegionId()); } return list; } /** * 获取无线巡检率 * * @param user * @param bustypstr bustypstr * @param timetype 时间类型 * @return */ private List<Map<String, Object>> getWPlanRate(UserInfo user, String bustypstr,String timetype) { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); if (user.isProvinceMobile()) {// 省移动用户 list = patrolanalysisDao.getRegionPatrolRate(user.getRegionId(), bustypstr, timetype); } else if (user.isCityMobile()) {// 市移动用户 list = patrolanalysisDao.getContractoridPatrolRate( user.getRegionId(), bustypstr, timetype); } else if (user.isContractor()) {// 代维用户 list = patrolanalysisDao.getPatrolGroupPatrolRate(user.getOrgId(), bustypstr, timetype); } else {// 其它用户 list = patrolanalysisDao.getRegionPatrolRate(user.getRegionId(), bustypstr, timetype); } return list; } @Override protected BaseDao getBaseDao() { // TODO Auto-generated method stub return null; } }