feat(Sis): 删除入驻员工包括删除授权记录和人像库图片,并调用 E8 平台 API 删除客户信息
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:
@@ -2,6 +2,8 @@ package org.dromara.sis.api;
|
||||
|
||||
import org.dromara.sis.api.domain.RemotePersonAuth;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* @author lsm
|
||||
* @apiNote RemoteSisAuth
|
||||
@@ -12,4 +14,6 @@ public interface RemoteSisAuth {
|
||||
Boolean personAuth(RemotePersonAuth personAuth);
|
||||
|
||||
Boolean updatePersonAuth(RemotePersonAuth personAuth);
|
||||
|
||||
Boolean deletePersonAuth(Collection<Long> personId, Collection<Long> e8Ids);
|
||||
}
|
||||
|
@@ -8,6 +8,7 @@ import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
@@ -24,19 +25,19 @@ public class ResidentPersonBo extends BaseEntity {
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@NotNull(message = "主键id不能为空", groups = { EditGroup.class })
|
||||
@NotNull(message = "主键id不能为空", groups = {EditGroup.class})
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户名称
|
||||
*/
|
||||
@NotBlank(message = "用户名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotBlank(message = "用户名称不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 联系电话
|
||||
*/
|
||||
@NotBlank(message = "联系电话不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotBlank(message = "联系电话不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String phone;
|
||||
/**
|
||||
* 人员类型
|
||||
@@ -46,13 +47,13 @@ public class ResidentPersonBo extends BaseEntity {
|
||||
/**
|
||||
* 性别
|
||||
*/
|
||||
@NotNull(message = "性别不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotNull(message = "性别不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Long gender;
|
||||
|
||||
/**
|
||||
* 证件号
|
||||
*/
|
||||
@NotBlank(message = "证件号不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotBlank(message = "证件号不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String idCard;
|
||||
|
||||
/**
|
||||
@@ -113,7 +114,7 @@ public class ResidentPersonBo extends BaseEntity {
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private Long state=1L;
|
||||
private Long state = 1L;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
|
@@ -29,6 +29,8 @@ import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 入驻员工Service业务层处理
|
||||
@@ -172,7 +174,7 @@ public class ResidentPersonServiceImpl implements IResidentPersonService {
|
||||
// 显式移除e8id
|
||||
LambdaUpdateWrapper<ResidentPerson> lqw = new LambdaUpdateWrapper<>();
|
||||
lqw.eq(ResidentPerson::getId, update.getId())
|
||||
.set(ResidentPerson::getEEightId, "");
|
||||
.set(ResidentPerson::getEEightId, null);
|
||||
baseMapper.update(lqw);
|
||||
|
||||
|
||||
@@ -246,9 +248,12 @@ public class ResidentPersonServiceImpl implements IResidentPersonService {
|
||||
.anyMatch(vo -> vo.getState() == 1); // 遇到第一个启用人员立即返回
|
||||
Assert.isTrue(!hasEnabled, "当前存在人员状态为启用,请核对后再试!");
|
||||
|
||||
boolean hasE8 = list.stream()
|
||||
.anyMatch(vo -> vo.getEEightId() != null); // 遇到第一个e8人员立即返回
|
||||
Assert.isTrue(!hasE8, "当前存在人员已下发权限,请删除通行权限后再试!");
|
||||
Collection<Long> e8Ids = list.stream()
|
||||
.map(ResidentPersonVo::getEEightId)
|
||||
.filter(Objects::nonNull)
|
||||
.toList();
|
||||
boolean auth = remoteSisAuth.deletePersonAuth(ids, e8Ids);
|
||||
Assert.isTrue(auth, "删除授权记录失败!");
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
@@ -7,6 +7,8 @@ import org.dromara.sis.api.RemoteSisAuth;
|
||||
import org.dromara.sis.api.domain.RemotePersonAuth;
|
||||
import org.dromara.sis.service.ISisAuthRecordService;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* @author lsm
|
||||
* @apiNote RemoteSisAuthImpl
|
||||
@@ -28,4 +30,9 @@ public class RemoteSisAuthImpl implements RemoteSisAuth {
|
||||
public Boolean updatePersonAuth(RemotePersonAuth personAuth) {
|
||||
return sisAuthRecordService.updateByBo(personAuth);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean deletePersonAuth(Collection<Long> ids, Collection<Long> e8Ids) {
|
||||
return sisAuthRecordService.deleteByPersonIds(ids, e8Ids);
|
||||
}
|
||||
}
|
||||
|
@@ -105,4 +105,13 @@ public interface ISisAuthRecordService {
|
||||
* @return SisAuthRecordVo
|
||||
*/
|
||||
SisAuthRecordVo queryByGroupIdAndPersonId(Long groupId, Long personId);
|
||||
|
||||
/**
|
||||
* 批量删除授权记录
|
||||
*
|
||||
* @param ids 入驻员工ids
|
||||
* @param e8Ids e8id
|
||||
*/
|
||||
Boolean deleteByPersonIds(Collection<Long> ids, Collection<Long> e8Ids);
|
||||
|
||||
}
|
||||
|
@@ -3,7 +3,6 @@ package org.dromara.sis.service.impl;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.dromara.common.core.domain.TreeNode;
|
||||
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;
|
||||
@@ -22,7 +21,6 @@ import org.dromara.sis.domain.vo.SisAccessControlVo;
|
||||
import org.dromara.sis.domain.vo.SisElevatorInfoVo;
|
||||
import org.dromara.sis.domain.vo.SisPersonLibImgVo;
|
||||
import org.dromara.sis.sdk.e8.E8PlatformApi;
|
||||
import org.dromara.sis.sdk.huawei.HuaWeiBoxApi;
|
||||
import org.dromara.sis.service.*;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.sis.domain.bo.SisAuthRecordBo;
|
||||
@@ -192,6 +190,7 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService {
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean updateByBo(RemotePersonAuth bo) {
|
||||
LambdaQueryWrapper<SisAuthRecord> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.eq(SisAuthRecord::getTargetId, bo.getId());
|
||||
@@ -336,4 +335,36 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService {
|
||||
.eq(SisAuthRecord::getTargetId, personId);
|
||||
return baseMapper.selectVoOne(lqw);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除授权记录
|
||||
*
|
||||
* @param ids 入驻员工ids
|
||||
* @param e8Ids e8id
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean deleteByPersonIds(Collection<Long> ids, Collection<Long> e8Ids) {
|
||||
LambdaQueryWrapper<SisAuthRecord> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.in(SisAuthRecord::getTargetId, ids);
|
||||
boolean flag = baseMapper.delete(lqw) > 0;
|
||||
Assert.isTrue(flag, "删除授权记录失败");
|
||||
|
||||
if (flag) {
|
||||
|
||||
List<SisPersonLibImgVo> list = new ArrayList<>();
|
||||
ids.forEach(id -> {
|
||||
SisPersonLibImgVo imgVo = sisPersonLibImgService.queryByPersonId(id);
|
||||
if (imgVo != null) {
|
||||
list.add(imgVo);
|
||||
}
|
||||
});
|
||||
Collection<Long> imgIds = list.stream().map(SisPersonLibImgVo::getId).toList();
|
||||
flag = sisPersonLibImgService.deleteWithValidByIds(imgIds, false);
|
||||
Assert.isTrue(flag, "删除人像库图片失败");
|
||||
|
||||
e8Ids.forEach(e8PlatformApi::deleteCustomer);
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user