Newer
Older
alarm / WebRoot / WEB-INF / classes / com / casic / alarm / manager / AlarmTimeManager.java
zhout on 2 Mar 2022 5 KB first commit
package com.casic.alarm.manager;

import com.casic.alarm.domain.AlarmTime;
import com.casic.alarm.domain.Device;
import com.casic.core.hibernate.HibernateEntityDao;
import com.casic.core.hibernate.HibernateUtils;
import com.casic.core.hibernate.MatchType;
import com.casic.core.page.Page;
import com.casic.core.util.StringUtils;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Service;

import java.util.*;

@Service
public class AlarmTimeManager extends HibernateEntityDao<AlarmTime> {

    public Map pageQuery(AlarmTime model, int page, int rows) {
        Map<String, Object> map = new HashMap<String, Object>();
        try {
            StringBuilder hql = new StringBuilder();
            hql.append("from Device where active=true");
            if (StringUtils.isNotBlank(model.getDevType())) {
                hql.append(" and deviceType.typeName =:devType");
                map.put("devType", model.getDevType());
            }
            if (StringUtils.isNotBlank(model.getDevCode())) {
                hql.append(" and devCode like:devCode");
                map.put("devCode", "%" + model.getDevCode() + "%");
            }
            hql.append(" order by deviceType.typeName, devCode asc");
            Page p = pagedQuery(hql.toString(), page, rows, map);
            List<Device> list = (List<Device>) p.getResult();
            int total = p.getTotalCount();
            List<AlarmTime> alarmTimeList = new ArrayList<>();
            for (Device device : list) {
                AlarmTime alarmTime = findUniqueBy("devCode", device.getDevCode());
                if (null == alarmTime) {
                    alarmTime = new AlarmTime();
                    alarmTime.setDevCode(device.getDevCode());
                }
                alarmTime.setDevType(device.getDeviceType().getTypeName());
                alarmTimeList.add(alarmTime);
            }
            map.clear();
            map.put("rows", alarmTimeList);
            map.put("total", total);
        } catch (Exception e) {
            e.printStackTrace();
            map.clear();
            map.put("rows", 0);
            map.put("total", new ArrayList<AlarmTime>());
        }
        return map;
    }

    public Map saveTime(AlarmTime model) {
        Map<String, Object> map = new HashMap<String, Object>();
        try {
            if (StringUtils.isNotBlank(model.getDevCode())) {
                String[] strings = model.getDevCode().split(",");
                for (int i = 0; i < strings.length; i++) {
                    Criteria criteria = getSession().createCriteria(AlarmTime.class);
                    criteria.add(Restrictions.and(
                            HibernateUtils.buildCriterion("devCode", strings[i], MatchType.EQ)));
                    List<AlarmTime> alarmTimeList = criteria.list();
                    if (alarmTimeList.size() > 0) {
                        AlarmTime alarmTime = alarmTimeList.get(0);
                        alarmTime.setDevCode(strings[i]);
                        alarmTime.setStartDate(model.getStartDate());
                        alarmTime.setEndDate(model.getEndDate());
                        alarmTime.setStartTime(model.getStartTime());
                        alarmTime.setEndTime(model.getEndTime());
                        save(alarmTime);
                    } else {
                        AlarmTime alarmTime = new AlarmTime();
                        alarmTime.setDevCode(strings[i]);
                        alarmTime.setStartDate(model.getStartDate());
                        alarmTime.setEndDate(model.getEndDate());
                        alarmTime.setStartTime(model.getStartTime());
                        alarmTime.setEndTime(model.getEndTime());
                        save(alarmTime);
                    }
                }
                map.put("success", true);
                map.put("msg", "保存成功");
            }
        } catch (Exception e) {
            e.printStackTrace();
            map.put("success", false);
            map.put("msg", "保存失败!");
        }
        return map;
    }

    public Map deleteTime(AlarmTime model) {
        Map<String, Object> map = new HashMap<String, Object>();
        try {
            if (StringUtils.isNotBlank(model.getDevCode())) {
                String[] strings = model.getDevCode().split(",");
                for (int i = 0; i < strings.length; i++) {
                    Criteria criteria = getSession().createCriteria(AlarmTime.class);
                    criteria.add(Restrictions.and(HibernateUtils.buildCriterion("devCode", strings[i], MatchType.EQ)));
                    List<AlarmTime> alarmTimeList = criteria.list();
                    for (AlarmTime alarmTime : alarmTimeList) {
                        this.remove(alarmTime);
                    }
                }
                map.put("success", true);
                map.put("msg", "删除成功");
            }
        } catch (Exception e) {
            e.printStackTrace();
            map.put("success", false);
            map.put("msg", "删除失败!");
        }
        return map;
    }


}