diff --git a/ess/ess-api/src/main/java/cn/axzo/nanopart/ess/api/enums/MQEvent.java b/ess/ess-api/src/main/java/cn/axzo/nanopart/ess/api/enums/MQEvent.java index 56f35c6c..f1c1b673 100644 --- a/ess/ess-api/src/main/java/cn/axzo/nanopart/ess/api/enums/MQEvent.java +++ b/ess/ess-api/src/main/java/cn/axzo/nanopart/ess/api/enums/MQEvent.java @@ -1,11 +1,11 @@ package cn.axzo.nanopart.ess.api.enums; +import java.util.Arrays; + import cn.axzo.framework.rocketmq.Event; import lombok.Getter; -import java.util.Arrays; - /** * @Author zr * @Date 2024/3/19 18:01 @@ -15,7 +15,6 @@ import java.util.Arrays; public enum MQEvent { ESS_CONTRACT_STATE_CHANGE("nanopart", "ess-contract-state-change", "腾讯电子签合同状态变化"), - ESS_CONTRACT_DOWNLOAD_PDF("nanopart", "ess-contract-download-pdf", "腾讯电子签合同下载PDF"), ; private final String model; diff --git a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/EssService.java b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/EssService.java index 5877a94a..1b336db0 100644 --- a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/EssService.java +++ b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/EssService.java @@ -183,6 +183,10 @@ public class EssService { public void saveContractSnapshot(SaveContractSnapshotRequest request) { essLogDao.logRequest("saveContractSnapshot", request.getEssContractId(), request); EssContract contract = essContractDao.getOrThrow(request.getEssContractId()); + if (contract.isSavedOnOss() && !request.isRetryDownload()) { + log.info("合同已保存快照, contract={}", contract); + return; + } contract.getOrCreateExt().setSaveContractSnapshotArbitrarily(true); essContractDao.updateExt(contract); maybeScheduleDownloadContractPDF(contract, request.isRetryDownload()); diff --git a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/mq/DownloadContractHandler.java b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/mq/DownloadContractHandler.java index 3bfa4f22..75b7e896 100644 --- a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/mq/DownloadContractHandler.java +++ b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/mq/DownloadContractHandler.java @@ -1,21 +1,20 @@ package cn.axzo.nanopart.ess.server.ess.mq; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.stereotype.Component; + +import com.alibaba.fastjson.JSON; + import cn.axzo.framework.rocketmq.Event; import cn.axzo.framework.rocketmq.EventConsumer; import cn.axzo.framework.rocketmq.EventHandler; -import cn.axzo.nanopart.ess.api.enums.MQEvent; import cn.axzo.nanopart.ess.api.mq.EssContractDownloadPDFEvent; import cn.axzo.nanopart.ess.server.dao.EssContractDao; import cn.axzo.nanopart.ess.server.entity.EssContract; import cn.axzo.nanopart.ess.server.ess.EssService; -import com.alibaba.fastjson.JSON; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.stereotype.Component; - -import java.util.Collections; /** * @@ -45,8 +44,7 @@ public class DownloadContractHandler implements EventHandler, InitializingBean { @Override public void afterPropertiesSet() { - eventConsumer.registerHandlers(Collections.singletonList(MQEvent.ESS_CONTRACT_DOWNLOAD_PDF.getEventCode()), - this); + eventConsumer.registerHandler(InternalMQEvent.ESS_CONTRACT_DOWNLOAD_PDF.getEventCode(), this); } } diff --git a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/mq/EssBroadcaster.java b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/mq/EssBroadcaster.java index d6f0c9e3..2669fb30 100644 --- a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/mq/EssBroadcaster.java +++ b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/mq/EssBroadcaster.java @@ -47,7 +47,7 @@ public class EssBroadcaster { message.setRetryDownload(retryDownload); // @formatter:off eventProducer.send(Event.builder() - .eventCode(MQEvent.ESS_CONTRACT_DOWNLOAD_PDF.getEventCode()) + .eventCode(InternalMQEvent.ESS_CONTRACT_DOWNLOAD_PDF.getEventCode()) .shardingKey(contract.getEssContractId()) .targetId(contract.getEssContractId()) .targetType("ess-contract") diff --git a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/mq/InternalMQEvent.java b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/mq/InternalMQEvent.java new file mode 100644 index 00000000..5045b7fd --- /dev/null +++ b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/mq/InternalMQEvent.java @@ -0,0 +1,35 @@ + +package cn.axzo.nanopart.ess.server.ess.mq; + +import java.util.Arrays; + +import cn.axzo.framework.rocketmq.Event; +import lombok.Getter; + +/** + * @Author zr + * @Date 2024/3/19 18:01 + * @Description + **/ +@Getter +public enum InternalMQEvent { + + ESS_CONTRACT_DOWNLOAD_PDF("nanopart", "ess-contract-download-pdf", "腾讯电子签合同下载PDF"), + + ; + private final String model; + private final String tag; + private final String desc; + private final Event.EventCode eventCode; + + InternalMQEvent(String model, String tag, String desc) { + this.eventCode = Event.EventCode.builder().module(model).name(tag).build(); + this.model = model; + this.tag = tag; + this.desc = desc; + } + + public static InternalMQEvent getByName(String name) { + return Arrays.stream(InternalMQEvent.values()).filter(item -> item.name().equals(name)).findFirst().orElse(null); + } +} diff --git a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/mq/PersonResignHandler.java b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/mq/PersonResignHandler.java index a79215c5..d1d1436a 100644 --- a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/mq/PersonResignHandler.java +++ b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/mq/PersonResignHandler.java @@ -1,8 +1,6 @@ package cn.axzo.nanopart.ess.server.ess.mq; -import java.util.Collections; - import org.springframework.beans.factory.InitializingBean; import org.springframework.stereotype.Component; @@ -76,7 +74,6 @@ public class PersonResignHandler implements EventHandler, InitializingBean { @Override public void afterPropertiesSet() { - eventConsumer.registerHandlers(Collections.singletonList(Event.EventCode.from("org-user:org-user-movement")), - this); + eventConsumer.registerHandler(Event.EventCode.from("org-user:org-user-movement"), this); } }