package cn.ksource.web.facade.repair;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.stereotype.Service;
|
|
import cn.ksource.core.dao.BaseDao;
|
import cn.ksource.core.dao.SqlParameter;
|
import cn.ksource.core.page.PageInfo;
|
import cn.ksource.core.util.DateUtil;
|
import cn.ksource.core.util.StringUtil;
|
import cn.ksource.web.Constants;
|
|
@Service
|
public class RepairFacadeImpl implements RepairFacade{
|
|
@Resource
|
private BaseDao baseDao;
|
|
@Override
|
public PageInfo getRepiarData(PageInfo pageInfo, Map<String, String> params) {
|
Map support = getRcxjSupport(params);
|
String sql = support.get("sql").toString();
|
return baseDao.queryforSplitPageInfo(pageInfo, sql, params);
|
}
|
|
@Override
|
public Integer getRepairCount(Map<String, String> params) {
|
Map support = getRcxjSupport(params);
|
String sql = "select count(*) from ( " + support.get("sql").toString() + " ) t ";
|
return baseDao.queryForInteger(sql, params);
|
}
|
|
private Map getRcxjSupport(Map<String, String> params){
|
Map<String, Object> support = new HashMap<String, Object>();
|
StringBuilder sql = new StringBuilder();
|
sql.append(" select a.*,b.customer_name cus_name ");
|
sql.append(" from repair_record a,sc_partner_customer_info b ");
|
sql.append(" where a.cus_id = b.id ");
|
if(StringUtil.isNotBlank(params.get("userId"))){
|
sql.append(" and a.deal_id = :userId ");
|
}else{
|
sql.append(" and a.deal_id is null ");
|
}
|
|
if(StringUtil.isNotBlank(params.get("status"))){
|
sql.append(" and a.status = :status ");
|
}
|
|
if(StringUtil.isNotBlank(params.get("customerId"))){
|
sql.append(" and a.cus_id = :customerId ");
|
}
|
|
if(StringUtil.isNotBlank(params.get("beginDate"))){
|
sql.append(" and a.create_time >=:beginDate ");
|
params.put("beginDate", params.get("beginDate")+"000000");
|
}
|
if(StringUtil.isNotBlank(params.get("endDate"))){
|
sql.append(" and a.create_time <=:endDate ");
|
params.put("endDate", params.get("endDate")+"666666");
|
}
|
|
sql.append(" order by a.create_time desc ");
|
support.put("sql", sql.toString());
|
support.put("param", params);
|
return support;
|
}
|
|
@Override
|
public Map getRepairById(String id) {
|
StringBuilder sql = new StringBuilder();
|
sql.append(" select A.*,B.CUSTOMER_NAME CUS_NAME,C.YWKS,C.ZW,C.CONTACTS_TYPE,C.TELEPHONE,C.MOBILE,D.ORDER_CODE ");
|
sql.append(" from SC_PARTNER_CUSTOMER_INFO B ,REPAIR_RECORD A LEFT JOIN SC_WORKFLOW_INCIDENT D ON A.INCIDENT_ID = D.ID");
|
sql.append(" left join CUSTOMER_CONTACTS C on A.CREATE_ID = C.ID WHERE A.CUS_ID = B.ID AND A.ID=:id ");
|
return baseDao.queryForMap(sql.toString(),new SqlParameter("id",id));
|
}
|
|
@Override
|
public String doAnswer(Map<String, String> params) {
|
StringBuilder sql = new StringBuilder();
|
sql.append(" select status from repair_record where id = :id ");
|
String status = baseDao.queryForString(sql.toString(), params);
|
if(!status.equals("1")){
|
return "2";
|
}
|
sql.setLength(0);
|
params.put("status", Constants.REPAIR_STATE_CLZ.toString());
|
params.put("curTime", DateUtil.getCurrentDate14().toString());
|
sql.append(" update repair_record set status=:status,deal_id=:userId,deal_name=:userName,answer_time=:curTime where id = :id ");
|
baseDao.execute(sql.toString(), params);
|
return "1";
|
}
|
|
@Override
|
public void doCloseRepair(Map<String, String> params) {
|
params.put("status", Constants.REPAIR_STATE_GB.toString());
|
String sql = "update REPAIR_RECORD set STATUS =:status,CLOSEREASON = :closereason where id=:id ";
|
baseDao.execute(sql, params);
|
}
|
}
|