This commit is contained in:
parent
c7446fde32
commit
56b40bd5ad
@ -46,6 +46,12 @@ public class SisAccessControlDeviceController extends BaseController {
|
||||
return sisAccessControlDeviceService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
@GetMapping("/list/{factoryNo}")
|
||||
public R<List<SisAccessControlDeviceVo>> queryListByFactoryNo(@PathVariable("factoryNo") String factoryNo) {
|
||||
return R.ok(sisAccessControlDeviceService.queryListByFactoryNo(factoryNo));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导出门禁设备列表
|
||||
*/
|
||||
|
@ -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;
|
||||
|
||||
@ -30,12 +31,12 @@ public class SisLibDeviceRef extends TenantEntity {
|
||||
/**
|
||||
* 人员库编码
|
||||
*/
|
||||
private String libCode;
|
||||
private Long libId;
|
||||
|
||||
/**
|
||||
* 设备编码
|
||||
*/
|
||||
private String eqpCode;
|
||||
private Long eqpId;
|
||||
|
||||
/**
|
||||
* 设备上的库id
|
||||
|
@ -1,13 +1,14 @@
|
||||
package org.dromara.sis.domain.bo;
|
||||
|
||||
import org.dromara.sis.domain.SisLibDeviceRef;
|
||||
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.SisLibDeviceRef;
|
||||
|
||||
/**
|
||||
* 系统库与设备库的关联业务对象 tb_lib_device_ref
|
||||
@ -29,14 +30,14 @@ public class SisLibDeviceRefBo extends BaseEntity {
|
||||
/**
|
||||
* 人员库编码
|
||||
*/
|
||||
@NotBlank(message = "人员库编码不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String libCode;
|
||||
@NotBlank(message = "人员库id不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Long libId;
|
||||
|
||||
/**
|
||||
* 设备编码
|
||||
*/
|
||||
@NotBlank(message = "设备编码不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String eqpCode;
|
||||
@NotBlank(message = "设备id不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Long eqpId;
|
||||
|
||||
/**
|
||||
* 设备上的库id
|
||||
|
@ -12,6 +12,8 @@ import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.sis.domain.SisPersonLib;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 人像库业务对象 tb_person_lib
|
||||
*
|
||||
@ -37,6 +39,12 @@ public class SisPersonLibBo extends BaseEntity {
|
||||
@NotBlank(message = "人员库名称不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String libName;
|
||||
|
||||
/**
|
||||
* 设备编码,需要同步创建到设备中
|
||||
*/
|
||||
@NotBlank(message = "人像设备不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private List<Long> eqpIds;
|
||||
|
||||
/**
|
||||
* 人员库描述
|
||||
*/
|
||||
|
@ -1,10 +1,10 @@
|
||||
package org.dromara.sis.domain.vo;
|
||||
|
||||
import org.dromara.sis.domain.SisLibDeviceRef;
|
||||
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import cn.idev.excel.annotation.ExcelProperty;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.sis.domain.SisLibDeviceRef;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
@ -31,16 +31,16 @@ public class SisLibDeviceRefVo implements Serializable {
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 人员库编码
|
||||
* 人员库id
|
||||
*/
|
||||
@ExcelProperty(value = "人员库编码")
|
||||
private String libCode;
|
||||
@ExcelProperty(value = "人员库id")
|
||||
private Long libId;
|
||||
|
||||
/**
|
||||
* 设备编码
|
||||
* 设备表id
|
||||
*/
|
||||
@ExcelProperty(value = "设备编码")
|
||||
private String eqpCode;
|
||||
@ExcelProperty(value = "设备表id")
|
||||
private Long eqpId;
|
||||
|
||||
/**
|
||||
* 设备上的库id
|
||||
|
@ -182,7 +182,7 @@ public interface UnViewAiBoxApi {
|
||||
* @param libName 工服库名称
|
||||
* @return 是否添加成功
|
||||
*/
|
||||
Integer addWorkClothesLib(UvSystemInfo systemInfo, String libName);
|
||||
AddLibResult addWorkClothesLib(UvSystemInfo systemInfo, String libName);
|
||||
|
||||
/**
|
||||
* 修改工服库信息
|
||||
|
@ -164,10 +164,10 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi {
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------- 工服库 ---------------------------------------------------------------------------*/
|
||||
public Integer addWorkClothesLib(UvSystemInfo uvSystemInfo, String libName) {
|
||||
public AddLibResult addWorkClothesLib(UvSystemInfo uvSystemInfo, String libName) {
|
||||
JSONObject params = new JSONObject();
|
||||
params.put("lib_name", libName);
|
||||
UniViewResult<Integer> request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.WORK_CLOTHES_LIB_ADD, params, Integer.class);
|
||||
UniViewResult<AddLibResult> request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.WORK_CLOTHES_LIB_ADD, params, AddLibResult.class);
|
||||
return request.result();
|
||||
}
|
||||
|
||||
|
@ -1,10 +1,9 @@
|
||||
package org.dromara.sis.service;
|
||||
|
||||
import org.dromara.sis.domain.SisAccessControlDevice;
|
||||
import org.dromara.sis.domain.vo.SisAccessControlDeviceVo;
|
||||
import org.dromara.sis.domain.bo.SisAccessControlDeviceBo;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.sis.domain.bo.SisAccessControlDeviceBo;
|
||||
import org.dromara.sis.domain.vo.SisAccessControlDeviceVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@ -66,4 +65,12 @@ public interface ISisAccessControlDeviceService {
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 根据factoryNo 查询设备列表
|
||||
*
|
||||
* @param factoryNo 厂商编号
|
||||
* @return 返回设备列表
|
||||
*/
|
||||
List<SisAccessControlDeviceVo> queryListByFactoryNo(String factoryNo);
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package org.dromara.sis.service;
|
||||
|
||||
import org.dromara.sis.domain.SisLibDeviceRef;
|
||||
import org.dromara.sis.domain.vo.SisLibDeviceRefVo;
|
||||
import org.dromara.sis.domain.bo.SisLibDeviceRefBo;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
@ -49,6 +50,14 @@ public interface ISisLibDeviceRefService {
|
||||
*/
|
||||
Boolean insertByBo(SisLibDeviceRefBo bo);
|
||||
|
||||
/**
|
||||
* 新增系统库与设备库的关联
|
||||
*
|
||||
* @param ref 系统库与设备库的关联
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insert(SisLibDeviceRef ref);
|
||||
|
||||
/**
|
||||
* 修改系统库与设备库的关联
|
||||
*
|
||||
@ -65,4 +74,6 @@ public interface ISisLibDeviceRefService {
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
List<SisLibDeviceRefVo> queryByIds(Collection<Long> ids);
|
||||
}
|
||||
|
@ -5,7 +5,6 @@ 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.extern.slf4j.Slf4j;
|
||||
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;
|
||||
@ -143,4 +142,11 @@ public class SisAccessControlDeviceServiceImpl implements ISisAccessControlDevic
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SisAccessControlDeviceVo> queryListByFactoryNo(String factoryNo) {
|
||||
LambdaQueryWrapper<SisAccessControlDevice> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(SisAccessControlDevice::getFactoryNo, factoryNo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
}
|
||||
|
@ -1,24 +1,24 @@
|
||||
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 com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
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.SisLibDeviceRef;
|
||||
import org.dromara.sis.domain.bo.SisLibDeviceRefBo;
|
||||
import org.dromara.sis.domain.vo.SisLibDeviceRefVo;
|
||||
import org.dromara.sis.domain.SisLibDeviceRef;
|
||||
import org.dromara.sis.mapper.SisLibDeviceRefMapper;
|
||||
import org.dromara.sis.service.ISisLibDeviceRefService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 系统库与设备库的关联Service业务层处理
|
||||
@ -74,8 +74,8 @@ public class SisLibDeviceRefServiceImpl implements ISisLibDeviceRefService {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SisLibDeviceRef> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByAsc(SisLibDeviceRef::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getLibCode()), SisLibDeviceRef::getLibCode, bo.getLibCode());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getEqpCode()), SisLibDeviceRef::getEqpCode, bo.getEqpCode());
|
||||
lqw.eq(bo.getLibId() !=null, SisLibDeviceRef::getLibId, bo.getLibId());
|
||||
lqw.eq(bo.getEqpId() !=null, SisLibDeviceRef::getEqpId, bo.getEqpId());
|
||||
lqw.eq(bo.getEqpLibCode() != null, SisLibDeviceRef::getEqpLibCode, bo.getEqpLibCode());
|
||||
lqw.eq(bo.getEqpLibState() != null, SisLibDeviceRef::getEqpLibState, bo.getEqpLibState());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), SisLibDeviceRef::getSearchValue, bo.getSearchValue());
|
||||
@ -99,6 +99,11 @@ public class SisLibDeviceRefServiceImpl implements ISisLibDeviceRefService {
|
||||
return flag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean insert(SisLibDeviceRef ref) {
|
||||
return baseMapper.insert(ref) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改系统库与设备库的关联
|
||||
*
|
||||
|
@ -1,5 +1,6 @@
|
||||
package org.dromara.sis.service.impl;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
@ -11,12 +12,19 @@ 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.SisLibDeviceRef;
|
||||
import org.dromara.sis.domain.SisPersonLib;
|
||||
import org.dromara.sis.domain.bo.SisPersonLibBo;
|
||||
import org.dromara.sis.domain.vo.SisAccessControlDeviceVo;
|
||||
import org.dromara.sis.domain.vo.SisPersonLibVo;
|
||||
import org.dromara.sis.mapper.SisPersonLibMapper;
|
||||
import org.dromara.sis.sdk.unview.UnViewAiBoxApi;
|
||||
import org.dromara.sis.sdk.unview.model.UvModel;
|
||||
import org.dromara.sis.service.ISisAccessControlDeviceService;
|
||||
import org.dromara.sis.service.ISisLibDeviceRefService;
|
||||
import org.dromara.sis.service.ISisPersonLibService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@ -34,6 +42,10 @@ import java.util.Map;
|
||||
public class SisPersonLibServiceImpl implements ISisPersonLibService {
|
||||
|
||||
private final SisPersonLibMapper baseMapper;
|
||||
private final ISisLibDeviceRefService sisLibDeviceRefService;
|
||||
private final ISisAccessControlDeviceService sisAccessControlDeviceService;
|
||||
private final UnViewAiBoxApi unViewAiBoxApi;
|
||||
|
||||
|
||||
/**
|
||||
* 查询人像库
|
||||
@ -91,18 +103,46 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService {
|
||||
* @param bo 人像库
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public Boolean insertByBo(SisPersonLibBo bo) {
|
||||
SisPersonLib add = MapstructUtils.convert(bo, SisPersonLib.class);
|
||||
// 生成库编码
|
||||
Assert.notNull(add, "数据处理失败");
|
||||
add.setLibCode(CodePrefixConstants.PERSONLIB_CODE_PREFIX + IdUtil.getSnowflakeNextIdStr());
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
log.info("库[{}]开始写入系统,result={}", add.getLibCode(), flag);
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
//TODO 写入设备关联库
|
||||
|
||||
|
||||
for (Long eqpId : bo.getEqpIds()) {
|
||||
// 查询设备信息
|
||||
SisAccessControlDeviceVo sisAccessControlDeviceVo = sisAccessControlDeviceService.queryById(eqpId);
|
||||
Assert.notNull(sisAccessControlDeviceVo, "门禁控制设备不存在,id=" + eqpId);
|
||||
log.info("准备写入门禁设备,code={}", sisAccessControlDeviceVo.getEqpNo());
|
||||
UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo();
|
||||
systemInfo.setAccount(sisAccessControlDeviceVo.getEqpAccount());
|
||||
systemInfo.setPassword(sisAccessControlDeviceVo.getEqpPwd());
|
||||
systemInfo.setIp(sisAccessControlDeviceVo.getEqpIp());
|
||||
systemInfo.setPort(systemInfo.getPort());
|
||||
// libType =1 人像库,否则工服库
|
||||
Integer outLibCode = null;
|
||||
if (bo.getLibType() == 1) {
|
||||
UvModel.AddLibResult addLibResult = unViewAiBoxApi.addPersonLib(systemInfo, bo.getLibName());
|
||||
outLibCode = addLibResult.getLib_id();
|
||||
} else {
|
||||
UvModel.AddLibResult addLibResult = unViewAiBoxApi.addWorkClothesLib(systemInfo, bo.getLibName());
|
||||
outLibCode = addLibResult.getLib_id();
|
||||
}
|
||||
log.info("宇视建库完成,libId = {}", outLibCode);
|
||||
Assert.notNull(outLibCode, "写入宇视盒子失败");
|
||||
SisLibDeviceRef ref = new SisLibDeviceRef();
|
||||
ref.setLibId(add.getId());
|
||||
ref.setEqpId(sisAccessControlDeviceVo.getId());
|
||||
ref.setEqpLibCode(Long.valueOf(outLibCode));
|
||||
ref.setEqpLibState(1L);
|
||||
Boolean insert = sisLibDeviceRefService.insert(ref);
|
||||
Assert.isTrue(insert, "写入库关联关系表失败!");
|
||||
log.info("同步建库完成!");
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
@ -136,9 +176,8 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService {
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if (isValid) {
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
// 查询当前库是否绑定
|
||||
sisLibDeviceRefService.queryByIds(ids);
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user