package com.cabletech.business.workflow.electricity.security.condition; import com.cabletech.baseinfo.business.entity.UserInfo; import com.cabletech.business.base.condition.BusinessConditionUtils; import com.cabletech.business.base.condition.ConditionGenerate; import com.cabletech.business.base.condition.ConditionGenerateUtils; import com.cabletech.business.base.condition.QueryParameter; import com.cabletech.business.workflow.electricity.security.model.OeDispatchTask; import com.cabletech.common.base.SysConstant; import com.cabletech.common.util.Page; /** * 查询条件生成器基类 * * @author 杨隽 2012-05-04 创建 * @author 杨隽 2012-05-07 * 补充putQueryCondition()、putUserCondition()、putDateCondition * ()和putOeDispatchTaskStateCondition()方法内容 * */ public abstract class BaseConditionGenerate implements ConditionGenerate { // 主体业务数据查询条件缓冲区 protected StringBuffer businessDataCondition = new StringBuffer(""); // 级联基础表数据查询条件缓冲区 protected StringBuffer joinDataCondition = new StringBuffer(""); // 内部业务数据查询条件缓冲区 protected StringBuffer innerDataCondition = new StringBuffer(""); // 缺省页面配置 @SuppressWarnings("rawtypes") protected Page page = new Page(SysConstant.DEFAULT_PAGE_SIZE); /** * 获取当前用户创建的查询条件sql * * @param user * UserInfo 当前用户信息 * @return String 当前用户创建的查询条件sql */ public String getSelfCreatedCondition(UserInfo user) { QueryParameter parameter = new QueryParameter(); parameter.setAlias("odt"); parameter.setColumnName("CREATOR"); parameter.setValue(user.getPersonId()); return ConditionGenerateUtils .getConditionEqualByAndLogicOperator(parameter); } /** * 获取业务表单查询条件sql语句 * * @return String 业务表单查询条件sql语句 */ @Override public String getBusinessTableDataCondition() { // TODO Auto-generated method stub return businessDataCondition.toString(); } /** * 获取业务表单内联查询条件sql语句 * * @return String 业务表单内联查询条件sql语句 */ public String getBusinessTableDataInCondition() { StringBuffer conditionBuffer = new StringBuffer(""); conditionBuffer.append(innerDataCondition); return conditionBuffer.toString(); } @Override @SuppressWarnings("rawtypes") public Page getPage() { // TODO Auto-generated method stub return page; } @Override @SuppressWarnings("rawtypes") public void setPage(Page page) { this.page = page; } /** * 将公用的供电保障查询条件存放到查询条件中 * * @param parameter * QueryParameter 查询条件参数 */ protected void putQueryCondition(QueryParameter parameter) { OeDispatchTask oeDispatchTask = (OeDispatchTask) parameter.getEntity(); if (!QueryParameter.isNull(oeDispatchTask)) { parameter.setAlias("odt"); parameter.setColumnName("TASK_NAME"); parameter.setValue(oeDispatchTask.getTitle()); businessDataCondition.append(ConditionGenerateUtils .getConditionLikeByAndLogicOperator(parameter)); parameter.setColumnName("MAINTENANCE_ID"); parameter.setValue(oeDispatchTask.getMaintenanceId()); businessDataCondition.append(ConditionGenerateUtils .getConditionEqualByAndLogicOperator(parameter)); parameter.setColumnName("STATE"); parameter.setValue(oeDispatchTask.getState()); businessDataCondition.append(ConditionGenerateUtils .getConditionEqualByAndLogicOperator(parameter)); parameter.setAlias("res"); parameter.setColumnName("NAME"); parameter.setValue(oeDispatchTask.getStationName()); businessDataCondition.append(ConditionGenerateUtils .getConditionLikeByAndLogicOperator(parameter)); putDateCondition(parameter); putUserCondition(parameter); } } /** * 将派单状态查询条件放到查询条件缓冲区中 * * @param value * String 派单状态值 * @param isEqual * boolean 是否进行等于判断 */ protected void putOeDispatchTaskStateCondition(String value, boolean isEqual) { QueryParameter parameter = new QueryParameter(); parameter.setAlias("odt"); parameter.setColumnName("STATE"); parameter.setValue(value); if (isEqual) { businessDataCondition.append(ConditionGenerateUtils .getConditionEqualByAndLogicOperator(parameter)); } else { businessDataCondition.append(ConditionGenerateUtils .getConditionNotEqualByAndLogicOperator(parameter)); } } /** * 将当前登录用户查询条件放到查询条件缓冲区中 * * @param parameter * QueryParameter 查询参数 */ private void putUserCondition(QueryParameter parameter) { UserInfo userInfo = parameter.getUser(); if (QueryParameter.isNull(userInfo)) { return; } if (userInfo.isCityContractor()) { parameter.setAlias("vo"); parameter.setColumnName("ID"); parameter.setValue(userInfo.getOrgId()); businessDataCondition.append(BusinessConditionUtils .getOrgCondition(parameter)); } if (userInfo.isCityMobile()) { parameter.setAlias("vo"); parameter.setColumnName("REGIONID"); parameter.setValue(userInfo.getRegionId()); businessDataCondition.append(BusinessConditionUtils .getRegionCondition(parameter)); } } /** * 将日期查询条件放到查询条件缓冲区中 * * @param parameter * QueryParameter 查询条件参数 */ private void putDateCondition(QueryParameter parameter) { OeDispatchTask oeDispatchTask = (OeDispatchTask) parameter.getEntity(); parameter.setAlias("odt"); parameter.setColumnName("CREATE_DATE"); parameter.setValue(oeDispatchTask.getCreateDateMin()); parameter.setOperator(ConditionGenerateUtils.GE_OPERATOR); businessDataCondition.append(ConditionGenerateUtils .getConditionDateByAndLogicOperator(parameter)); parameter.setValue(oeDispatchTask.getCreateDateMax()); parameter.setOperator(ConditionGenerateUtils.LT_OPERATOR); businessDataCondition.append(ConditionGenerateUtils .getConditionNextDateByAndLogicOperator(parameter)); } }