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

import com.casic.alarm.domain.DEVREALDATA;
import com.casic.core.hibernate.HibernateUtils;
import com.casic.core.hibernate.MatchType;
import com.casic.alarm.DTO.ConcentratorDTO;
import com.casic.alarm.DTO.DeviceConcentratorDTO;
import com.casic.alarm.domain.Concentrator;
import com.casic.alarm.domain.DeviceConcentrator;
import com.casic.core.hibernate.HibernateEntityDao;
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.net.URLDecoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class DeviceConcentratorManager extends HibernateEntityDao<DeviceConcentrator>
{
    public Map<String, Object> queryConcentrator(DeviceConcentratorDTO model, int page, int rows) {
        Map<String, Object> resultMap = new HashMap<String, Object>();
        List<ConcentratorDTO> concentratorDTOList = new ArrayList<ConcentratorDTO>();
        try {
            StringBuilder hql = new StringBuilder();
            Map<String, Object> map = new HashMap<String, Object>();
            hql.append(" from Concentrator " +
                    " where active = 1 ");

            String concenCode = model.getConcenCode();
            if (StringUtils.isNotBlank(concenCode)) {
                hql.append(" and concenCode like :concenCode ");
                map.put("concenCode", "%" + concenCode + "%");
            }

            String statusStr = model.getStatus();
            if (StringUtils.isNotBlank(statusStr)) {
                boolean status = true;
                if(statusStr.equals("1")) {
                    status = true;
                } else if(statusStr.equals("2")) {
                    status = false;
                }
                hql.append(" and status = :status ");
                map.put("status", status);
            }

            hql.append(" order by concenCode asc ");

            Page pg = pagedQuery(hql.toString(), page, rows, map);
            List<Concentrator> concenList = (List<Concentrator>) pg.getResult();
            concentratorDTOList = ConcentratorDTO.ConvertToDTOs(concenList);

            resultMap.put("total", pg.getTotalCount());
            resultMap.put("rows", concentratorDTOList);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return resultMap;
    }

    public void removeDeviceConcentrator(String concenCode) throws Exception {
        List<DeviceConcentrator> deviceConcentratorList =  this.findBy("concenCode",concenCode);
        for(DeviceConcentrator deviceConcentrator:deviceConcentratorList){
            deviceConcentrator.setActive(false);
            this.save(deviceConcentrator);
        }
    }

    public void updateDeviceConcentrator(String oldConcenCode,String newConcenCod) throws Exception {
        List<DeviceConcentrator> deviceConcentratorList =  this.findBy("concenCode",oldConcenCode);
        for(DeviceConcentrator deviceConcentrator:deviceConcentratorList){
            deviceConcentrator.setConcenCode(newConcenCod);
            this.save(deviceConcentrator);
        }
    }

    public DeviceConcentrator getConcentratorByDeviceCode(String deviceCode) {
        try {
            Criteria criteria = getSession().createCriteria(DeviceConcentrator.class);
            criteria.add(Restrictions.eq("devCode", deviceCode));
            criteria.add(Restrictions.eq("active", true));
            List<DeviceConcentrator> deviceConcentrators = criteria.list();
            if (deviceConcentrators.size() > 0)
                return deviceConcentrators.get(0);
        }
        catch (Exception e)
        {

        }
        return null;
    }
}