Merge branch 'master' of http://47.109.37.87:3000/by2025/SmartParks
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:
commit
6ea6c79341
@ -27,7 +27,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
* 前端访问路由地址为:/sis/authRecord
|
||||
*
|
||||
* @author lsm
|
||||
* @date 2025-06-28
|
||||
* @since 2025-06-28
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@ -75,7 +75,7 @@ public class SisAuthRecordController extends BaseController {
|
||||
@SaCheckPermission("sis:authRecord:add")
|
||||
@Log(title = "授权记录", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
@PostMapping("/add")
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody SisAuthRecordBo bo) {
|
||||
return toAjax(sisAuthRecordService.insertByBo(bo));
|
||||
}
|
||||
|
@ -35,9 +35,9 @@ public class VoucherControlController {
|
||||
public R<Boolean> issueVoucher(@RequestBody IssueVoucherReq req) {
|
||||
log.info("E8发行凭证入参:{}", req);
|
||||
|
||||
Boolean flag = voucherControlService.issueVoucher(req);
|
||||
Long flag = voucherControlService.issueVoucher(req);
|
||||
|
||||
if (flag) {
|
||||
if (flag != null) {
|
||||
return R.ok();
|
||||
} else {
|
||||
return R.fail("E8发行凭证,调用失败!");
|
||||
|
@ -28,19 +28,24 @@ public class SisAuthRecord extends TenantEntity {
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 人像id
|
||||
* 图像库id
|
||||
*/
|
||||
private Long libId;
|
||||
|
||||
/**
|
||||
* 图片id
|
||||
*/
|
||||
private Long imgId;
|
||||
|
||||
/**
|
||||
* 门禁id
|
||||
*/
|
||||
private String acId;
|
||||
private Long acId;
|
||||
|
||||
/**
|
||||
* 设备id
|
||||
*/
|
||||
private String eqbId;
|
||||
private Long eqbId;
|
||||
|
||||
|
||||
}
|
||||
|
@ -52,9 +52,4 @@ public class SisLibDeviceImgRef extends TenantEntity {
|
||||
*/
|
||||
private Long eqpLibImgId;
|
||||
|
||||
/**
|
||||
* e8图片地址
|
||||
*/
|
||||
private String eqpLibImgUrl;
|
||||
|
||||
}
|
||||
|
@ -29,22 +29,20 @@ public class SisAuthRecordBo extends BaseEntity {
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 人像id
|
||||
* 图像库Id
|
||||
*/
|
||||
@NotNull(message = "图像id不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Long imgId;
|
||||
@NotNull(message = "图像库Id不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Long libId;
|
||||
|
||||
/**
|
||||
* 图像id列表
|
||||
*/
|
||||
@NotNull(message = "图像id列表不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private List<Long> imgIds;
|
||||
|
||||
/**
|
||||
* 门禁id列表
|
||||
*/
|
||||
@NotNull(message = "门禁id列表能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private List<Long> acIds;
|
||||
|
||||
/**
|
||||
* 设备id列表
|
||||
*/
|
||||
@NotNull(message = "设备id列表不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private List<Long> eqbIds;
|
||||
|
||||
|
||||
}
|
||||
|
@ -56,9 +56,4 @@ public class SisLibDeviceImgRefBo extends BaseEntity {
|
||||
@NotNull(message = "设备库图片id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long eqpLibImgId;
|
||||
|
||||
/**
|
||||
* e8图片地址
|
||||
*/
|
||||
private String eqpLibImgUrl;
|
||||
|
||||
}
|
||||
|
@ -31,6 +31,12 @@ public class SisAuthRecordVo implements Serializable {
|
||||
@ExcelProperty(value = "主键id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 图像库Id
|
||||
*/
|
||||
@ExcelProperty(value = "图像库Id")
|
||||
private Long libId;
|
||||
|
||||
/**
|
||||
* 人像id
|
||||
*/
|
||||
@ -38,16 +44,16 @@ public class SisAuthRecordVo implements Serializable {
|
||||
private Long imgId;
|
||||
|
||||
/**
|
||||
* 门禁id列表
|
||||
* 门禁id
|
||||
*/
|
||||
@ExcelProperty(value = "门禁id列表")
|
||||
private List<Long> acIds;
|
||||
@ExcelProperty(value = "门禁id")
|
||||
private Long acId;
|
||||
|
||||
/**
|
||||
* 设备id列表
|
||||
* 设备id
|
||||
*/
|
||||
@ExcelProperty(value = "设备id列表")
|
||||
private List<Long> eqbIds;
|
||||
@ExcelProperty(value = "设备id")
|
||||
private Long eqbId;
|
||||
|
||||
|
||||
}
|
||||
|
@ -60,10 +60,4 @@ public class SisLibDeviceImgRefVo implements Serializable {
|
||||
@ExcelProperty(value = "设备库图片id")
|
||||
private Long eqpLibImgId;
|
||||
|
||||
/**
|
||||
* e8图片地址
|
||||
*/
|
||||
@ExcelProperty(value = "e8图片地址")
|
||||
private String eqpLibImgUrl;
|
||||
|
||||
}
|
||||
|
@ -3,10 +3,13 @@ package org.dromara.sis.sdk.e8;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceAddReq;
|
||||
import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceUpdateReq;
|
||||
import org.dromara.sis.sdk.e8.domain.door.res.AuthDoorDeviceFindRes;
|
||||
import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceAddRes;
|
||||
import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceFindRes;
|
||||
import org.dromara.sis.sdk.e8.domain.QueryDto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author lsm
|
||||
* @apiNote DoorDeviceService
|
||||
@ -53,4 +56,11 @@ public interface DoorDeviceService {
|
||||
* @return Boolean
|
||||
*/
|
||||
Boolean deleteDoorDevice(Integer id);
|
||||
|
||||
/**
|
||||
* 分页获取授权门信息
|
||||
*
|
||||
* @return TableDataInfo<AuthDoorDeviceFindRes>
|
||||
*/
|
||||
List<AuthDoorDeviceFindRes> getPageAuthDoorDeviceList();
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ public interface VoucherControlService {
|
||||
* @param req 凭证数据
|
||||
* @return Boolean
|
||||
*/
|
||||
Boolean issueVoucher(IssueVoucherReq req);
|
||||
Long issueVoucher(IssueVoucherReq req);
|
||||
|
||||
/**
|
||||
* 操作凭证
|
||||
|
@ -0,0 +1,22 @@
|
||||
package org.dromara.sis.sdk.e8.domain.door.res;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author lsm
|
||||
* @apiNote AuthDoorDeviceFindRes
|
||||
* @since 2025/6/29
|
||||
*/
|
||||
@Data
|
||||
public class AuthDoorDeviceFindRes {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* deviceId
|
||||
*/
|
||||
private Long deviceId;
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package org.dromara.sis.sdk.e8.domain.voucher.res;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author lsm
|
||||
* @apiNote IssueVoucherRes
|
||||
* @since 2025/6/29
|
||||
*/
|
||||
@Data
|
||||
public class IssueVoucherRes {
|
||||
|
||||
private Long id;
|
||||
}
|
@ -11,6 +11,7 @@ import org.dromara.sis.sdk.e8.domain.ApiResp;
|
||||
import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceAddReq;
|
||||
import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceFindReq;
|
||||
import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceUpdateReq;
|
||||
import org.dromara.sis.sdk.e8.domain.door.res.AuthDoorDeviceFindRes;
|
||||
import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceAddRes;
|
||||
import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceFindRes;
|
||||
import org.dromara.sis.sdk.e8.domain.QueryDto;
|
||||
@ -18,6 +19,7 @@ import org.dromara.sis.sdk.e8.utils.E8ApiUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@ -35,6 +37,7 @@ public class DoorDeviceServiceImpl implements DoorDeviceService {
|
||||
private final static String DOOR_DEVICE_CREATE = "/api/E8Door/man-device-info";
|
||||
private final static String DOOR_DEVICE_UPDATE = "/api/E8Door/man-device-info/{id}/update";
|
||||
private final static String DOOR_DEVICE_DELETE = "/api/E8Door/man-device-info/{id}";
|
||||
private final static String AUTH_DOOR_DEVICE_GET_LIST = "/api/E8Door/man-auth-info/get-page-list-auth-data";
|
||||
|
||||
|
||||
private final E8ApiUtil e8ApiUtil;
|
||||
@ -170,4 +173,34 @@ public class DoorDeviceServiceImpl implements DoorDeviceService {
|
||||
return apiResp.getSuccess();
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页获取授权门信息
|
||||
*
|
||||
* @return TableDataInfo<AuthDoorDeviceFindRes>
|
||||
*/
|
||||
public List<AuthDoorDeviceFindRes> getPageAuthDoorDeviceList() {
|
||||
Map<String, Object> queryDto = new HashMap<>();
|
||||
queryDto.put("type", -1);
|
||||
queryDto.put("matchString", "");
|
||||
|
||||
// 创建一个参数映射,用于存储API请求所需的参数
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("PageIndex", 1);
|
||||
params.put("MaxResultCount", 100000);
|
||||
params.put("QueryDto", queryDto);
|
||||
|
||||
ApiResp apiResp = e8ApiUtil.doPost(params, AUTH_DOOR_DEVICE_GET_LIST);
|
||||
|
||||
// 如果API调用不成功,则返回null
|
||||
if (!apiResp.getSuccess()) {
|
||||
log.error("分页获取授权门信息失败 errorMsg:{}", apiResp);
|
||||
// 如果响应不成功,则返回null
|
||||
return null;
|
||||
}
|
||||
// 将API响应结果转换为Map对象,以便后续处理
|
||||
Map<String, Object> result = JSONUtil.toBean(JSONUtil.toJsonStr(apiResp.getResult()), new TypeReference<>() {
|
||||
}, false);
|
||||
// 返回list
|
||||
return JSONUtil.toList(JSONUtil.toJsonStr(result.get("item")), AuthDoorDeviceFindRes.class);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package org.dromara.sis.sdk.e8.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.sis.sdk.e8.VoucherControlService;
|
||||
@ -8,6 +9,7 @@ import org.dromara.sis.sdk.e8.domain.ApiResp;
|
||||
import org.dromara.sis.sdk.e8.domain.voucher.req.ChangeCardReq;
|
||||
import org.dromara.sis.sdk.e8.domain.voucher.req.IssueVoucherReq;
|
||||
import org.dromara.sis.sdk.e8.domain.voucher.req.OperateVoucherReq;
|
||||
import org.dromara.sis.sdk.e8.domain.voucher.res.IssueVoucherRes;
|
||||
import org.dromara.sis.sdk.e8.utils.E8ApiUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -37,16 +39,21 @@ public class VoucherControlServiceImpl implements VoucherControlService {
|
||||
* @return 是否成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean issueVoucher(IssueVoucherReq req) {
|
||||
public Long issueVoucher(IssueVoucherReq req) {
|
||||
// 封装入参
|
||||
Map<String, Object> params = BeanUtil.beanToMap(req);
|
||||
|
||||
// 调用API
|
||||
ApiResp apiResp = e8ApiUtil.doPost(params, ISSUANCE_VOUCHER);
|
||||
|
||||
if (!apiResp.getSuccess()) log.error("E8发行凭证失败,errorMsg:{}", apiResp);
|
||||
if (!apiResp.getSuccess()) {
|
||||
log.error("E8发行凭证失败,errorMsg:{}", apiResp);
|
||||
return null;
|
||||
}
|
||||
|
||||
return apiResp.getSuccess();
|
||||
IssueVoucherRes res = JSONUtil.toBean(JSONUtil.toJsonStr(apiResp.getResult()), IssueVoucherRes.class);
|
||||
|
||||
return res.getId();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -13,7 +13,7 @@ import java.util.List;
|
||||
* 门禁设备Service接口
|
||||
*
|
||||
* @author lxj
|
||||
* @date 2025-06-25
|
||||
* @since 2025-06-25
|
||||
*/
|
||||
public interface ISisAccessControlService {
|
||||
|
||||
@ -66,4 +66,12 @@ public interface ISisAccessControlService {
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 根据查询列表
|
||||
*
|
||||
* @param ids 门禁id
|
||||
* @return 列表
|
||||
*/
|
||||
List<SisAccessControlVo> queryListByIds(Collection<Long> ids);
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ import java.util.List;
|
||||
* 人像信息Service接口
|
||||
*
|
||||
* @author mocheng
|
||||
* @date 2025-06-24
|
||||
* @since 2025-06-24
|
||||
*/
|
||||
public interface ISisPersonLibImgService {
|
||||
|
||||
@ -65,4 +65,12 @@ public interface ISisPersonLibImgService {
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 根据查询列表
|
||||
*
|
||||
* @param ids 图片id
|
||||
* @return 列表
|
||||
*/
|
||||
List<SisPersonLibImgVo> queryListByIds(Collection<Long> ids);
|
||||
}
|
||||
|
@ -140,7 +140,7 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService {
|
||||
// 通讯类型
|
||||
e8DoorReq.setCommType(0);
|
||||
// cpuid
|
||||
e8DoorReq.setCpuID(add.getFactoryCode());
|
||||
e8DoorReq.setCpuID("");
|
||||
// ip
|
||||
e8DoorReq.setIp(add.getAccessIp());
|
||||
// 端口
|
||||
@ -207,4 +207,15 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService {
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据查询列表
|
||||
*
|
||||
* @param ids 门禁id
|
||||
* @return 列表
|
||||
*/
|
||||
@Override
|
||||
public List<SisAccessControlVo> queryListByIds(Collection<Long> ids){
|
||||
return baseMapper.selectVoByIds(ids);
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ package org.dromara.sis.service.impl;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
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;
|
||||
@ -10,12 +9,15 @@ 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.domain.bo.SisEEightRefBo;
|
||||
import org.dromara.sis.domain.bo.SisLibDeviceImgRefBo;
|
||||
import org.dromara.sis.domain.bo.SisLibDeviceRefBo;
|
||||
import org.dromara.sis.domain.vo.*;
|
||||
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.e8.domain.accessControl.req.CustomerAuthAddReq;
|
||||
import org.dromara.sis.sdk.e8.domain.door.res.AuthDoorDeviceFindRes;
|
||||
import org.dromara.sis.sdk.e8.domain.voucher.req.IssueVoucherReq;
|
||||
import org.dromara.sis.sdk.unview.UnViewAiBoxApi;
|
||||
import org.dromara.sis.sdk.unview.model.UvModel;
|
||||
@ -29,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 授权记录Service业务层处理
|
||||
@ -43,9 +46,11 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService {
|
||||
|
||||
private final UnViewAiBoxApi unViewAiBoxApi;
|
||||
private final SisAuthRecordMapper baseMapper;
|
||||
private final VoucherControlService vouchService;
|
||||
private final VoucherControlService e8VouchService;
|
||||
private final DoorDeviceService e8DoorDeviceService;
|
||||
private final ISisPersonLibService sisPersonLibService;
|
||||
private final AccessControlService accessControlService;
|
||||
private final ISisEEightRefService sisEEightRefService;
|
||||
private final AccessControlService e8AccessControlService;
|
||||
private final ISisPersonLibImgService sisPersonLibImgService;
|
||||
private final ISisLibDeviceRefService sisLibDeviceRefService;
|
||||
private final ISisAccessControlService sisAccessControlService;
|
||||
@ -60,14 +65,7 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService {
|
||||
*/
|
||||
@Override
|
||||
public SisAuthRecordVo queryById(Long id) {
|
||||
SisAuthRecord sisAuthRecord = baseMapper.selectById(id);
|
||||
if (sisAuthRecord == null) return null;
|
||||
List<Long> acIds = Arrays.stream(sisAuthRecord.getAcId().split(",")).map(Long::parseLong).toList();
|
||||
List<Long> eqbIds = Arrays.stream(sisAuthRecord.getEqbId().split(",")).map(Long::parseLong).toList();
|
||||
SisAuthRecordVo vo = MapstructUtils.convert(sisAuthRecord, SisAuthRecordVo.class);
|
||||
vo.setAcIds(acIds);
|
||||
vo.setEqbIds(eqbIds);
|
||||
return vo;
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -79,7 +77,7 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService {
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<SisAuthRecordVo> queryPageList(SisAuthRecordBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<SisAuthRecord> lqw = buildQueryWrapper(bo);
|
||||
LambdaQueryWrapper<SisAuthRecord> lqw = Wrappers.lambdaQuery();
|
||||
Page<SisAuthRecordVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
@ -100,7 +98,7 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SisAuthRecord> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByAsc(SisAuthRecord::getId);
|
||||
lqw.eq(bo.getImgId() != null, SisAuthRecord::getImgId, bo.getImgId());
|
||||
lqw.eq(bo.getLibId() != null, SisAuthRecord::getLibId, bo.getLibId());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
@ -113,32 +111,49 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(SisAuthRecordBo bo) {
|
||||
SisAuthRecord add = MapstructUtils.convert(bo, SisAuthRecord.class);
|
||||
Assert.notNull(add, "数据处理失败");
|
||||
add.setAcId(StringUtils.join(bo.getAcIds(), ","));
|
||||
add.setEqbId(StringUtils.join(bo.getEqbIds(), ","));
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
log.info("图片{},开始对{}门禁授权,下发{}设备照片", add.getImgId(), bo.getAcIds(), bo.getEqbIds());
|
||||
if (flag) {
|
||||
SisPersonLibImgVo imgVo = sisPersonLibImgService.queryById(bo.getImgId());
|
||||
Assert.notNull(imgVo, "图片不存在,id=" + bo.getImgId());
|
||||
|
||||
SisPersonLibVo libVo = sisPersonLibService.queryById(imgVo.getLibId());
|
||||
Assert.notNull(libVo, "图像库不存在,id=" + imgVo.getLibId());
|
||||
List<SisLibDeviceRefVo> refVos = sisLibDeviceRefService.queryByLibIds(Collections.singleton(bo.getLibId()));
|
||||
Assert.notEmpty(refVos, "图像库与设备关联关系不存在");
|
||||
List<Long> eqpIds = refVos.stream().map(SisLibDeviceRefVo::getEqpId).toList();
|
||||
|
||||
|
||||
try {
|
||||
long eqp_lib_id;
|
||||
Integer eqp_lib_img_id;
|
||||
String eqp_lib_img_url;
|
||||
byte[] imageByte = Files.readAllBytes(Paths.get(imgVo.getImgUrl()));
|
||||
boolean flag = false;
|
||||
log.info("开始写入授权记录,图片:{}、门禁:{}、设备:{}", bo.getImgIds(), bo.getAcIds(), eqpIds);
|
||||
for (Long imgId : bo.getImgIds()) {
|
||||
for (Long acId : bo.getAcIds()) {
|
||||
for (Long eqpId : eqpIds) {
|
||||
SisAuthRecord add = MapstructUtils.convert(bo, SisAuthRecord.class);
|
||||
Assert.notNull(add, "数据处理失败");
|
||||
add.setAcId(acId);
|
||||
add.setImgId(imgId);
|
||||
add.setEqbId(eqpId);
|
||||
flag = baseMapper.insert(add) > 0;
|
||||
Assert.isTrue(flag, "授权记录写入失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
log.info("授权记录写入完成");
|
||||
|
||||
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 = Files.readAllBytes(Paths.get(imgVo.getImgUrl()));
|
||||
|
||||
// TODO 图片开始下发到宇视盒子
|
||||
log.info("图片开始下发到宇视盒子");
|
||||
for (Long eqpId : bo.getEqbIds()) {
|
||||
SisAccessControlDeviceVo vo = sisAccessControlDeviceService.queryById(eqpId);
|
||||
Assert.notNull(vo, "门禁控制设备不存在,id=" + eqpId);
|
||||
log.info(libVo.getLibType() == 1 ? "准备写入门禁设备,code={}" : "准备写入工服设备,code={}", vo.getEqpNo());
|
||||
log.info(libVo.getLibType() == 1 ? "准备写入人像设备,code={}" : "准备写入工服设备,code={}", vo.getEqpNo());
|
||||
|
||||
UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo();
|
||||
systemInfo.setAccount(vo.getEqpAccount());
|
||||
@ -179,59 +194,88 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService {
|
||||
|
||||
SisLibDeviceImgRefBo ref = new SisLibDeviceImgRefBo();
|
||||
ref.setLibId(libVo.getId());
|
||||
ref.setImgId(add.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("图片开始下发完成!");
|
||||
|
||||
// TODO 对门禁设备授权
|
||||
log.info("图片开始对门禁设备授权");
|
||||
for (Long acId : bo.getAcIds()) {
|
||||
SisAccessControlVo acVo = sisAccessControlService.queryById(acId);
|
||||
Assert.notNull(acVo, "门禁设备不存在");
|
||||
|
||||
// TODO 阶段调试E8人脸设备,非E8人脸设备不处理
|
||||
if (acVo.getControlType() == 1 || acVo.getAccessType() == 2) continue;
|
||||
|
||||
log.info("照片上传E8平台,id=" + bo.getImgId());
|
||||
String url = vouchService.uploadFace(imageByte);
|
||||
Assert.notNull(url, "图片上传E8平台失败");
|
||||
eqp_lib_img_url = url;
|
||||
|
||||
log.info("E8平台发行凭证");
|
||||
IssueVoucherReq req = new IssueVoucherReq();
|
||||
req.setCardType(34);
|
||||
req.setVoucherType(70);
|
||||
// TODO 临时默认人员
|
||||
req.setPersonID(539696740646981L);
|
||||
req.setTxtData(eqp_lib_img_url);
|
||||
Boolean issue = vouchService.issueVoucher(req);
|
||||
Assert.isTrue(issue, "E8平台发行凭证失败");
|
||||
|
||||
log.info("E8平台授权");
|
||||
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");
|
||||
|
||||
CustomerAuthAddReq.AuthGroupData authGroupData = new CustomerAuthAddReq.AuthGroupData();
|
||||
authGroupData.setId(Long.parseLong(acVo.getOutCode()));
|
||||
authGroupData.setType(1);
|
||||
authReq.setAuthData(List.of(authGroupData));
|
||||
Boolean auth = accessControlService.addCustomerAuth(authReq);
|
||||
Assert.isTrue(auth, "E8平台授权失败");
|
||||
}
|
||||
log.info("门禁设备授权完成");
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e.getMessage());
|
||||
}
|
||||
log.info("图片开始下发完成!");
|
||||
|
||||
log.info("开始写入E8平台,图片:{}、门禁:{}", bo.getImgIds(), bo.getAcIds());
|
||||
for (SisPersonLibImgVo imgVo : imgList) {
|
||||
byte[] imageByte = Files.readAllBytes(Paths.get(imgVo.getImgUrl()));
|
||||
|
||||
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> authDoor = e8DoorDeviceService.getPageAuthDoorDeviceList();
|
||||
Map<Long, AuthDoorDeviceFindRes> authDoorMap = authDoor.stream()
|
||||
.collect(Collectors.toMap(AuthDoorDeviceFindRes::getDeviceId, authDoorRes -> authDoorRes));
|
||||
|
||||
List<CustomerAuthAddReq.AuthGroupData> authList = acList.stream()
|
||||
.filter(acVo -> acVo.getControlType() != 1 && acVo.getAccessType() != 2)
|
||||
.map(acVo -> {
|
||||
CustomerAuthAddReq.AuthGroupData door = new CustomerAuthAddReq.AuthGroupData();
|
||||
door.setType(0);
|
||||
door.setGatewayType(1);
|
||||
Long id = Long.parseLong(acVo.getOutCode());
|
||||
door.setId(id);
|
||||
// 如果 authDoorMap 中存在对应的 deviceId,则更新 id
|
||||
AuthDoorDeviceFindRes authDoorRes = authDoorMap.get(id);
|
||||
if (authDoorRes != null) {
|
||||
door.setId(authDoorRes.getId());
|
||||
}
|
||||
return door;
|
||||
}).toList();
|
||||
|
||||
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平台授权完成!");
|
||||
|
||||
SisEEightRefBo ref = new SisEEightRefBo();
|
||||
ref.setUserId(1L);
|
||||
ref.setRemoteImgUrl(url);
|
||||
ref.setRemoteVoucherId(vId);
|
||||
ref.setAcIds(bo.getAcIds());
|
||||
ref.setRemoteUserId(539696740646981L);
|
||||
ref.setImgId(imgVo.getId());
|
||||
Boolean insert = sisEEightRefService.insertByBo(ref);
|
||||
Assert.isTrue(insert, "写入E8关联关系表失败!");
|
||||
}
|
||||
log.info("写入E8平台完成!");
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e.getMessage());
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
|
@ -15,6 +15,7 @@ import org.dromara.sis.domain.vo.SisEEightRefVo;
|
||||
import org.dromara.sis.domain.SisEEightRef;
|
||||
import org.dromara.sis.mapper.SisEEightRefMapper;
|
||||
import org.dromara.sis.service.ISisEEightRefService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@ -25,7 +26,7 @@ import java.util.Collection;
|
||||
* E8平台对应关系Service业务层处理
|
||||
*
|
||||
* @author lsm
|
||||
* @date 2025-06-29
|
||||
* @since 2025-06-29
|
||||
*/
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
@ -97,14 +98,11 @@ public class SisEEightRefServiceImpl implements ISisEEightRefService {
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(SisEEightRefBo bo) {
|
||||
SisEEightRef add = MapstructUtils.convert(bo, SisEEightRef.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
add.setAcId(StringUtils.join(bo.getAcIds(), ","));
|
||||
return baseMapper.insert(add) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -173,4 +173,15 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
*
|
||||
* @param Ids 图片id
|
||||
* @return 列表
|
||||
*/
|
||||
@Override
|
||||
public List<SisPersonLibImgVo> queryListByIds(Collection<Long> Ids) {
|
||||
return baseMapper.selectVoByIds(Ids);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user