package com.cabletech.business.wplan.nopatrolstation.dao; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Repository; import com.cabletech.baseinfo.business.entity.UserInfo; import com.cabletech.business.base.condition.BusinessConditionUtils; import com.cabletech.business.base.condition.QueryParameter; import com.cabletech.business.wplan.nopatrolstation.model.NoPatrolStation; import com.cabletech.common.base.BaseDao; import com.cabletech.common.base.SysConstant; /** * 未巡检站点原因登记Dao * * @author 杨隽 2012-07-23 创建 * */ @Repository public class NoPatrolStationDao extends BaseDao<NoPatrolStation, String> { /** * 获取根据查询条件获取未巡检站点原因登记列表的SQL语句 * * @param noPatrolStation * NoPatrolStation * @return String */ public String getNoPatrolStationListSql(NoPatrolStation noPatrolStation) { StringBuffer sqlBuf = new StringBuffer(""); sqlBuf.append(" SELECT DISTINCT wn.*,vu.USERNAME AS RECORD_USERNAME, "); sqlBuf.append(" to_char(wn.RECORD_DATE,'yyyy-mm-dd hh24:mi:ss') AS RECORD_DATE_DIS, "); sqlBuf.append(" rz.ZYMC,wp.PLAN_NAME,dic.LABLE AS PROBLEM_TYPE_DIS "); sqlBuf.append(" FROM WPLAN_NOPATROLSTATION wn "); sqlBuf.append(" JOIN RES_ZDXX rz ON wn.RESOURCE_ID=rz.XTBH "); sqlBuf.append(" JOIN RES_MAINTENANCE rm ON rz.XTBH=rm.RS_ID "); sqlBuf.append(" JOIN WPLAN_PATROLINFO wp ON wn.PLAN_ID=wp.ID "); sqlBuf.append(" JOIN VIEW_USERINFO vu ON wn.RECORDER=vu.SID "); sqlBuf.append(" JOIN BASE_SYSDICTIONARY dic "); sqlBuf.append(" ON wn.PROBLEM_TYPE=dic.CODEVALUE "); sqlBuf.append(" AND dic.COLUMNTYPE='NOPATROLSTATION_PROBLEM_TYPE' "); sqlBuf.append(" WHERE 1=1 "); getUserCondition(noPatrolStation, sqlBuf); if (StringUtils.isNotBlank(noPatrolStation.getContractorId())) { sqlBuf.append(" AND rm.MAINTENANCE_ID='"); sqlBuf.append(noPatrolStation.getContractorId()); sqlBuf.append("' "); } if (StringUtils.isNotBlank(noPatrolStation.getProblemType())) { sqlBuf.append(" AND wn.PROBLEM_TYPE='"); sqlBuf.append(noPatrolStation.getProblemType()); sqlBuf.append("' "); } if (StringUtils.isNotBlank(noPatrolStation.getStartDate())) { sqlBuf.append(" AND wn.RECORD_DATE>=to_date('"); sqlBuf.append(noPatrolStation.getStartDate()); sqlBuf.append("','yyyy-mm-dd') "); } if (StringUtils.isNotBlank(noPatrolStation.getEndDate())) { sqlBuf.append(" AND wn.RECORD_DATE<to_date('"); sqlBuf.append(noPatrolStation.getEndDate()); sqlBuf.append("','yyyy-mm-dd')+1 "); } if (StringUtils.isNotBlank(noPatrolStation.getStationName())) { sqlBuf.append(" AND rz.ZYMC LIKE '%"); sqlBuf.append(noPatrolStation.getStationName()); sqlBuf.append("%' "); } if (StringUtils.isNotBlank(noPatrolStation.getPlanName())) { sqlBuf.append(" AND wp.PLAN_NAME LIKE '%"); sqlBuf.append(noPatrolStation.getPlanName()); sqlBuf.append("%' "); } if (StringUtils.isNotBlank(noPatrolStation.getRecorder())) { sqlBuf.append(" AND vu.USERNAME LIKE '%"); sqlBuf.append(noPatrolStation.getRecorder()); sqlBuf.append("%' "); } if (StringUtils.isNotBlank(noPatrolStation.getProcessState())) { sqlBuf.append(" AND wn.PROCESS_STATE='"); sqlBuf.append(noPatrolStation.getProcessState()); sqlBuf.append("' "); } if (NoPatrolStation.IS_CONFIRM_LIST.equals(noPatrolStation.getIfConfirm())) { sqlBuf.append(" AND wn.PROCESS_STATE='"); sqlBuf.append(NoPatrolStation.NO_PROCESS_STATE); sqlBuf.append("' "); } if (StringUtils.isNotBlank(noPatrolStation.getResourceType())) { sqlBuf.append(" AND wn.RESOURCE_TYPE='"); sqlBuf.append(noPatrolStation.getResourceType()); sqlBuf.append("' "); } sqlBuf.append(" ORDER BY wn.RECORD_DATE DESC,wn.ID DESC "); return sqlBuf.toString(); } /** * 获取根据查询条件获取当前处于巡检状态的站点列表的SQL语句 * * @param noPatrolStation * NoPatrolStation * @return String */ public String getStationListSql(NoPatrolStation noPatrolStation) { StringBuffer sqlBuf = new StringBuffer(""); sqlBuf.append(" SELECT wpr.*,rz.ZYMC,wp.PLAN_NAME,rz.ZDBH "); sqlBuf.append(" FROM WPLAN_PATROLRESOURCE wpr "); sqlBuf.append(" JOIN WPLAN_PATROLINFO wp ON wp.ID=wpr.PLAN_ID "); sqlBuf.append(" JOIN RES_ZDXX rz ON rz.XTBH=wpr.RESOURCE_ID "); sqlBuf.append(" JOIN RES_MAINTENANCE rm ON rz.XTBH=rm.RS_ID "); sqlBuf.append(" AND rm.RS_TYPe=wp.BUSINESS_TYPE "); sqlBuf.append(" WHERE 1=1 "); getUserCondition(noPatrolStation, sqlBuf); if (StringUtils.isNotBlank(noPatrolStation.getStartDate())) { sqlBuf.append(" AND wp.START_TIME>=to_date('"); sqlBuf.append(noPatrolStation.getStartDate()); sqlBuf.append("','yyyy-mm-dd') "); } if (StringUtils.isNotBlank(noPatrolStation.getEndDate())) { sqlBuf.append(" AND wp.START_TIME<to_date('"); sqlBuf.append(noPatrolStation.getEndDate()); sqlBuf.append("','yyyy-mm-dd')+1 "); } if (StringUtils.isNotBlank(noPatrolStation.getStationName())) { sqlBuf.append(" AND rz.ZYMC LIKE '%"); sqlBuf.append(noPatrolStation.getStationName()); sqlBuf.append("%' "); } if (StringUtils.isNotBlank(noPatrolStation.getPlanName())) { sqlBuf.append(" AND wp.PLAN_NAME LIKE '%"); sqlBuf.append(noPatrolStation.getPlanName()); sqlBuf.append("%' "); } if (StringUtils.isNotBlank(noPatrolStation.getResourceType())) { sqlBuf.append(" AND wp.BUSINESS_TYPE='"); sqlBuf.append(noPatrolStation.getResourceType()); sqlBuf.append("' "); } sqlBuf.append(" AND wp.PLAN_STATE='"); sqlBuf.append(SysConstant.PASSED_STATE); sqlBuf.append("' "); sqlBuf.append(" AND wp.START_TIME<=sysdate "); sqlBuf.append(" AND wp.END_TIME>=sysdate "); return sqlBuf.toString(); } /** * 根据当前用户信息获取查询条件 * * @param noPatrolStation * NoPatrolStation * @param sqlBuf * StringBuffer */ private void getUserCondition(NoPatrolStation noPatrolStation, StringBuffer sqlBuf) { UserInfo user = noPatrolStation.getUser(); QueryParameter parameter = new QueryParameter(); parameter.setAlias("rz"); parameter.setValue(user.getRegionId()); parameter.setColumnName("REGIONID"); sqlBuf.append(BusinessConditionUtils.getRegionCondition(parameter)); if (user.isContractor()) { sqlBuf.append(" AND rm.MAINTENANCE_ID='"); sqlBuf.append(user.getOrgId()); sqlBuf.append("' "); } } }