package cn.ksource.web.facade.uc.order; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.page.PageInfo; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.util.StringUtil; import cn.ksource.web.Constants; @Service("ucOrderFacade") public class UcOrderFacadeImpl implements UcOrderFacade { @Autowired private BaseDao baseDao; /** * 查询服务台所有工单数量,默认查询未完成的 */ @Override public int ordersListCount(Map params) { StringBuilder builder = new StringBuilder("SELECT COUNT(A.ID) FROM WORKFLOW_BASE A WHERE WFSTATE != :ysc "); params.put("ysc", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_WFSTATE_DELETE)); builder.append(" AND A.CUSTOMER_ID = :cusId "); builder = getOrderSql(builder,params); return baseDao.queryForInteger(builder.toString(),params); } @Override public PageInfo ordersListData(PageInfo pageInfo,Map params) { StringBuilder builder = new StringBuilder("SELECT A.* FROM WORKFLOW_BASE A WHERE WFSTATE != :ysc "); params.put("ysc", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_WFSTATE_DELETE)); builder.append(" AND A.CUSTOMER_ID = :cusId "); builder = getOrderSql(builder,params); builder.append(" ORDER BY A.CREATETIME DESC "); return baseDao.queryforSplitPageInfo(pageInfo, builder.toString(), params); } public StringBuilder getOrderSql(StringBuilder builder,Map params){ String orderName = params.get("orderName"); if(StringUtil.notEmpty(orderName)) { builder.append(" AND A.WFNAME LIKE :orderName "); params.put("orderName", "%"+orderName+"%"); } String types = params.get("types"); if(StringUtil.notEmpty(types)) { String[] type = types.split(","); if(type.length==1) { builder.append(" AND A.BUSINESSTYPE = :businessType"); params.put("businessType", type[0]); } else { builder.append(" AND A.BUSINESSTYPE IN ("); for(int i=0; i= :beginTime "); params.put("beginTime", beginTime+"000000"); } String endTime = params.get("endTime"); if(StringUtil.notEmpty(beginTime)) { builder.append(" AND A.CREATETIME <= :endTime "); params.put("endTime", endTime+"240000"); } return builder; } }