| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.moral.api.entity.Device; |
| | | import com.moral.api.entity.GovMonitorPoint; |
| | | import com.moral.api.entity.Organization; |
| | | import com.moral.api.entity.SysArea; |
| | | import com.moral.api.exception.BusinessException; |
| | | import com.moral.api.mapper.DeviceMapper; |
| | | import com.moral.api.mapper.GovMonitorPointMapper; |
| | | import com.moral.api.mapper.SysAreaMapper; |
| | | import com.moral.api.service.DeviceService; |
| | | import com.moral.api.service.GovMonitorPointService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.moral.api.service.OrganizationService; |
| | | import com.moral.api.util.LogUtils; |
| | | import com.moral.constant.Constants; |
| | | import com.moral.constant.RedisConstants; |
| | | import com.moral.constant.ResponseCodeEnum; |
| | | import com.moral.constant.ResultMessage; |
| | | import com.moral.util.RegionCodeUtils; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | import org.springframework.web.context.request.RequestContextHolder; |
| | | import org.springframework.web.context.request.ServletRequestAttributes; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.concurrent.ExecutorService; |
| | | import java.util.concurrent.Executors; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Autowired(required = false) |
| | | private RedisTemplate redisTemplate; |
| | | |
| | | @Autowired |
| | | private LogUtils logUtils; |
| | | @Resource |
| | | private OrganizationService organizationService; |
| | | |
| | | @Resource |
| | | private DeviceService deviceService; |
| | | |
| | | @Autowired(required = false) |
| | | private DeviceMapper deviceMapper; |
| | | |
| | | /* |
| | | * 从redis获取设备信息 |
| | |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | StringBuilder content = new StringBuilder(); |
| | | content.append("添加了政府站点:").append("id:").append(govMonitorPoint.getId() + ";").append(govMonitorPoint.getName() + ";").append(":").append("guid:").append(govMonitorPoint.getGuid() + ";"); |
| | | logUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE); |
| | | LogUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE); |
| | | } |
| | | } |
| | | |
| | |
| | | if (!ObjectUtils.isEmpty(govMonitorPoint.getDesc())) { |
| | | content.append("desc:").append(oldGovMonitorPoint).append("->").append(govMonitorPoint.getDesc()).append(";"); |
| | | } |
| | | logUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE); |
| | | LogUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void updateList(Integer id, String guid) { |
| | | ExecutorService executorService = Executors.newFixedThreadPool(2); |
| | | QueryWrapper<GovMonitorPoint> wrapper_govMonitorPoint = new QueryWrapper<>(); |
| | | wrapper_govMonitorPoint.eq("is_delete", Constants.NOT_DELETE); |
| | | wrapper_govMonitorPoint.eq("id", id); |
| | | List<GovMonitorPoint> govMonitorPoints = govMonitorPointMapper.selectList(wrapper_govMonitorPoint); |
| | | if (govMonitorPoints.size() == 0) { |
| | | throw new BusinessException("站点不存在!"); |
| | | } |
| | | GovMonitorPoint govMonitorPoint = govMonitorPoints.get(0); |
| | | String oldGuid = govMonitorPoint.getGuid(); |
| | | LambdaQueryChainWrapper<Device> wrapper = deviceService.lambdaQuery(); |
| | | wrapper.eq(Device::getIsDelete,0); |
| | | wrapper.eq(Device::getGuid,oldGuid); |
| | | List<Device> list = wrapper.list(); |
| | | list.forEach(it->it.setGuid(guid)); |
| | | |
| | | deviceService.updateBatchById(list); |
| | | |
| | | govMonitorPoint.setGuid(guid); |
| | | govMonitorPointMapper.updateById(govMonitorPoint); |
| | | //删除redis |
| | | delGovMonitorPointInfoFromRedis(id.toString()); |
| | | //更新redis |
| | | setGovMonitorPointInfoToRedis(id.toString(), selectGovMonitorPointInfoById(id)); |
| | | //操作日志记录 |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | StringBuilder content = new StringBuilder(); |
| | | content.append("修改了政府站点:").append("id:").append(govMonitorPoint.getId() + ";"); |
| | | if (!ObjectUtils.isEmpty(govMonitorPoint.getGuid())) { |
| | | content.append("guid:").append(oldGuid).append("->").append(guid).append(";"); |
| | | } |
| | | LogUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE); |
| | | for(Device d : list){ |
| | | executorService.submit(()->{ |
| | | redisTemplate.opsForHash().delete(RedisConstants.DEVICE, d.getMac()); |
| | | Map<String, Object> deviceInfo = deviceService.selectDeviceInfoById(d.getId()); |
| | | redisTemplate.opsForHash().put(RedisConstants.DEVICE, d.getMac(), deviceInfo); |
| | | |
| | | }); |
| | | } |
| | | // 关闭线程池 |
| | | executorService.shutdown(); |
| | | } |
| | | |
| | | @Override |
| | |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | StringBuilder content = new StringBuilder(); |
| | | content.append("删除了设备:").append("id:").append(id).append(";"); |
| | | logUtils.saveOperationForManage(request, content.toString(), Constants.DELETE_OPERATE_TYPE); |
| | | LogUtils.saveOperationForManage(request, content.toString(), Constants.DELETE_OPERATE_TYPE); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | return govMonitorPointMapper.selectMaps(queryWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public List<GovMonitorPoint> selectGovMonitorPointsByOrgid(Map map) { |
| | | //根据组织id获取子组织 |
| | | List<Organization> organizations = organizationService.getAllChildrenOrganization(Integer.parseInt(map.get("organization_id").toString())); |
| | | Set<Integer> organization_ids = organizations.stream().map(organization -> organization.getId()).collect(Collectors.toSet()); |
| | | //先获取组织下所有设备 |
| | | QueryWrapper<Device> wrapper_device = new QueryWrapper<>(); |
| | | wrapper_device.in("organization_id",organization_ids).eq("is_delete",Constants.NOT_DELETE); |
| | | List<Device> devices = deviceMapper.selectList(wrapper_device); |
| | | //用集合存放所有设备的id |
| | | Set<String> guids = devices.stream().map(device -> device.getGuid()).collect(Collectors.toSet()); |
| | | //获取所有政府站点信息 |
| | | QueryWrapper<GovMonitorPoint> wrapper_govMonitorPoint = new QueryWrapper<>(); |
| | | wrapper_govMonitorPoint.eq("is_delete",Constants.NOT_DELETE).in("guid",guids); |
| | | List<GovMonitorPoint> govMonitorPointList = govMonitorPointMapper.selectList(wrapper_govMonitorPoint); |
| | | return govMonitorPointList; |
| | | } |
| | | } |