REQ-3581: 备份
This commit is contained in:
parent
9f27605b1a
commit
d01c5e4314
@ -68,7 +68,7 @@ public class EssContractDao extends ServiceImpl<EssContractMapper, EssContract>
|
||||
.update();
|
||||
}
|
||||
|
||||
public void setOssKey(EssContract contract, String fileKey) {
|
||||
public void setOssFileKey(EssContract contract, String fileKey) {
|
||||
lambdaUpdate()
|
||||
.eq(EssContract::getId, contract.getId())
|
||||
.set(EssContract::getOssFileKey, fileKey)
|
||||
|
||||
@ -1,9 +1,11 @@
|
||||
package cn.axzo.nanopart.ess.server.dao;
|
||||
|
||||
import cn.axzo.nanopart.ess.api.utils.YesOrNo;
|
||||
import cn.axzo.nanopart.ess.server.entity.EssLog;
|
||||
import cn.axzo.nanopart.ess.server.mapper.EssLogMapper;
|
||||
import cn.axzo.nanopart.ess.server.utils.BizAssertions;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.base.Throwables;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
@ -17,9 +19,17 @@ public class EssLogDao extends ServiceImpl<EssLogMapper, EssLog> {
|
||||
}
|
||||
|
||||
public void log(String context, Object subject, Object... logContents) {
|
||||
log(null, context, subject, logContents);
|
||||
}
|
||||
|
||||
public void log(Exception exception, String context, Object subject, Object... logContents) {
|
||||
EssLog log = new EssLog();
|
||||
log.setContext(context);
|
||||
log.setSubject(String.valueOf(subject));
|
||||
if (exception != null) {
|
||||
log.setIsError(YesOrNo.YES);
|
||||
log.addLogContent("exception", Throwables.getStackTraceAsString(exception));
|
||||
}
|
||||
if (logContents != null && logContents.length > 0) {
|
||||
BizAssertions.assertTrue(logContents.length % 2 == 0, "logContents must be even");
|
||||
for (int i = 0; i < logContents.length; i += 2) {
|
||||
|
||||
@ -144,7 +144,9 @@ public class EssContract extends BaseEntity<EssContract> {
|
||||
.findFirst();
|
||||
}
|
||||
|
||||
public boolean isAllSignPersonPreset() {
|
||||
public boolean isApproversPreset() {
|
||||
if (approvers == null)
|
||||
return false;
|
||||
return approvers.stream().allMatch(Approver::isSignPersonPresent);
|
||||
}
|
||||
|
||||
|
||||
@ -1,14 +0,0 @@
|
||||
package cn.axzo.nanopart.ess.server.entity.domain;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Setter
|
||||
@Getter
|
||||
public class OrgRecipientId {
|
||||
private Long ouId;
|
||||
private String recipientId;
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.axzo.nanopart.ess.server.dao.domain;
|
||||
package cn.axzo.nanopart.ess.server.entity.domain;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
@ -85,7 +85,11 @@ public class EssService {
|
||||
}
|
||||
|
||||
public void essAddSealAuthorization(AddSealAuthorizationRequest request) {
|
||||
essLogDao.logRequest("essAddSealAuthorization", request.getEssSealId(), request);
|
||||
String subject = IdBuilder.builder()
|
||||
.append(request.getEssSealId())
|
||||
.append(request.getPersonId())
|
||||
.build();
|
||||
essLogDao.logRequest("essAddSealAuthorization", subject, request);
|
||||
SealAndPerson sealAndPerson = getSealAndPersonOrThrow(request);
|
||||
EssSealPerson sealPerson = sealAndPerson.getSealPerson();
|
||||
if (sealPerson.getIsAuthorized().isYes())
|
||||
@ -99,7 +103,11 @@ public class EssService {
|
||||
}
|
||||
|
||||
public void essRemoveSealAuthorization(RemoveSealAuthorizationRequest request) {
|
||||
essLogDao.logRequest("essRemoveSealAuthorization", request.getEssSealId(), request);
|
||||
String subject = IdBuilder.builder()
|
||||
.append(request.getEssSealId())
|
||||
.append(request.getPersonId())
|
||||
.build();
|
||||
essLogDao.logRequest("essRemoveSealAuthorization", subject, request);
|
||||
SealAndPerson sealAndPerson = getSealAndPersonOrThrow(request);
|
||||
if (sealAndPerson.getSealPerson().getIsAuthorized().isNo())
|
||||
return;
|
||||
@ -120,7 +128,12 @@ public class EssService {
|
||||
}
|
||||
|
||||
public String getContractSignUrl(GetSignUrlRequest request) {
|
||||
essLogDao.logRequest("getContractSignUrl", request.getEssContractId(), request);
|
||||
String subject = IdBuilder.builder()
|
||||
.append(request.getEssContractId())
|
||||
.append(request.getOuId())
|
||||
.append(request.getPersonId())
|
||||
.build();
|
||||
essLogDao.logRequest("getContractSignUrl", subject, request);
|
||||
EssPerson signPerson = essPersonDao.findOrNull(request);
|
||||
BizAssertions.assertNotNull(signPerson, "当前签署人员未加入单位, 无法签署");
|
||||
EssContract contract = essContractDao.getOrThrow(request.getEssContractId());
|
||||
@ -137,7 +150,7 @@ public class EssService {
|
||||
? signUrlInfo.getSignQrcodeUrl()
|
||||
: signUrlInfo.getSignUrl();
|
||||
};
|
||||
if (contract.isAllSignPersonPreset())
|
||||
if (contract.isApproversPreset())
|
||||
return signUrlFun.apply(null);
|
||||
BizAssertions.assertFalse(StringUtils.isBlank(request.getRecipientId()),
|
||||
"存在动态签署人的情况下, recipientId不能为空");
|
||||
@ -173,17 +186,19 @@ public class EssService {
|
||||
|
||||
public void maybeUploadContractToOss(EssContract contract) {
|
||||
essSupport.asyncExec(() -> {
|
||||
EssContract c = essContractDao.findOrNull(contract.getEssContractId());
|
||||
if (c == null || !c.shouldDownloadContract() || StringUtils.isNotBlank(c.getOssFileKey()))
|
||||
return;
|
||||
try {
|
||||
EssContract c = essContractDao.findOrNull(contract.getEssContractId());
|
||||
if (c == null || !c.shouldDownloadContract() || StringUtils.isNotBlank(c.getOssFileKey()))
|
||||
return;
|
||||
String pdfUrl = getContractPDFUrlFromEss(c);
|
||||
String fileName = String.format("%s.pdf", c.getContractName());
|
||||
String fileKey = ossService.uploadToOss(pdfUrl, fileName);
|
||||
essContractDao.setOssKey(c, fileKey);
|
||||
essContractDao.setOssFileKey(c, fileKey);
|
||||
essLogDao.log("uploadContractToOss", c.getEssContractId());
|
||||
log.info("上传合同到OSS成功, essContractId={}", c.getEssContractId());
|
||||
} catch (Exception e) {
|
||||
log.warn("上传合同到OSS失败", e);
|
||||
essLogDao.log(e, "uploadContractToOss", c.getEssContractId());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@ import cn.axzo.nanopart.ess.server.dao.EssOrgDao;
|
||||
import cn.axzo.nanopart.ess.server.dao.EssPersonDao;
|
||||
import cn.axzo.nanopart.ess.server.entity.EssOrg;
|
||||
import cn.axzo.nanopart.ess.server.entity.EssPerson;
|
||||
import cn.axzo.nanopart.ess.server.utils.IdBuilder;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -65,15 +66,17 @@ public class PersonResignListener extends BaseListener
|
||||
EssOrg org = essOrgDao.findOrNull(event.getOuId());
|
||||
if (org == null) return;
|
||||
EssPerson person = essPersonDao.findOrNull(event.getOuId(), event.getPersonId());
|
||||
String subject = IdBuilder.builder()
|
||||
.append(event.getOuId())
|
||||
.append(event.getPersonId())
|
||||
.build();
|
||||
if (person == null) {
|
||||
essLogDao.log("personResigned", event.getOuId(),
|
||||
"event", event, "isAuthorized", false);
|
||||
essLogDao.log("personResigned", subject, "event", event, "isAuthorized", false);
|
||||
return;
|
||||
}
|
||||
EssPerson superAdmin = orgManager.getSuperAdminOrThrow(event.getOuId());
|
||||
boolean isSuperAdmin = superAdmin.getPersonId().equals(event.getPersonId());
|
||||
essLogDao.log("personResigned", person.getOuId(),
|
||||
"event", event, "isSuperAdmin", isSuperAdmin);
|
||||
essLogDao.log("personResigned", subject, "event", event, "isSuperAdmin", isSuperAdmin);
|
||||
if (isSuperAdmin) {
|
||||
log.info("ignore super admin resigned: {}", JSON.toJSONString(person));
|
||||
return;
|
||||
|
||||
@ -17,7 +17,7 @@ import cn.axzo.nanopart.ess.server.dao.EssOrgDao;
|
||||
import cn.axzo.nanopart.ess.server.dao.EssPersonDao;
|
||||
import cn.axzo.nanopart.ess.server.dao.EssSealDao;
|
||||
import cn.axzo.nanopart.ess.server.dao.EssSealPersonDao;
|
||||
import cn.axzo.nanopart.ess.server.dao.domain.OuAndPersonId;
|
||||
import cn.axzo.nanopart.ess.server.entity.domain.OuAndPersonId;
|
||||
import cn.axzo.nanopart.ess.server.entity.EssOrg;
|
||||
import cn.axzo.nanopart.ess.server.entity.EssPerson;
|
||||
import cn.axzo.nanopart.ess.server.entity.EssSeal;
|
||||
|
||||
@ -2,7 +2,6 @@ package cn.axzo.nanopart.ess.server.ess.support;
|
||||
|
||||
import cn.axzo.basics.profiles.api.UserProfileServiceApi;
|
||||
import cn.axzo.basics.profiles.dto.basic.PersonProfileDto;
|
||||
import cn.axzo.basics.profiles.dto.request.QueryPersonProfileByIdOrPhoneDto;
|
||||
import cn.axzo.maokai.api.client.OrganizationalUnitApi;
|
||||
import cn.axzo.maokai.api.vo.request.OrganizationalUnitQuery;
|
||||
import cn.axzo.maokai.api.vo.response.OrganizationalUnitVO;
|
||||
@ -41,7 +40,7 @@ public class EssSupport {
|
||||
|
||||
private final ExecutorService executor = new ThreadPoolExecutor(1, 5,
|
||||
0L, TimeUnit.MILLISECONDS,
|
||||
new ArrayBlockingQueue<>(200),
|
||||
new ArrayBlockingQueue<>(1024),
|
||||
new NamedThreadFactory(EssSupport.class.getName(), false),
|
||||
new CallerRunsPolicy());
|
||||
|
||||
@ -93,13 +92,6 @@ public class EssSupport {
|
||||
return person;
|
||||
}
|
||||
|
||||
public Optional<PersonProfileDto> findPersonByPhone(String phone) {
|
||||
QueryPersonProfileByIdOrPhoneDto request = new QueryPersonProfileByIdOrPhoneDto();
|
||||
request.setPhones(Collections.singletonList(phone));
|
||||
List<PersonProfileDto> profiles = assertResponse(userProfileServiceApi.findPersonProfileListByIdOrPhone(request));
|
||||
return CollectionUtils.isEmpty(profiles) ? Optional.empty() : Optional.of(profiles.get(0));
|
||||
}
|
||||
|
||||
public Optional<PersonProfileDto> findPersonProfile(OrgPerson orgPerson) {
|
||||
CommonResponse<PersonProfileDto> response = userProfileServiceApi.getPersonProfile(orgPerson.getPersonId());
|
||||
if (response.getCode() == 404)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user