测试用例活动
This commit is contained in:
parent
4b3e1cb9f7
commit
468d5a64c2
|
|
@ -0,0 +1,283 @@
|
||||||
|
package com.dkl.large.controller;
|
||||||
|
|
||||||
|
import com.dkl.common.core.domain.AjaxResult;
|
||||||
|
import com.dkl.common.core.page.TableDataInfo;
|
||||||
|
import com.dkl.large.domain.DklSecurityEquipment;
|
||||||
|
import com.dkl.large.service.IDklSecurityEquipmentService;
|
||||||
|
import com.koal.kms.sdk.ed.KmsSdkException;
|
||||||
|
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 org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
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单元测试
|
||||||
|
* 与之前风格保持一致:JUnit 5 + Mockito,覆盖所有核心接口
|
||||||
|
*
|
||||||
|
* @author Falling
|
||||||
|
* @date 2025-06-16
|
||||||
|
*/
|
||||||
|
@ExtendWith(MockitoExtension.class)
|
||||||
|
public class DklSecurityEquipmentControllerTest {
|
||||||
|
|
||||||
|
// 待测试的Controller(自动注入Mock的Service依赖)
|
||||||
|
@InjectMocks
|
||||||
|
private DklSecurityEquipmentController securityEquipmentController;
|
||||||
|
|
||||||
|
// 模拟Controller依赖的Service层(解耦真实数据库与业务逻辑)
|
||||||
|
@Mock
|
||||||
|
private IDklSecurityEquipmentService securityEquipmentService;
|
||||||
|
|
||||||
|
// 模拟HTTP响应对象(用于导出/导入模板接口)
|
||||||
|
private MockHttpServletResponse mockResponse;
|
||||||
|
|
||||||
|
// 测试用的核心实体数据
|
||||||
|
private DklSecurityEquipment testEquipment;
|
||||||
|
|
||||||
|
// 测试用的实体列表数据
|
||||||
|
private List<DklSecurityEquipment> testEquipmentList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每个测试方法执行前初始化数据(保证测试用例独立性)
|
||||||
|
*/
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() {
|
||||||
|
// 1. 初始化模拟HTTP响应
|
||||||
|
mockResponse = new MockHttpServletResponse();
|
||||||
|
|
||||||
|
// 2. 初始化单个安保力量(物)实体
|
||||||
|
testEquipment = new DklSecurityEquipment();
|
||||||
|
testEquipment.setId(1L);
|
||||||
|
testEquipment.setDelFlag("0");
|
||||||
|
testEquipment.setCreateTime(new Date());
|
||||||
|
testEquipment.setCreateBy("admin");
|
||||||
|
testEquipment.setDeptId(100L);
|
||||||
|
testEquipment.setUpdateTime(new Date());
|
||||||
|
testEquipment.setUpdateBy("admin");
|
||||||
|
|
||||||
|
// 3. 初始化实体列表
|
||||||
|
testEquipmentList = new ArrayList<>();
|
||||||
|
testEquipmentList.add(testEquipment);
|
||||||
|
|
||||||
|
// 4. 模拟Security上下文(解决getUsername()/getDeptId()等权限方法依赖)
|
||||||
|
Authentication authentication = mock(Authentication.class);
|
||||||
|
SecurityContextHolder.getContext().setAuthentication(authentication);
|
||||||
|
doReturn("admin").when(authentication).getName();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试:查询安保力量(物)列表(list接口)
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void testList() throws KmsSdkException {
|
||||||
|
// 步骤1:模拟Service层返回数据
|
||||||
|
when(securityEquipmentService.selectDklSecurityEquipmentList(any(DklSecurityEquipment.class)))
|
||||||
|
.thenReturn(testEquipmentList);
|
||||||
|
|
||||||
|
// 步骤2:调用Controller接口执行测试
|
||||||
|
TableDataInfo result = securityEquipmentController.list(testEquipment);
|
||||||
|
|
||||||
|
// 步骤3:断言结果(验证返回数据的有效性)
|
||||||
|
assertNotNull(result, "返回的TableDataInfo不能为null");
|
||||||
|
assertEquals(1, result.getRows().size(), "返回的列表数据条数应为1");
|
||||||
|
assertEquals(testEquipment.getId(), ((DklSecurityEquipment) result.getRows().get(0)).getId(), "返回的实体ID应与测试数据一致");
|
||||||
|
|
||||||
|
// 步骤4:验证Service方法被正确调用(确保流程无遗漏)
|
||||||
|
verify(securityEquipmentService, times(1)).selectDklSecurityEquipmentList(any(DklSecurityEquipment.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试:查询安保力量(物)消息(listMessage接口)
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void testListMessage() throws KmsSdkException {
|
||||||
|
// 步骤1:模拟Service层返回消息
|
||||||
|
String mockSuccessMsg = "查询成功,共获取1条安保力量数据";
|
||||||
|
when(securityEquipmentService.selectDklSecurityEquipmentListMessage(any(DklSecurityEquipment.class)))
|
||||||
|
.thenReturn(mockSuccessMsg);
|
||||||
|
|
||||||
|
// 步骤2:调用Controller接口执行测试
|
||||||
|
AjaxResult result = securityEquipmentController.listMessage(testEquipment);
|
||||||
|
|
||||||
|
// 步骤3:断言结果
|
||||||
|
assertNotNull(result, "返回的AjaxResult不能为null");
|
||||||
|
assertTrue(result.isSuccess(), "接口应返回成功状态");
|
||||||
|
assertEquals(mockSuccessMsg, result.getData(), "返回的消息应与模拟数据一致");
|
||||||
|
|
||||||
|
// 步骤4:验证Service方法调用
|
||||||
|
verify(securityEquipmentService, times(1)).selectDklSecurityEquipmentListMessage(any(DklSecurityEquipment.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试:导出安保力量(物)列表(export接口,无返回值,验证流程有效性)
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void testExport() throws KmsSdkException {
|
||||||
|
// 步骤1:模拟Service层返回列表数据
|
||||||
|
when(securityEquipmentService.selectDklSecurityEquipmentList(any(DklSecurityEquipment.class)))
|
||||||
|
.thenReturn(testEquipmentList);
|
||||||
|
|
||||||
|
// 步骤2:调用导出接口(无返回值,验证无异常抛出即可)
|
||||||
|
assertDoesNotThrow(() -> securityEquipmentController.export(mockResponse, testEquipment),
|
||||||
|
"导出接口执行过程中不应抛出异常");
|
||||||
|
|
||||||
|
// 步骤3:验证Service方法被调用,且响应状态正常
|
||||||
|
verify(securityEquipmentService, times(1)).selectDklSecurityEquipmentList(any(DklSecurityEquipment.class));
|
||||||
|
assertEquals(200, mockResponse.getStatus(), "HTTP响应状态码应为200");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试:获取安保力量(物)详细信息(getInfo接口)
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void testGetInfo() throws KmsSdkException {
|
||||||
|
// 步骤1:模拟Service层返回单个实体数据
|
||||||
|
when(securityEquipmentService.selectDklSecurityEquipmentById(anyLong())).thenReturn(testEquipment);
|
||||||
|
|
||||||
|
// 步骤2:调用Controller接口执行测试
|
||||||
|
AjaxResult result = securityEquipmentController.getInfo(1L);
|
||||||
|
|
||||||
|
// 步骤3:断言结果
|
||||||
|
assertNotNull(result, "返回的AjaxResult不能为null");
|
||||||
|
assertTrue(result.isSuccess(), "接口应返回成功状态");
|
||||||
|
assertEquals(testEquipment.getId(), ((DklSecurityEquipment) result.getData()).getId(), "返回的实体ID应与测试数据一致");
|
||||||
|
|
||||||
|
// 步骤4:验证Service方法调用
|
||||||
|
verify(securityEquipmentService, times(1)).selectDklSecurityEquipmentById(1L);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试:新增安保力量(物)(add接口)
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void testAdd() throws KmsSdkException {
|
||||||
|
// 步骤1:模拟Service层新增成功(返回1表示操作成功)
|
||||||
|
when(securityEquipmentService.insertDklSecurityEquipment(any(DklSecurityEquipment.class))).thenReturn(1);
|
||||||
|
|
||||||
|
// 步骤2:调用Controller接口执行测试
|
||||||
|
AjaxResult result = securityEquipmentController.add(testEquipment);
|
||||||
|
|
||||||
|
// 步骤3:断言结果
|
||||||
|
assertNotNull(result, "返回的AjaxResult不能为null");
|
||||||
|
assertTrue(result.isSuccess(), "新增接口应返回成功状态");
|
||||||
|
assertEquals(1, result.getData(), "新增操作应返回1表示成功");
|
||||||
|
|
||||||
|
// 步骤4:验证实体系统字段被正确设置(核心业务逻辑校验)
|
||||||
|
verify(securityEquipmentService).insertDklSecurityEquipment(argThat(equipment ->
|
||||||
|
"0".equals(equipment.getDelFlag()) &&
|
||||||
|
"admin".equals(equipment.getCreateBy()) &&
|
||||||
|
100L.equals(equipment.getDeptId()) &&
|
||||||
|
equipment.getCreateTime() != null &&
|
||||||
|
equipment.getUpdateTime() != null
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试:修改安保力量(物)(edit接口)
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void testEdit() throws KmsSdkException {
|
||||||
|
// 步骤1:模拟Service层修改成功(返回1表示操作成功)
|
||||||
|
when(securityEquipmentService.updateDklSecurityEquipment(any(DklSecurityEquipment.class))).thenReturn(1);
|
||||||
|
|
||||||
|
// 步骤2:调用Controller接口执行测试
|
||||||
|
AjaxResult result = securityEquipmentController.edit(testEquipment);
|
||||||
|
|
||||||
|
// 步骤3:断言结果
|
||||||
|
assertNotNull(result, "返回的AjaxResult不能为null");
|
||||||
|
assertTrue(result.isSuccess(), "修改接口应返回成功状态");
|
||||||
|
assertEquals(1, result.getData(), "修改操作应返回1表示成功");
|
||||||
|
|
||||||
|
// 步骤4:验证实体更新字段被正确设置
|
||||||
|
verify(securityEquipmentService).updateDklSecurityEquipment(argThat(equipment ->
|
||||||
|
"admin".equals(equipment.getUpdateBy()) &&
|
||||||
|
equipment.getUpdateTime() != null
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试:删除安保力量(物)(remove接口,批量删除)
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void testRemove() {
|
||||||
|
// 步骤1:准备批量删除ID数组
|
||||||
|
Long[] ids = {1L, 2L};
|
||||||
|
|
||||||
|
// 步骤2:模拟Service层删除成功(返回2表示删除2条数据)
|
||||||
|
when(securityEquipmentService.deleteDklSecurityEquipmentByIds(any(Long[].class))).thenReturn(2);
|
||||||
|
|
||||||
|
// 步骤3:调用Controller接口执行测试
|
||||||
|
AjaxResult result = securityEquipmentController.remove(ids);
|
||||||
|
|
||||||
|
// 步骤4:断言结果
|
||||||
|
assertNotNull(result, "返回的AjaxResult不能为null");
|
||||||
|
assertTrue(result.isSuccess(), "删除接口应返回成功状态");
|
||||||
|
assertEquals(2, result.getData(), "删除操作应返回2表示成功删除2条数据");
|
||||||
|
|
||||||
|
// 步骤5:验证Service方法调用
|
||||||
|
verify(securityEquipmentService, times(1)).deleteDklSecurityEquipmentByIds(any(Long[].class));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试:导入安保力量(物)数据(importData接口)
|
||||||
|
* @throws Exception 导入过程中的异常
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void testImportData() throws Exception {
|
||||||
|
// 步骤1:模拟Excel上传文件(空流,仅验证流程有效性)
|
||||||
|
MockMultipartFile mockFile = new MockMultipartFile(
|
||||||
|
"file",
|
||||||
|
"security_equipment.xlsx",
|
||||||
|
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||||
|
new ByteArrayInputStream(new byte[0])
|
||||||
|
);
|
||||||
|
|
||||||
|
// 步骤2:模拟Service层返回导入成功消息
|
||||||
|
String mockImportMsg = "导入成功,共导入0条有效数据";
|
||||||
|
when(securityEquipmentService.importData(anyList(), anyBoolean(), anyString()))
|
||||||
|
.thenReturn(mockImportMsg);
|
||||||
|
|
||||||
|
// 步骤3:调用Controller接口执行测试(updateSupport为true)
|
||||||
|
AjaxResult result = securityEquipmentController.importData(mockFile, true);
|
||||||
|
|
||||||
|
// 步骤4:断言结果
|
||||||
|
assertNotNull(result, "返回的AjaxResult不能为null");
|
||||||
|
assertTrue(result.isSuccess(), "导入接口应返回成功状态");
|
||||||
|
assertEquals(mockImportMsg, result.getData(), "导入消息应与模拟数据一致");
|
||||||
|
|
||||||
|
// 步骤5:验证Service方法调用
|
||||||
|
verify(securityEquipmentService, times(1)).importData(anyList(), eq(true), eq("admin"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试:下载安保力量(物)导入模板(importTemplate接口)
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void testImportTemplate() {
|
||||||
|
// 步骤1:调用导入模板接口(无返回值,验证无异常抛出)
|
||||||
|
assertDoesNotThrow(() -> securityEquipmentController.importTemplate(mockResponse),
|
||||||
|
"下载导入模板接口不应抛出异常");
|
||||||
|
|
||||||
|
// 步骤2:验证响应状态正常(模板下载流程有效)
|
||||||
|
assertEquals(200, mockResponse.getStatus(), "HTTP响应状态码应为200");
|
||||||
|
assertTrue(mockResponse.getContentType().contains("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"),
|
||||||
|
"响应内容应为Excel格式");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,102 @@
|
||||||
|
package com.dkl.large.domain;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 安保力量(物)对象 dkl_security_equipment
|
||||||
|
*
|
||||||
|
* @author Falling
|
||||||
|
* @date 2025-06-16
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class DklSecurityEquipment extends BaseEntity
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** ID */
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/** 设备名称 */
|
||||||
|
@Excel(name = "设备名称")
|
||||||
|
private String deviceName;
|
||||||
|
|
||||||
|
/** 型号 */
|
||||||
|
@Excel(name = "型号")
|
||||||
|
private String model;
|
||||||
|
|
||||||
|
/** 安装位置 */
|
||||||
|
@Excel(name = "安装位置")
|
||||||
|
private String installationPosition;
|
||||||
|
|
||||||
|
/** 购置日期 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@Excel(name = "购置日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||||
|
private Date buyTime;
|
||||||
|
|
||||||
|
/** 价格 */
|
||||||
|
@Excel(name = "价格")
|
||||||
|
private BigDecimal price;
|
||||||
|
|
||||||
|
/** 维护周期 */
|
||||||
|
@Excel(name = "维护周期")
|
||||||
|
private String maintenanceCycle;
|
||||||
|
|
||||||
|
/** 上次维护日期 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@Excel(name = "上次维护日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||||
|
private Date lastMaintenanceTime;
|
||||||
|
|
||||||
|
/** 维护情况 */
|
||||||
|
@Excel(name = "维护情况")
|
||||||
|
private String maintenanceSituation;
|
||||||
|
|
||||||
|
/** 维护责任人 */
|
||||||
|
@Excel(name = "维护责任人")
|
||||||
|
private String maintenancePersonnel;
|
||||||
|
|
||||||
|
/** 设备状态 */
|
||||||
|
@Excel(name = "设备状态")
|
||||||
|
private String state;
|
||||||
|
|
||||||
|
/** 监控点信息ID */
|
||||||
|
// @Excel(name = "监控点信息ID")
|
||||||
|
private Long monitoringPointsId;
|
||||||
|
|
||||||
|
/** '删除标志(0代表存在 2代表删除) */
|
||||||
|
private String delFlag;
|
||||||
|
|
||||||
|
/** 部门id */
|
||||||
|
// @Excel(name = "部门id")
|
||||||
|
private Long deptId;
|
||||||
|
|
||||||
|
/** 名称 */
|
||||||
|
@Excel(name = "监控点名称")
|
||||||
|
private String pointName;
|
||||||
|
/** 地址 */
|
||||||
|
private String pointAddress;
|
||||||
|
/** 经度 */
|
||||||
|
private String lng;
|
||||||
|
/** 纬度 */
|
||||||
|
private String lat;
|
||||||
|
|
||||||
|
private String sigenCode;
|
||||||
|
/** 开始时间 */
|
||||||
|
@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;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
package com.dkl.large.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.dkl.large.domain.DklSecurityEquipment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 安保力量(物)Mapper接口
|
||||||
|
*
|
||||||
|
* @author Falling
|
||||||
|
* @date 2025-06-16
|
||||||
|
*/
|
||||||
|
public interface DklSecurityEquipmentMapper
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询安保力量(物)
|
||||||
|
*
|
||||||
|
* @param id 安保力量(物)主键
|
||||||
|
* @return 安保力量(物)
|
||||||
|
*/
|
||||||
|
public DklSecurityEquipment selectDklSecurityEquipmentById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询安保力量(物)列表
|
||||||
|
*
|
||||||
|
* @param dklSecurityEquipment 安保力量(物)
|
||||||
|
* @return 安保力量(物)集合
|
||||||
|
*/
|
||||||
|
public List<DklSecurityEquipment> selectDklSecurityEquipmentList(DklSecurityEquipment dklSecurityEquipment);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增安保力量(物)
|
||||||
|
*
|
||||||
|
* @param dklSecurityEquipment 安保力量(物)
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertDklSecurityEquipment(DklSecurityEquipment dklSecurityEquipment);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改安保力量(物)
|
||||||
|
*
|
||||||
|
* @param dklSecurityEquipment 安保力量(物)
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateDklSecurityEquipment(DklSecurityEquipment dklSecurityEquipment);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除安保力量(物)
|
||||||
|
*
|
||||||
|
* @param id 安保力量(物)主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteDklSecurityEquipmentById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除安保力量(物)
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的数据主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteDklSecurityEquipmentByIds(Long[] ids);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,74 @@
|
||||||
|
package com.dkl.large.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.koal.kms.sdk.ed.KmsSdkException;
|
||||||
|
import com.dkl.common.core.domain.entity.SysUser;
|
||||||
|
import com.dkl.large.domain.DklSecurityEquipment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 安保力量(物)Service接口
|
||||||
|
*
|
||||||
|
* @author Falling
|
||||||
|
* @date 2025-06-16
|
||||||
|
*/
|
||||||
|
public interface IDklSecurityEquipmentService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询安保力量(物)
|
||||||
|
*
|
||||||
|
* @param id 安保力量(物)主键
|
||||||
|
* @return 安保力量(物)
|
||||||
|
*/
|
||||||
|
public DklSecurityEquipment selectDklSecurityEquipmentById(Long id) throws KmsSdkException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询安保力量(物)列表
|
||||||
|
*
|
||||||
|
* @param dklSecurityEquipment 安保力量(物)
|
||||||
|
* @return 安保力量(物)集合
|
||||||
|
*/
|
||||||
|
public List<DklSecurityEquipment> selectDklSecurityEquipmentList(DklSecurityEquipment dklSecurityEquipment) throws KmsSdkException;
|
||||||
|
public String selectDklSecurityEquipmentListMessage(DklSecurityEquipment dklSecurityEquipment) throws KmsSdkException;
|
||||||
|
/**
|
||||||
|
* 新增安保力量(物)
|
||||||
|
*
|
||||||
|
* @param dklSecurityEquipment 安保力量(物)
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertDklSecurityEquipment(DklSecurityEquipment dklSecurityEquipment) throws KmsSdkException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改安保力量(物)
|
||||||
|
*
|
||||||
|
* @param dklSecurityEquipment 安保力量(物)
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateDklSecurityEquipment(DklSecurityEquipment dklSecurityEquipment) throws KmsSdkException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除安保力量(物)
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的安保力量(物)主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteDklSecurityEquipmentByIds(Long[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除安保力量(物)信息
|
||||||
|
*
|
||||||
|
* @param id 安保力量(物)主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteDklSecurityEquipmentById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入数据
|
||||||
|
*
|
||||||
|
* @param list 数据列表
|
||||||
|
* @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
|
||||||
|
* @param operName 操作用户
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public String importData(List<DklSecurityEquipment> list, Boolean isUpdateSupport, String operName) throws KmsSdkException;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,333 @@
|
||||||
|
package com.dkl.large.service.impl;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
import com.koal.kms.sdk.ed.KmsSdkException;
|
||||||
|
import com.dkl.common.core.domain.entity.SysDictData;
|
||||||
|
import com.dkl.common.core.domain.entity.SysUser;
|
||||||
|
import com.dkl.common.exception.ServiceException;
|
||||||
|
import com.dkl.common.utils.DateUtils;
|
||||||
|
import com.dkl.common.utils.SecurityUtils;
|
||||||
|
import com.dkl.common.utils.StringUtils;
|
||||||
|
import com.dkl.common.utils.bean.BeanValidators;
|
||||||
|
import com.dkl.large.domain.DklActivity;
|
||||||
|
import com.dkl.large.domain.DklMonitoringPoints;
|
||||||
|
import com.dkl.large.mapper.DklMonitoringPointsMapper;
|
||||||
|
import com.dkl.large.service.IDklMonitoringPointsService;
|
||||||
|
import com.dkl.large.utli.EnciphermentUtil;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import com.dkl.large.mapper.DklSecurityEquipmentMapper;
|
||||||
|
import com.dkl.large.domain.DklSecurityEquipment;
|
||||||
|
import com.dkl.large.service.IDklSecurityEquipmentService;
|
||||||
|
|
||||||
|
import static com.dkl.common.utils.SecurityUtils.getDeptId;
|
||||||
|
import static com.dkl.common.utils.SecurityUtils.getUsername;
|
||||||
|
import static org.springframework.util.SerializationUtils.serialize;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 安保力量(物)Service业务层处理
|
||||||
|
*
|
||||||
|
* @author Falling
|
||||||
|
* @date 2025-06-16
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class DklSecurityEquipmentServiceImpl implements IDklSecurityEquipmentService
|
||||||
|
{
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(DklSecurityEquipmentServiceImpl.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DklSecurityEquipmentMapper dklSecurityEquipmentMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DklMonitoringPointsMapper dklMonitoringPointsMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询安保力量(物)
|
||||||
|
*
|
||||||
|
* @param id 安保力量(物)主键
|
||||||
|
* @return 安保力量(物)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public DklSecurityEquipment selectDklSecurityEquipmentById(Long id) throws KmsSdkException {
|
||||||
|
DklSecurityEquipment dklSecurityEquipmentInfo = dklSecurityEquipmentMapper.selectDklSecurityEquipmentById(id);
|
||||||
|
if (StringUtils.isNotEmpty(dklSecurityEquipmentInfo.getMaintenancePersonnel())){
|
||||||
|
String maintenancePersonnel = dklSecurityEquipmentInfo.getMaintenancePersonnel();
|
||||||
|
dklSecurityEquipmentInfo.setMaintenancePersonnel(EnciphermentUtil.kmsDencrypt(maintenancePersonnel));
|
||||||
|
}
|
||||||
|
return dklSecurityEquipmentInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询安保力量(物)列表
|
||||||
|
*
|
||||||
|
* @param dklSecurityEquipment 安保力量(物)
|
||||||
|
* @return 安保力量(物)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<DklSecurityEquipment> selectDklSecurityEquipmentList(DklSecurityEquipment dklSecurityEquipment) throws KmsSdkException {
|
||||||
|
List<DklSecurityEquipment> dklSecurityEquipmentList = dklSecurityEquipmentMapper.selectDklSecurityEquipmentList(dklSecurityEquipment);
|
||||||
|
for (DklSecurityEquipment dklSecurityEquipmentInfo : dklSecurityEquipmentList) {
|
||||||
|
if (StringUtils.isNotEmpty(dklSecurityEquipmentInfo.getMaintenancePersonnel())) {
|
||||||
|
String maintenancePersonnel = dklSecurityEquipmentInfo.getMaintenancePersonnel();
|
||||||
|
dklSecurityEquipmentInfo.setMaintenancePersonnel(EnciphermentUtil.kmsDencrypt(maintenancePersonnel));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dklSecurityEquipmentList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String selectDklSecurityEquipmentListMessage(DklSecurityEquipment dklSecurityEquipment) throws KmsSdkException {
|
||||||
|
StringBuilder successMsg = new StringBuilder();
|
||||||
|
List<DklSecurityEquipment> dklSecurityEquipmentList = dklSecurityEquipmentMapper.selectDklSecurityEquipmentList(dklSecurityEquipment);
|
||||||
|
for (DklSecurityEquipment dklSecurityEquipmentInfo : dklSecurityEquipmentList) {
|
||||||
|
if (StringUtils.isNotEmpty(dklSecurityEquipmentInfo.getMaintenancePersonnel())) {
|
||||||
|
String maintenancePersonnel = dklSecurityEquipmentInfo.getMaintenancePersonnel();
|
||||||
|
dklSecurityEquipmentInfo.setMaintenancePersonnel(EnciphermentUtil.kmsDencrypt(maintenancePersonnel));
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(dklSecurityEquipmentInfo.getSigenCode()) && ("0").equals(dklSecurityEquipmentInfo.getDelFlag())) {
|
||||||
|
byte[] bytes = serialize(dklSecurityEquipmentInfo.getMaintenancePersonnel());
|
||||||
|
String isor = EnciphermentUtil.kmsSign(bytes);
|
||||||
|
if (!isor.equals(dklSecurityEquipmentInfo.getSigenCode())) {
|
||||||
|
successMsg.append("活名称为" + dklSecurityEquipmentInfo.getMaintenancePersonnel() + "的数据被篡改");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return successMsg.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增安保力量(物)
|
||||||
|
*
|
||||||
|
* @param dklSecurityEquipment 安保力量(物)
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int insertDklSecurityEquipment(DklSecurityEquipment dklSecurityEquipment) throws KmsSdkException {
|
||||||
|
dklSecurityEquipment.setCreateTime(DateUtils.getNowDate());
|
||||||
|
if (StringUtils.isNotEmpty(dklSecurityEquipment.getMaintenancePersonnel())) {
|
||||||
|
String maintenancePersonnel = dklSecurityEquipment.getMaintenancePersonnel();
|
||||||
|
dklSecurityEquipment.setMaintenancePersonnel(EnciphermentUtil.kmsEncrypt(maintenancePersonnel));
|
||||||
|
// (序列化)
|
||||||
|
byte[] bytes = serialize(maintenancePersonnel);
|
||||||
|
String sigenCode = EnciphermentUtil.kmsSign(bytes);
|
||||||
|
dklSecurityEquipment.setSigenCode(sigenCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
return dklSecurityEquipmentMapper.insertDklSecurityEquipment(dklSecurityEquipment);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改安保力量(物)
|
||||||
|
*
|
||||||
|
* @param dklSecurityEquipment 安保力量(物)
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int updateDklSecurityEquipment(DklSecurityEquipment dklSecurityEquipment) throws KmsSdkException {
|
||||||
|
dklSecurityEquipment.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
if (StringUtils.isNotEmpty(dklSecurityEquipment.getMaintenancePersonnel())) {
|
||||||
|
String maintenancePersonnel = dklSecurityEquipment.getMaintenancePersonnel();
|
||||||
|
dklSecurityEquipment.setMaintenancePersonnel(EnciphermentUtil.kmsEncrypt(maintenancePersonnel));
|
||||||
|
// (序列化)
|
||||||
|
byte[] bytes = serialize(maintenancePersonnel);
|
||||||
|
String sigenCode = EnciphermentUtil.kmsSign(bytes);
|
||||||
|
dklSecurityEquipment.setSigenCode(sigenCode);
|
||||||
|
}
|
||||||
|
return dklSecurityEquipmentMapper.updateDklSecurityEquipment(dklSecurityEquipment);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除安保力量(物)
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的安保力量(物)主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteDklSecurityEquipmentByIds(Long[] ids)
|
||||||
|
{
|
||||||
|
return dklSecurityEquipmentMapper.deleteDklSecurityEquipmentByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除安保力量(物)信息
|
||||||
|
*
|
||||||
|
* @param id 安保力量(物)主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteDklSecurityEquipmentById(Long id)
|
||||||
|
{
|
||||||
|
return dklSecurityEquipmentMapper.deleteDklSecurityEquipmentById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入数据
|
||||||
|
*
|
||||||
|
* @param list 数据列表
|
||||||
|
* @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
|
||||||
|
* @param operName 操作用户
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String importData(List<DklSecurityEquipment> list, Boolean isUpdateSupport, String operName) throws KmsSdkException {
|
||||||
|
DklMonitoringPoints points = new DklMonitoringPoints();
|
||||||
|
List<DklMonitoringPoints> pointsList = dklMonitoringPointsMapper.selectDklMonitoringPointsList(points);
|
||||||
|
|
||||||
|
if (StringUtils.isNull(list) || list.size() == 0) {
|
||||||
|
throw new ServiceException("导入数据不能为空!");
|
||||||
|
}
|
||||||
|
int successNum = 0;
|
||||||
|
int failureNum = 0;
|
||||||
|
StringBuilder successMsg = new StringBuilder();
|
||||||
|
StringBuilder failureMsg = new StringBuilder();
|
||||||
|
for (int i = 0; i < list.size(); i++) {
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//设备名称
|
||||||
|
if (StringUtils.isEmpty(list.get(i).getDeviceName())){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据设备名称为空");
|
||||||
|
}else{
|
||||||
|
if (list.get(i).getDeviceName().length()>=100){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据设备名称长度过长");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//型号
|
||||||
|
if (StringUtils.isEmpty(list.get(i).getModel())){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据型号为空");
|
||||||
|
}else{
|
||||||
|
if (list.get(i).getModel().length()>=30){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" +(i+1)+ "条数据型号长度过长");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//安装位置
|
||||||
|
if (StringUtils.isEmpty(list.get(i).getInstallationPosition())){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1)+ "条数据安装位置为空");
|
||||||
|
}else{
|
||||||
|
if (list.get(i).getInstallationPosition().length()>=255){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据安装位置长度过长");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//购置日期
|
||||||
|
if (StringUtils.isEmpty(list.get(i).getBuyTime().toString())){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据购置时间为空,时间应该为yyyy-MM-dd");
|
||||||
|
} else if (list.get(i).getBuyTime() == null || list.get(i).getBuyTime().getTime() == 0) {
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据购置时间无效,时间应该为yyyy-MM-dd");
|
||||||
|
}
|
||||||
|
|
||||||
|
//价格
|
||||||
|
if (StringUtils.isEmpty(list.get(i).getPrice().toString())){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1)+ "条数据价格为空");
|
||||||
|
}else{
|
||||||
|
if (list.get(i).getInstallationPosition().length()>=9){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据价格长度过长");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//维护周期
|
||||||
|
if (StringUtils.isNotEmpty(list.get(i).getMaintenanceCycle()) && list.get(i).getMaintenanceCycle().length()>=30 ){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1)+ "条数据维护周期长度过长");
|
||||||
|
}
|
||||||
|
|
||||||
|
//上次维护日期
|
||||||
|
if (StringUtils.isEmpty(list.get(i).getLastMaintenanceTime().toString())){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据上次维护日期为空,时间应该为yyyy-MM-dd");
|
||||||
|
}else if (list.get(i).getLastMaintenanceTime() == null || list.get(i).getLastMaintenanceTime().getTime() == 0) {
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据上次维护日期无效,时间应该为yyyy-MM-dd");
|
||||||
|
}
|
||||||
|
|
||||||
|
//维护情况
|
||||||
|
if (StringUtils.isNotEmpty(list.get(i).getMaintenanceSituation()) && list.get(i).getMaintenanceSituation().length()>=255 ){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1)+ "条数据维护周期长度过长");
|
||||||
|
}
|
||||||
|
//维护责任人
|
||||||
|
if (StringUtils.isNotEmpty(list.get(i).getMaintenancePersonnel()) && list.get(i).getMaintenancePersonnel().length()>=30 ){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1)+ "条数据维护周期长度过长");
|
||||||
|
}
|
||||||
|
|
||||||
|
//状态
|
||||||
|
if (StringUtils.isEmpty(list.get(i).getState())){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1)+ "条数据设备状态为空");
|
||||||
|
}else{
|
||||||
|
if (list.get(i).getState().length()>=9){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据设备状态长度过长");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//监控点
|
||||||
|
if (StringUtils.isNotEmpty(list.get(i).getPointName())){
|
||||||
|
for (DklMonitoringPoints monitoringPoints: pointsList){
|
||||||
|
if (monitoringPoints.getPointName().equals(list.get(i).getPointName())){
|
||||||
|
list.get(i).setMonitoringPointsId((long) monitoringPoints.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNull(String.valueOf(list.get(i).getMonitoringPointsId()))){
|
||||||
|
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 (DklSecurityEquipment equipment :list){
|
||||||
|
//添加系统信息
|
||||||
|
equipment.setDelFlag("0");
|
||||||
|
equipment.setCreateTime(new Date());
|
||||||
|
equipment.setCreateBy(getUsername());
|
||||||
|
equipment.setDeptId(getDeptId());
|
||||||
|
equipment.setUpdateTime(new Date());
|
||||||
|
equipment.setUpdateBy(getUsername());
|
||||||
|
if (StringUtils.isNotEmpty(equipment.getMaintenancePersonnel())) {
|
||||||
|
String maintenancePersonnel = equipment.getMaintenancePersonnel();
|
||||||
|
equipment.setMaintenancePersonnel(EnciphermentUtil.kmsEncrypt(maintenancePersonnel));
|
||||||
|
// (序列化)
|
||||||
|
byte[] bytes = serialize(maintenancePersonnel);
|
||||||
|
String sigenCode = EnciphermentUtil.kmsSign(bytes);
|
||||||
|
equipment.setSigenCode(sigenCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
dklSecurityEquipmentMapper.insertDklSecurityEquipment(equipment);
|
||||||
|
}
|
||||||
|
successMsg.insert(0, "恭喜您,数据已全部导入成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
return successMsg.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,152 @@
|
||||||
|
<?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.DklSecurityEquipmentMapper">
|
||||||
|
|
||||||
|
<resultMap type="DklSecurityEquipment" id="DklSecurityEquipmentResult">
|
||||||
|
<result property="id" column="id" />
|
||||||
|
<result property="deviceName" column="device_name" />
|
||||||
|
<result property="model" column="model" />
|
||||||
|
<result property="installationPosition" column="installation_position" />
|
||||||
|
<result property="buyTime" column="buy_time" />
|
||||||
|
<result property="price" column="price" />
|
||||||
|
<result property="maintenanceCycle" column="maintenance_cycle" />
|
||||||
|
<result property="lastMaintenanceTime" column="last_maintenance_time" />
|
||||||
|
<result property="maintenanceSituation" column="maintenance_situation" />
|
||||||
|
<result property="maintenancePersonnel" column="maintenance_personnel" />
|
||||||
|
<result property="state" column="state" />
|
||||||
|
<result property="remark" column="remark" />
|
||||||
|
<result property="monitoringPointsId" column="monitoring_points_id" />
|
||||||
|
<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="sigenCode" column="sigen_code" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectDklSecurityEquipmentVo">
|
||||||
|
select dsp.id, dsp.device_name, dsp.model, dsp.installation_position, dsp.buy_time, dsp.price, dsp.maintenance_cycle, dsp.last_maintenance_time, dsp.maintenance_situation, dsp.maintenance_personnel, dsp.state, dsp.remark,
|
||||||
|
dsp.monitoring_points_id, dsp.create_by, dsp.create_time, dsp.update_by, dsp.update_time, dsp.del_flag, dsp.dept_id,dsp.sigen_code,
|
||||||
|
dmp.lng, dmp.lat, dmp.point_name AS pointName, dmp.point_address
|
||||||
|
from dkl_security_equipment dsp
|
||||||
|
Left join sys_dept d on dsp.dept_id = d.dept_id
|
||||||
|
Left Join dkl_monitoring_points dmp on dmp.id = dsp.monitoring_points_id
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectDklSecurityEquipmentList" parameterType="DklSecurityEquipment" resultMap="DklSecurityEquipmentResult">
|
||||||
|
<include refid="selectDklSecurityEquipmentVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="deviceName != null and deviceName != ''"> and dsp.device_name like concat('%', #{deviceName}, '%')</if>
|
||||||
|
<if test="model != null and model != ''"> and dsp.model = #{model}</if>
|
||||||
|
<if test="installationPosition != null and installationPosition != ''"> and dsp.installation_position = #{installationPosition}</if>
|
||||||
|
<if test="buyTime != null "> and dsp.buy_time = #{buyTime}</if>
|
||||||
|
<if test="price != null "> and dsp.price = #{price}</if>
|
||||||
|
<if test="maintenanceCycle != null and maintenanceCycle != ''"> and dsp.maintenance_cycle = #{maintenanceCycle}</if>
|
||||||
|
<if test="lastMaintenanceTime != null "> and dsp.last_maintenance_time = #{lastMaintenanceTime}</if>
|
||||||
|
<if test="maintenanceSituation != null and maintenanceSituation != ''"> and dsp.maintenance_situation = #{maintenanceSituation}</if>
|
||||||
|
<if test="maintenancePersonnel != null and maintenancePersonnel != ''"> and dsp.maintenance_personnel = #{maintenancePersonnel}</if>
|
||||||
|
<if test="state != null and state != ''"> and dsp.state = #{state}</if>
|
||||||
|
<if test="monitoringPointsId != null "> and dsp.monitoring_points_id = #{monitoringPointsId}</if>
|
||||||
|
<if test="delFlag != null and delFlag != ''"> and dsp.del_flag = #{delFlag}</if>
|
||||||
|
<if test="startTime != null and endTime != null ">
|
||||||
|
AND dsp.create_time BETWEEN #{startTime} and #{endTime}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
<!-- 数据范围过滤 -->
|
||||||
|
${params.dataScope}
|
||||||
|
order by dsp.create_time desc
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectDklSecurityEquipmentById" parameterType="Long" resultMap="DklSecurityEquipmentResult">
|
||||||
|
<include refid="selectDklSecurityEquipmentVo"/>
|
||||||
|
where dsp.id = #{id}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertDklSecurityEquipment" parameterType="DklSecurityEquipment">
|
||||||
|
insert into dkl_security_equipment
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="id != null">id,</if>
|
||||||
|
<if test="deviceName != null">device_name,</if>
|
||||||
|
<if test="model != null">model,</if>
|
||||||
|
<if test="installationPosition != null">installation_position,</if>
|
||||||
|
<if test="buyTime != null">buy_time,</if>
|
||||||
|
<if test="price != null">price,</if>
|
||||||
|
<if test="maintenanceCycle != null">maintenance_cycle,</if>
|
||||||
|
<if test="lastMaintenanceTime != null">last_maintenance_time,</if>
|
||||||
|
<if test="maintenanceSituation != null">maintenance_situation,</if>
|
||||||
|
<if test="maintenancePersonnel != null">maintenance_personnel,</if>
|
||||||
|
<if test="state != null">state,</if>
|
||||||
|
<if test="remark != null">remark,</if>
|
||||||
|
<if test="monitoringPointsId != null">monitoring_points_id,</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="sigenCode != null">sigen_code,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="id != null">#{id},</if>
|
||||||
|
<if test="deviceName != null">#{deviceName},</if>
|
||||||
|
<if test="model != null">#{model},</if>
|
||||||
|
<if test="installationPosition != null">#{installationPosition},</if>
|
||||||
|
<if test="buyTime != null">#{buyTime},</if>
|
||||||
|
<if test="price != null">#{price},</if>
|
||||||
|
<if test="maintenanceCycle != null">#{maintenanceCycle},</if>
|
||||||
|
<if test="lastMaintenanceTime != null">#{lastMaintenanceTime},</if>
|
||||||
|
<if test="maintenanceSituation != null">#{maintenanceSituation},</if>
|
||||||
|
<if test="maintenancePersonnel != null">#{maintenancePersonnel},</if>
|
||||||
|
<if test="state != null">#{state},</if>
|
||||||
|
<if test="remark != null">#{remark},</if>
|
||||||
|
<if test="monitoringPointsId != null">#{monitoringPointsId},</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="sigenCode != null">#{sigenCode},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateDklSecurityEquipment" parameterType="DklSecurityEquipment">
|
||||||
|
update dkl_security_equipment
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="deviceName != null">device_name = #{deviceName},</if>
|
||||||
|
<if test="model != null">model = #{model},</if>
|
||||||
|
<if test="installationPosition != null">installation_position = #{installationPosition},</if>
|
||||||
|
<if test="buyTime != null">buy_time = #{buyTime},</if>
|
||||||
|
<if test="price != null">price = #{price},</if>
|
||||||
|
<if test="maintenanceCycle != null">maintenance_cycle = #{maintenanceCycle},</if>
|
||||||
|
<if test="lastMaintenanceTime != null">last_maintenance_time = #{lastMaintenanceTime},</if>
|
||||||
|
<if test="maintenanceSituation != null">maintenance_situation = #{maintenanceSituation},</if>
|
||||||
|
<if test="maintenancePersonnel != null">maintenance_personnel = #{maintenancePersonnel},</if>
|
||||||
|
<if test="state != null">state = #{state},</if>
|
||||||
|
<if test="remark != null">remark = #{remark},</if>
|
||||||
|
<if test="monitoringPointsId != null">monitoring_points_id = #{monitoringPointsId},</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="sigenCode != null">sigen_code = #{sigenCode},</if>
|
||||||
|
</trim>
|
||||||
|
where id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteDklSecurityEquipmentById" parameterType="Long">
|
||||||
|
delete from dkl_security_equipment where id = #{id}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteDklSecurityEquipmentByIds" parameterType="String">
|
||||||
|
delete from dkl_security_equipment where id in
|
||||||
|
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
</mapper>
|
||||||
Loading…
Reference in New Issue