From ff3af3a0dd0fe87a500c13e933bea1f553083508 Mon Sep 17 00:00:00 2001 From: cjl <276999030@qq.com> Date: Thu, 21 Sep 2023 10:47:03 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/cjl' into qa --- screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 55 insertions(+), 0 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 a1b608f..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,11 +4,13 @@ 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; @@ -20,6 +22,7 @@ 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; @@ -34,6 +37,8 @@ import java.text.SimpleDateFormat; import java.util.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.stream.Collectors; /** @@ -58,6 +63,9 @@ @Resource private OrganizationService organizationService; + + @Resource + private DeviceService deviceService; @Autowired(required = false) private DeviceMapper deviceMapper; @@ -213,6 +221,53 @@ } @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 public void delete(Integer id) { UpdateWrapper<GovMonitorPoint> wrapper_delete = new UpdateWrapper<>(); wrapper_delete.eq("id", id).set("is_delete", Constants.DELETE); -- Gitblit v1.8.0