REQ-3581: 调整接口
This commit is contained in:
parent
4216b56de9
commit
1534ede9b6
@ -4,7 +4,7 @@ import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.nanopart.ess.api.domain.EssOrgAndSealInfo;
|
||||
import cn.axzo.nanopart.ess.api.domain.EssSealPersonInfo;
|
||||
import cn.axzo.nanopart.ess.api.request.AddSealAuthorizationRequest;
|
||||
import cn.axzo.nanopart.ess.api.request.AddSealPersonsRequest;
|
||||
import cn.axzo.nanopart.ess.api.request.AddSealPersonRequest;
|
||||
import cn.axzo.nanopart.ess.api.request.CreateConsoleLoginUrlRequest;
|
||||
import cn.axzo.nanopart.ess.api.request.CreateContractByFileRequest;
|
||||
import cn.axzo.nanopart.ess.api.request.DownloadSingedContractPdfRequest;
|
||||
@ -85,9 +85,9 @@ public interface EssApi {
|
||||
/**
|
||||
* 批量添加印章人员 (批量授权)
|
||||
*/
|
||||
@PostMapping("api/ess/addSealPersons")
|
||||
ApiResult<Void> addSealPersons(
|
||||
@RequestBody @Valid AddSealPersonsRequest request);
|
||||
@PostMapping("api/ess/addSealPerson")
|
||||
ApiResult<Void> addSealPerson(
|
||||
@RequestBody @Valid AddSealPersonRequest request);
|
||||
|
||||
/**
|
||||
* 删除印章人员
|
||||
|
||||
@ -14,21 +14,21 @@ public class EssSealPersonInfo {
|
||||
*/
|
||||
private Long ouId;
|
||||
|
||||
/**
|
||||
* 印章用户信息
|
||||
*/
|
||||
private PersonProfileInfo sealPerson = new PersonProfileInfo();
|
||||
|
||||
/**
|
||||
* 印章授权人信息
|
||||
*/
|
||||
private PersonProfileInfo authorizedByPerson = new PersonProfileInfo();
|
||||
|
||||
/**
|
||||
* 印章id
|
||||
*/
|
||||
private String essSealId;
|
||||
|
||||
/**
|
||||
* 印章人员id
|
||||
*/
|
||||
private Long personId;
|
||||
|
||||
/**
|
||||
* 印章人员名称
|
||||
*/
|
||||
private String personName;
|
||||
|
||||
/**
|
||||
* 是否已经激活(实名认证)
|
||||
*/
|
||||
@ -49,14 +49,4 @@ public class EssSealPersonInfo {
|
||||
*/
|
||||
private boolean isSuperAdmin;
|
||||
|
||||
/**
|
||||
* 授权人员id
|
||||
*/
|
||||
private Long authorizedByPersonId;
|
||||
|
||||
/**
|
||||
* 授权人员姓名
|
||||
*/
|
||||
private String authorizedByPersonName;
|
||||
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package cn.axzo.nanopart.ess.api.domain;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Setter @Getter
|
||||
public class PersonProfileInfo {
|
||||
|
||||
/**
|
||||
* 自然人id
|
||||
*/
|
||||
private Long personId;
|
||||
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
private String personName;
|
||||
|
||||
/**
|
||||
* 头像
|
||||
*/
|
||||
private String avatar;
|
||||
|
||||
}
|
||||
@ -5,14 +5,13 @@ import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.util.Set;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Setter @Getter
|
||||
public class AddSealPersonsRequest {
|
||||
public class AddSealPersonRequest {
|
||||
|
||||
/**
|
||||
* 印章id
|
||||
@ -23,8 +22,8 @@ public class AddSealPersonsRequest {
|
||||
/**
|
||||
* 人员id列表
|
||||
*/
|
||||
@NotEmpty(message = "personIds不能为空")
|
||||
private Set<Long> personIds;
|
||||
@NotNull(message = "personId不能为空")
|
||||
private Long personId;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
@ -16,23 +16,15 @@ import cn.axzo.nanopart.ess.server.entity.EssPerson;
|
||||
import cn.axzo.nanopart.ess.server.entity.EssSeal;
|
||||
import cn.axzo.nanopart.ess.server.entity.EssSealPerson;
|
||||
import cn.axzo.nanopart.ess.server.ess.domain.OrgAndPerson;
|
||||
import cn.axzo.nanopart.ess.server.ess.domain.SealPersons;
|
||||
import cn.axzo.nanopart.ess.server.ess.support.EssSupport;
|
||||
import cn.axzo.nanopart.ess.server.utils.BizAssertions;
|
||||
import cn.axzo.nanopart.ess.server.utils.BizTransactional;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.google.common.collect.Sets;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.dao.DuplicateKeyException;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
|
||||
import static java.util.stream.Collectors.toList;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
@ -135,7 +127,7 @@ public class OrgManager {
|
||||
|
||||
@BizTransactional
|
||||
public void addSealAuthorization(String essSealId, Long personId, Long authorizedByPersonId) {
|
||||
maybeAddSealPersons(essSealId, Sets.newHashSet(personId));
|
||||
maybeAddSealPerson(essSealId, personId);
|
||||
essSealPersonDao.setPersonAuthorized(essSealId, personId, authorizedByPersonId);
|
||||
log.info("add seal authorization: essSealId={}, personId={}, authorizedByPersonId={}",
|
||||
essSealId, personId, authorizedByPersonId);
|
||||
@ -143,34 +135,27 @@ public class OrgManager {
|
||||
|
||||
@BizTransactional
|
||||
public void removeSealAuthorization(String essSealId, Long personId) {
|
||||
maybeAddSealPersons(essSealId, Sets.newHashSet(personId));
|
||||
maybeAddSealPerson(essSealId, personId);
|
||||
essSealPersonDao.removeSealAuthorization(essSealId, personId);
|
||||
log.info("add seal authorization: essSealId={}, personId={}", essSealId, personId);
|
||||
}
|
||||
|
||||
@BizTransactional
|
||||
public void maybeAddSealPersons(String essSealId, Set<Long> personIds) {
|
||||
public void maybeAddSealPerson(String essSealId, Long personId) {
|
||||
EssSeal seal = essSealDao.findByEssSealId(essSealId).orElse(null);
|
||||
BizAssertions.assertNotNull(seal, "印章不存在: {}", essSealId);
|
||||
SealPersons sealPersons = SealPersons.wrap(
|
||||
essSealPersonDao.getBySealAndPersonIds(essSealId, personIds));
|
||||
List<EssSealPerson> newPersons = personIds.stream()
|
||||
.filter(personId -> !sealPersons.containsPerson(personId))
|
||||
.map(personId -> {
|
||||
EssSealPerson savedSealPerson = essSealPersonDao.find(essSealId, personId, true)
|
||||
.orElse(null);
|
||||
if (savedSealPerson != null)
|
||||
return;
|
||||
EssSealPerson sealPerson = new EssSealPerson();
|
||||
//noinspection DataFlowIssue
|
||||
sealPerson.setOuId(seal.getOuId());
|
||||
sealPerson.setEssSealId(essSealId);
|
||||
sealPerson.setPersonId(personId);
|
||||
sealPerson.setIsAuthorized(YesOrNo.NO);
|
||||
return sealPerson;
|
||||
})
|
||||
.collect(toList());
|
||||
if (CollectionUtils.isEmpty(newPersons))
|
||||
return;
|
||||
try {
|
||||
essSealPersonDao.saveBatch(newPersons);
|
||||
log.info("add seal persons: {}", JSON.toJSONString(newPersons));
|
||||
essSealPersonDao.save(sealPerson);
|
||||
} catch (DuplicateKeyException ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import cn.axzo.nanopart.ess.api.domain.EssOrgAndSealInfo;
|
||||
import cn.axzo.nanopart.ess.api.domain.EssOrgInfo;
|
||||
import cn.axzo.nanopart.ess.api.domain.EssSealInfo;
|
||||
import cn.axzo.nanopart.ess.api.domain.EssSealPersonInfo;
|
||||
import cn.axzo.nanopart.ess.api.domain.PersonProfileInfo;
|
||||
import cn.axzo.nanopart.ess.api.enums.EssPersonState;
|
||||
import cn.axzo.nanopart.ess.api.enums.EssSealState;
|
||||
import cn.axzo.nanopart.ess.api.request.GetOrgAuthStatesRequest;
|
||||
@ -38,6 +39,7 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
import static java.util.stream.Collectors.groupingBy;
|
||||
import static java.util.stream.Collectors.toSet;
|
||||
@ -127,10 +129,7 @@ public class QueryService {
|
||||
sealPersonInfo.setPersonAuthorized(essPerson.isAuthorized());
|
||||
sealPersonInfo.setAuthorizeTimeMs(sealPerson.getAuthorizeTime() == null
|
||||
? null : sealPerson.getAuthorizeTime().getTime());
|
||||
PersonProfileDto person = personProfiles.findOrNull(sealPerson.getPersonId());
|
||||
sealPersonInfo.setPersonName(person == null ? "" : person.getRealName());
|
||||
PersonProfileDto authorizedBy = personProfiles.findOrNull(sealPerson.getAuthorizedByPersonId());
|
||||
sealPersonInfo.setAuthorizedByPersonName(authorizedBy == null ? "" : authorizedBy.getRealName());
|
||||
populatePersons(sealPerson, sealPersonInfo, personProfiles);
|
||||
sealInfo.addSealPerson(sealPersonInfo);
|
||||
}
|
||||
}
|
||||
@ -164,13 +163,24 @@ public class QueryService {
|
||||
sealPersonInfo.setPersonAuthorized(essPerson.isAuthorized());
|
||||
sealPersonInfo.setAuthorizeTimeMs(sealPerson.getAuthorizeTime() == null
|
||||
? null : sealPerson.getAuthorizeTime().getTime());
|
||||
PersonProfileDto person = personProfiles.findOrNull(sealPerson.getPersonId());
|
||||
sealPersonInfo.setPersonName(person == null ? "" : person.getRealName());
|
||||
PersonProfileDto authorizedBy = personProfiles.findOrNull(sealPerson.getAuthorizedByPersonId());
|
||||
sealPersonInfo.setAuthorizedByPersonName(authorizedBy == null ? "" : authorizedBy.getRealName());
|
||||
populatePersons(sealPerson, sealPersonInfo, personProfiles);
|
||||
sealPersonsInfo.add(sealPersonInfo);
|
||||
}
|
||||
return sealPersonsInfo;
|
||||
}
|
||||
|
||||
private void populatePersons(EssSealPerson sealPerson,
|
||||
EssSealPersonInfo sealPersonInfo,
|
||||
PersonProfiles personProfiles) {
|
||||
BiConsumer<Long, PersonProfileInfo> builder = (personId, profileInfo) -> {
|
||||
PersonProfileDto profile = personProfiles.findOrNull(personId);
|
||||
if (profile == null) return;
|
||||
profileInfo.setPersonId(personId);
|
||||
profileInfo.setPersonName(profile.getRealName());
|
||||
profileInfo.setAvatar(profile.getAvatarUrl());
|
||||
};
|
||||
builder.accept(sealPerson.getPersonId(), sealPersonInfo.getSealPerson());
|
||||
builder.accept(sealPerson.getAuthorizedByPersonId(), sealPersonInfo.getAuthorizedByPerson());
|
||||
}
|
||||
|
||||
}
|
||||
@ -7,7 +7,7 @@ import cn.axzo.nanopart.ess.api.domain.EssOrgAndSealInfo;
|
||||
import cn.axzo.nanopart.ess.api.domain.EssSealPersonInfo;
|
||||
import cn.axzo.nanopart.ess.api.domain.contract.EssContractInfo;
|
||||
import cn.axzo.nanopart.ess.api.request.AddSealAuthorizationRequest;
|
||||
import cn.axzo.nanopart.ess.api.request.AddSealPersonsRequest;
|
||||
import cn.axzo.nanopart.ess.api.request.AddSealPersonRequest;
|
||||
import cn.axzo.nanopart.ess.api.request.CreateConsoleLoginUrlRequest;
|
||||
import cn.axzo.nanopart.ess.api.request.CreateContractByFileRequest;
|
||||
import cn.axzo.nanopart.ess.api.request.DownloadSingedContractPdfRequest;
|
||||
@ -97,9 +97,9 @@ class ApiController implements EssApi {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Void> addSealPersons(AddSealPersonsRequest request) {
|
||||
log.info("addSealPersons request={}", request);
|
||||
orgManager.maybeAddSealPersons(request.getEssSealId(), request.getPersonIds());
|
||||
public ApiResult<Void> addSealPerson(AddSealPersonRequest request) {
|
||||
log.info("addSealPerson request={}", request);
|
||||
orgManager.maybeAddSealPerson(request.getEssSealId(), request.getPersonId());
|
||||
return ApiResult.ok();
|
||||
}
|
||||
|
||||
|
||||
@ -552,7 +552,7 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
||||
stampUserMap.forEach((key, value) -> {
|
||||
if (CollectionUtils.isNotEmpty(value)) {
|
||||
result.put(key, value.stream().map(u -> BpmnTaskDelegateAssigner.builder()
|
||||
.personId(String.valueOf(u.getPersonId()))
|
||||
.personId(String.valueOf(u.getSealPerson().getPersonId()))
|
||||
.ouId(String.valueOf(u.getOuId()))
|
||||
.tenantId(NO_TENANT_ID)
|
||||
.build()).collect(Collectors.toList()));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user