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

/**
 * Created by Administrator on 2015/8/30.
 */
import com.casic.alarm.utils.StringUtils;
import com.casic.core.hibernate.HibernateEntityDao;
import com.casic.dma.model.domain.DMAArea;
import com.casic.dma.model.domain.DMAInfo;
import com.casic.dma.model.dto.PointDTO;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class DMAAreaManager extends HibernateEntityDao<DMAArea> {

    /**
     * 删除子区域的区域图形信息
     * @param dmaInfo
     */
    @Transactional
    public void removeByDma(DMAInfo dmaInfo) {
        String hql = "delete from DMAArea where dmaInfo=:dma";
        Map<String,Object> map = new HashMap<String, Object>();
        map.put("dma",dmaInfo);
        batchUpdate(hql,map);
    }

    /**
     * 获取子区域的区域图形信息
     * @param dmaId
     * @return
     */
    public List<PointDTO> findPointsOfArea(Long dmaId) {
        Criteria criteria = getSession().createCriteria(DMAArea.class);
        criteria.add(Restrictions.eq("active", true));
        criteria.createAlias("dmaInfo","dmaInfo");
        criteria.add(Restrictions.eq("dmaInfo.ID",dmaId));
        DMAArea dmaArea = (DMAArea) criteria.setMaxResults(1).uniqueResult();
        List<PointDTO> dtos = new ArrayList<PointDTO>();
        if(null != dmaArea && StringUtils.isNotBlank(dmaArea.getRegionErea())){
            String[] area = dmaArea.getRegionErea().split("-");
            for(String point : area){
                String[] xy = point.split(":");
                if(xy.length == 2){
                    dtos.add(new PointDTO(
                            Double.parseDouble(xy[0]),
                            Double.parseDouble(xy[1])
                    ));
                }
            }
        }
        return dtos;
    }
}