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<String,String> 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<String,String> 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<String,String> 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<type.length; i++) {
|
builder.append(" :type"+i);
|
builder.append(",");
|
params.put("type"+i, type[i]);
|
}
|
builder.deleteCharAt(builder.lastIndexOf(","));
|
builder.append(")");
|
}
|
}
|
|
String orderStatus = params.get("orderStatus");
|
if(StringUtil.notEmpty(orderStatus)) {
|
builder.append(" AND A.WFSTATE = :orderStatus ");
|
params.put("orderStatus", orderStatus);
|
}
|
|
String orderCode = params.get("orderCode");
|
if(StringUtil.notEmpty(orderCode)) {
|
builder.append(" AND A.ORDER_CODE LIKE :orderCode ");
|
params.put("orderCode", "%"+orderCode+"%");
|
}
|
|
|
String beginTime = params.get("beginTime");
|
if(StringUtil.notEmpty(beginTime)) {
|
builder.append(" AND A.CREATETIME >= :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;
|
}
|
|
}
|