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 params) { Map support = getRcxjSupport(params); String sql = support.get("sql").toString(); return baseDao.queryforSplitPageInfo(pageInfo, sql, params); } @Override public Integer getRepairCount(Map params) { Map support = getRcxjSupport(params); String sql = "select count(*) from ( " + support.get("sql").toString() + " ) t "; return baseDao.queryForInteger(sql, params); } private Map getRcxjSupport(Map params){ Map support = new HashMap(); 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 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 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); } }