package com.cabletech.business.workflow.fault.service.impl; import java.util.Map; import javax.annotation.Resource; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.cabletech.business.workflow.common.condition.StatisticQueryParameter; import com.cabletech.business.workflow.fault.dao.FaultHandledOverTimeDao; import com.cabletech.business.workflow.fault.service.FaultHandledOverTimeService; import com.cabletech.common.base.BaseDao; import com.cabletech.common.base.BaseServiceImpl; import com.cabletech.common.util.Page; /** * 故障处理超时率统计 * * @author zhaobi * @author 杨隽 2012-04-28 进行方法的参数个数重构 * */ @SuppressWarnings("rawtypes") @Service public class FaultHandledOverTimeServiceImpl extends BaseServiceImpl implements FaultHandledOverTimeService { /** * 故障处理超时Dao */ @Resource(name = "faultHandledOverTimeDao") private FaultHandledOverTimeDao faultHandledOverTimeDao; protected BaseDao getBaseDao() { return faultHandledOverTimeDao; } /** * 获取故障处理超时列表 * * @param page * Page 分页信息数据 * @param parameter * StatisticQueryParameter 查询条件参数 * @return Page 分页信息数据 */ @Override @Transactional(readOnly = true) public Page list(Page<Map<String, Object>> page, StatisticQueryParameter parameter) { StringBuffer condition = new StringBuffer(""); if (StringUtils.isNotBlank(parameter.getStartTime())) { condition.append(" and wa.trouble_time>=to_date('"); condition.append(parameter.getStartTime()); condition.append("','yyyy-mm-dd') "); } if (StringUtils.isNotBlank(parameter.getEndTime())) { condition.append(" and wa.trouble_time<to_date('"); condition.append(parameter.getEndTime()); condition.append("','yyyy-mm-dd')+1 "); } if (StringUtils.isNotBlank(parameter.getContractorId())) { condition.append(" and ui.id=any( "); condition.append(" select id from view_org "); condition.append(" start with id='"); condition.append(parameter.getContractorId()); condition.append("' "); condition.append(" connect by prior id=parentid "); condition.append(" ) "); } else if (parameter.getUser().isContractor()) { condition.append(" and ui.id=any( "); condition.append(" select id from view_org "); condition.append(" start with id='"); condition.append(parameter.getUser().getOrgId()); condition.append("' "); condition.append(" connect by prior id=parentid "); condition.append(" ) "); } if (StringUtils.isNotBlank(parameter.getBusinessType())) { condition.append(" and wa.business_type='"); condition.append(parameter.getBusinessType()); condition.append("' "); } if (parameter.getUser().isMobile()) { condition.append(" and ui.regionid=any( "); condition.append(" select regionid from view_region "); condition.append(" start with regionid='"); condition.append(parameter.getUser().getRegionId()); condition.append("' "); condition.append(" connect by prior regionid=parentid"); condition.append(" ) "); } return faultHandledOverTimeDao.getList(page, condition.toString()); } }