diff --git a/Dkl-Vue-master/dkl-large/src/test/java/com/dkl/large/controller/DklMonitoringCameraControllerTest.java b/Dkl-Vue-master/dkl-large/src/test/java/com/dkl/large/controller/DklMonitoringCameraControllerTest.java new file mode 100644 index 0000000..c3d27c0 --- /dev/null +++ b/Dkl-Vue-master/dkl-large/src/test/java/com/dkl/large/controller/DklMonitoringCameraControllerTest.java @@ -0,0 +1,246 @@ +package com.dkl.large.controller; + +import com.dkl.common.core.domain.AjaxResult; +import com.dkl.common.core.page.TableDataInfo; +import com.dkl.large.domain.DklMonitoringCamera; +import com.dkl.large.service.IDklMonitoringCameraService; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.mock.web.MockHttpServletResponse; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; + +import javax.servlet.http.HttpServletResponse; +import java.io.ByteArrayInputStream; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.*; + +/** + * 监控点摄像头信息Controller单元测试 + * + * @author Dkl + * @date 2025-06-10 + */ +@ExtendWith(MockitoExtension.class) +public class DklMonitoringCameraControllerTest { + + // 待测试的Controller(自动注入Mock依赖) + @InjectMocks + private DklMonitoringCameraController cameraController; + + // 模拟服务层依赖 + @Mock + private IDklMonitoringCameraService cameraService; + + // 模拟HttpServletResponse + private MockHttpServletResponse mockResponse; + + // 测试用的摄像头实体 + private DklMonitoringCamera testCamera; + + @BeforeEach + void setUp() { + // 初始化模拟对象 + mockResponse = new MockHttpServletResponse(); + + // 初始化测试实体 + testCamera = new DklMonitoringCamera(); + testCamera.setId(1L); + testCamera.setDelFlag("0"); + testCamera.setCreateTime(new Date()); + testCamera.setCreateBy("testUser"); + testCamera.setDeptId(100L); + + // 模拟Security上下文(解决getUsername()/getDeptId()等方法依赖) + Authentication authentication = mock(Authentication.class); + SecurityContextHolder.getContext().setAuthentication(authentication); + doReturn("testUser").when(authentication).getName(); + + // 若BaseController的getDeptId()有自定义逻辑,需额外mock + doReturn(100L).when(cameraController).getDeptId(); + } + + /** + * 测试list接口:查询监控点摄像头列表 + */ + @Test + void testList() { + // 1. 准备测试数据 + List cameraList = new ArrayList<>(); + cameraList.add(testCamera); + + // 2. 模拟服务层返回 + doReturn(cameraList).when(cameraService).selectDklMonitoringCameraList(any(DklMonitoringCamera.class)); + + // 3. 执行接口 + TableDataInfo result = cameraController.list(testCamera); + + // 4. 断言结果 + assertNotNull(result); + assertEquals(1, result.getRows().size()); + assertEquals(testCamera.getId(), ((DklMonitoringCamera) result.getRows().get(0)).getId()); + + // 验证服务层方法被调用 + verify(cameraService, times(1)).selectDklMonitoringCameraList(any(DklMonitoringCamera.class)); + } + + /** + * 测试listAll接口:查询全部有效摄像头(delFlag=0) + */ + @Test + void testListAll() { + // 1. 准备测试数据 + List cameraList = new ArrayList<>(); + cameraList.add(testCamera); + + // 2. 模拟服务层返回 + doReturn(cameraList).when(cameraService).selectDklMonitoringCameraList(any(DklMonitoringCamera.class)); + + // 3. 执行接口 + TableDataInfo result = cameraController.listAll(testCamera); + + // 4. 断言结果 + assertNotNull(result); + assertEquals(1, result.getRows().size()); + // 验证入参的delFlag被设置为0 + verify(cameraService).selectDklMonitoringCameraList(argThat(camera -> "0".equals(camera.getDelFlag()))); + } + + /** + * 测试getInfo接口:根据ID查询摄像头详情 + */ + @Test + void testGetInfo() { + // 1. 模拟服务层返回 + doReturn(testCamera).when(cameraService).selectDklMonitoringCameraById(1L); + + // 2. 执行接口 + AjaxResult result = cameraController.getInfo(1L); + + // 3. 断言结果 + assertNotNull(result); + assertEquals(200, result.get("code")); // 成功状态码(AjaxResult.success默认200) + assertEquals(testCamera.getId(), ((DklMonitoringCamera) result.get("data")).getId()); + + // 验证服务层方法被调用 + verify(cameraService, times(1)).selectDklMonitoringCameraById(1L); + } + + /** + * 测试add接口:新增摄像头信息 + */ + @Test + void testAdd() { + // 1. 模拟服务层返回(新增成功返回1) + doReturn(1).when(cameraService).insertDklMonitoringCamera(any(DklMonitoringCamera.class)); + + // 2. 执行接口 + AjaxResult result = cameraController.add(testCamera); + + // 3. 断言结果 + assertNotNull(result); + assertEquals(200, result.get("code")); // 新增成功 + // 验证实体的系统字段被正确设置 + verify(cameraService).insertDklMonitoringCamera(argThat(camera -> + "0".equals(camera.getDelFlag()) && + camera.getCreateBy().equals("testUser") && + camera.getDeptId().equals(100L) && + camera.getCreateTime() != null + )); + } + + /** + * 测试edit接口:修改摄像头信息 + */ + @Test + void testEdit() { + // 1. 模拟服务层返回(修改成功返回1) + doReturn(1).when(cameraService).updateDklMonitoringCamera(any(DklMonitoringCamera.class)); + + // 2. 执行接口 + AjaxResult result = cameraController.edit(testCamera); + + // 3. 断言结果 + assertNotNull(result); + assertEquals(200, result.get("code")); + // 验证更新时间和更新人被设置 + verify(cameraService).updateDklMonitoringCamera(argThat(camera -> + camera.getUpdateBy().equals("testUser") && + camera.getUpdateTime() != null + )); + } + + /** + * 测试remove接口:删除摄像头(批量) + */ + @Test + void testRemove() { + // 1. 准备删除ID数组 + int[] ids = {1, 2}; + // 2. 模拟服务层返回(删除成功返回2) + doReturn(2).when(cameraService).deleteDklMonitoringCameraByIds(ids); + + // 3. 执行接口 + AjaxResult result = cameraController.remove(ids); + + // 4. 断言结果 + assertNotNull(result); + assertEquals(200, result.get("code")); + verify(cameraService, times(1)).deleteDklMonitoringCameraByIds(ids); + } + + /** + * 测试importData接口:导入Excel数据 + * @throws Exception 异常 + */ + @Test + void testImportData() throws Exception { + // 1. 模拟Excel文件(空流,仅测试流程) + MockMultipartFile mockFile = new MockMultipartFile( + "file", + "camera.xlsx", + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + new ByteArrayInputStream(new byte[0]) + ); + // 2. 模拟服务层返回提示语 + String successMsg = "导入成功,共导入0条数据"; + doReturn(successMsg).when(cameraService).importDate(anyList(), eq("testUser")); + + // 3. 执行接口 + AjaxResult result = cameraController.importData(mockFile); + + // 4. 断言结果 + assertNotNull(result); + assertEquals(200, result.get("code")); + assertEquals(successMsg, result.get("msg")); + verify(cameraService, times(1)).importDate(anyList(), eq("testUser")); + } + + /** + * 测试export接口:导出摄像头列表(无返回值,验证流程) + */ + @Test + void testExport() { + // 1. 准备测试数据 + List cameraList = new ArrayList<>(); + cameraList.add(testCamera); + doReturn(cameraList).when(cameraService).selectDklMonitoringCameraList(any(DklMonitoringCamera.class)); + + // 2. 执行接口(无返回值,验证无异常即可) + assertDoesNotThrow(() -> cameraController.export(mockResponse, testCamera)); + + // 3. 验证服务层和Excel导出逻辑被调用 + verify(cameraService, times(1)).selectDklMonitoringCameraList(any(DklMonitoringCamera.class)); + assertTrue(mockResponse.getContentType().contains("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")); + } +} \ No newline at end of file diff --git a/Dkl-Vue-master/dkl-large/src/test/java/com/dkl/large/domain/DklMonitoringCamera.java b/Dkl-Vue-master/dkl-large/src/test/java/com/dkl/large/domain/DklMonitoringCamera.java new file mode 100644 index 0000000..f5fd348 --- /dev/null +++ b/Dkl-Vue-master/dkl-large/src/test/java/com/dkl/large/domain/DklMonitoringCamera.java @@ -0,0 +1,86 @@ +package com.dkl.large.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.dkl.common.annotation.Excel; +import com.dkl.common.core.domain.BaseEntity; + +import java.util.Date; + +/** + * 监控点摄像头信息对象 dkl_monitoring_camera + * + * @author Dkl + * @date 2025-06-10 + */ +@Data +public class DklMonitoringCamera extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** id */ + private int id; + + /** 名称 */ + @Excel(name = "名称") + private String name; + + /** 类型 */ + private String types; + + @Excel(name = "类型") + private String typesName; + + /** 删除标志(0代表存在 2代表删除) */ + private String delFlag; + + /** 部门id */ + private Long deptId; + + /** 通道号 */ + private String channelNumber; + + /** 文件地址 */ + @Excel(name = "文件地址") + private String filePath; + + /** 备用 */ + private String standby; + + /** 备用1 */ + private String standby1; + + /** 备用2 */ + private String standby2; + + /** 监控点id */ + private Long pointsId; + + /** 经度 */ + @Excel(name = "经度") + private String lng; + + /** 纬度 */ + @Excel(name = "纬度") + private String lat; + + /** 地址 */ + @Excel(name = "地址") + private String address; + + @Excel(name = "监控点名称") + private String pointName; + /** 开始时间 */ + @TableField(exist = false) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date startTime; + + /** 结束时间 */ + @TableField(exist = false) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endTime; + +} diff --git a/Dkl-Vue-master/dkl-large/src/test/java/com/dkl/large/mapper/DklMonitoringCameraMapper.java b/Dkl-Vue-master/dkl-large/src/test/java/com/dkl/large/mapper/DklMonitoringCameraMapper.java new file mode 100644 index 0000000..ba03e9a --- /dev/null +++ b/Dkl-Vue-master/dkl-large/src/test/java/com/dkl/large/mapper/DklMonitoringCameraMapper.java @@ -0,0 +1,87 @@ +package com.dkl.large.mapper; + +import java.util.List; +import com.dkl.large.domain.DklMonitoringCamera; +import com.dkl.large.domain.vo.DeptWwsVo; + +/** + * 监控点摄像头信息Mapper接口 + * + * @author Dkl + * @date 2025-06-10 + */ +public interface DklMonitoringCameraMapper +{ + /** + * 查询监控点摄像头信息 + * + * @param id 监控点摄像头信息主键 + * @return 监控点摄像头信息 + */ + public DklMonitoringCamera selectDklMonitoringCameraById(Long id); + + public DklMonitoringCamera selectDklMonitoringCameraByPath(String path); /** + * 查询监控点摄像头信息列表 + * + * @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 id 监控点摄像头信息主键 + * @return 结果 + */ + public int deleteDklMonitoringCameraById(Long id); + + /** + * 批量删除监控点摄像头信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteDklMonitoringCameraByIds(int[] ids); + + /** + * @Author :rq + * @Description :监控点摄像头数量 + * @Date :2025/06/12 11:14 + * @Param :[] + * @return :java.lang.String + **/ + public String getDklMonitoringCameraCount(); + /** + * @return :java.util.List + * @Author :rq + * @Description :大屏部门下拉框展示 + * @Date :2025/07/07 16:15 + * @Param :[] + **/ + public List getDeptOfWws(); + /** + * @Author :rq + * @Description :获取视频url + * @Date :2025/07/07 16:15 + * @Param :[] + * @return :java.util.List + **/ + public List getDeptOfWwsUrl(DeptWwsVo deptWwsVo); +} diff --git a/Dkl-Vue-master/dkl-large/src/test/java/com/dkl/large/service/IDklMonitoringCameraService.java b/Dkl-Vue-master/dkl-large/src/test/java/com/dkl/large/service/IDklMonitoringCameraService.java new file mode 100644 index 0000000..2f39230 --- /dev/null +++ b/Dkl-Vue-master/dkl-large/src/test/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/test/java/com/dkl/large/service/impl/DklMonitoringCameraServiceImpl.java b/Dkl-Vue-master/dkl-large/src/test/java/com/dkl/large/service/impl/DklMonitoringCameraServiceImpl.java new file mode 100644 index 0000000..fa28d8d --- /dev/null +++ b/Dkl-Vue-master/dkl-large/src/test/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(); + } +} diff --git a/Dkl-Vue-master/dkl-large/src/test/resources/mapper/large/DklMonitoringCameraMapper.xml b/Dkl-Vue-master/dkl-large/src/test/resources/mapper/large/DklMonitoringCameraMapper.xml new file mode 100644 index 0000000..ecba9dc --- /dev/null +++ b/Dkl-Vue-master/dkl-large/src/test/resources/mapper/large/DklMonitoringCameraMapper.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + select dmc.id, dmc.name, dmc.types, dmc.create_by, dmc.create_time, dmc.update_by, dmc.update_time, dmc.del_flag, dmc.dept_id, dmc.channel_number, + dmc.file_path, dmc.standby, dmc.standby1, dmc.standby2, dmc.points_id, dmc.lng, dmc.lat, dmc.address ,dmp.point_name AS pointName ,sdd.dict_label AS typesName from dkl_monitoring_camera AS dmc + left join sys_dept d on dmc.dept_id = d.dept_id + left join dkl_monitoring_points dmp on dmp.id = dmc.points_id + left join sys_dict_data sdd on sdd.dict_value = dmc.types and sdd.dict_type ='monitoring_type' + + + + + + + + + + insert into dkl_monitoring_camera + + name, + types, + create_by, + create_time, + update_by, + update_time, + del_flag, + dept_id, + channel_number, + file_path, + standby, + standby1, + standby2, + points_id, + lng, + lat, + address, + + + #{name}, + #{types}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{delFlag}, + #{deptId}, + #{channelNumber}, + #{filePath}, + #{standby}, + #{standby1}, + #{standby2}, + #{pointsId}, + #{lng}, + #{lat}, + #{address}, + + + + + update dkl_monitoring_camera + + name = #{name}, + types = #{types}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + del_flag = #{delFlag}, + dept_id = #{deptId}, + channel_number = #{channelNumber}, + file_path = #{filePath}, + standby = #{standby}, + standby1 = #{standby1}, + standby2 = #{standby2}, + points_id = #{pointsId}, + lng = #{lng}, + lat = #{lat}, + address = #{address}, + + where id = #{id} + + + + update dkl_monitoring_camera set del_flag = 2 where id = #{id} + + + + update dkl_monitoring_camera set del_flag = 2 where id in + + #{id} + + + + + + + + + +