From 4ce62ca2570e6df49c8382147c08fe6c32499359 Mon Sep 17 00:00:00 2001 From: chenll Date: Wed, 30 Apr 2025 21:00:22 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E8=AD=A6=E4=BF=A1=E6=81=AF=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/IDklMonitoringCameraService.java | 88 +++++ .../impl/DklMonitoringCameraServiceImpl.java | 310 ++++++++++++++++++ 2 files changed, 398 insertions(+) create mode 100644 Dkl-Vue-master/dkl-large/src/main/java/com/dkl/large/service/IDklMonitoringCameraService.java create mode 100644 Dkl-Vue-master/dkl-large/src/main/java/com/dkl/large/service/impl/DklMonitoringCameraServiceImpl.java diff --git a/Dkl-Vue-master/dkl-large/src/main/java/com/dkl/large/service/IDklMonitoringCameraService.java b/Dkl-Vue-master/dkl-large/src/main/java/com/dkl/large/service/IDklMonitoringCameraService.java new file mode 100644 index 0000000..2f39230 --- /dev/null +++ b/Dkl-Vue-master/dkl-large/src/main/java/com/dkl/large/service/IDklMonitoringCameraService.java @@ -0,0 +1,88 @@ +package com.dkl.large.service; + +import java.util.List; +import com.dkl.large.domain.DklMonitoringCamera; +import com.dkl.large.domain.DklMonitoringCameraData; +import com.dkl.large.domain.vo.DeptWwsVo; + +/** + * 监控点摄像头信息Service接口 + * + * @author Dkl + * @date 2025-06-10 + */ +public interface IDklMonitoringCameraService +{ + /** + * 查询监控点摄像头信息 + * + * @param id 监控点摄像头信息主键 + * @return 监控点摄像头信息 + */ + public DklMonitoringCamera selectDklMonitoringCameraById(Long id); + + /** + * 查询监控点摄像头信息列表 + * + * @param dklMonitoringCamera 监控点摄像头信息 + * @return 监控点摄像头信息集合 + */ + public List selectDklMonitoringCameraList(DklMonitoringCamera dklMonitoringCamera); + + /** + * 新增监控点摄像头信息 + * + * @param dklMonitoringCamera 监控点摄像头信息 + * @return 结果 + */ + public int insertDklMonitoringCamera(DklMonitoringCamera dklMonitoringCamera); + + /** + * 修改监控点摄像头信息 + * + * @param dklMonitoringCamera 监控点摄像头信息 + * @return 结果 + */ + public int updateDklMonitoringCamera(DklMonitoringCamera dklMonitoringCamera); + + /** + * 批量删除监控点摄像头信息 + * + * @param ids 需要删除的监控点摄像头信息主键集合 + * @return 结果 + */ + public int deleteDklMonitoringCameraByIds(int[] ids); + + /** + * 删除监控点摄像头信息信息 + * + * @param id 监控点摄像头信息主键 + * @return 结果 + */ + public int deleteDklMonitoringCameraById(Long id); + /** + * @Author :rq + * @Description :大屏部门下拉框展示 + * @Date :2025/07/07 16:15 + * @Param :[] + * @return :java.util.List + **/ + public List getDeptOfWws(); + + /** + * @Author :rq + * @Description :获取视频url + * @Date :2025/07/07 16:15 + * @Param :[] + * @return :java.util.List + **/ + public List getDeptOfWwsUrl(DeptWwsVo deptWwsVo) throws Exception; + /** + * 导入数据 + * + * @param dklMonitoringCameraList 数据列表 + * @param operName 操作用户 + * @return 结果 + */ + public String importDate(List dklMonitoringCameraList, String operName); +} diff --git a/Dkl-Vue-master/dkl-large/src/main/java/com/dkl/large/service/impl/DklMonitoringCameraServiceImpl.java b/Dkl-Vue-master/dkl-large/src/main/java/com/dkl/large/service/impl/DklMonitoringCameraServiceImpl.java new file mode 100644 index 0000000..fa28d8d --- /dev/null +++ b/Dkl-Vue-master/dkl-large/src/main/java/com/dkl/large/service/impl/DklMonitoringCameraServiceImpl.java @@ -0,0 +1,310 @@ +package com.dkl.large.service.impl; + +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.regex.Pattern; + +import com.dkl.common.core.domain.entity.SysDictData; +import com.dkl.common.exception.ServiceException; +import com.dkl.common.utils.DateUtils; +import com.dkl.common.utils.StringUtils; +import com.dkl.large.domain.DklActivity; +import com.dkl.large.domain.DklMonitoringPoints; +import com.dkl.large.domain.VideoStorageInformation; +import com.dkl.large.domain.vo.DeptWwsVo; +import com.dkl.large.mapper.DklMonitoringPointsMapper; +import com.dkl.large.utli.GetCameraPreviewURL; +import com.dkl.system.mapper.SysDictDataMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.dkl.large.mapper.DklMonitoringCameraMapper; +import com.dkl.large.domain.DklMonitoringCamera; +import com.dkl.large.service.IDklMonitoringCameraService; + +import static com.dkl.common.utils.SecurityUtils.getDeptId; +import static com.dkl.common.utils.SecurityUtils.getUsername; + +/** + * 监控点摄像头信息Service业务层处理 + * + * @author Dkl + * @date 2025-06-10 + */ +@Service +public class DklMonitoringCameraServiceImpl implements IDklMonitoringCameraService +{ + @Autowired + private DklMonitoringCameraMapper dklMonitoringCameraMapper; + //经度 + private static final String LNG_REGEX = "^-?\\d{1,3}(\\.\\d+)?$"; + //维度 + private static final String LAT_REGEX = "^-?\\d{1,2}(\\.\\d+)?$"; + @Autowired + private SysDictDataMapper sysDictDataMapper; + @Autowired + private DklMonitoringPointsMapper dklMonitoringPointsMapper; + + /** + * 查询监控点摄像头信息 + * + * @param id 监控点摄像头信息主键 + * @return 监控点摄像头信息 + */ + @Override + public DklMonitoringCamera selectDklMonitoringCameraById(Long id) + { + return dklMonitoringCameraMapper.selectDklMonitoringCameraById(id); + } + + /** + * 查询监控点摄像头信息列表 + * + * @param dklMonitoringCamera 监控点摄像头信息 + * @return 监控点摄像头信息 + */ + @Override + public List selectDklMonitoringCameraList(DklMonitoringCamera dklMonitoringCamera) + { + return dklMonitoringCameraMapper.selectDklMonitoringCameraList(dklMonitoringCamera); + } + + /** + * 新增监控点摄像头信息 + * + * @param dklMonitoringCamera 监控点摄像头信息 + * @return 结果 + */ + @Override + public int insertDklMonitoringCamera(DklMonitoringCamera dklMonitoringCamera) + { + dklMonitoringCamera.setCreateTime(DateUtils.getNowDate()); + return dklMonitoringCameraMapper.insertDklMonitoringCamera(dklMonitoringCamera); + } + + /** + * 修改监控点摄像头信息 + * + * @param dklMonitoringCamera 监控点摄像头信息 + * @return 结果 + */ + @Override + public int updateDklMonitoringCamera(DklMonitoringCamera dklMonitoringCamera) + { + dklMonitoringCamera.setUpdateTime(DateUtils.getNowDate()); + return dklMonitoringCameraMapper.updateDklMonitoringCamera(dklMonitoringCamera); + } + + /** + * 批量删除监控点摄像头信息 + * + * @param ids 需要删除的监控点摄像头信息主键 + * @return 结果 + */ + @Override + public int deleteDklMonitoringCameraByIds(int[] ids) + { + return dklMonitoringCameraMapper.deleteDklMonitoringCameraByIds(ids); + } + + /** + * 删除监控点摄像头信息信息 + * + * @param id 监控点摄像头信息主键 + * @return 结果 + */ + @Override + public int deleteDklMonitoringCameraById(Long id) + { + return dklMonitoringCameraMapper.deleteDklMonitoringCameraById(id); + } + /** + * @Author :rq + * @Description :大屏部门下拉框展示 + * @Date :2025/07/07 16:15 + * @Param :[] + * @return :java.util.List + **/ + @Override + public List getDeptOfWws() { + return dklMonitoringCameraMapper.getDeptOfWws(); + } + + /** + * @Author :rq + * @Description : 获取视频url + * @Date :2025/07/07 16:23 + * @Param :[deptWwsVo] + * @return :java.util.List + **/ + @Override + public List getDeptOfWwsUrl(DeptWwsVo deptWwsVo) throws Exception { + int urlSize=0; + List deptWwsVos =dklMonitoringCameraMapper.getDeptOfWwsUrl(deptWwsVo); + if (("0").equals(deptWwsVo.getType())){ + urlSize = 4; + } + if (("1").equals(deptWwsVo.getType())){ + urlSize = 9; + } + int outUrlSize=0; + for (int i = 0; i < deptWwsVos.size(); i++) { + String wwsurl= GetCameraPreviewURL.GetCameraPreviewURL(deptWwsVos.get(i).getCode()); + if (StringUtils.isNotEmpty(wwsurl)&&outUrlSize!=urlSize){ + deptWwsVos.get(i).setDepturl(wwsurl); + outUrlSize++; + }else { + break; + } + } + return deptWwsVos; + } + + @Override + public String importDate(List dklMonitoringCameraList, String operName) { + //类型集合 + List areaDict=sysDictDataMapper.selectDictDataByType("monitoring_type"); + DklMonitoringPoints dklMonitoringPoints = new DklMonitoringPoints(); + dklMonitoringPoints.setDelFlag("0"); + //活动集合 + List dklMonitoringPointsList=dklMonitoringPointsMapper.selectDklMonitoringPointsList(dklMonitoringPoints); + if (StringUtils.isNull(dklMonitoringCameraList) || dklMonitoringCameraList.size() == 0) { + throw new ServiceException("导入数据不能为空!"); + } + int successNum = 0; + int failureNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + for (int i = 0; i < dklMonitoringCameraList.size(); i++) { + try + { + //活动名称 + if (StringUtils.isEmpty(dklMonitoringCameraList.get(i).getName())){ + failureNum++; + failureMsg.append("
第" + (i+1) + "条数据名称为空"); + }else{ + if (dklMonitoringCameraList.get(i).getName().length()>=30){ + failureNum++; + failureMsg.append("
第" + (i+1) + "条数据名称长度过长"); + } + } + + + //类型 + if (StringUtils.isEmpty(dklMonitoringCameraList.get(i).getTypesName())){ + failureNum++; + failureMsg.append("
第" + (i+1)+ "条数据类型为空"); + }else{ + if (dklMonitoringCameraList.get(i).getTypesName().length()>=30){ + failureNum++; + failureMsg.append("
第" +(i+1) + "条数据类型过长"); + }else{ + for (SysDictData sysDictData : areaDict) { + if (sysDictData.getDictLabel().equals(dklMonitoringCameraList.get(i).getTypesName())) { + dklMonitoringCameraList.get(i).setTypes(sysDictData.getDictValue()); + break; + } + } + if (StringUtils.isEmpty(dklMonitoringCameraList.get(i).getTypes())){ + failureNum++; + failureMsg.append("
第" +(i+1) + "条数据类型未找到"); + } + + } + } + + + + + + //经度 + if (StringUtils.isEmpty(dklMonitoringCameraList.get(i).getLng())){ + failureNum++; + failureMsg.append("
第" + (i+1) + "条数据经度为空"); + }else{ + if (dklMonitoringCameraList.get(i).getLng().length()>=30){ + failureNum++; + failureMsg.append("
第" + (i+1) + "条数据经度长度过长"); + }else if (!Pattern.matches(LNG_REGEX, dklMonitoringCameraList.get(i).getLng())){ + failureNum++; + failureMsg.append("
第" + (i+1) + "条数据值经度有误"); + } + } + + //纬度 + if (StringUtils.isEmpty(dklMonitoringCameraList.get(i).getLat())){ + failureNum++; + failureMsg.append("
第" + (i+1) + "条数据纬度为空"); + }else{ + if (dklMonitoringCameraList.get(i).getLat().length()>=30){ + failureNum++; + failureMsg.append("
第" + (i+1) + "条数据纬度长度过长"); + }else if (!Pattern.matches(LAT_REGEX, dklMonitoringCameraList.get(i).getLat())){ + failureNum++; + failureMsg.append("
第" + (i+1) + "条数据值纬度有误"); + } + } + + //地址 + if (StringUtils.isEmpty(dklMonitoringCameraList.get(i).getAddress())){ + failureNum++; + failureMsg.append("
第" + (i+1)+ "条数据地址为空"); + }else{ + if (dklMonitoringCameraList.get(i).getAddress().length()>=30){ + failureNum++; + failureMsg.append("
第" + (i+1) + "条数据地址长度过长"); + } + } + //活动 + if (StringUtils.isEmpty(dklMonitoringCameraList.get(i).getPointName())){ + failureNum++; + failureMsg.append("
第" + (i+1)+ "条监控点名称为空"); + }else{ + if (dklMonitoringCameraList.get(i).getPointName().length()>=30){ + failureNum++; + failureMsg.append("
第" +(i+1) + "条监控点名称过长"); + }else{ + for (DklMonitoringPoints monitoringPoints : dklMonitoringPointsList) { + if (monitoringPoints.getPointName().equals(dklMonitoringCameraList.get(i).getPointName())) { + dklMonitoringCameraList.get(i).setPointsId((long) monitoringPoints.getId()); + } + } + if (StringUtils.isEmpty(Collections.singleton(dklMonitoringCameraList.get(i).getPointsId()))){ + failureNum++; + failureMsg.append("
第" +(i+1) + "条活动名称未找到"); + } + } + } + + } + catch (Exception e) + { + failureNum++; + String msg = "
" + failureNum + "导入失败:"; + failureMsg.append(msg + e.getMessage()); + } + + } + if (failureNum > 0) + { + failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); + throw new ServiceException(failureMsg.toString()); + } + else + { + for (DklMonitoringCamera dklMonitoringCamera :dklMonitoringCameraList){ + //添加系统信息 + dklMonitoringCamera.setDelFlag("0"); + dklMonitoringCamera.setCreateTime(new Date()); + dklMonitoringCamera.setCreateBy(getUsername()); + dklMonitoringCamera.setDeptId(getDeptId()); + dklMonitoringCamera.setUpdateTime(new Date()); + dklMonitoringCamera.setUpdateBy(getUsername()); + dklMonitoringCameraMapper.insertDklMonitoringCamera(dklMonitoringCamera); + } + successMsg.insert(0, "恭喜您,数据已全部导入成功!"); + } + + return successMsg.toString(); + } +}