| | |
| | | |
| | | import cn.hutool.core.date.DateUtil; |
| | | import org.jeecg.common.api.vo.Result; |
| | | import org.jeecg.modules.demo.contract.controller.ContractParam; |
| | | import org.jeecg.modules.demo.contract.entity.SemanticWord; |
| | | import org.jeecg.modules.demo.copywriting.entity.CopyGenerateTask; |
| | | import org.jeecg.modules.demo.copywriting.entity.Copywriting; |
| | | import org.jeecg.modules.demo.copywriting.service.ICopywritingService; |
| | | import org.jeecg.modules.demo.copywriting.service.impl.CopyGenerateTaskServiceImpl; |
| | | import org.jeecg.modules.demo.copywritingScheme.entity.CopywritingScheme; |
| | | import org.jeecg.modules.demo.copywritingScheme.service.ICopywritingSchemeService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.annotation.Async; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | private CopywritingController copywritingController; |
| | | |
| | | @Autowired |
| | | private ICopywritingSchemeService copywritingSchemeService; |
| | | @Autowired |
| | | public ICopywritingService copywritingService; |
| | | @Async("copywritingAsyncExecutor") |
| | | public void asyncBatchGenerateCopy(String contractId, List<SemanticWord> semanticWords, |
| | | String fileName, String youshang, |
| | | String benchmarkUrl, |
| | | String auditor, String auditorName) { |
| | | public void asyncBatchGenerateCopy(List<SemanticWord> semanticWords, ContractParam cp) { |
| | | // 1. 生成唯一任务ID,创建待处理任务 |
| | | String taskId = UUID.randomUUID().toString().replace("-", ""); |
| | | CopyGenerateTask task = new CopyGenerateTask(); |
| | | task.setId(taskId); |
| | | task.setContractId(contractId); |
| | | task.setContractId(cp.getContractId()); |
| | | task.setStatus("PENDING"); |
| | | taskService.save(task); |
| | | |
| | |
| | | taskService.updateById(task); |
| | | |
| | | // 3. 执行实际的文案生成逻辑(你的核心业务) |
| | | System.out.println("开始处理合同[" + contractId + "]的文案生成"); |
| | | System.out.println("开始处理合同[" + cp.getContractId() + "]的文案生成"); |
| | | for (SemanticWord semanticWord : semanticWords) { |
| | | Copywriting copywriting = new Copywriting(); |
| | | Result title = copywritingController.getResult(semanticWord.getOutWord(), |
| | |
| | | } |
| | | copywriting.setStatus("1"); |
| | | copywriting.setWordId(semanticWord.getId()); |
| | | CopywritingScheme copywritingScheme = new CopywritingScheme(); |
| | | copywritingScheme.setId(cp.getCsId()); |
| | | Result text = copywritingController.getResult( |
| | | fileName, |
| | | benchmarkUrl, |
| | | cp.getFileName(), |
| | | cp.getBenchmarkUrl(), |
| | | cp.getBenchmarkUrl(), |
| | | semanticWord.getOutWord(), |
| | | youshang, |
| | | cp.getYoushang(), |
| | | semanticWord.getWord(), |
| | | "e9ca23d68d884d4ebb19d07889727dae"); |
| | | "e9ca23d68d884d4ebb19d07889727dae",copywritingScheme); |
| | | if (text.isSuccess()) { |
| | | copywriting.setText(text.getResult().toString()); |
| | | } else { |
| | | throw new IllegalArgumentException("生成失败!"+text.getResult().toString()); |
| | | } |
| | | copywriting.setAuditer(auditor); |
| | | copywriting.setAuditer(cp.getAuditor()); |
| | | copywriting.setOutStatus("1"); |
| | | copywriting.setCreateBy(auditorName); |
| | | copywriting.setCreateBy(cp.getAuditorName()); |
| | | copywriting.setFileName(cp.getFileName()); |
| | | copywriting.setUrlName(cp.getBenchmarkUrl()); |
| | | copywritingService.save(copywriting); |
| | | } |
| | | // 假设生成成功,这里可以记录生成结果 |
| | | task.setStatus("SUCCESS"); |
| | | task.setMessage("文案生成完成,共生成" + semanticWords.size() + "条"); |
| | | task.setFinishTime(new Date()); |
| | | System.out.println("完成处理合同[" + contractId + "]的文案生成"); |
| | | System.out.println("完成处理合同[" + cp.getContractId() + "]的文案生成"); |
| | | |
| | | } catch (Exception e) { |
| | | // 4. 异常时更新为失败状态,记录原因 |