package com.objecteye.service.impl; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.objecteye.entity.*; import com.objecteye.mapper.SyAreaEquipmentMapper; import com.objecteye.mapper.SyEquipmentMapper; import com.objecteye.service.AreaEquipmentService; import com.objecteye.service.EquipmentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** * 服务实现层 * * @author Administrator */ @Service public class AreaEquipmentServiceImpl implements AreaEquipmentService { @Autowired private SyAreaEquipmentMapper areaEquipmentMapper; @Autowired private SyEquipmentMapper equipmentMapper; private ArrayList captureList = new ArrayList<>(); @Autowired private EquipmentService equipmentService; /** * 查询全部 */ @Override public ArrayList findAll() { SyAreaEquipmentExample example = new SyAreaEquipmentExample(); SyAreaEquipmentExample.Criteria criteria = example.createCriteria(); criteria.andParentIdEqualTo(0); return getAll(0); } @Override public ArrayList findAllEquip() { SyAreaEquipmentExample example = new SyAreaEquipmentExample(); SyAreaEquipmentExample.Criteria criteria = example.createCriteria(); criteria.andParentIdEqualTo(0); return getAllHandleEquip(0); } @Override public ArrayList findAllEquipAndArea() { SyAreaEquipmentExample example = new SyAreaEquipmentExample(); SyAreaEquipmentExample.Criteria criteria = example.createCriteria(); criteria.andParentIdEqualTo(0); return getAllHandleEquipAndArea(0); } /** * 查询全部设备id */ @Override public List findCaptureById(int id) { captureList = new ArrayList<>(); return getAllCapture(id); } /** * 查询全部设备id */ @Override public List> findCaptureMsgById(int id) { List captureById = findCaptureById(id); List> list = new ArrayList<>(); if (captureById != null && captureById.size() > 0) { int size = captureById.size(); for (int i = 0; i < size; i++) { HashMap map = new HashMap<>(16); Integer id1 = captureById.get(i); SyEquipment equipment = equipmentService.findOne(id1); map.put("id", id1); map.put("name", equipment.getEquipmentName()); map.put("status", equipment.getStatus()); list.add(map); } return list; } return null; } /** * 按分页查询 */ @Override public PageResult findPage(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); Page page = (Page) areaEquipmentMapper.selectByExample(null); return new PageResult(page.getPages(), page.getResult()); } /** * 增加 */ @Override public int add(SyAreaEquipment areaEquipment) { int insert = areaEquipmentMapper.insertSelective(areaEquipment); return insert; } /** * 修改 */ @Override public int update(SyAreaEquipment areaEquipment) { return areaEquipmentMapper.updateByPrimaryKey(areaEquipment); } /** * 根据ID获取实体 * * @param id * @return */ @Override public SyAreaEquipment findOne(int id) { return areaEquipmentMapper.selectByPrimaryKey(id); } /** * 批量删除 */ @Override public void delete(int[] ids) { for (int id : ids) { SyAreaEquipment syAreaEquipment = areaEquipmentMapper.selectByPrimaryKey(id); if (syAreaEquipment.getParentId() == 0) { throw new RuntimeException("不予许删除根目录"); } //得到所有子节点 List list = getList(id); //System.out.println(list); int size = list.size(); if (list != null || size > 0) { for (int i = 0; i < size; i++) { //删除设备树中设备 SyAreaEquipment syAreaEquipment1 = list.get(i); areaEquipmentMapper.deleteByPrimaryKey(syAreaEquipment1.getId()); //删除设备表中设备 Integer typeId = syAreaEquipment1.getTypeId(); equipmentMapper.deleteByPrimaryKey(typeId); } } //删除区域 areaEquipmentMapper.deleteByPrimaryKey(id); } } @Override public int delete(int typeId) { SyAreaEquipmentExample example = new SyAreaEquipmentExample(); SyAreaEquipmentExample.Criteria criteria = example.createCriteria(); criteria.andTypeIdEqualTo(typeId); return areaEquipmentMapper.deleteByExample(example); } @Override public PageResult findPage(SyAreaEquipment areaEquipment, int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); SyAreaEquipmentExample example = new SyAreaEquipmentExample(); SyAreaEquipmentExample.Criteria criteria = example.createCriteria(); if (areaEquipment != null) { if (areaEquipment.getName() != null && areaEquipment.getName().length() > 0) { criteria.andNameLike("%" + areaEquipment.getName() + "%"); } } Page page = (Page) areaEquipmentMapper.selectByExample(example); return new PageResult(page.getPages(), page.getResult()); } private List getList(int parentId) { SyAreaEquipmentExample example = new SyAreaEquipmentExample(); SyAreaEquipmentExample.Criteria criteria = example.createCriteria(); criteria.andParentIdEqualTo(parentId); return areaEquipmentMapper.selectByExample(example); } private ArrayList getAllHandleEquip(int parentId) { List list = getList(parentId); int size = list.size(); ArrayList areaEquipmentShows = new ArrayList<>(); if (size == 0) { SyAreaEquipment syAreaEquipment = areaEquipmentMapper.selectByPrimaryKey(parentId); AreaEquipmentShow areaEquipmentShow = new AreaEquipmentShow(); areaEquipmentShow.setId(syAreaEquipment.getId()); areaEquipmentShow.setParentId(syAreaEquipment.getParentId()); areaEquipmentShow.setIsEquipment(syAreaEquipment.getIsEquipment()); if (syAreaEquipment.getIsEquipment() == 0) { areaEquipmentShow.setDisabled(true); } else { areaEquipmentShow.setDisabled(false); } areaEquipmentShow.setEquipmentNum(1); areaEquipmentShow.setTitle(syAreaEquipment.getName()); areaEquipmentShow.setTypeId(syAreaEquipment.getTypeId()); areaEquipmentShow.setChildren(null); return null; } for (int i = 0; i < size; i++) { captureList = new ArrayList<>(); SyAreaEquipment syAreaEquipment = list.get(i); AreaEquipmentShow areaEquipmentShow = new AreaEquipmentShow(); areaEquipmentShow.setId(syAreaEquipment.getId()); areaEquipmentShow.setIsEquipment(syAreaEquipment.getIsEquipment()); areaEquipmentShow.setParentId(syAreaEquipment.getParentId()); if (syAreaEquipment.getIsEquipment() == 0) { areaEquipmentShow.setDisabled(true); } else { areaEquipmentShow.setDisabled(false); } List captureById = findCaptureById(syAreaEquipment.getId()); if (captureById != null) { areaEquipmentShow.setEquipmentNum(captureById.size()); } areaEquipmentShow.setTitle(syAreaEquipment.getName()); areaEquipmentShow.setTypeId(syAreaEquipment.getTypeId()); areaEquipmentShow.setChildren(getAllHandleEquip(syAreaEquipment.getId())); areaEquipmentShows.add(areaEquipmentShow); } return areaEquipmentShows; } private ArrayList getAllHandleEquipAndArea(int parentId) { List list = getList(parentId); int size = list.size(); ArrayList areaEquipmentShows = new ArrayList<>(); if (size == 0) { SyAreaEquipment syAreaEquipment = areaEquipmentMapper.selectByPrimaryKey(parentId); AreaEquipmentShow areaEquipmentShow = new AreaEquipmentShow(); areaEquipmentShow.setId(syAreaEquipment.getId()); areaEquipmentShow.setParentId(syAreaEquipment.getParentId()); areaEquipmentShow.setIsEquipment(syAreaEquipment.getIsEquipment()); areaEquipmentShow.setEquipmentNum(1); areaEquipmentShow.setTitle(syAreaEquipment.getName()); areaEquipmentShow.setTypeId(syAreaEquipment.getTypeId()); areaEquipmentShow.setChildren(null); return null; } for (int i = 0; i < size; i++) { captureList = new ArrayList<>(); SyAreaEquipment syAreaEquipment = list.get(i); AreaEquipmentShow areaEquipmentShow = new AreaEquipmentShow(); areaEquipmentShow.setId(syAreaEquipment.getId()); areaEquipmentShow.setIsEquipment(syAreaEquipment.getIsEquipment()); areaEquipmentShow.setParentId(syAreaEquipment.getParentId()); List captureById = findCaptureById(syAreaEquipment.getId()); if (captureById != null) { areaEquipmentShow.setEquipmentNum(captureById.size()); } areaEquipmentShow.setTitle(syAreaEquipment.getName()); areaEquipmentShow.setTypeId(syAreaEquipment.getTypeId()); areaEquipmentShow.setChildren(getAllHandleEquipAndArea(syAreaEquipment.getId())); areaEquipmentShows.add(areaEquipmentShow); } return areaEquipmentShows; } private ArrayList getAll(int parentId) { List list = getList(parentId); int size = list.size(); ArrayList areaEquipmentShows = new ArrayList<>(); if (size == 0) { SyAreaEquipment syAreaEquipment = areaEquipmentMapper.selectByPrimaryKey(parentId); AreaEquipmentShow areaEquipmentShow = new AreaEquipmentShow(); areaEquipmentShow.setId(syAreaEquipment.getId()); areaEquipmentShow.setParentId(syAreaEquipment.getParentId()); areaEquipmentShow.setIsEquipment(syAreaEquipment.getIsEquipment()); if (syAreaEquipment.getIsEquipment() == 0) { areaEquipmentShow.setDisabled(false); } else { areaEquipmentShow.setDisabled(true); } areaEquipmentShow.setEquipmentNum(1); areaEquipmentShow.setTitle(syAreaEquipment.getName()); areaEquipmentShow.setTypeId(syAreaEquipment.getTypeId()); areaEquipmentShow.setChildren(null); return null; } for (int i = 0; i < size; i++) { captureList = new ArrayList<>(); SyAreaEquipment syAreaEquipment = list.get(i); AreaEquipmentShow areaEquipmentShow = new AreaEquipmentShow(); areaEquipmentShow.setId(syAreaEquipment.getId()); areaEquipmentShow.setIsEquipment(syAreaEquipment.getIsEquipment()); areaEquipmentShow.setParentId(syAreaEquipment.getParentId()); if (syAreaEquipment.getIsEquipment() == 0) { areaEquipmentShow.setDisabled(false); } else { areaEquipmentShow.setDisabled(true); } List captureById = findCaptureById(syAreaEquipment.getId()); if (captureById != null) { areaEquipmentShow.setEquipmentNum(captureById.size()); } areaEquipmentShow.setTitle(syAreaEquipment.getName()); areaEquipmentShow.setTypeId(syAreaEquipment.getTypeId()); areaEquipmentShow.setChildren(getAll(syAreaEquipment.getId())); areaEquipmentShows.add(areaEquipmentShow); } return areaEquipmentShows; } private List getAllCapture(int parentId) { List list = getList(parentId); int size = list.size(); if (size == 0) { SyAreaEquipment syAreaEquipment = areaEquipmentMapper.selectByPrimaryKey(parentId); if (syAreaEquipment != null) { Integer isEquipment = syAreaEquipment.getIsEquipment(); if (isEquipment == 1) { captureList.add(syAreaEquipment.getTypeId()); } return captureList; } return null; } for (int i = 0; i < size; i++) { SyAreaEquipment syAreaEquipment = list.get(i); getAllCapture(syAreaEquipment.getId()); } return captureList; } }