/**
* RDeviceProcureDao.java 2010/09/06
*/
package com.ycsoft.business.dao.resource.device;
import java.util.List;
import org.springframework.stereotype.Component;
import com.ycsoft.beans.device.RDeviceProcure;
import com.ycsoft.commons.constants.SystemConstants;
import com.ycsoft.commons.helper.StringHelper;
import com.ycsoft.daos.abstracts.BaseEntityDao;
import com.ycsoft.daos.core.JDBCException;
import com.ycsoft.daos.core.Pager;
import com.ycsoft.sysmanager.dto.resource.DeviceProcureDto;
/**
* RDeviceProcureDao -> R_DEVICE_PROCURE table's operator
*/
@Component
public class RDeviceProcureDao extends BaseEntityDao<RDeviceProcure> {
/**
*
*/
private static final long serialVersionUID = -8247429977867452300L;
/**
* default empty constructor
*/
public RDeviceProcureDao() {}
public void editProcureNo(Integer deviceDoneCode, String procureNo) throws JDBCException {
String sql = "update r_device_procure t set t.procure_no=? where t.device_done_code=?";
this.executeUpdate(sql, procureNo, deviceDoneCode);
}
public Pager<DeviceProcureDto> queryBydepot(String depotId, String query,
Integer start, Integer limit) throws JDBCException {
String sql = "SELECT t.*,d.device_type,d.device_model,d.count" +
" FROM r_device_procure t,r_device_done_detail d" +
" WHERE t.device_done_code=d.device_done_code(+) and t.depot_id=?";
if(StringHelper.isNotEmpty(query)){
sql += " and t.procure_no like '%"+query+"%'";
}
sql += " order by t.create_time desc";
return createQuery(DeviceProcureDto.class, sql, depotId).setStart(start).setLimit(limit).page();
}
private String returnSql(String deviceType){
String sql = "";
if(deviceType.equals(SystemConstants.DEVICE_TYPE_STB)){
sql = StringHelper.append(
"select t.*,b.device_id,b.stb_id device_code,b.device_model,'STB' device_type",
" from r_device_done_deviceid di,r_device_procure t,r_stb b"
);
}else if(deviceType.equals(SystemConstants.DEVICE_TYPE_CARD)){
sql = StringHelper.append(
"select t.*,b.device_id,b.card_id device_code,b.device_model,'CARD' device_type",
" from r_device_done_deviceid di,r_device_procure t,r_card b"
);
}else if(deviceType.equals(SystemConstants.DEVICE_TYPE_MODEM)){
sql = StringHelper.append(
"select t.*,b.device_id,b.modem_mac device_code,b.device_model,'MODEM' device_type",
" from r_device_done_deviceid di,r_device_procure t,r_modem b"
);
}
sql =StringHelper.append(
sql,
" where di.device_done_code=t.device_done_code",
" and di.device_id=b.device_id",
" and di.device_done_code=?",
" order by device_code"
);
return sql;
}
public List<DeviceProcureDto> queryProcureDeviceDetail(Integer deviceDoneCode, String deviceType) throws JDBCException {
String sql = returnSql(deviceType);
return this.createQuery(DeviceProcureDto.class, sql, deviceDoneCode).list();
}
public void removeByDeviceDoneCode(Integer deviceDoneCode) throws JDBCException {
String sql = "delete from r_device_procure t where t.device_done_code=?";
this.executeUpdate(sql, deviceDoneCode);
}
public DeviceProcureDto queryProcure(Integer deviceDoneCode) throws JDBCException {
String sql = "select * from r_device_procure t where t.device_done_code = ? ";
return this.createQuery(DeviceProcureDto.class, sql, deviceDoneCode).first();
}
}