CameraAreaServiceImpl.java 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. package com.huimv.admin.service.impl;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.collection.ListUtil;
  4. import cn.hutool.core.util.ObjectUtil;
  5. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  6. import com.baomidou.mybatisplus.core.metadata.IPage;
  7. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  8. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  9. import com.huimv.admin.common.utils.Result;
  10. import com.huimv.admin.common.utils.ResultCode;
  11. import com.huimv.admin.entity.CameraArea;
  12. import com.huimv.admin.entity.CameraBase;
  13. import com.huimv.admin.entity.EnvDevice;
  14. import com.huimv.admin.entity.hkwsdto.RegionDetailDto;
  15. import com.huimv.admin.entity.hkwsdto.UnitDto1;
  16. import com.huimv.admin.entity.zengxindto.DataShacks;
  17. import com.huimv.admin.mapper.CameraAreaMapper;
  18. import com.huimv.admin.mapper.CameraBaseMapper;
  19. import com.huimv.admin.service.ICameraAreaService;
  20. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.stereotype.Service;
  23. import java.util.ArrayList;
  24. import java.util.HashMap;
  25. import java.util.List;
  26. import java.util.Map;
  27. import java.util.concurrent.CopyOnWriteArrayList;
  28. import java.util.stream.Collectors;
  29. /**
  30. * <p>
  31. * 服务实现类
  32. * </p>
  33. *
  34. * @author author
  35. * @since 2023-02-16
  36. */
  37. @Service
  38. public class CameraAreaServiceImpl extends ServiceImpl<CameraAreaMapper, CameraArea> implements ICameraAreaService {
  39. @Autowired
  40. private CameraBaseMapper cameraMapper;
  41. @Override
  42. public Result cameraList(Map<String, Object> params) {
  43. Integer current = (Integer) params.get("current");
  44. Integer size = (Integer) params.get("size");
  45. String areaName = (String) params.get("areaName");
  46. String farmId = (String) params.get("farmId");
  47. IPage<CameraArea> list = page(new Page<>(current, size), new QueryWrapper<CameraArea>().like(StringUtils.isNotBlank(areaName), "area_name", areaName).eq("farm_id", farmId));
  48. return new Result(ResultCode.SUCCESS, list);
  49. }
  50. @Override
  51. public Result removeIds(List<Integer> ids) {
  52. for (Integer id : ids) {
  53. CameraArea byId = this.getById(id);
  54. Integer areaId = cameraMapper.selectCount(new QueryWrapper<CameraBase>().eq("area_id", id));
  55. if (areaId > 0) {
  56. return new Result(10001, "删除失败,区域" + byId.getAreaName() + "仍然存在摄像头", false);
  57. }
  58. }
  59. this.removeByIds(ids);
  60. return new Result(10000, "删除成功", true);
  61. }
  62. @Override
  63. public Result lsitAndCamera(Integer farmId) {
  64. List endList = new ArrayList();
  65. List<CameraArea> cameraAreaList = this.list(new QueryWrapper<CameraArea>().eq("farm_id", farmId));
  66. for (CameraArea cameraArea : cameraAreaList) {
  67. Map map = new HashMap();
  68. map.put("cameraName", cameraArea.getAreaName());
  69. map.put("id", cameraArea.getId());
  70. map.put("cameraList", cameraMapper.selectList(new QueryWrapper<CameraBase>().eq("area_id", cameraArea.getId())));
  71. endList.add(map);
  72. }
  73. return new Result(ResultCode.SUCCESS, endList);
  74. }
  75. @Override
  76. public void sync(Map<String, Integer> params,List<UnitDto1> unitDto1) {
  77. Integer farmId = params.get("farmId");
  78. //同步,先删除
  79. QueryWrapper<CameraArea> wrapper = new QueryWrapper<>();
  80. //TODO 正康猪业 先这样做
  81. wrapper.eq("farm_id",farmId);
  82. List<CameraArea> huatong = this.list(wrapper);
  83. List<String> haikangAreaId = unitDto1.stream().map(UnitDto1::getRegionUuid).collect(Collectors.toList());
  84. List<String> huatongAreaId = huatong.stream().map(CameraArea::getRegionUuid).collect(Collectors.toList());
  85. CopyOnWriteArrayList<String> haikangDeviceIdCopy = ListUtil.toCopyOnWriteArrayList(haikangAreaId);
  86. CopyOnWriteArrayList<String> huatongDeviceIdCopy = ListUtil.toCopyOnWriteArrayList(huatongAreaId);
  87. //新增的设备
  88. haikangDeviceIdCopy.removeAll(huatongAreaId);
  89. //TODO 新增 先循环,想不出来
  90. if (haikangDeviceIdCopy.size() >0){
  91. for (String s : haikangDeviceIdCopy) {
  92. for (UnitDto1 dto1 : unitDto1) {
  93. if (s.equals(dto1.getRegionUuid())){
  94. CameraArea cameraArea = new CameraArea();
  95. BeanUtil.copyProperties(dto1,cameraArea);
  96. cameraArea.setAreaName(dto1.getName());
  97. cameraArea.setFarmId(farmId);
  98. cameraArea.setPublicUrl("61.153.248.106:6713");
  99. this.save(cameraArea);
  100. }
  101. }
  102. }
  103. }
  104. //需要删除的设备
  105. huatongDeviceIdCopy.removeAll(haikangDeviceIdCopy);
  106. if (huatongDeviceIdCopy.size() >0){
  107. this.remove(new QueryWrapper<CameraArea>().in("region_uuid",huatongDeviceIdCopy));
  108. }
  109. }
  110. @Override
  111. public void NewSync(Map<String, Integer> params, List<RegionDetailDto> regionDetailDto) {
  112. Integer farmId = params.get("farmId");
  113. //同步,先删除
  114. QueryWrapper<CameraArea> wrapper = new QueryWrapper<>();
  115. //TODO 浦江猪业(新平台) 先这样做
  116. wrapper.eq("farm_id",farmId);
  117. List<CameraArea> huatong = this.list(wrapper);
  118. List<String> HikAreaId = regionDetailDto.stream().map(RegionDetailDto::getIndexCode).collect(Collectors.toList());
  119. List<String> HtAreaId = huatong.stream().map(CameraArea::getRegionUuid).collect(Collectors.toList());
  120. CopyOnWriteArrayList<String> HikArea = ListUtil.toCopyOnWriteArrayList(HikAreaId);
  121. CopyOnWriteArrayList<String> HtArea = ListUtil.toCopyOnWriteArrayList(HtAreaId);
  122. //新增的设备
  123. HikArea.removeAll(HtAreaId);
  124. //TODO 新增
  125. if (HikArea.size() >0){
  126. for (String s : HikArea) {
  127. for (RegionDetailDto dto : regionDetailDto) {
  128. if (s.equals(dto.getIndexCode())){
  129. CameraArea cameraArea = new CameraArea();
  130. cameraArea.setAreaName(dto.getName());
  131. cameraArea.setCreateTime(dto.getCreateTime());
  132. cameraArea.setUpdateTime(dto.getUpdateTime());
  133. cameraArea.setRegionUuid(dto.getIndexCode());
  134. cameraArea.setParentUuid(dto.getParentIndexCode());
  135. cameraArea.setFarmId(farmId);
  136. cameraArea.setPublicUrl("61.153.248.109");
  137. this.save(cameraArea);
  138. }
  139. }
  140. }
  141. }
  142. //需要删除的设备
  143. HtArea.removeAll(HikArea);
  144. if (HtArea.size() >0){
  145. this.remove(new QueryWrapper<CameraArea>().in("region_uuid",HtArea));
  146. }
  147. }
  148. }