From 4ef87a2398db569291f8aa665e4d18050e94a090 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 13 十月 2026 00:07:33 +0800
Subject: [PATCH] feat(crm): 合同模块新增导出选中功能

---
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/invoice/CrmInvoiceServiceImpl.java |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/invoice/CrmInvoiceServiceImpl.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/invoice/CrmInvoiceServiceImpl.java
index a59c979..33adf57 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/invoice/CrmInvoiceServiceImpl.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/invoice/CrmInvoiceServiceImpl.java
@@ -11,6 +11,7 @@
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
 import cn.iocoder.yudao.framework.dict.core.DictFrameworkUtils;
+import cn.iocoder.yudao.framework.operatelog.core.util.OperateLogUtils;
 import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
 import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
 import cn.iocoder.yudao.module.crm.controller.admin.invoice.vo.invoice.CrmInvoiceImportExcelVO;
@@ -131,12 +132,16 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
+    @LogRecord(type = CRM_INVOICE_TYPE, subType = CRM_INVOICE_IMPORT_SUB_TYPE, bizNo = "0",
+            success = CRM_INVOICE_IMPORT_SUCCESS)
     public CrmInvoiceImportRespVO importInvoiceList(List<CrmInvoiceImportExcelVO> importList) {
         CrmInvoiceImportRespVO respVO = CrmInvoiceImportRespVO.builder()
                 .createList(new ArrayList<>())
                 .failureList(new LinkedHashMap<>())
                 .build();
         if (CollUtil.isEmpty(importList)) {
+            // 绌烘枃浠朵篃瑕佺粰鏃ュ織鏂囨鍏滃簳锛岄伩鍏� {{#importSummary}} 鍙栦笉鍒板��
+            OperateLogUtils.putImportSummary(respVO.getCreateList(), null, respVO.getFailureList());
             return respVO;
         }
 
@@ -160,6 +165,8 @@
                 respVO.getFailureList().put(label, resolveImportErrorMessage(ex));
             }
         }
+        // 璁板綍瀵煎叆缁撴灉姹囨�伙紝渚� @LogRecord 鐨� success 鏂囨寮曠敤锛堝紑绁ㄥ鍏ユ棤銆屾洿鏂般�嶅垎鏀紝鏁呬紶 null锛�
+        OperateLogUtils.putImportSummary(respVO.getCreateList(), null, respVO.getFailureList());
         return respVO;
     }
 
@@ -473,6 +480,15 @@
                 .setId(invoice.getId()).setContractId(invoice.getContractId()).setPrice(invoice.getPrice()));
 
         // 2. 鍒涘缓寮�绁ㄥ鎵规祦绋嬪疄渚�
+        // 鍏ㄥ眬鍏嶅鎵癸細涓氬姟鏍¢獙閫氳繃鍚庣洿鎺ユ墽琛屽鎵归�氳繃閫昏緫锛屾棤闇�娴佺▼妯″瀷銆�
+        if (bpmProcessInstanceApi.isGlobalAutoApprove()) {
+            invoiceMapper.updateById(new CrmInvoiceDO().setId(id).setProcessInstanceId("")
+                    .setAuditStatus(CrmAuditStatusEnum.PROCESS.getStatus()));
+            updateInvoiceAuditStatus(id, cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum.APPROVE.getStatus());
+            LogRecordContext.putVariable("invoiceNo", invoice.getNo());
+            return;
+        }
+
         String processInstanceId = bpmProcessInstanceApi.createProcessInstance(userId, new BpmProcessInstanceCreateReqDTO()
                 .setProcessDefinitionKey(BPM_PROCESS_DEFINITION_KEY).setBusinessKey(String.valueOf(id)));
 

--
Gitblit v1.9.3