增加人像库

This commit is contained in:
lxj 2025-06-25 18:04:09 +08:00
parent 6de67e1956
commit 3fb9a76876
26 changed files with 262 additions and 549 deletions

View File

@ -0,0 +1,13 @@
package org.dromara.common.core.constant;
public interface CodePrefixConstants {
/**
* 人像库编码前缀
*/
String PERSONLIB_CODE_PREFIX = "100";
/**
* 门禁设备编码前缀
*/
String SIS_DEVICE_CODE_PREFIX = "101";
}

View File

@ -1,34 +1,33 @@
package org.dromara.sis.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.sis.domain.bo.SisAccessControlBo;
import org.dromara.sis.domain.vo.SisAccessControlVo;
import org.dromara.sis.service.ISisAccessControlService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.sis.domain.vo.SisAccessControlVo;
import org.dromara.sis.domain.bo.SisAccessControlBo;
import org.dromara.sis.service.ISisAccessControlService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 门禁管理
* 前端访问路由地址为:/iot/accessControl
* 门禁设备
* 前端访问路由地址为:/sis/accessControl
*
* @author lxj
* @date 2025-06-17
* @date 2025-06-25
*/
@Validated
@RequiredArgsConstructor
@ -36,72 +35,72 @@ import java.util.List;
@RequestMapping("/accessControl")
public class SisAccessControlController extends BaseController {
private final ISisAccessControlService tbAccessControlService;
private final ISisAccessControlService sisAccessControlService;
/**
* 查询门禁管理列表
* 查询门禁设备列表
*/
@SaCheckPermission("property:accessControl:list")
@SaCheckPermission("sis:accessControl:list")
@GetMapping("/list")
public TableDataInfo<SisAccessControlVo> list(SisAccessControlBo bo, PageQuery pageQuery) {
return tbAccessControlService.queryPageList(bo, pageQuery);
return sisAccessControlService.queryPageList(bo, pageQuery);
}
/**
* 导出门禁管理列表
* 导出门禁设备列表
*/
@SaCheckPermission("property:accessControl:export")
@Log(title = "门禁管理", businessType = BusinessType.EXPORT)
@SaCheckPermission("sis:accessControl:export")
@Log(title = "门禁设备", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(SisAccessControlBo bo, HttpServletResponse response) {
List<SisAccessControlVo> list = tbAccessControlService.queryList(bo);
ExcelUtil.exportExcel(list, "门禁管理", SisAccessControlVo.class, response);
List<SisAccessControlVo> list = sisAccessControlService.queryList(bo);
ExcelUtil.exportExcel(list, "门禁设备", SisAccessControlVo.class, response);
}
/**
* 获取门禁管理详细信息
* 获取门禁设备详细信息
*
* @param id 主键
*/
@SaCheckPermission("property:accessControl:query")
@SaCheckPermission("sis:accessControl:query")
@GetMapping("/{id}")
public R<SisAccessControlVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
return R.ok(tbAccessControlService.queryById(id));
@PathVariable("id") Long id) {
return R.ok(sisAccessControlService.queryById(id));
}
/**
* 新增门禁管理
* 新增门禁设备
*/
@SaCheckPermission("property:accessControl:add")
@Log(title = "门禁管理", businessType = BusinessType.INSERT)
@SaCheckPermission("sis:accessControl:add")
@Log(title = "门禁设备", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SisAccessControlBo bo) {
return toAjax(tbAccessControlService.insertByBo(bo));
return toAjax(sisAccessControlService.insertByBo(bo));
}
/**
* 修改门禁管理
* 修改门禁设备
*/
@SaCheckPermission("property:accessControl:edit")
@Log(title = "门禁管理", businessType = BusinessType.UPDATE)
@SaCheckPermission("sis:accessControl:edit")
@Log(title = "门禁设备", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SisAccessControlBo bo) {
return toAjax(tbAccessControlService.updateByBo(bo));
return toAjax(sisAccessControlService.updateByBo(bo));
}
/**
* 删除门禁管理
* 删除门禁设备
*
* @param ids 主键串
*/
@SaCheckPermission("property:accessControl:remove")
@Log(title = "门禁管理", businessType = BusinessType.DELETE)
@SaCheckPermission("sis:accessControl:remove")
@Log(title = "门禁设备", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable("ids") Long[] ids) {
return toAjax(tbAccessControlService.deleteWithValidByIds(List.of(ids), true));
return toAjax(sisAccessControlService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -1,29 +1,28 @@
package org.dromara.sis.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.io.Serial;
/**
* 门禁管理对象 tb_access_control
* 门禁设备对象 sis_access_control
*
* @author mocheng
* @since 2025-06-17
* @author lxj
* @date 2025-06-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sis_access_control")
public class SisAccessControl extends BaseEntity {
public class SisAccessControl extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*
*/
@TableId(value = "id")
private Long id;
@ -54,7 +53,7 @@ public class SisAccessControl extends BaseEntity {
private String accessIp;
/**
* 设备端口
*
*/
private Long accessPort;
@ -64,7 +63,7 @@ public class SisAccessControl extends BaseEntity {
private Long accessType;
/**
* 工程编号
*
*/
private String factoryCode;
@ -89,19 +88,9 @@ public class SisAccessControl extends BaseEntity {
private String orgCode;
/**
* 数据状态1有效0无效
* 搜索值
*/
private Long dataState;
/**
* 创建人
*/
private Long createEmpId;
/**
* 修改时间
*/
private Date modifyTime;
private String searchValue;
}

View File

@ -72,20 +72,4 @@ public class SisAccessControlDevice extends TenantEntity {
*/
private String eqpPwd;
/**
* 创建人id
*/
private Long createById;
/**
* 更新人id
*/
private Long updateById;
/**
* 搜索值
*/
private String searchValue;
}

View File

@ -40,7 +40,7 @@ rtsp
/**
* 传输协议(AIBOX 需要
体机不需要) 1: tcp 2:
体机不需要) 1: tcp 2:
udp
*/
private Long transportType;
@ -91,20 +91,5 @@ rtsp 时,该字段必填)
*/
private Long videoId;
/**
* 创建人id
*/
private Long createById;
/**
* 更新人id
*/
private Long updateById;
/**
* 搜索值
*/
private String searchValue;
}

View File

@ -52,20 +52,4 @@ public class SisLibDeviceImgRef extends TenantEntity {
*/
private Long eqpLibImgId;
/**
* 创建人id
*/
private Long createById;
/**
* 更新人id
*/
private Long updateById;
/**
* 搜索值
*/
private String searchValue;
}

View File

@ -47,20 +47,5 @@ public class SisLibDeviceRef extends TenantEntity {
*/
private Long eqpLibState;
/**
* 创建人id
*/
private Long createById;
/**
* 更新人id
*/
private Long updateById;
/**
* 搜索值
*/
private String searchValue;
}

View File

@ -52,20 +52,5 @@ public class SisPersonLib extends TenantEntity {
*/
private Long busiType;
/**
* 创建人id
*/
private Long createById;
/**
* 更新人id
*/
private Long updateById;
/**
* 搜索值
*/
private String searchValue;
}

View File

@ -1,9 +1,10 @@
package org.dromara.sis.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial;
@ -80,20 +81,5 @@ public class SisPersonLibImg extends TenantEntity {
*/
private String birthDate;
/**
* 创建人id
*/
private Long createById;
/**
* 更新人id
*/
private Long updateById;
/**
* 搜索值
*/
private String searchValue;
}

View File

@ -1,20 +1,19 @@
package org.dromara.sis.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.sis.domain.SisAccessControl;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.sis.domain.SisAccessControl;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 门禁管理业务对象 tb_access_control
* 门禁设备业务对象 sis_access_control
*
* @author lxj
* @date 2025-06-17
* @date 2025-06-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ -22,60 +21,63 @@ import org.dromara.sis.domain.SisAccessControl;
public class SisAccessControlBo extends BaseEntity {
/**
* id
*
*/
@NotNull(message = "不能为空", groups = { EditGroup.class })
private Long id;
/**
* 门禁设备编码
*/
@NotBlank(message = "门禁设备编码不能为空", groups = {AddGroup.class, EditGroup.class})
@NotBlank(message = "门禁设备编码不能为空", groups = { AddGroup.class, EditGroup.class })
private String accessCode;
/**
* 门禁名称
*/
@NotBlank(message = "门禁名称不能为空", groups = {AddGroup.class, EditGroup.class})
@NotBlank(message = "门禁名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String accessName;
/**
* 园区编码
*/
@NotBlank(message = "园区编码不能为空", groups = {AddGroup.class, EditGroup.class})
@NotBlank(message = "园区编码不能为空", groups = { AddGroup.class, EditGroup.class })
private String communityCode;
/**
* 建筑编码
*/
@NotBlank(message = "建筑编码不能为空", groups = {AddGroup.class, EditGroup.class})
@NotBlank(message = "建筑编码不能为空", groups = { AddGroup.class, EditGroup.class })
private String buildingCode;
/**
* 门禁设备ip
*/
@NotBlank(message = "门禁设备ip不能为空", groups = { AddGroup.class, EditGroup.class })
private String accessIp;
/**
* 设备端口
*
*/
@NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
private Long accessPort;
/**
* 门禁设备类型
*/
@NotNull(message = "门禁设备类型不能为空", groups = {AddGroup.class, EditGroup.class})
private Long accssType;
@NotNull(message = "门禁设备类型不能为空", groups = { AddGroup.class, EditGroup.class })
private Long accessType;
/**
* 工程编号
*
*/
@NotBlank(message = "工程编号不能为空", groups = {AddGroup.class, EditGroup.class})
@NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
private String factoryCode;
/**
* 控制卡类型1-系统2-E8
*/
@NotNull(message = "控制卡类型1-系统2-E8不能为空", groups = {AddGroup.class, EditGroup.class})
@NotNull(message = "控制卡类型1-系统2-E8不能为空", groups = { AddGroup.class, EditGroup.class })
private Long controlType;
/**
@ -91,14 +93,19 @@ public class SisAccessControlBo extends BaseEntity {
/**
* 组织编码
*/
@NotBlank(message = "组织编码不能为空", groups = {AddGroup.class, EditGroup.class})
@NotBlank(message = "组织编码不能为空", groups = { AddGroup.class, EditGroup.class })
private String orgCode;
/**
* 数据状态1有效0无效
*/
@NotNull(message = "数据状态1有效0无效不能为空", groups = {AddGroup.class, EditGroup.class})
@NotNull(message = "数据状态1有效0无效不能为空", groups = { AddGroup.class, EditGroup.class })
private Long dataState;
/**
* 搜索值
*/
private String searchValue;
}

View File

@ -1,13 +1,14 @@
package org.dromara.sis.domain.bo;
import org.dromara.sis.domain.SisAccessControlDevice;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.sis.domain.SisAccessControlDevice;
/**
* 门禁设备业务对象 sis_access_control_device
@ -23,19 +24,13 @@ public class SisAccessControlDeviceBo extends BaseEntity {
/**
* 主键id
*/
@NotNull(message = "主键id不能为空", groups = { EditGroup.class })
@NotNull(message = "主键id不能为空", groups = {EditGroup.class})
private Long id;
/**
* 设备编码
*/
@NotBlank(message = "设备编码不能为空", groups = { AddGroup.class, EditGroup.class })
private String eqpNo;
/**
* 设备名称
*/
@NotBlank(message = "设备名称不能为空", groups = { AddGroup.class, EditGroup.class })
@NotBlank(message = "设备名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String eqpName;
/**
@ -56,41 +51,25 @@ public class SisAccessControlDeviceBo extends BaseEntity {
/**
* 设备ip
*/
@NotBlank(message = "设备ip不能为空", groups = { AddGroup.class, EditGroup.class })
@NotBlank(message = "设备ip不能为空", groups = {AddGroup.class, EditGroup.class})
private String eqpIp;
/**
* 设备端口
*/
@NotNull(message = "设备端口不能为空", groups = { AddGroup.class, EditGroup.class })
@NotNull(message = "设备端口不能为空", groups = {AddGroup.class, EditGroup.class})
private Long eqpPort;
/**
* 设备账号
*/
@NotBlank(message = "设备账号不能为空", groups = { AddGroup.class, EditGroup.class })
@NotBlank(message = "设备账号不能为空", groups = {AddGroup.class, EditGroup.class})
private String eqpAccount;
/**
* 设备密码
*/
@NotBlank(message = "设备密码不能为空", groups = { AddGroup.class, EditGroup.class })
@NotBlank(message = "设备密码不能为空", groups = {AddGroup.class, EditGroup.class})
private String eqpPwd;
/**
* 创建人id
*/
private Long createById;
/**
* 更新人id
*/
private Long updateById;
/**
* 搜索值
*/
private String searchValue;
}

View File

@ -1,13 +1,16 @@
package org.dromara.sis.domain.bo;
import org.dromara.sis.domain.SisPersonLib;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.sis.domain.SisPersonLib;
/**
* 人像库业务对象 tb_person_lib
@ -23,19 +26,15 @@ public class SisPersonLibBo extends BaseEntity {
/**
* 主键id
*/
@NotNull(message = "主键id不能为空", groups = { EditGroup.class })
@NotNull(message = "主键id不能为空", groups = {EditGroup.class})
private Long id;
/**
* 人员库编码
*/
@NotBlank(message = "人员库编码不能为空", groups = { AddGroup.class, EditGroup.class })
private String libCode;
/**
* 人员库名称
*/
@NotBlank(message = "人员库名称不能为空", groups = { AddGroup.class, EditGroup.class })
@NotBlank(message = "人员库名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String libName;
/**
@ -48,25 +47,17 @@ public class SisPersonLibBo extends BaseEntity {
*/
private Long libType;
/**
* 库类型名称
*/
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "libType", other = "sis_lib_type")
private String libTypeName;
/**
* 库的业务类型 1: 门禁库2: 黑名单库
*/
private Long busiType;
/**
* 创建人id
*/
private Long createById;
/**
* 更新人id
*/
private Long updateById;
/**
* 搜索值
*/
private String searchValue;
private Long busiType = 1L;
}

View File

@ -1,16 +1,15 @@
package org.dromara.sis.domain.vo;
import org.dromara.sis.domain.SisAccessControlDevice;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.sis.domain.SisAccessControlDevice;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
@ -52,6 +51,9 @@ public class SisAccessControlDeviceVo implements Serializable {
@ExcelProperty(value = "厂商编码")
private String factoryNo;
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "factoryNo", other = "sis_access_control_device_type")
private String factoryName;
/**
* 设备类型
*/

View File

@ -1,20 +1,24 @@
package org.dromara.sis.domain.vo;
import org.dromara.sis.domain.SisAccessControl;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.sis.domain.SisAccessControl;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 门禁管理视图对象 tb_access_control
* 门禁设备视图对象 sis_access_control
*
* @author lxj
* @date 2025-06-17
* @date 2025-06-25
*/
@Data
@ExcelIgnoreUnannotated
@ -25,9 +29,9 @@ public class SisAccessControlVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*
*/
@ExcelProperty(value = "id")
@ExcelProperty(value = "")
private Long id;
/**
@ -61,21 +65,21 @@ public class SisAccessControlVo implements Serializable {
private String accessIp;
/**
* 设备端口
*
*/
@ExcelProperty(value = "设备端口")
@ExcelProperty(value = "")
private Long accessPort;
/**
* 门禁设备类型
*/
@ExcelProperty(value = "门禁设备类型")
private Long accssType;
private Long accessType;
/**
* 工程编号
*
*/
@ExcelProperty(value = "工程编号")
@ExcelProperty(value = "")
private String factoryCode;
/**
@ -108,5 +112,11 @@ public class SisAccessControlVo implements Serializable {
@ExcelProperty(value = "数据状态1有效0无效")
private Long dataState;
/**
* 搜索值
*/
@ExcelProperty(value = "搜索值")
private String searchValue;
}

View File

@ -1,17 +1,15 @@
package org.dromara.sis.domain.vo;
import org.dromara.sis.domain.SisDevicePoint;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.sis.domain.SisDevicePoint;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
@ -42,20 +40,17 @@ public class SisDevicePointVo implements Serializable {
/**
* 视频协议 1onvif 2
rtsp
* rtsp
*/
@ExcelProperty(value = "视频协议 1onvif 2
rtsp")
@ExcelProperty(value = "视频协议")
private Long video;
/**
* 传输协议(AIBOX 需要
体机不需要) 1: tcp 2:
udp
* 体机不需要) 1: tcp 2:
* udp
*/
@ExcelProperty(value = "传输协议(AIBOX 需要,一
体机不需要) 1: tcp 2:
udp")
@ExcelProperty(value = "传输协议")
private Long transportType;
/**
@ -66,11 +61,10 @@ udp")
/**
* rtsp 地址当视频协议为
rtsp 该字段必填
* rtsp 该字段必填
*/
@ExcelProperty(value = "rtsp 地址", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "当=视频协议为
rtsp,=该字段必填")
@ExcelDictFormat(readConverterExp = "视频协议")
private String rtspAddr;
/**
@ -99,38 +93,21 @@ rtsp,时=,该字段必填")
/**
* onvif 设备码流添加方
1主码流 2自定
义码流
* 1主码流 2自定
* 义码流
*/
@ExcelProperty(value = "onvif 设备码流添加方
1主码流 2自定
义码流")
@ExcelProperty(value = "码流")
private Long videoType;
/**
* 码流 id当选择自定义码
流时该字段必填值为
获取设备码流信息接口返
回的码流 id
* 流时该字段必填值为
* 获取设备码流信息接口返
* 回的码流 id
*/
@ExcelProperty(value = "码流 id当选择自定义码
流时该字段必填值为
获取设备码流信息接口返
回的码流 id")
@ExcelProperty(value = "码流id")
private Long videoId;
/**
* 创建人id
*/
@ExcelProperty(value = "创建人id")
private Long createById;
/**
* 更新人id
*/
@ExcelProperty(value = "更新人id")
private Long updateById;
/**
* 搜索值
*/

View File

@ -1,17 +1,15 @@
package org.dromara.sis.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.sis.domain.SisAccessControl;
import org.dromara.sis.domain.vo.SisAccessControlVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 门禁管理Mapper接口
* 门禁设备Mapper接口
*
* @author mocheng
* @date 2025-06-17
* @author lxj
* @date 2025-06-25
*/
@Mapper
public interface SisAccessControlMapper extends BaseMapperPlus<SisAccessControl, SisAccessControlVo> {
}

View File

@ -1,8 +1,8 @@
package org.dromara.sis.mapper;
import org.dromara.sis.domain.SisDevicePoint;
import org.dromara.sis.domain.vo.SisDevicePointVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.sis.domain.vo.SisDevicePointVo;
/**
* 宇视设备点位(通道)Mapper接口

View File

@ -1,64 +1,65 @@
package org.dromara.sis.service;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.sis.domain.bo.SisAccessControlBo;
import org.dromara.sis.domain.SisAccessControl;
import org.dromara.sis.domain.vo.SisAccessControlVo;
import org.dromara.sis.domain.bo.SisAccessControlBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 门禁管理Service接口
* 门禁设备Service接口
*
* @author mocheng
* @date 2025-06-17
* @author lxj
* @date 2025-06-25
*/
public interface ISisAccessControlService {
/**
* 查询门禁管理
* 查询门禁设备
*
* @param id 主键
* @return 门禁管理
* @return 门禁设备
*/
SisAccessControlVo queryById(Long id);
/**
* 分页查询门禁管理列表
* 分页查询门禁设备列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 门禁管理分页列表
* @return 门禁设备分页列表
*/
TableDataInfo<SisAccessControlVo> queryPageList(SisAccessControlBo bo, PageQuery pageQuery);
/**
* 查询符合条件的门禁管理列表
* 查询符合条件的门禁设备列表
*
* @param bo 查询条件
* @return 门禁管理列表
* @return 门禁设备列表
*/
List<SisAccessControlVo> queryList(SisAccessControlBo bo);
/**
* 新增门禁管理
* 新增门禁设备
*
* @param bo 门禁管理
* @param bo 门禁设备
* @return 是否新增成功
*/
Boolean insertByBo(SisAccessControlBo bo);
/**
* 修改门禁管理
* 修改门禁设备
*
* @param bo 门禁管理
* @param bo 门禁设备
* @return 是否修改成功
*/
Boolean updateByBo(SisAccessControlBo bo);
/**
* 校验并批量删除门禁管理信息
* 校验并批量删除门禁设备信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验

View File

@ -1,24 +1,28 @@
package org.dromara.sis.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.constant.CodePrefixConstants;
import org.dromara.common.core.service.DictService;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.sis.domain.SisAccessControlDevice;
import org.dromara.sis.domain.bo.SisAccessControlDeviceBo;
import org.dromara.sis.domain.vo.SisAccessControlDeviceVo;
import org.dromara.sis.domain.SisAccessControlDevice;
import org.dromara.sis.mapper.SisAccessControlDeviceMapper;
import org.dromara.sis.service.ISisAccessControlDeviceService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 门禁设备Service业务层处理
@ -27,11 +31,12 @@ import java.util.Collection;
* @date 2025-06-25
*/
@Slf4j
@RequiredArgsConstructor
@Service
public class SisAccessControlDeviceServiceImpl implements ISisAccessControlDeviceService {
private final SisAccessControlDeviceMapper baseMapper;
@Resource
private SisAccessControlDeviceMapper baseMapper;
@Resource
private DictService dictService;
/**
* 查询门禁设备
@ -40,7 +45,7 @@ public class SisAccessControlDeviceServiceImpl implements ISisAccessControlDevic
* @return 门禁设备
*/
@Override
public SisAccessControlDeviceVo queryById(Long id){
public SisAccessControlDeviceVo queryById(Long id) {
return baseMapper.selectVoById(id);
}
@ -74,7 +79,6 @@ public class SisAccessControlDeviceServiceImpl implements ISisAccessControlDevic
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SisAccessControlDevice> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(SisAccessControlDevice::getId);
lqw.eq(StringUtils.isNotBlank(bo.getEqpNo()), SisAccessControlDevice::getEqpNo, bo.getEqpNo());
lqw.like(StringUtils.isNotBlank(bo.getEqpName()), SisAccessControlDevice::getEqpName, bo.getEqpName());
lqw.eq(StringUtils.isNotBlank(bo.getFactoryNo()), SisAccessControlDevice::getFactoryNo, bo.getFactoryNo());
lqw.eq(bo.getEqpType() != null, SisAccessControlDevice::getEqpType, bo.getEqpType());
@ -83,8 +87,6 @@ public class SisAccessControlDeviceServiceImpl implements ISisAccessControlDevic
lqw.eq(bo.getEqpPort() != null, SisAccessControlDevice::getEqpPort, bo.getEqpPort());
lqw.eq(StringUtils.isNotBlank(bo.getEqpAccount()), SisAccessControlDevice::getEqpAccount, bo.getEqpAccount());
lqw.eq(StringUtils.isNotBlank(bo.getEqpPwd()), SisAccessControlDevice::getEqpPwd, bo.getEqpPwd());
lqw.eq(bo.getCreateById() != null, SisAccessControlDevice::getCreateById, bo.getCreateById());
lqw.eq(bo.getUpdateById() != null, SisAccessControlDevice::getUpdateById, bo.getUpdateById());
lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), SisAccessControlDevice::getSearchValue, bo.getSearchValue());
return lqw;
}
@ -98,7 +100,8 @@ public class SisAccessControlDeviceServiceImpl implements ISisAccessControlDevic
@Override
public Boolean insertByBo(SisAccessControlDeviceBo bo) {
SisAccessControlDevice add = MapstructUtils.convert(bo, SisAccessControlDevice.class);
validEntityBeforeSave(add);
// 生成设备比吗
add.setEqpNo(CodePrefixConstants.SIS_DEVICE_CODE_PREFIX + IdUtil.getSnowflakeNextIdStr());
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
@ -122,7 +125,7 @@ public class SisAccessControlDeviceServiceImpl implements ISisAccessControlDevic
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SisAccessControlDevice entity){
private void validEntityBeforeSave(SisAccessControlDevice entity) {
//TODO 做一些数据校验,如唯一约束
}
@ -135,7 +138,7 @@ public class SisAccessControlDeviceServiceImpl implements ISisAccessControlDevic
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;

View File

@ -9,24 +9,22 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.sis.sdk.e8.DoorDeviceService;
import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceAddReq;
import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceAddRes;
import org.springframework.stereotype.Service;
import org.dromara.sis.domain.bo.SisAccessControlBo;
import org.dromara.sis.domain.vo.SisAccessControlVo;
import org.dromara.sis.domain.SisAccessControl;
import org.dromara.sis.mapper.SisAccessControlMapper;
import org.dromara.sis.service.ISisAccessControlService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 门禁管理Service业务层处理
* 门禁设备Service业务层处理
*
* @author mocheng
* @since 2025-06-17
* @author lxj
* @date 2025-06-25
*/
@Slf4j
@RequiredArgsConstructor
@ -34,25 +32,24 @@ import java.util.Collection;
public class SisAccessControlServiceImpl implements ISisAccessControlService {
private final SisAccessControlMapper baseMapper;
private final DoorDeviceService doorDeviceService;
/**
* 查询门禁管理
* 查询门禁设备
*
* @param id 主键
* @return 门禁管理
* @return 门禁设备
*/
@Override
public SisAccessControlVo queryById(Long id) {
public SisAccessControlVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询门禁管理列表
* 分页查询门禁设备列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 门禁管理分页列表
* @return 门禁设备分页列表
*/
@Override
public TableDataInfo<SisAccessControlVo> queryPageList(SisAccessControlBo bo, PageQuery pageQuery) {
@ -62,10 +59,10 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService {
}
/**
* 查询符合条件的门禁管理列表
* 查询符合条件的门禁设备列表
*
* @param bo 查询条件
* @return 门禁管理列表
* @return 门禁设备列表
*/
@Override
public List<SisAccessControlVo> queryList(SisAccessControlBo bo) {
@ -83,41 +80,25 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService {
lqw.eq(StringUtils.isNotBlank(bo.getBuildingCode()), SisAccessControl::getBuildingCode, bo.getBuildingCode());
lqw.eq(StringUtils.isNotBlank(bo.getAccessIp()), SisAccessControl::getAccessIp, bo.getAccessIp());
lqw.eq(bo.getAccessPort() != null, SisAccessControl::getAccessPort, bo.getAccessPort());
lqw.eq(bo.getAccssType() != null, SisAccessControl::getAccessType, bo.getAccssType());
lqw.eq(bo.getAccessType() != null, SisAccessControl::getAccessType, bo.getAccessType());
lqw.eq(StringUtils.isNotBlank(bo.getFactoryCode()), SisAccessControl::getFactoryCode, bo.getFactoryCode());
lqw.eq(bo.getControlType() != null, SisAccessControl::getControlType, bo.getControlType());
lqw.eq(StringUtils.isNotBlank(bo.getControlCode()), SisAccessControl::getControlCode, bo.getControlCode());
lqw.eq(StringUtils.isNotBlank(bo.getOutCode()), SisAccessControl::getOutCode, bo.getOutCode());
lqw.eq(StringUtils.isNotBlank(bo.getOrgCode()), SisAccessControl::getOrgCode, bo.getOrgCode());
lqw.eq(bo.getDataState() != null, SisAccessControl::getDataState, bo.getDataState());
lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), SisAccessControl::getSearchValue, bo.getSearchValue());
return lqw;
}
/**
* 新增门禁管理
* 新增门禁设备
*
* @param bo 门禁管理
* @param bo 门禁设备
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(SisAccessControlBo bo) {
SisAccessControl add = MapstructUtils.convert(bo, SisAccessControl.class);
// 添加E8门禁设备
if (add.getControlType() == 2L){
DoorDeviceAddReq e8DoorReq = new DoorDeviceAddReq();
e8DoorReq.setIp(add.getAccessIp());
e8DoorReq.setType(add.getAccessType());
e8DoorReq.setPort(add.getAccessPort());
e8DoorReq.setName(add.getAccessName());
DoorDeviceAddRes e8DoorRes = doorDeviceService.addDoorDevice(e8DoorReq);
if (e8DoorRes != null) {
add.setOutCode(e8DoorRes.getId().toString());
} else {
return false;
}
}
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
@ -127,9 +108,9 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService {
}
/**
* 修改门禁管理
* 修改门禁设备
*
* @param bo 门禁管理
* @param bo 门禁设备
* @return 是否修改成功
*/
@Override
@ -142,12 +123,12 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService {
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SisAccessControl entity) {
private void validEntityBeforeSave(SisAccessControl entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除门禁管理信息
* 校验并批量删除门禁设备信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
@ -155,7 +136,7 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService {
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if (isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;

View File

@ -1,145 +0,0 @@
package org.dromara.sis.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.dromara.sis.domain.bo.SisDevicePointBo;
import org.dromara.sis.domain.vo.SisDevicePointVo;
import org.dromara.sis.domain.SisDevicePoint;
import org.dromara.sis.mapper.SisDevicePointMapper;
import org.dromara.sis.service.ISisDevicePointService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 宇视设备点位(通道)Service业务层处理
*
* @author mocheng
* @date 2025-06-25
*/
@Slf4j
@RequiredArgsConstructor
@Service
public class SisDevicePointServiceImpl implements ISisDevicePointService {
private final SisDevicePointMapper baseMapper;
/**
* 查询宇视设备点位(通道)
*
* @param id 主键
* @return 宇视设备点位(通道)
*/
@Override
public SisDevicePointVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询宇视设备点位(通道)列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 宇视设备点位(通道)分页列表
*/
@Override
public TableDataInfo<SisDevicePointVo> queryPageList(SisDevicePointBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<SisDevicePoint> lqw = buildQueryWrapper(bo);
Page<SisDevicePointVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的宇视设备点位(通道)列表
*
* @param bo 查询条件
* @return 宇视设备点位(通道)列表
*/
@Override
public List<SisDevicePointVo> queryList(SisDevicePointBo bo) {
LambdaQueryWrapper<SisDevicePoint> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<SisDevicePoint> buildQueryWrapper(SisDevicePointBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SisDevicePoint> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(SisDevicePoint::getId);
lqw.eq(StringUtils.isNotBlank(bo.getEqpCode()), SisDevicePoint::getEqpCode, bo.getEqpCode());
lqw.eq(bo.getVideo() != null, SisDevicePoint::getVideo, bo.getVideo());
lqw.eq(bo.getTransportType() != null, SisDevicePoint::getTransportType, bo.getTransportType());
lqw.like(StringUtils.isNotBlank(bo.getChannelName()), SisDevicePoint::getChannelName, bo.getChannelName());
lqw.eq(StringUtils.isNotBlank(bo.getRtspAddr()), SisDevicePoint::getRtspAddr, bo.getRtspAddr());
lqw.eq(StringUtils.isNotBlank(bo.getIp()), SisDevicePoint::getIp, bo.getIp());
lqw.eq(bo.getPort() != null, SisDevicePoint::getPort, bo.getPort());
lqw.like(StringUtils.isNotBlank(bo.getUsername()), SisDevicePoint::getUsername, bo.getUsername());
lqw.eq(StringUtils.isNotBlank(bo.getPwd()), SisDevicePoint::getPwd, bo.getPwd());
lqw.eq(bo.getVideoType() != null, SisDevicePoint::getVideoType, bo.getVideoType());
lqw.eq(bo.getVideoId() != null, SisDevicePoint::getVideoId, bo.getVideoId());
lqw.eq(bo.getCreateById() != null, SisDevicePoint::getCreateById, bo.getCreateById());
lqw.eq(bo.getUpdateById() != null, SisDevicePoint::getUpdateById, bo.getUpdateById());
lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), SisDevicePoint::getSearchValue, bo.getSearchValue());
return lqw;
}
/**
* 新增宇视设备点位(通道)
*
* @param bo 宇视设备点位(通道)
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(SisDevicePointBo bo) {
SisDevicePoint add = MapstructUtils.convert(bo, SisDevicePoint.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改宇视设备点位(通道)
*
* @param bo 宇视设备点位(通道)
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(SisDevicePointBo bo) {
SisDevicePoint update = MapstructUtils.convert(bo, SisDevicePoint.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SisDevicePoint entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除宇视设备点位(通道)信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -79,8 +79,6 @@ public class SisLibDeviceImgRefServiceImpl implements ISisLibDeviceImgRefService
lqw.eq(StringUtils.isNotBlank(bo.getEqpCode()), SisLibDeviceImgRef::getEqpCode, bo.getEqpCode());
lqw.eq(bo.getEqpLibId() != null, SisLibDeviceImgRef::getEqpLibId, bo.getEqpLibId());
lqw.eq(bo.getEqpLibImgId() != null, SisLibDeviceImgRef::getEqpLibImgId, bo.getEqpLibImgId());
lqw.eq(bo.getCreateById() != null, SisLibDeviceImgRef::getCreateById, bo.getCreateById());
lqw.eq(bo.getUpdateById() != null, SisLibDeviceImgRef::getUpdateById, bo.getUpdateById());
lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), SisLibDeviceImgRef::getSearchValue, bo.getSearchValue());
return lqw;
}

View File

@ -78,8 +78,6 @@ public class SisLibDeviceRefServiceImpl implements ISisLibDeviceRefService {
lqw.eq(StringUtils.isNotBlank(bo.getEqpCode()), SisLibDeviceRef::getEqpCode, bo.getEqpCode());
lqw.eq(bo.getEqpLibCode() != null, SisLibDeviceRef::getEqpLibCode, bo.getEqpLibCode());
lqw.eq(bo.getEqpLibState() != null, SisLibDeviceRef::getEqpLibState, bo.getEqpLibState());
lqw.eq(bo.getCreateById() != null, SisLibDeviceRef::getCreateById, bo.getCreateById());
lqw.eq(bo.getUpdateById() != null, SisLibDeviceRef::getUpdateById, bo.getUpdateById());
lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), SisLibDeviceRef::getSearchValue, bo.getSearchValue());
return lqw;
}

View File

@ -84,8 +84,6 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService {
lqw.eq(bo.getCertificateType() != null, SisPersonLibImg::getCertificateType, bo.getCertificateType());
lqw.eq(StringUtils.isNotBlank(bo.getCertificateNo()), SisPersonLibImg::getCertificateNo, bo.getCertificateNo());
lqw.eq(StringUtils.isNotBlank(bo.getBirthDate()), SisPersonLibImg::getBirthDate, bo.getBirthDate());
lqw.eq(bo.getCreateById() != null, SisPersonLibImg::getCreateById, bo.getCreateById());
lqw.eq(bo.getUpdateById() != null, SisPersonLibImg::getUpdateById, bo.getUpdateById());
lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), SisPersonLibImg::getSearchValue, bo.getSearchValue());
return lqw;
}

View File

@ -1,24 +1,26 @@
package org.dromara.sis.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.sis.mapper.SisPersonLibMapper;
import org.springframework.stereotype.Service;
import org.dromara.common.core.constant.CodePrefixConstants;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.sis.domain.SisPersonLib;
import org.dromara.sis.domain.bo.SisPersonLibBo;
import org.dromara.sis.domain.vo.SisPersonLibVo;
import org.dromara.sis.domain.SisPersonLib;
import org.dromara.sis.mapper.SisPersonLibMapper;
import org.dromara.sis.service.ISisPersonLibService;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 人像库Service业务层处理
@ -40,7 +42,7 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService {
* @return 人像库
*/
@Override
public SisPersonLibVo queryById(Long id){
public SisPersonLibVo queryById(Long id) {
return baseMapper.selectVoById(id);
}
@ -79,8 +81,6 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService {
lqw.eq(StringUtils.isNotBlank(bo.getLibDesc()), SisPersonLib::getLibDesc, bo.getLibDesc());
lqw.eq(bo.getLibType() != null, SisPersonLib::getLibType, bo.getLibType());
lqw.eq(bo.getBusiType() != null, SisPersonLib::getBusiType, bo.getBusiType());
lqw.eq(bo.getCreateById() != null, SisPersonLib::getCreateById, bo.getCreateById());
lqw.eq(bo.getUpdateById() != null, SisPersonLib::getUpdateById, bo.getUpdateById());
lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), SisPersonLib::getSearchValue, bo.getSearchValue());
return lqw;
}
@ -94,10 +94,15 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService {
@Override
public Boolean insertByBo(SisPersonLibBo bo) {
SisPersonLib add = MapstructUtils.convert(bo, SisPersonLib.class);
// 生成库编码
add.setLibCode(CodePrefixConstants.PERSONLIB_CODE_PREFIX + IdUtil.getSnowflakeNextIdStr());
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
//TODO 写入设备关联库
}
return flag;
}
@ -118,7 +123,7 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService {
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SisPersonLib entity){
private void validEntityBeforeSave(SisPersonLib entity) {
//TODO 做一些数据校验,如唯一约束
}
@ -131,7 +136,7 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService {
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;

View File

@ -41,7 +41,7 @@ db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://47.109.37.87:3002/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
db.user.0=root
db.user.0=by
db.password.0=123456
### the maximum retry times for push