package com.ld.igds.warn.service; import com.bstek.bdf2.core.orm.hibernate.HibernateDao; import com.bstek.dorado.data.provider.Page; import com.ld.igds.constant.WarnStatus; import com.ld.igds.models.MWarnConf; import com.ld.igds.models.MWarnInfo; import com.ld.igds.util.ContextUtil; import com.ld.igds.util.DateUtil; import org.apache.commons.lang3.StringUtils; import org.hibernate.Session; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @Component public class HWarnService extends HibernateDao { @Autowired private CoreWarnService coreWarnService; public void listWarnInfo(Page page, Map param) throws Exception { String hql = " from " + MWarnInfo.class.getName() + " where companyId =:companyId and deptId =:deptId"; Map args = new HashMap(); args.put("companyId", ContextUtil.getCompanyId()); args.put("deptId", ContextUtil.subDeptId(null)); if(param != null){ String str = (String) param.get("bizType"); if (StringUtils.isNotEmpty(str)) { hql += " and bizType =:bizType"; args.put("bizType", str); } str = (String) param.get("type"); if (StringUtils.isNotEmpty(str)) { hql += " and type =:type"; args.put("type", str); } str = (String) param.get("level"); if (StringUtils.isNotEmpty(str)) { hql += " and level =:level"; args.put("level", str); } str = (String) param.get("status"); if (StringUtils.isNotEmpty(str)) { hql += " and status =:status"; args.put("status", str); } Date date = (Date) param.get("start"); if (null != date) { hql += " and time >=:start"; args.put("start", DateUtil.getCurZero(date)); } date = (Date) param.get("end"); if (null != date) { hql += " and time <=:end"; args.put("end", DateUtil.getNextZero(date)); } } String countHql = " select count(*) " + hql; hql += " order by time desc"; this.pagingQuery(page, hql, countHql, args); } public void saveWarnInfo(MWarnInfo data) { if (StringUtils.isEmpty(data.getCompanyId())) { data.setCompanyId(ContextUtil.getCompanyId()); } if(StringUtils.isEmpty(data.getDeptId())){ data.setDeptId(ContextUtil.subDeptId(null)); } Session session = this.getSessionFactory().openSession(); try { if (StringUtils.isEmpty(data.getId())) { data.setId(ContextUtil.getUUID()); session.save(data); } else { session.update(data); } } catch (Exception e) { e.printStackTrace(); } finally { session.flush(); session.close(); } } public void updateWarnStatus(MWarnInfo data) { if (StringUtils.isEmpty(data.getCompanyId())) { data.setCompanyId(ContextUtil.getCompanyId()); } if(StringUtils.isEmpty(data.getDeptId())){ data.setDeptId(ContextUtil.subDeptId(null)); } Session session = this.getSessionFactory().openSession(); try { data.setCompleteTime(new Date()); data.setCompleteUser(ContextUtil.getLoginUserCName()); data.setStatus(WarnStatus.STATUS_30.getCode()); session.saveOrUpdate(data); } catch (Exception e) { e.printStackTrace(); } finally { session.flush(); session.close(); } } public String delWarnInfo(MWarnInfo data) { Session session = this.getSessionFactory().openSession(); try { session.delete(data); } catch (Exception e) { e.printStackTrace(); } finally { session.flush(); session.close(); } return null; } public MWarnConf getConf(String deptId) { String hql = " from " + MWarnConf.class.getName() + " where companyId =:companyId and deptId =:deptId"; Map args = new HashMap(); args.put("companyId", ContextUtil.getCompanyId()); args.put("deptId", deptId); List list = this.query(hql, args); if (null == list || list.isEmpty()) return null; return list.get(0); } public List getAllConf() { String hql = " from " + MWarnConf.class.getName() + " where companyId =:companyId"; Map args = new HashMap(); args.put("companyId", ContextUtil.getCompanyId()); List list = this.query(hql, args); return list; } public void updateConf(MWarnConf data) { Session session = this.getSessionFactory().openSession(); if(StringUtils.isEmpty(data.getCompanyId())){ data.setCompanyId(ContextUtil.getCompanyId()); } try { session.saveOrUpdate(data); //更新缓存 coreWarnService.setCacheWarnConf(getAllConf()); } catch (Exception e) { e.printStackTrace(); } finally { session.flush(); session.close(); } } }