From 4a50bd93dfcdedb85f117d25f89e67291eb65cf7 Mon Sep 17 00:00:00 2001 From: cjl <276999030@qq.com> Date: Sat, 14 Oct 2023 10:55:51 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/cjl' into dev --- screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java | 93 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 88 insertions(+), 5 deletions(-) diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java index add7e7a..9a0f119 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java @@ -4,17 +4,25 @@ 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; @@ -24,10 +32,14 @@ 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> @@ -49,8 +61,14 @@ @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������������������ @@ -154,7 +172,7 @@ 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); } } @@ -199,7 +217,54 @@ 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 @@ -213,7 +278,7 @@ 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 @@ -232,4 +297,22 @@ } 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; + } } -- Gitblit v1.8.0