REQ-3581: 印章授权人问题
This commit is contained in:
parent
1cffe92afd
commit
a2c83d1edf
@ -20,17 +20,23 @@ import cn.axzo.nanopart.ess.server.mapper.EssSealPersonMapper;
|
|||||||
@Repository("essSealPersonDao")
|
@Repository("essSealPersonDao")
|
||||||
public class EssSealPersonDao extends ServiceImpl<EssSealPersonMapper, EssSealPerson> {
|
public class EssSealPersonDao extends ServiceImpl<EssSealPersonMapper, EssSealPerson> {
|
||||||
|
|
||||||
public void setPersonAuthorized(String essSealId, Long personId, Long authorizedByPersonId) {
|
public void setPersonAuthorized(String essSealId, Long personId) {
|
||||||
lambdaUpdate() //
|
lambdaUpdate() //
|
||||||
.eq(EssSealPerson::getEssSealId, essSealId) //
|
.eq(EssSealPerson::getEssSealId, essSealId) //
|
||||||
.eq(EssSealPerson::getPersonId, personId) //
|
.eq(EssSealPerson::getPersonId, personId) //
|
||||||
.set(authorizedByPersonId != null && authorizedByPersonId > 0, EssSealPerson::getAuthorizedByPersonId,
|
|
||||||
authorizedByPersonId) //
|
|
||||||
.set(EssSealPerson::getIsAuthorized, YesOrNo.YES) //
|
.set(EssSealPerson::getIsAuthorized, YesOrNo.YES) //
|
||||||
.set(EssSealPerson::getAuthorizeTime, new Date()) //
|
.set(EssSealPerson::getAuthorizeTime, new Date()) //
|
||||||
.update();
|
.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setSealPersonAuthorizedBy(String essSealId, Long personId, Long authorizedByPersonId) {
|
||||||
|
lambdaUpdate() //
|
||||||
|
.eq(EssSealPerson::getEssSealId, essSealId) //
|
||||||
|
.eq(EssSealPerson::getPersonId, personId) //
|
||||||
|
.set(EssSealPerson::getAuthorizedByPersonId, authorizedByPersonId) //
|
||||||
|
.update();
|
||||||
|
}
|
||||||
|
|
||||||
public void removeSealAuthorization(String essSealId, Long personId) {
|
public void removeSealAuthorization(String essSealId, Long personId) {
|
||||||
lambdaUpdate() //
|
lambdaUpdate() //
|
||||||
.eq(EssSealPerson::getEssSealId, essSealId) //
|
.eq(EssSealPerson::getEssSealId, essSealId) //
|
||||||
|
|||||||
@ -103,7 +103,8 @@ public class EssService {
|
|||||||
BizAssertions.assertTrue(essPerson.isAuthorized(), "人员未加入单位, 无法授权");
|
BizAssertions.assertTrue(essPerson.isAuthorized(), "人员未加入单位, 无法授权");
|
||||||
EssPerson superAdmin = orgManager.getSuperAdminOrThrow(sealAndPerson.getSeal().getOuId());
|
EssPerson superAdmin = orgManager.getSuperAdminOrThrow(sealAndPerson.getSeal().getOuId());
|
||||||
essClient.addSealAuthorization(superAdmin, sealAndPerson.getSeal(), sealPerson);
|
essClient.addSealAuthorization(superAdmin, sealAndPerson.getSeal(), sealPerson);
|
||||||
orgManager.maybeAddPersonAndSetSealAuthorized(request.getEssSealId(), request.getPersonId(),
|
orgManager.maybeAddPersonAndSetSealAuthorized(request.getEssSealId(), request.getPersonId());
|
||||||
|
orgManager.setSealPersonAuthorizedBy(request.getEssSealId(), request.getPersonId(),
|
||||||
request.getOperatorPersonId());
|
request.getOperatorPersonId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -145,14 +145,16 @@ public class OrgManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@BizTransactional
|
@BizTransactional
|
||||||
public void maybeAddPersonAndSetSealAuthorized(String essSealId, Long personId, Long authorizedByPersonId) {
|
public void maybeAddPersonAndSetSealAuthorized(String essSealId, Long personId) {
|
||||||
maybeAddSealPerson(essSealId, personId);
|
maybeAddSealPerson(essSealId, personId);
|
||||||
essSealPersonDao.setPersonAuthorized(essSealId, personId, authorizedByPersonId);
|
essSealPersonDao.setPersonAuthorized(essSealId, personId);
|
||||||
String subject = idbuilder().append(essSealId).append(personId).build();
|
String subject = idbuilder().append(essSealId).append(personId).build();
|
||||||
essLogDao.log("maybeAddPersonAndSetSealAuthorized", subject, "personId", personId, "authorizedBy",
|
essLogDao.log("maybeAddPersonAndSetSealAuthorized", subject, "personId", personId);
|
||||||
authorizedByPersonId);
|
log.info("add seal authorization: essSealId={}, personId={}", essSealId, personId);
|
||||||
log.info("add seal authorization: essSealId={}, personId={}, authorizedByPersonId={}", essSealId, personId,
|
}
|
||||||
authorizedByPersonId);
|
|
||||||
|
public void setSealPersonAuthorizedBy(String essSealId, Long personId, Long authorizedByPersonId) {
|
||||||
|
essSealPersonDao.setSealPersonAuthorizedBy(essSealId, personId, authorizedByPersonId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@BizTransactional
|
@BizTransactional
|
||||||
@ -161,7 +163,7 @@ public class OrgManager {
|
|||||||
essSealPersonDao.removeSealAuthorization(essSealId, personId);
|
essSealPersonDao.removeSealAuthorization(essSealId, personId);
|
||||||
String subject = idbuilder().append(essSealId).append(personId).build();
|
String subject = idbuilder().append(essSealId).append(personId).build();
|
||||||
essLogDao.log("removeSealAuthorization", subject, "personId", personId);
|
essLogDao.log("removeSealAuthorization", subject, "personId", personId);
|
||||||
log.info("add seal authorization: essSealId={}, personId={}", essSealId, personId);
|
log.info("remove seal authorization: essSealId={}, personId={}", essSealId, personId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@BizTransactional
|
@BizTransactional
|
||||||
|
|||||||
@ -123,9 +123,11 @@ class CallbackController implements EssCallbackApi, InitializingBean {
|
|||||||
boolean sealCreated = orgManager.maybeAddSeal(ou.getOuId(), operate.getSealId(),
|
boolean sealCreated = orgManager.maybeAddSeal(ou.getOuId(), operate.getSealId(),
|
||||||
EssSealType.fromEssCode(operate.getSealType()));
|
EssSealType.fromEssCode(operate.getSealType()));
|
||||||
// 1. 印章创建人会自动获得授权; 2. 避免miss create事件
|
// 1. 印章创建人会自动获得授权; 2. 避免miss create事件
|
||||||
if (sealCreated)
|
if (sealCreated) {
|
||||||
orgManager.maybeAddPersonAndSetSealAuthorized(operate.getSealId(), operator.getPersonId(),
|
orgManager.maybeAddPersonAndSetSealAuthorized(operate.getSealId(), operator.getPersonId());
|
||||||
|
orgManager.setSealPersonAuthorizedBy(operate.getSealId(), operator.getPersonId(),
|
||||||
operator.getPersonId());
|
operator.getPersonId());
|
||||||
|
}
|
||||||
if ("Delete".equals(operate.getOperate()))
|
if ("Delete".equals(operate.getOperate()))
|
||||||
orgManager.updateSealState(operate.getSealId(), EssSealState.DELETED);
|
orgManager.updateSealState(operate.getSealId(), EssSealState.DELETED);
|
||||||
if ("Disable".equals(operate.getOperate()))
|
if ("Disable".equals(operate.getOperate()))
|
||||||
@ -133,14 +135,15 @@ class CallbackController implements EssCallbackApi, InitializingBean {
|
|||||||
if ("Enable".equals(operate.getOperate()))
|
if ("Enable".equals(operate.getOperate()))
|
||||||
orgManager.updateSealState(operate.getSealId(), EssSealState.ENABLED);
|
orgManager.updateSealState(operate.getSealId(), EssSealState.ENABLED);
|
||||||
if ("Valid".equals(operate.getOperate())) {
|
if ("Valid".equals(operate.getOperate())) {
|
||||||
|
orgManager.maybeAddPersonAndSetSealAuthorized(operate.getSealId(), authorized.getPersonId());
|
||||||
EssSealPerson savedPerson = essSealPersonDao //
|
EssSealPerson savedPerson = essSealPersonDao //
|
||||||
.find(operate.getSealId(), authorized.getPersonId()) //
|
.find(operate.getSealId(), authorized.getPersonId()) //
|
||||||
.orElse(null);
|
.orElseThrow(InternalError::new);
|
||||||
// 可能从控制台直接授权
|
|
||||||
boolean authorizedByPreset = savedPerson != null && savedPerson.getAuthorizedByPersonId() > 0;
|
boolean authorizedByPreset = savedPerson != null && savedPerson.getAuthorizedByPersonId() > 0;
|
||||||
long authorizedByPersonId = authorizedByPreset ? 0L : operator.getPersonId();
|
// 可能从控制台直接授权
|
||||||
orgManager.maybeAddPersonAndSetSealAuthorized(operate.getSealId(), authorized.getPersonId(),
|
if (!authorizedByPreset)
|
||||||
authorizedByPersonId);
|
orgManager.setSealPersonAuthorizedBy(operate.getSealId(), authorized.getPersonId(),
|
||||||
|
operator.getPersonId());
|
||||||
}
|
}
|
||||||
if ("Invalid".equals(operate.getOperate()))
|
if ("Invalid".equals(operate.getOperate()))
|
||||||
orgManager.removeSealAuthorization(operate.getSealId(), authorized.getPersonId());
|
orgManager.removeSealAuthorization(operate.getSealId(), authorized.getPersonId());
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user