| | |
| | |
|
| | | import java.util.ArrayList;
|
| | | import java.util.Arrays;
|
| | | import java.util.Collection;
|
| | | import java.util.HashMap;
|
| | | import java.util.Iterator;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | | import java.util.Set;
|
| | | import java.util.stream.Collectors;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | | import javax.validation.constraints.NotNull;
|
| | |
|
| | | import com.moral.mapper.DictionaryDataMapper;
|
| | | import com.moral.mapper.OrganizationMapper;
|
| | | import org.apache.commons.collections.CollectionUtils;
|
| | | import org.springframework.stereotype.Service;
|
| | | import org.springframework.util.ObjectUtils;
|
| | |
|
| | | import com.github.pagehelper.PageHelper;
|
| | | import com.moral.common.bean.Constants;
|
| | | import com.moral.common.bean.PageBean;
|
| | | import com.moral.common.util.ExampleUtil;
|
| | | import com.moral.common.util.ParameterUtils;
|
| | | import com.moral.common.util.RedisUtils;
|
| | | import com.moral.common.util.StringUtils;
|
| | | import com.moral.common.util.ValidateUtil;
|
| | |
| | | import com.moral.entity.MonitorPoint;
|
| | | import com.moral.mapper.DeviceMapper;
|
| | | import com.moral.mapper.MonitorPointMapper;
|
| | | import com.moral.service.DeviceService;
|
| | | import com.moral.service.MonitorPointService;
|
| | | import com.moral.service.OrganizationService;
|
| | |
|
| | | import tk.mybatis.mapper.entity.Example;
|
| | | import tk.mybatis.mapper.entity.Example.Criteria;
|
| | |
| | | @Resource
|
| | | private DeviceMapper deviceMapper;
|
| | | @Resource
|
| | | private OrganizationMapper orgMapper;
|
| | | @Resource
|
| | | RedisUtils redisUtils;
|
| | | @Resource
|
| | | DictionaryDataMapper dictionaryDataMapper;
|
| | |
|
| | | @Resource
|
| | | private DeviceService deviceService;
|
| | | |
| | | @Resource
|
| | | private OrganizationService organizationService;
|
| | | |
| | | private static Class ENTITY_CLASS = MonitorPoint.class;
|
| | | @Override
|
| | | public List<MonitorPoint> getMonitorPointsByAreaName(Map<String, Object> parameters) {
|
| | |
| | | @Override
|
| | | public List<MonitorPoint> queryWithStateByMap(Map<String, Object> params){
|
| | | params.put("isDelete",Constants.IS_DELETE_FALSE);
|
| | | List<MonitorPoint> monitorPointList = monitorPointMapper.selectByMap(params);
|
| | | for(MonitorPoint monitorPoint:monitorPointList){
|
| | | Integer state = getStateFromRedis(monitorPoint.getId());
|
| | | monitorPoint.setState(state);
|
| | | Object orgIdObj = params.get("orgId");
|
| | | List<MonitorPoint> monitorPointList = null;
|
| | | if(orgIdObj != null) {
|
| | | Integer orgId = Integer.parseInt(orgIdObj.toString());
|
| | | List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId);
|
| | | params.put("orgIds",orgIds);
|
| | | monitorPointList = monitorPointMapper.selectByMap(params);
|
| | | // for(MonitorPoint monitorPoint:monitorPointList){
|
| | | // Integer state = getStateFromRedis(monitorPoint.getId());
|
| | | // monitorPoint.setState(state);
|
| | | // }
|
| | | }
|
| | | return monitorPointList;
|
| | | return monitorPointList == null ? new ArrayList<>() : monitorPointList;
|
| | | }
|
| | | private Integer getStateFromRedis(Integer monitorPointId){
|
| | | StringBuilder key = new StringBuilder();
|
| | |
| | | public PageBean queryByPageBean(PageBean pageBean) {
|
| | | Example example = ExampleUtil.generateExample(ENTITY_CLASS,pageBean);
|
| | | List<Example.Criteria> criteriaList = example.getOredCriteria();
|
| | | if(criteriaList!=null&&criteriaList.size()>0){
|
| | | for(Example.Criteria cri : criteriaList){
|
| | | cri.andNotEqualTo("isDelete", Constants.IS_DELETE_TRUE);
|
| | | }
|
| | | }else {
|
| | | example.or().andNotEqualTo("isDelete",Constants.IS_DELETE_TRUE);
|
| | | }
|
| | | PageHelper.startPage(pageBean.getPageIndex(),pageBean.getPageSize());
|
| | | List<MonitorPoint> monitorPointList = monitorPointMapper.selectWithAreaNameByExample(example);
|
| | | return new PageBean(monitorPointList);
|
| | |
| | | return list;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取所属组织的监控点总数
|
| | | * @param orgId
|
| | | * @return
|
| | | */
|
| | | @Override
|
| | | public Integer countOfSubOrgs(@NotNull Integer orgId){
|
| | | Example example = new Example(ENTITY_CLASS);
|
| | | //过滤超级管理员账号
|
| | | if(!dictionaryDataMapper.isSupperOrgId(orgId)){
|
| | | List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId);
|
| | | example.or().andIn("organizationId",orgIds);
|
| | | }
|
| | | return monitorPointMapper.selectCountByExample(example);
|
| | | }
|
| | | @Override
|
| | | public List<MonitorPoint> getMonitorPointsByOrganizationId(Integer orgId) {
|
| | | Example example = new Example(MonitorPoint.class);
|
| | |
| | |
|
| | | criteria.andEqualTo("isDelete", Constants.IS_DELETE_FALSE);
|
| | | if (Constants.isNotSpecialOrgId(orgId)) {
|
| | | criteria.andEqualTo("organizationId", orgId);
|
| | | //criteria.andEqualTo("organizationId", orgId);
|
| | | Set<Integer> organizationIds = organizationService.getChildOrganizationIds(orgId);
|
| | | criteria.andIn("organizationId", organizationIds);
|
| | |
|
| | | }
|
| | | example.orderBy("name").asc();
|
| | | return monitorPointMapper.selectByExample(example);
|
| | |
| | | public List<Integer> queryVersionsById(Integer id){
|
| | | return monitorPointMapper.selectVersionsById(id);
|
| | | }
|
| | | @Override
|
| | | public MonitorPoint queryMonitorPointById(Integer mpointId) {
|
| | | return this.monitorPointMapper.selectByPrimaryKey(mpointId);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<MonitorPoint> getMonitorPointsAndDevicesByRegion(Map<String, Object> parameters) {
|
| | | //校验参数
|
| | | Object organizationId = parameters.remove("organizationId");
|
| | | ValidateUtil.notNull(organizationId, "param.is.null");
|
| | | ValidateUtil.notNull(parameters.get("regionCode"), "param.is.null");
|
| | |
|
| | | //组装查询条件
|
| | | ParameterUtils.getRegionType4RegionCode(parameters);
|
| | | |
| | | Example example = new Example(MonitorPoint.class);
|
| | | Criteria criteria = example.createCriteria();
|
| | | criteria.andEqualTo("isDelete", Constants.IS_DELETE_FALSE);
|
| | | if (Constants.isNotSpecialOrgId(Integer.valueOf(organizationId.toString()))) {
|
| | | //criteria.andEqualTo("organizationId", organizationId);
|
| | | Set<Integer> organizationIds = organizationService.getChildOrganizationIds(Integer.valueOf(organizationId.toString()));
|
| | | criteria.andIn("organizationId", organizationIds);
|
| | | }
|
| | | criteria.andEqualTo(parameters.get("regionType") + "Code", parameters.remove("regionCode"));
|
| | | |
| | | //查询监控点数据
|
| | | List<MonitorPoint> monitorPoints = monitorPointMapper.selectByExample(example);
|
| | | //查询监控点下所有的设备
|
| | | Iterator<MonitorPoint> iterator = monitorPoints.iterator();
|
| | | while (iterator.hasNext()) {
|
| | | MonitorPoint monitorPoint = iterator.next();
|
| | | List<Device> devices = deviceService.getDevicesByMonitorPointId(monitorPoint.getId());
|
| | | if (ObjectUtils.isEmpty(devices)) {
|
| | | iterator.remove();
|
| | | } else {
|
| | | monitorPoint.setDevices(devices);
|
| | | }
|
| | | |
| | | }
|
| | | return monitorPoints;
|
| | | }
|
| | |
|
| | | @SuppressWarnings("unchecked")
|
| | | @Override
|
| | | public Collection<Object> getDevicesStateByRegion(Map<String, Object> parameters) {
|
| | | //校验参数
|
| | | Object organizationId = parameters.remove("organizationId");
|
| | | ValidateUtil.notNull(organizationId, "param.is.null");
|
| | | ValidateUtil.notNull(parameters.get("regionCode"), "param.is.null");
|
| | |
|
| | | //组装查询条件
|
| | | ParameterUtils.getRegionType4RegionCode(parameters);
|
| | | |
| | | if (Constants.isNotSpecialOrgId(Integer.valueOf(organizationId.toString()))) {
|
| | | Set<Integer> organizationIds = organizationService.getChildOrganizationIds(Integer.valueOf(organizationId.toString()));
|
| | | parameters.put("orgIds", organizationIds);
|
| | | }
|
| | | List<Map<String, Object>> monitorPoints = deviceMapper.getDevicesStateByRegion(parameters);
|
| | | Map<String, Object> result = new HashMap<String, Object>();
|
| | | Map<String,Object> device;
|
| | | List<Map<String, Object>> devices;
|
| | | for (Map<String, Object> map : monitorPoints) {
|
| | | String id = map.get("id").toString();
|
| | |
|
| | | device = new HashMap<String,Object>();
|
| | | device.put("id", map.remove("deviceId"));
|
| | | device.put("name", map.remove("deviceName"));
|
| | | device.put("state", map.remove("state"));
|
| | | device.put("mac", map.remove("mac"));
|
| | |
|
| | | if (result.containsKey(id)) {
|
| | | Map<String, Object> monitorPoint = (Map<String, Object>) result.get(id);
|
| | | devices = (List<Map<String, Object>>) monitorPoint.get("devices");
|
| | | } else {
|
| | | devices = new ArrayList<Map<String, Object>>();
|
| | | result.put(id, map);
|
| | | }
|
| | | devices.add(device);
|
| | | map.put("devices", devices);
|
| | | result.put(id, map);
|
| | | }
|
| | | |
| | | return result.values();
|
| | | }
|
| | | |
| | | @Override
|
| | | public void isCompensateCalculation(Map<String, Object> parameters) {
|
| | | MonitorPoint monitorPoint = monitorPointMapper.selectByPrimaryKey(Integer.valueOf(parameters.get("monitorPointId").toString()));
|
| | | if (Integer.valueOf(320581).equals(monitorPoint.getAreaCode())) {
|
| | | parameters.put("compensate", true);
|
| | | }
|
| | | |
| | | }
|
| | | @Override
|
| | | public Map<String, Object> selectAllById(String id) {
|
| | | int id2 = Integer.parseInt(id);
|
| | | Map<String, Object> map = monitorPointMapper.selectAllById(id2);
|
| | | return map;
|
| | | }
|
| | | }
|