refactor(sis): 授权记录模块重新调整
Some checks are pending
Gitea Actions Demo / Explore-Gitea-Actions (push) Waiting to run
Some checks are pending
Gitea Actions Demo / Explore-Gitea-Actions (push) Waiting to run
This commit is contained in:
@@ -1,37 +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 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.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.SisAuthRecord;
|
||||
import org.dromara.sis.domain.bo.AuthLibBo;
|
||||
import org.dromara.sis.domain.bo.SingleAuthRecordBo;
|
||||
import org.dromara.sis.domain.bo.SisAuthRecordBo;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.sis.domain.vo.SisAuthRecordVo;
|
||||
import org.dromara.sis.domain.bo.SisAuthRecordBo;
|
||||
import org.dromara.sis.service.ISisAuthRecordService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 授权记录
|
||||
* 前端访问路由地址为:/sis/authRecord
|
||||
*
|
||||
* @author lsm
|
||||
* @since 2025-06-28
|
||||
* @since 2025-07-14
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@@ -79,23 +75,11 @@ public class SisAuthRecordController extends BaseController {
|
||||
@SaCheckPermission("sis:authRecord:add")
|
||||
@Log(title = "授权记录", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/add")
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody SisAuthRecordBo bo) {
|
||||
return toAjax(sisAuthRecordService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增授权记录
|
||||
*/
|
||||
@SaCheckPermission("sis:authRecord:add")
|
||||
@Log(title = "单个人像授权", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/auth/single")
|
||||
public R<Void> singleAuth(@Validated(AddGroup.class) @RequestBody SingleAuthRecordBo bo) {
|
||||
return toAjax(sisAuthRecordService.singleAuth(bo));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改授权记录
|
||||
*/
|
||||
@@ -119,21 +103,4 @@ public class SisAuthRecordController extends BaseController {
|
||||
@PathVariable("ids") Long[] ids) {
|
||||
return toAjax(sisAuthRecordService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除授权记录
|
||||
*
|
||||
* @param bo 授权信息
|
||||
*/
|
||||
@SaCheckPermission("sis:authRecord:authLib")
|
||||
@Log(title = "人员库授权", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/authLib")
|
||||
public R<Void> authLib(@Validated @RequestBody AuthLibBo bo) {
|
||||
return toAjax(sisAuthRecordService.authLib(bo));
|
||||
}
|
||||
|
||||
@GetMapping("/authDevice/{libId}")
|
||||
public R<List<SisAuthRecord>> queryAuthDevice(@PathVariable("libId") String libId) {
|
||||
return R.ok(sisAuthRecordService.queryAuthDevice(libId));
|
||||
}
|
||||
}
|
||||
|
@@ -11,7 +11,7 @@ import java.io.Serial;
|
||||
* 授权记录对象 sis_auth_record
|
||||
*
|
||||
* @author lsm
|
||||
* @since 2025-06-28
|
||||
* @since 2025-07-14
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@@ -33,29 +33,14 @@ public class SisAuthRecord extends TenantEntity {
|
||||
private Long libId;
|
||||
|
||||
/**
|
||||
* 图片id
|
||||
*/
|
||||
private Long imgId;
|
||||
|
||||
/**
|
||||
* 门禁id
|
||||
*/
|
||||
private Long acId;
|
||||
|
||||
/**
|
||||
* 设备id
|
||||
*/
|
||||
private Long eqbId;
|
||||
|
||||
/*
|
||||
门id
|
||||
*/
|
||||
private Long doorId;
|
||||
|
||||
/**
|
||||
* 设备id
|
||||
* 设备id(门禁/电梯)
|
||||
*/
|
||||
private Long deviceId;
|
||||
|
||||
/**
|
||||
* 设备类型:1-门禁 2-电梯
|
||||
*/
|
||||
private Integer deviceType;
|
||||
|
||||
|
||||
}
|
||||
|
@@ -1,21 +1,21 @@
|
||||
package org.dromara.sis.domain.bo;
|
||||
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.sis.domain.SisAuthRecord;
|
||||
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.SisAuthRecord;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 授权记录业务对象 sis_auth_record
|
||||
*
|
||||
* @author lsm
|
||||
* @since 2025-06-28
|
||||
* @since 2025-07-14
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@@ -23,26 +23,26 @@ import java.util.List;
|
||||
public class SisAuthRecordBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 图像库Id
|
||||
* 主键id
|
||||
*/
|
||||
@NotNull(message = "图像库Id不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
@NotNull(message = "主键id不能为空", groups = {EditGroup.class})
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 图像库id
|
||||
*/
|
||||
@NotNull(message = "图像库id不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Long libId;
|
||||
|
||||
/**
|
||||
* 图像id列表
|
||||
* 门禁idList
|
||||
*/
|
||||
@NotNull(message = "图像id列表不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private List<Long> imgIds;
|
||||
@NotEmpty(message = "门禁idList不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Collection<Long> acIdList;
|
||||
|
||||
/**
|
||||
* 门禁id列表
|
||||
* 电梯idList
|
||||
*/
|
||||
@NotNull(message = "门禁id列表能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private List<Long> acIds;
|
||||
|
||||
/**
|
||||
* 是否将图片下发到宇视盒子
|
||||
*/
|
||||
private Boolean issue = false;
|
||||
|
||||
@NotEmpty(message = "电梯idList不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Collection<Long> eleIdList;
|
||||
}
|
||||
|
@@ -3,19 +3,20 @@ package org.dromara.sis.domain.vo;
|
||||
import org.dromara.sis.domain.SisAuthRecord;
|
||||
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 java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 授权记录视图对象 sis_auth_record
|
||||
*
|
||||
* @author lsm
|
||||
* @since 2025-06-28
|
||||
* @since 2025-07-14
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@@ -32,41 +33,23 @@ public class SisAuthRecordVo implements Serializable {
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 图像库Id
|
||||
* 图像库id
|
||||
*/
|
||||
@ExcelProperty(value = "图像库Id")
|
||||
@ExcelProperty(value = "图像库id")
|
||||
private Long libId;
|
||||
|
||||
/**
|
||||
* 人像id
|
||||
*/
|
||||
@ExcelProperty(value = "人像id")
|
||||
private Long imgId;
|
||||
|
||||
/**
|
||||
* 门禁id
|
||||
*/
|
||||
@ExcelProperty(value = "门禁id")
|
||||
private Long acId;
|
||||
|
||||
/**
|
||||
* 设备id
|
||||
*/
|
||||
@ExcelProperty(value = "设备id")
|
||||
private Long eqbId;
|
||||
|
||||
/**
|
||||
* E8权限ID
|
||||
*/
|
||||
private Long remoteAuthId;
|
||||
|
||||
/*
|
||||
门id
|
||||
*/
|
||||
private Long doorId;
|
||||
|
||||
/**
|
||||
* 设备id
|
||||
* 设备id(门禁/电梯)
|
||||
*/
|
||||
@ExcelProperty(value = "设备id", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "门=禁/电梯")
|
||||
private Long deviceId;
|
||||
|
||||
/**
|
||||
* 设备类型:1-门禁 2-电梯
|
||||
*/
|
||||
@ExcelProperty(value = "设备类型:1-门禁 2-电梯")
|
||||
private Integer deviceType;
|
||||
|
||||
|
||||
}
|
||||
|
@@ -1,6 +1,5 @@
|
||||
package org.dromara.sis.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.dromara.sis.domain.SisAuthRecord;
|
||||
import org.dromara.sis.domain.vo.SisAuthRecordVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
@@ -9,9 +8,8 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
* 授权记录Mapper接口
|
||||
*
|
||||
* @author lsm
|
||||
* @date 2025-06-28
|
||||
* @since 2025-07-14
|
||||
*/
|
||||
public interface SisAuthRecordMapper extends BaseMapperPlus<SisAuthRecord, SisAuthRecordVo> {
|
||||
|
||||
SisAuthRecordVo checkAuth(@Param("personId") Integer personId,@Param("accessControlId") Long accessControlId);
|
||||
}
|
||||
|
@@ -1,12 +1,9 @@
|
||||
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.SisAuthRecord;
|
||||
import org.dromara.sis.domain.bo.AuthLibBo;
|
||||
import org.dromara.sis.domain.bo.SingleAuthRecordBo;
|
||||
import org.dromara.sis.domain.bo.SisAuthRecordBo;
|
||||
import org.dromara.sis.domain.vo.SisAuthRecordVo;
|
||||
import org.dromara.sis.domain.bo.SisAuthRecordBo;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -15,7 +12,7 @@ import java.util.List;
|
||||
* 授权记录Service接口
|
||||
*
|
||||
* @author lsm
|
||||
* @date 2025-06-28
|
||||
* @since 2025-07-14
|
||||
*/
|
||||
public interface ISisAuthRecordService {
|
||||
|
||||
@@ -68,32 +65,4 @@ public interface ISisAuthRecordService {
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 通过宇视图片id和门禁id校验此图像是否有通行权限
|
||||
*
|
||||
* @param personId 人像id
|
||||
* @param accessControlId 门禁id
|
||||
* @return 返回授权记录
|
||||
*/
|
||||
SisAuthRecordVo checkAuth(Integer personId, Long accessControlId);
|
||||
|
||||
/**
|
||||
* 单个人像授权
|
||||
*
|
||||
* @param bo 授权信息
|
||||
* @return 是否授权成功
|
||||
*/
|
||||
Boolean singleAuth(SingleAuthRecordBo bo);
|
||||
|
||||
Boolean deleteByLibId(Long libId);
|
||||
|
||||
Boolean authLib(AuthLibBo bo);
|
||||
|
||||
/**
|
||||
* 插叙库id授权的设备
|
||||
* @param libId 人像库id
|
||||
* @return
|
||||
*/
|
||||
List<SisAuthRecord> queryAuthDevice(String libId);
|
||||
}
|
||||
|
@@ -1,66 +1,38 @@
|
||||
package org.dromara.sis.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.img.ImgUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
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 com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.resource.api.RemoteFileService;
|
||||
import org.dromara.sis.domain.SisAuthRecord;
|
||||
import org.dromara.sis.domain.SisDeviceManage;
|
||||
import org.dromara.sis.domain.bo.AuthLibBo;
|
||||
import org.dromara.sis.domain.bo.SingleAuthRecordBo;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.sis.domain.bo.SisAuthRecordBo;
|
||||
import org.dromara.sis.domain.vo.SisAuthRecordVo;
|
||||
import org.dromara.sis.domain.SisAuthRecord;
|
||||
import org.dromara.sis.mapper.SisAuthRecordMapper;
|
||||
import org.dromara.sis.sdk.e8.AccessControlService;
|
||||
import org.dromara.sis.sdk.e8.DoorDeviceService;
|
||||
import org.dromara.sis.sdk.e8.VoucherControlService;
|
||||
import org.dromara.sis.sdk.unview.UnViewAiBoxApi;
|
||||
import org.dromara.sis.service.*;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.sis.service.ISisAuthRecordService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.Base64;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 授权记录Service业务层处理
|
||||
*
|
||||
* @author lsm
|
||||
* @since 2025-06-28
|
||||
* @since 2025-07-14
|
||||
*/
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class SisAuthRecordServiceImpl implements ISisAuthRecordService {
|
||||
|
||||
private final UnViewAiBoxApi unViewAiBoxApi;
|
||||
private final SisAuthRecordMapper baseMapper;
|
||||
private final VoucherControlService e8VouchService;
|
||||
private final DoorDeviceService e8DoorDeviceService;
|
||||
private final ISisPersonLibService sisPersonLibService;
|
||||
private final ISisEEightRefService sisEEightRefService;
|
||||
private final AccessControlService e8AccessControlService;
|
||||
private final ISisPersonLibImgService sisPersonLibImgService;
|
||||
private final ISisLibDeviceRefService sisLibDeviceRefService;
|
||||
private final ISisAccessControlService sisAccessControlService;
|
||||
private final ISisLibDeviceImgRefService sisLibDeviceImgRefService;
|
||||
private final ISisDeviceManageService deviceManageService;
|
||||
|
||||
@DubboReference
|
||||
private final RemoteFileService remoteFileService;
|
||||
|
||||
/**
|
||||
* 查询授权记录
|
||||
@@ -82,7 +54,7 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService {
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<SisAuthRecordVo> queryPageList(SisAuthRecordBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<SisAuthRecord> lqw = Wrappers.lambdaQuery();
|
||||
LambdaQueryWrapper<SisAuthRecord> lqw = buildQueryWrapper(bo);
|
||||
Page<SisAuthRecordVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
@@ -116,184 +88,32 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(SisAuthRecordBo bo) {
|
||||
// List<SisLibDeviceRefVo> refVos = sisLibDeviceRefService.queryByLibIds(Collections.singleton(bo.getLibId()));
|
||||
// Assert.notEmpty(refVos, "图像库与设备关联关系不存在");
|
||||
// List<Long> eqpIds = refVos.stream().map(SisLibDeviceRefVo::getEqpId).toList();
|
||||
//
|
||||
// SisPersonLibVo libVo = sisPersonLibService.queryById(bo.getLibId());
|
||||
// Assert.notNull(libVo, "图像库不存在,id=" + (bo.getLibId()));
|
||||
//
|
||||
// List<SisPersonLibImgVo> imgList = sisPersonLibImgService.queryListByIds(bo.getImgIds());
|
||||
// Assert.notEmpty(imgList, "图片不存在");
|
||||
//
|
||||
// List<SisAccessControlVo> acList = sisAccessControlService.queryListByIds(bo.getAcIds());
|
||||
// Assert.notEmpty(acList, "门禁设备不存在!");
|
||||
//
|
||||
//
|
||||
// try {
|
||||
// log.info("开始对宇视盒子下发照片,图片:{}、设备:{}", bo.getImgIds(), eqpIds);
|
||||
// for (SisPersonLibImgVo imgVo : imgList) {
|
||||
// for (Long eqpId : eqpIds) {
|
||||
// long eqp_lib_id;
|
||||
// Integer eqp_lib_img_id;
|
||||
//
|
||||
// byte[] imageByte = remoteFileService.downloadToByteArray(imgVo.getImgOssId());
|
||||
// Assert.notNull(imageByte, "图片下载失败");
|
||||
//
|
||||
// SisAccessControlDeviceVo vo = sisAccessControlDeviceService.queryById(eqpId);
|
||||
// Assert.notNull(vo, "门禁控制设备不存在,id=" + eqpId);
|
||||
// log.info(libVo .getLibType() == 1 ? "准备写入人像设备,code={}" : "准备写入工服设备,code={}", vo.getEqpNo());
|
||||
//
|
||||
// UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo();
|
||||
// systemInfo.setAccount(vo.getEqpAccount());
|
||||
// systemInfo.setPassword(vo.getEqpPwd());
|
||||
// systemInfo.setIp(vo.getEqpIp());
|
||||
// systemInfo.setPort(vo.getEqpPort());
|
||||
//
|
||||
// // 获取宇视线上库ID
|
||||
// SisLibDeviceRefBo refBo = new SisLibDeviceRefBo();
|
||||
// refBo.setEqpId(eqpId);
|
||||
// refBo.setLibId(libVo.getId());
|
||||
// List<SisLibDeviceRefVo> refVo = sisLibDeviceRefService.queryList(refBo);
|
||||
// Assert.notNull(refVo, "系统库与设备库关联关系不存在!libId:{},eqpId:{}", libVo.getId(), eqpId);
|
||||
// eqp_lib_id = refVo.get(0).getEqpLibId();
|
||||
//
|
||||
// if (libVo.getLibType() == 1) {
|
||||
// // 宇视添加人像
|
||||
// UvModel.AddPersonParams addPersonParams = new UvModel.AddPersonParams();
|
||||
// addPersonParams.setPerson_name(imgVo.getImgName());
|
||||
// addPersonParams.setImage_base64(base64Helper(imageByte));
|
||||
// addPersonParams.setLib_id(Math.toIntExact(eqp_lib_id));
|
||||
// addPersonParams.setSex(imgVo.getSex());
|
||||
// addPersonParams.setEmail(imgVo.getEmail());
|
||||
// addPersonParams.setTel(imgVo.getTel());
|
||||
// addPersonParams.setCertificate_type(imgVo.getCertificateType());
|
||||
// addPersonParams.setCertificate_no(imgVo.getCertificateNo());
|
||||
// addPersonParams.setBirth_date(imgVo.getBirthDate());
|
||||
// // 发起请求获取响应
|
||||
// UvModel.AddPersonResult addResult = unViewAiBoxApi.addPerson(systemInfo, addPersonParams);
|
||||
// eqp_lib_img_id = addResult.getPerson_id();
|
||||
//
|
||||
// } else {
|
||||
// UvModel.WorkClothesInfo addResult = unViewAiBoxApi.addWorkClothes(systemInfo, Math.toIntExact(eqp_lib_id), base64Helper(imageByte));
|
||||
// eqp_lib_img_id = addResult.getWorkclothes_id();
|
||||
// }
|
||||
// Assert.notNull(eqp_lib_img_id, "图片上传宇视盒子失败");
|
||||
// log.info("图片上传宇视盒子完成,eqp_lib_img_id = {}", eqp_lib_img_id);
|
||||
//
|
||||
// SisLibDeviceImgRefBo ref = new SisLibDeviceImgRefBo();
|
||||
// ref.setLibId(libVo.getId());
|
||||
// ref.setImgId(imgVo.getId());
|
||||
// ref.setEqpId(eqpId);
|
||||
// ref.setEqpLibId(eqp_lib_id);
|
||||
// ref.setEqpLibImgId(eqp_lib_img_id.longValue());
|
||||
// Boolean insert = sisLibDeviceImgRefService.insertByBo(ref);
|
||||
// Assert.isTrue(insert, "写入图片关联关系表失败!");
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// log.info("图片开始下发完成!");
|
||||
//
|
||||
// log.info("开始写入E8平台,图片:{}、门禁:{}", bo.getImgIds(), bo.getAcIds());
|
||||
// for (SisPersonLibImgVo imgVo : imgList) {
|
||||
// byte[] imageByte = remoteFileService.downloadToByteArray(imgVo.getImgOssId());
|
||||
// Assert.notNull(imageByte, "图片下载失败");
|
||||
//
|
||||
// log.info("E8平台上传图片,{}", imgVo.getId());
|
||||
// String url = e8VouchService.uploadFace(imageByte);
|
||||
// Assert.notNull(url, "E8平台上传图片失败");
|
||||
// log.info("E8平台上传图片完成!");
|
||||
//
|
||||
// log.info("E8平台发行凭证");
|
||||
// IssueVoucherReq req = new IssueVoucherReq();
|
||||
// // 34:普通用户卡
|
||||
// req.setCardType(34);
|
||||
// // 70:人脸凭证
|
||||
// req.setVoucherType(70);
|
||||
// // TODO 临时默认人员
|
||||
// req.setPersonID(539696740646981L);
|
||||
// req.setTxtData(url);
|
||||
// Long vId = e8VouchService.issueVoucher(req);
|
||||
// Assert.notNull(vId, "E8平台发行凭证失败");
|
||||
// log.info("E8平台发行凭证完成!");
|
||||
//
|
||||
// log.info("E8平台授权凭证");
|
||||
// // 查询E8授权门列表
|
||||
// List<AuthDoorDeviceFindRes> authDoorList = e8DoorDeviceService.getPageAuthDoorDeviceList();
|
||||
// Assert.notEmpty(authDoorList, "E8平台授权门列表为空");
|
||||
//
|
||||
// // E8 授权列表
|
||||
// List<CustomerAuthAddReq.AuthGroupData> authList = new ArrayList<>(acList.size());
|
||||
// // 授权记录
|
||||
// List<SisAuthRecord> recordList = new ArrayList<>(acList.size());
|
||||
// // E8授权门
|
||||
// AuthDoorDeviceFindRes authDoor = null;
|
||||
// for (SisAccessControlVo sisAccessControlVo : acList) {
|
||||
// if (sisAccessControlVo.getControlType() != 1 && sisAccessControlVo.getAccessType() != 2) {
|
||||
//
|
||||
// // 通过门禁ID匹配授权门
|
||||
// authDoor = authDoorList.stream().filter(item -> item.getDeviceId() == Long.parseLong(sisAccessControlVo.getOutCode())).findFirst().orElse(null);
|
||||
//
|
||||
// if (authDoor != null) {
|
||||
// CustomerAuthAddReq.AuthGroupData door = new CustomerAuthAddReq.AuthGroupData();
|
||||
// door.setType(0);
|
||||
// door.setGatewayType(1);
|
||||
// // E8授权传入ID为门ID,非门禁ID
|
||||
// door.setId(authDoor.getId());
|
||||
// authList.add(door);
|
||||
//
|
||||
// SisAuthRecord authRecord = new SisAuthRecord();
|
||||
// authRecord.setDoorId(authDoor.getId());
|
||||
// authRecord.setDeviceId(authDoor.getDeviceId());
|
||||
// authRecord.setLibId(imgVo.getLibId());
|
||||
// authRecord.setImgId(imgVo.getId());
|
||||
// authRecord.setAcId(sisAccessControlVo.getId());
|
||||
// recordList.add(authRecord);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// CustomerAuthAddReq authReq = new CustomerAuthAddReq();
|
||||
// authReq.setAuthType(0);
|
||||
// authReq.setScheduleId(1L);
|
||||
// authReq.setPersonIds(Collections.singletonList(539696740646981L));
|
||||
// authReq.setStartTime("2025-06-25 11: 23: 39");
|
||||
// authReq.setEndTime("2025-07-25 11: 23: 39");
|
||||
// authReq.setAuthData(authList);
|
||||
// Boolean auth = e8AccessControlService.addCustomerAuth(authReq);
|
||||
// Assert.isTrue(auth, "E8平台授权失败");
|
||||
// log.info("E8平台授权完成!");
|
||||
// boolean insert = baseMapper.insertBatch(recordList);
|
||||
// Assert.isTrue(insert, "写入E8关联关系表失败!");
|
||||
// }
|
||||
// log.info("写入E8平台完成!");
|
||||
//
|
||||
// } catch (Exception e) {
|
||||
// throw new RuntimeException(e.getMessage());
|
||||
// }
|
||||
//
|
||||
// return true;
|
||||
return true;
|
||||
}
|
||||
boolean flag = false;
|
||||
log.info("开始写入门禁授权记录,acIds:{}", bo.getAcIdList());
|
||||
for (Long acId : bo.getAcIdList()) {
|
||||
SisAuthRecord add = MapstructUtils.convert(bo, SisAuthRecord.class);
|
||||
Assert.notNull(add, "数据处理失败");
|
||||
|
||||
public String base64Helper(byte[] imageByte) throws IOException {
|
||||
// 1. 将字节数组解码为BufferedImage对象
|
||||
ByteArrayInputStream bis = new ByteArrayInputStream(imageByte);
|
||||
add.setDeviceType(1);
|
||||
add.setDeviceId(acId);
|
||||
flag = baseMapper.insert(add) > 0;
|
||||
Assert.isTrue(flag, "写入门禁授权记录失败!");
|
||||
}
|
||||
log.info("写入门禁授权记录完成");
|
||||
|
||||
// 2. 将图片重新编码为JPG格式的字节数组
|
||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||
log.info("开始写入电梯授权记录,eleIds:{}", bo.getEleIdList());
|
||||
for (Long ele : bo.getEleIdList()) {
|
||||
SisAuthRecord add = MapstructUtils.convert(bo, SisAuthRecord.class);
|
||||
Assert.notNull(add, "数据处理失败");
|
||||
|
||||
ImgUtil.convert(bis, "jpg", bos);
|
||||
add.setDeviceType(2);
|
||||
add.setDeviceId(ele);
|
||||
flag = baseMapper.insert(add) > 0;
|
||||
Assert.isTrue(flag, "写入电梯授权记录失败!");
|
||||
}
|
||||
log.info("写入电梯授权记录完成");
|
||||
|
||||
byte[] jpgBytes = bos.toByteArray();
|
||||
|
||||
// 3. 将JPG字节数组转为Base64字符串
|
||||
return Base64.getEncoder().encodeToString(jpgBytes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean singleAuth(SingleAuthRecordBo bo) {
|
||||
return null;
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -330,46 +150,4 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService {
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SisAuthRecordVo checkAuth(Integer personId, Long accessControlId) {
|
||||
return baseMapper.checkAuth(personId, accessControlId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean deleteByLibId(Long libId) {
|
||||
LambdaQueryWrapper<SisAuthRecord> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(SisAuthRecord::getLibId, libId);
|
||||
return baseMapper.delete(lqw) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean authLib(AuthLibBo bo) {
|
||||
if (CollUtil.isEmpty(bo.getDeviceIds())) {
|
||||
return false;
|
||||
}
|
||||
// 每次授权先删除上一次授权信息
|
||||
deleteByLibId(bo.getLibId());
|
||||
// 过滤点不是设备的节点数据
|
||||
List<SisDeviceManage> ls = deviceManageService.queryByIds(bo.getDeviceIds());
|
||||
if (CollUtil.isEmpty(ls)) {
|
||||
return false;
|
||||
}
|
||||
// 批量写入授权数据
|
||||
List<SisAuthRecord> list = ls.stream().map(item -> {
|
||||
SisAuthRecord authRecord = new SisAuthRecord();
|
||||
authRecord.setDeviceId(item.getId());
|
||||
authRecord.setLibId(bo.getLibId());
|
||||
return authRecord;
|
||||
}).toList();
|
||||
return baseMapper.insertBatch(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SisAuthRecord> queryAuthDevice(String libId) {
|
||||
LambdaQueryWrapper<SisAuthRecord> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(SisAuthRecord::getLibId, libId);
|
||||
return baseMapper.selectList(lqw);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user