package com.ld.igds.door.service;
|
|
import com.bstek.bdf2.core.orm.hibernate.HibernateDao;
|
import com.ld.igds.models.DoorSensor;
|
import com.ld.igds.util.ContextUtil;
|
import org.apache.commons.lang.StringUtils;
|
import org.hibernate.Session;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@Component
|
public class HDoorSensorServiceImpl extends HibernateDao {
|
@Autowired
|
private CoreDoorSensorService coreDoorSensorService;
|
|
public List<DoorSensor> getList(Map<String,Object> param) {
|
if(param == null){
|
param = new HashMap<>();
|
}
|
String hql = " from " + DoorSensor.class.getName()
|
+ " where companyId=:companyId ";
|
|
Map<String, Object> parameterMap = new HashMap<String, Object>();
|
String companyId = (String) param.get("companyId");
|
if (StringUtils.isEmpty(companyId)){
|
companyId = ContextUtil.getCompanyId();
|
}
|
parameterMap.put("companyId", companyId);
|
|
String deptId = (String) param.get("deptId");
|
if(StringUtils.isNotEmpty(deptId)){
|
parameterMap.put("deptId", deptId);
|
hql += " and deptId=:deptId";
|
}
|
|
hql += " order by depotId + 0 ,id ";
|
List<DoorSensor> list = this.query(hql, parameterMap);
|
|
return list;
|
}
|
|
public void saveData(DoorSensor data) {
|
Session session = this.getSessionFactory().openSession();
|
try {
|
if(StringUtils.isEmpty(data.getId())){
|
data.setId(ContextUtil.getUUID());
|
data.setDeptId(ContextUtil.subDeptId(ContextUtil.getLoginUser()));
|
}
|
if (StringUtils.isEmpty(data.getCompanyId())) {
|
data.setCompanyId(ContextUtil.getCompanyId());
|
}
|
//conf.setUpdateUser(ContextUtil.getLoginUserCName());
|
|
session.saveOrUpdate(data);
|
|
flushCache(data.getCompanyId());
|
} finally {
|
session.flush();
|
session.close();
|
}
|
}
|
|
public String delData(DoorSensor data) {
|
|
if (null == data.getCompanyId()) {
|
return null;
|
}
|
Session session = this.getSessionFactory().openSession();
|
try {
|
session.delete(data);
|
} finally {
|
session.flush();
|
session.close();
|
}
|
|
flushCache(data.getCompanyId());
|
return null;
|
}
|
|
public void flushCache(String companyId) {
|
if (StringUtils.isEmpty(companyId)) {
|
companyId = ContextUtil.getCompanyId();
|
}
|
Map<String ,Object> param = new HashMap<>();
|
param.put("companyId", companyId);
|
List<DoorSensor> list = getList(param);
|
coreDoorSensorService.setCache(list, companyId);
|
}
|
}
|