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