package com.ld.igds.view.service;
|
|
import com.bstek.bdf2.core.orm.hibernate.HibernateDao;
|
import com.bstek.dorado.data.provider.Page;
|
import com.ld.igds.common.CoreDeviceService;
|
import com.ld.igds.models.Device;
|
import com.ld.igds.util.ContextUtil;
|
import org.apache.commons.lang.StringUtils;
|
import org.hibernate.Session;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @author Andy
|
*/
|
@Component
|
public class DeviceService extends HibernateDao {
|
|
|
@Resource
|
private CoreDeviceService coreDeviceService;
|
|
/**
|
* 加载所有设备数据
|
* <p>
|
* Title: loadDevice
|
* </p>
|
* <p>
|
* Description:
|
* </p>
|
*/
|
public List<Device> loadDevice(Map<String, Object> parameter) {
|
if (parameter == null || parameter.size() <= 0)
|
return null;
|
|
Map<String, Object> p = new HashMap<String, Object>();
|
String hql = " from " + Device.class.getName()
|
+ " where companyId = :companyId ";
|
|
String companyId = (String) parameter.get("companyId");
|
if (null == companyId) {
|
companyId = ContextUtil.getCompanyId();
|
}
|
p.put("companyId", companyId);
|
|
String depotId = (String) parameter.get("depotId");
|
if (StringUtils.isNotEmpty(depotId)) {
|
hql += " and depotId =:depotId";
|
p.put("depotId", depotId);
|
}
|
|
String type = (String) parameter.get("type");
|
if (StringUtils.isNotEmpty(type)) {
|
hql += " and type =:type";
|
p.put("type", type);
|
}
|
|
String serId = (String) parameter.get("serId");
|
if (StringUtils.isNotEmpty(serId)) {
|
hql += " and serId =:serId";
|
p.put("serId", serId);
|
}
|
|
hql += " order by type,id";
|
return this.query(hql, p);
|
}
|
|
public void loadDeviceByContion(Page<Device> page,
|
Map<String, Object> parameter) throws Exception {
|
Map<String, Object> p = new HashMap<String, Object>();
|
String hql = " from " + Device.class.getName()
|
+ " where companyId = :companyId ";
|
p.put("companyId", ContextUtil.getCompanyId());
|
|
if (null == parameter) parameter = new HashMap<String, Object>();
|
|
String depotId = (String) parameter.get("depotId");
|
if (StringUtils.isNotEmpty(depotId)) {
|
hql += " and depotId =:depotId";
|
p.put("depotId", depotId);
|
}
|
|
String type = (String) parameter.get("type");
|
if (StringUtils.isNotEmpty(type)) {
|
hql += " and type =:type";
|
p.put("type", type);
|
}
|
|
String serId = (String) parameter.get("serId");
|
if (StringUtils.isNotEmpty(serId)) {
|
hql += " and serId =:serId";
|
p.put("serId", serId);
|
}
|
|
String countSql = "select count(*) " + hql;
|
hql += " order by serId,id asc";
|
this.pagingQuery(page, hql, countSql, p);
|
}
|
|
/**
|
* 修改设备信息
|
* <p>
|
* Title: upDepotDevice
|
* </p>
|
* <p>
|
* Description:
|
* </p>
|
*
|
* @param depotDevice
|
*/
|
|
public void upDepotDevice(Device depotDevice) {
|
Session session = null;
|
try {
|
session = this.getSessionFactory().openSession();
|
session.update(depotDevice);
|
} catch (Exception e) {
|
e.printStackTrace();
|
} finally {
|
session.flush();
|
session.close();
|
}
|
|
}
|
|
/**
|
* 删除设备
|
* <p>
|
* Title: delDepotDevice
|
* </p>
|
* <p>
|
* Description:
|
* </p>
|
*/
|
public void delDepotDevice(Device depotDevice) {
|
Session session = null;
|
try {
|
session = this.getSessionFactory().openSession();
|
session.delete(depotDevice);
|
} catch (Exception e) {
|
e.printStackTrace();
|
} finally {
|
session.flush();
|
session.close();
|
}
|
}
|
|
public void delDepotDevice(String id) {
|
Session session = null;
|
try {
|
session = this.getSessionFactory().openSession();
|
String hql = " delete from " + Device.class.getName()
|
+ " where id=:id";
|
session.createQuery(hql).setString("id", id).executeUpdate();
|
} catch (Exception e) {
|
e.printStackTrace();
|
} finally {
|
session.flush();
|
session.close();
|
}
|
}
|
|
public String saveOrUpdate(Device device, String id) {
|
if (null != id) {
|
this.delDepotDevice(id);
|
return null;
|
}
|
Session session = null;
|
try {
|
session = this.getSessionFactory().openSession();
|
if (null != device.getId()) {
|
session.update(device);
|
} else {
|
device.setCompanyId(ContextUtil.getCompanyId());
|
device.setId(ContextUtil.buildDeviceId(device.getCompanyId(),
|
device.getDepotId(), device.getPassCode()));
|
session.save(device);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
} finally {
|
session.flush();
|
session.close();
|
}
|
return null;
|
}
|
|
public void addDepotDevice(Device depotDevice) {
|
Session session = null;
|
try {
|
session = this.getSessionFactory().openSession();
|
depotDevice.setCompanyId(ContextUtil.getCompanyId());
|
depotDevice.setId(ContextUtil.buildDeviceId(
|
depotDevice.getCompanyId(), depotDevice.getDepotId(),
|
depotDevice.getPassCode()));
|
session.save(depotDevice);
|
} catch (Exception e) {
|
e.printStackTrace();
|
} finally {
|
session.flush();
|
session.close();
|
}
|
}
|
|
public void refreshCache(String companyId) {
|
coreDeviceService.refreshCache(companyId);
|
}
|
|
public Device getDeviceById(String id) {
|
Map<String, Object> p = new HashMap<String, Object>();
|
String hql = " from " + Device.class.getName()
|
+ " where companyId = :companyId and id=:id";
|
|
String companyId = ContextUtil.getCompanyId();
|
p.put("companyId", companyId);
|
p.put("id", id);
|
List<Device> list = this.query(hql, p);
|
if (list != null && list.size() > 0) {
|
return list.get(0);
|
}
|
return null;
|
}
|
|
public List<Device> loadDeviceByType(Map<String, Object> parameter) {
|
if (parameter == null || parameter.size() <= 0)
|
return null;
|
|
Map<String, Object> p = new HashMap<String, Object>();
|
String hql = " from " + Device.class.getName()
|
+ " where companyId = :companyId ";
|
|
String companyId = (String) parameter.get("companyId");
|
if (null == companyId) {
|
companyId = ContextUtil.getCompanyId();
|
}
|
p.put("companyId", companyId);
|
|
String depotId = (String) parameter.get("depotId");
|
if (StringUtils.isNotEmpty(depotId)) {
|
hql += " and depotId =:depotId";
|
p.put("depotId", depotId);
|
}
|
|
String type = (String) parameter.get("type");
|
if (StringUtils.isNotEmpty(type)) {
|
hql += " and type =:type";
|
p.put("type", type);
|
}
|
|
String serId = (String) parameter.get("serId");
|
if (StringUtils.isNotEmpty(serId)) {
|
hql += " and serId =:serId";
|
p.put("serId", serId);
|
}
|
String tag = (String) parameter.get("tag");
|
// tag = 1 查询风机类型的设备,tag = 2 查询照明设备,否则是其余的其它设备
|
if (StringUtils.isNotEmpty(tag) && "1".equals(tag)) {
|
hql += " and type in (:types)";
|
p.put("types", new String[]{"02", "03", "04", "0C", "0D"});
|
} else if (StringUtils.isNotEmpty(tag) && "2".equals(tag)) {
|
hql += " and type =:type";
|
p.put("type", "06");
|
} else {
|
hql += " and type not in (:types)";
|
p.put("types", new String[]{"02", "03", "04", "0C", "0D"});
|
}
|
hql += " order by type,id";
|
return this.query(hql, p);
|
}
|
|
}
|