feat(sis):

- 添加人像写入关联表
 - 人像信息表libId删除
This commit is contained in:
zcxlsm 2025-07-14 18:26:35 +08:00
parent 83cc3a4f84
commit c1bcdd367a
7 changed files with 70 additions and 27 deletions

View File

@ -98,7 +98,7 @@ public class SisPersonLibController extends BaseController {
*/
@SaCheckPermission("sis:personLib:remove")
@Log(title = "人像库", businessType = BusinessType.DELETE)
@DeleteMapping("del/{ids}")
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable("ids") Long[] ids) {
return toAjax(tbPersonLibService.deleteWithValidByIds(List.of(ids), true));

View File

@ -28,11 +28,6 @@ public class SisPersonLibImg extends TenantEntity {
@TableId(value = "id")
private Long id;
/**
* 人员库编码
*/
private Long libId;
/**
* 人像名称
*/

View File

@ -9,6 +9,8 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Collection;
/**
* 人像信息业务对象 tb_person_lib_img
*
@ -30,7 +32,7 @@ public class SisPersonLibImgBo extends BaseEntity {
* 人员库编码
*/
@NotNull(message = "人像库id不能为空", groups = {AddGroup.class, EditGroup.class})
private Long libId;
private Collection<Long> libIds;
/**
* 人像名称
@ -74,14 +76,14 @@ public class SisPersonLibImgBo extends BaseEntity {
*/
private String birthDate;
/**
* 同步E8
*/
private Boolean isSyncE8;
/**
* 远程库图像ID
*/
private Long remoteImgId;
/**
* 同步E8
*/
private Boolean isSyncE8;
}

View File

@ -8,7 +8,7 @@ import org.dromara.sis.domain.SisPersonLibImg;
import java.io.Serial;
import java.io.Serializable;
import java.util.Collection;
/**
@ -31,12 +31,6 @@ public class SisPersonLibImgVo implements Serializable {
@ExcelProperty(value = "主键id")
private Long id;
/**
* 人员库编码
*/
@ExcelProperty(value = "人员库Id")
private Long libId;
/**
* 人像名称
*/
@ -50,8 +44,7 @@ public class SisPersonLibImgVo implements Serializable {
private Long imgOssId;
/**
* 性别 1
2 99未说明
* 性别 1 2 99未说明
*/
@ExcelProperty(value = "性别")
private Integer sex;
@ -69,9 +62,7 @@ public class SisPersonLibImgVo implements Serializable {
private String tel;
/**
* 证件类型
1身份证 2护照
3行驶证 99其它
* 证件类型 1身份证 2护照 3行驶证 99其它
*/
@ExcelProperty(value = "证件类型")
private Integer certificateType;
@ -93,4 +84,10 @@ public class SisPersonLibImgVo implements Serializable {
*/
@ExcelProperty(value = "远程库图像ID")
private Long remoteImgId;
/**
* 人像库id
*/
@ExcelProperty(value = "人像库id")
private Collection<Long> libIds;
}

View File

@ -1,5 +1,6 @@
package org.dromara.sis.service;
import org.dromara.sis.domain.SisLibImgRef;
import org.dromara.sis.domain.vo.SisLibImgRefVo;
import org.dromara.sis.domain.bo.SisLibImgRefBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -65,4 +66,12 @@ public interface ISisLibImgRefService {
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 批量添加人像库-人像图片关联
*
* @param refs 待添加的关联信息
* @return 是否添加成功
*/
Boolean addBatch(List<SisLibImgRef> refs);
}

View File

@ -1,5 +1,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;
@ -15,6 +16,7 @@ import org.dromara.sis.domain.vo.SisLibImgRefVo;
import org.dromara.sis.domain.SisLibImgRef;
import org.dromara.sis.mapper.SisLibImgRefMapper;
import org.dromara.sis.service.ISisLibImgRefService;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
@ -129,4 +131,18 @@ public class SisLibImgRefServiceImpl implements ISisLibImgRefService {
}
return baseMapper.deleteByIds(ids) > 0;
}
/**
* 批量添加人像库-人像图片关联
*
* @param refs 待添加的关联信息
* @return boolean
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean addBatch(List<SisLibImgRef> refs){
boolean flag = baseMapper.insertBatch(refs);
Assert.isTrue( flag, "批量添加人像库-人像图片关联失败");
return flag;
}
}

View File

@ -14,7 +14,9 @@ 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.resource.api.RemoteFileService;
import org.dromara.sis.domain.SisLibImgRef;
import org.dromara.sis.domain.SisPersonLibImg;
import org.dromara.sis.domain.bo.SisLibImgRefBo;
import org.dromara.sis.domain.bo.SisPersonLibImgBo;
import org.dromara.sis.domain.vo.*;
import org.dromara.sis.mapper.SisPersonLibImgMapper;
@ -38,7 +40,9 @@ import java.util.*;
public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService {
private final SisPersonLibImgMapper baseMapper;
private final HuaWeiBoxApi huaWeiBoxApi;
private final ISisLibImgRefService sisLibImgRefService;
@DubboReference
private final RemoteFileService remoteFileService;
@ -51,7 +55,15 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService {
*/
@Override
public SisPersonLibImgVo queryById(Long id) {
return baseMapper.selectVoById(id);
SisLibImgRefBo refBo = new SisLibImgRefBo();
refBo.setImgId(id);
List<SisLibImgRefVo> refs = sisLibImgRefService.queryList(refBo);
Collection<Long> refIds = refs.stream().map(SisLibImgRefVo::getId).toList();
SisPersonLibImgVo vo = new SisPersonLibImgVo();
vo.setLibIds(refIds);
return vo;
}
/**
@ -84,7 +96,6 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SisPersonLibImg> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(SisPersonLibImg::getId);
lqw.eq(bo.getLibId() != null, SisPersonLibImg::getLibId, bo.getLibId());
lqw.like(StringUtils.isNotBlank(bo.getImgName()), SisPersonLibImg::getImgName, bo.getImgName());
lqw.eq(bo.getImgOssId() != null, SisPersonLibImg::getImgOssId, bo.getImgOssId());
lqw.eq(bo.getSex() != null, SisPersonLibImg::getSex, bo.getSex());
@ -130,7 +141,20 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService {
add.setRemoteImgId(pId);
flag = baseMapper.insert(add) > 0;
Assert.isTrue(flag, "新增失败");
Assert.isTrue(flag, "新增人像失败");
log.info("开始写入人像⇄人像库关联表");
List<SisLibImgRef> refs = new ArrayList<>();
for (Long libId : bo.getLibIds()) {
SisLibImgRef ref = new SisLibImgRef();
ref.setLibId(libId);
ref.setImgId(add.getId());
refs.add(ref);
}
Boolean refFlag = sisLibImgRefService.addBatch(refs);
Assert.isTrue(refFlag, "写入人像⇄人像库关联表失败!");
log.info("写入人像⇄人像库关联表完成");
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}