测试用例单元

This commit is contained in:
lvys 2025-04-25 10:47:46 +08:00
parent 467edd7002
commit 7ee6ce6389
6 changed files with 1000 additions and 0 deletions

View File

@ -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<DklMonitoringCamera> 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<DklMonitoringCamera> 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<DklMonitoringCamera> 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"));
}
}

View File

@ -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;
}

View File

@ -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<DklMonitoringCamera> 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<com.dkl.large.domain.vo.RiskVo>
* @Author :rq
* @Description :大屏部门下拉框展示
* @Date :2025/07/07 16:15
* @Param :[]
**/
public List<DeptWwsVo> getDeptOfWws();
/**
* @Author :rq
* @Description :获取视频url
* @Date :2025/07/07 16:15
* @Param :[]
* @return :java.util.List<com.dkl.large.domain.vo.RiskVo>
**/
public List<DeptWwsVo> getDeptOfWwsUrl(DeptWwsVo deptWwsVo);
}

View File

@ -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<DklMonitoringCamera> 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<com.dkl.large.domain.vo.RiskVo>
**/
public List<DeptWwsVo> getDeptOfWws();
/**
* @Author :rq
* @Description :获取视频url
* @Date :2025/07/07 16:15
* @Param :[]
* @return :java.util.List<com.dkl.large.domain.vo.RiskVo>
**/
public List<DeptWwsVo> getDeptOfWwsUrl(DeptWwsVo deptWwsVo) throws Exception;
/**
* 导入数据
*
* @param dklMonitoringCameraList 数据列表
* @param operName 操作用户
* @return 结果
*/
public String importDate(List<DklMonitoringCamera> dklMonitoringCameraList, String operName);
}

View File

@ -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<DklMonitoringCamera> 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<com.dkl.large.domain.vo.RiskVo>
**/
@Override
public List<DeptWwsVo> getDeptOfWws() {
return dklMonitoringCameraMapper.getDeptOfWws();
}
/**
* @Author :rq
* @Description : 获取视频url
* @Date :2025/07/07 16:23
* @Param :[deptWwsVo]
* @return :java.util.List<com.dkl.large.domain.vo.DeptWwsVo>
**/
@Override
public List<DeptWwsVo> getDeptOfWwsUrl(DeptWwsVo deptWwsVo) throws Exception {
int urlSize=0;
List <DeptWwsVo> 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<DklMonitoringCamera> dklMonitoringCameraList, String operName) {
//类型集合
List<SysDictData> areaDict=sysDictDataMapper.selectDictDataByType("monitoring_type");
DklMonitoringPoints dklMonitoringPoints = new DklMonitoringPoints();
dklMonitoringPoints.setDelFlag("0");
//活动集合
List<DklMonitoringPoints> 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("<br/> 第" + (i+1) + "条数据名称为空");
}else{
if (dklMonitoringCameraList.get(i).getName().length()>=30){
failureNum++;
failureMsg.append("<br/> 第" + (i+1) + "条数据名称长度过长");
}
}
//类型
if (StringUtils.isEmpty(dklMonitoringCameraList.get(i).getTypesName())){
failureNum++;
failureMsg.append("<br/> 第" + (i+1)+ "条数据类型为空");
}else{
if (dklMonitoringCameraList.get(i).getTypesName().length()>=30){
failureNum++;
failureMsg.append("<br/> 第" +(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("<br/> 第" +(i+1) + "条数据类型未找到");
}
}
}
//经度
if (StringUtils.isEmpty(dklMonitoringCameraList.get(i).getLng())){
failureNum++;
failureMsg.append("<br/> 第" + (i+1) + "条数据经度为空");
}else{
if (dklMonitoringCameraList.get(i).getLng().length()>=30){
failureNum++;
failureMsg.append("<br/> 第" + (i+1) + "条数据经度长度过长");
}else if (!Pattern.matches(LNG_REGEX, dklMonitoringCameraList.get(i).getLng())){
failureNum++;
failureMsg.append("<br/> 第" + (i+1) + "条数据值经度有误");
}
}
//纬度
if (StringUtils.isEmpty(dklMonitoringCameraList.get(i).getLat())){
failureNum++;
failureMsg.append("<br/> 第" + (i+1) + "条数据纬度为空");
}else{
if (dklMonitoringCameraList.get(i).getLat().length()>=30){
failureNum++;
failureMsg.append("<br/> 第" + (i+1) + "条数据纬度长度过长");
}else if (!Pattern.matches(LAT_REGEX, dklMonitoringCameraList.get(i).getLat())){
failureNum++;
failureMsg.append("<br/> 第" + (i+1) + "条数据值纬度有误");
}
}
//地址
if (StringUtils.isEmpty(dklMonitoringCameraList.get(i).getAddress())){
failureNum++;
failureMsg.append("<br/> 第" + (i+1)+ "条数据地址为空");
}else{
if (dklMonitoringCameraList.get(i).getAddress().length()>=30){
failureNum++;
failureMsg.append("<br/> 第" + (i+1) + "条数据地址长度过长");
}
}
//活动
if (StringUtils.isEmpty(dklMonitoringCameraList.get(i).getPointName())){
failureNum++;
failureMsg.append("<br/> 第" + (i+1)+ "条监控点名称为空");
}else{
if (dklMonitoringCameraList.get(i).getPointName().length()>=30){
failureNum++;
failureMsg.append("<br/> 第" +(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("<br/> 第" +(i+1) + "条活动名称未找到");
}
}
}
}
catch (Exception e)
{
failureNum++;
String msg = "<br/>" + 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();
}
}

View File

@ -0,0 +1,183 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dkl.large.mapper.DklMonitoringCameraMapper">
<resultMap type="DklMonitoringCamera" id="DklMonitoringCameraResult">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="types" column="types" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="delFlag" column="del_flag" />
<result property="deptId" column="dept_id" />
<result property="channelNumber" column="channel_number" />
<result property="filePath" column="file_path" />
<result property="standby" column="standby" />
<result property="standby1" column="standby1" />
<result property="standby2" column="standby2" />
<result property="pointsId" column="points_id" />
<result property="lng" column="lng" />
<result property="lat" column="lat" />
<result property="address" column="address" />
</resultMap>
<sql id="selectDklMonitoringCameraVo">
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'
</sql>
<select id="selectDklMonitoringCameraList" parameterType="DklMonitoringCamera" resultMap="DklMonitoringCameraResult">
<include refid="selectDklMonitoringCameraVo"/>
<where>
<if test="name != null and name != ''"> and dmc.name like concat('%', #{name}, '%')</if>
<if test="types != null and types != ''"> and dmc.types = #{types}</if>
<if test="deptId != null "> and dmc.dept_id = #{deptId}</if>
<if test="channelNumber != null and channelNumber != ''"> and dmc.channel_number = #{channelNumber}</if>
<if test="filePath != null and filePath != ''"> and dmc.file_path = #{filePath}</if>
<if test="standby != null and standby != ''"> and dmc.standby = #{standby}</if>
<if test="standby1 != null and standby1 != ''"> and dmc.standby1 = #{standby1}</if>
<if test="standby2 != null and standby2 != ''"> and dmc.standby2 = #{standby2}</if>
<if test="pointsId != null "> and dmc.points_id = #{pointsId}</if>
<if test="lng != null and lng != ''"> and dmc.lng = #{lng}</if>
<if test="lat != null and lat != ''"> and dmc.lat = #{lat}</if>
<if test="address != null and address != ''"> and dmc.address = #{address}</if>
<if test="delFlag != null and delFlag != ''"> and dmc.del_flag = #{delFlag}</if>
<if test="startTime != null and endTime != null ">
AND dmc.create_time BETWEEN #{startTime} and #{endTime}
</if>
</where>
<!-- 数据范围过滤 -->
${params.dataScope}
order by dmc.create_time desc
</select>
<select id="selectDklMonitoringCameraById" parameterType="Long" resultMap="DklMonitoringCameraResult">
<include refid="selectDklMonitoringCameraVo"/>
where dmc.id = #{id}
</select>
<select id="selectDklMonitoringCameraByPath" parameterType="String" resultMap="DklMonitoringCameraResult">
<include refid="selectDklMonitoringCameraVo"/>
where dmc.file_path = #{path}
</select>
<insert id="insertDklMonitoringCamera" parameterType="DklMonitoringCamera">
insert into dkl_monitoring_camera
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="name != null">name,</if>
<if test="types != null">types,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="delFlag != null">del_flag,</if>
<if test="deptId != null">dept_id,</if>
<if test="channelNumber != null">channel_number,</if>
<if test="filePath != null">file_path,</if>
<if test="standby != null">standby,</if>
<if test="standby1 != null">standby1,</if>
<if test="standby2 != null">standby2,</if>
<if test="pointsId != null">points_id,</if>
<if test="lng != null">lng,</if>
<if test="lat != null">lat,</if>
<if test="address != null">address,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="name != null">#{name},</if>
<if test="types != null">#{types},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="delFlag != null">#{delFlag},</if>
<if test="deptId != null">#{deptId},</if>
<if test="channelNumber != null">#{channelNumber},</if>
<if test="filePath != null">#{filePath},</if>
<if test="standby != null">#{standby},</if>
<if test="standby1 != null">#{standby1},</if>
<if test="standby2 != null">#{standby2},</if>
<if test="pointsId != null">#{pointsId},</if>
<if test="lng != null">#{lng},</if>
<if test="lat != null">#{lat},</if>
<if test="address != null">#{address},</if>
</trim>
</insert>
<update id="updateDklMonitoringCamera" parameterType="DklMonitoringCamera">
update dkl_monitoring_camera
<trim prefix="SET" suffixOverrides=",">
<if test="name != null">name = #{name},</if>
<if test="types != null">types = #{types},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
<if test="deptId != null">dept_id = #{deptId},</if>
<if test="channelNumber != null">channel_number = #{channelNumber},</if>
<if test="filePath != null">file_path = #{filePath},</if>
<if test="standby != null">standby = #{standby},</if>
<if test="standby1 != null">standby1 = #{standby1},</if>
<if test="standby2 != null">standby2 = #{standby2},</if>
<if test="pointsId != null">points_id = #{pointsId},</if>
<if test="lng != null">lng = #{lng},</if>
<if test="lat != null">lat = #{lat},</if>
<if test="address != null">address = #{address},</if>
</trim>
where id = #{id}
</update>
<update id="deleteDklMonitoringCameraById" parameterType="int">
update dkl_monitoring_camera set del_flag = 2 where id = #{id}
</update>
<update id="deleteDklMonitoringCameraByIds" parameterType="int">
update dkl_monitoring_camera set del_flag = 2 where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</update>
<select id="getDklMonitoringCameraCount" parameterType="string">
SELECT COUNT(*) FROM dkl_monitoring_camera WHERE del_flag = '0'
</select>
<select id="getDeptOfWws" resultType="deptWwsVo">
SELECT
sd.dept_id as deptid,
sd.dept_name as deptname
FROM
dkl_monitoring_camera AS dmc
LEFT JOIN sys_dept AS sd ON sd.dept_id = dmc.dept_id
WHERE
dmc.del_flag = '0'
GROUP BY
sd.dept_id,
sd.dept_name
</select>
<select id="getDeptOfWwsUrl" parameterType="deptWwsVo" resultType="deptWwsVo">
SELECT
sd.dept_id as deptid,
sd.dept_name as deptname,
dmc.file_path as code,
dmc. name as name
FROM
dkl_monitoring_camera AS dmc
LEFT JOIN sys_dept AS sd ON sd.dept_id = dmc.dept_id
WHERE
dmc.del_flag = '0'
<if test="deptid != null">
and dmc.dept_id = #{deptid}
</if>
</select>
</mapper>