diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibController.java index a7adc2b..ffafbe4 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibController.java @@ -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 remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) { return toAjax(tbPersonLibService.deleteWithValidByIds(List.of(ids), true)); diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java index 64bc16d..d59a974 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java @@ -28,11 +28,6 @@ public class SisPersonLibImg extends TenantEntity { @TableId(value = "id") private Long id; - /** - * 人员库编码 - */ - private Long libId; - /** * 人像名称 */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java index c83c985..55fbd4d 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java @@ -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 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; + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java index 7a36ff6..3d9ffe1 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java @@ -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 libIds; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibImgRefService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibImgRefService.java index 92028ea..3168a7b 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibImgRefService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibImgRefService.java @@ -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 ids, Boolean isValid); + + /** + * 批量添加人像库-人像图片关联 + * + * @param refs 待添加的关联信息 + * @return 是否添加成功 + */ + Boolean addBatch(List refs); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibImgRefServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibImgRefServiceImpl.java index 24e9b05..4a0a0c7 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibImgRefServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibImgRefServiceImpl.java @@ -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 refs){ + boolean flag = baseMapper.insertBatch(refs); + Assert.isTrue( flag, "批量添加人像库-人像图片关联失败"); + return flag; + } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java index 70ed0ab..3381d24 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java @@ -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 refs = sisLibImgRefService.queryList(refBo); + Collection 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 params = bo.getParams(); LambdaQueryWrapper 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 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()); }