From f85d6c2edfb1a003c299c16b3a7509dbef9c9b2a Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 24 三月 2026 12:20:59 +0800
Subject: [PATCH] 采购台账增加审批流程

---
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java |   50 ++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 40 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index 0cbe9d1..3598e44 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -11,6 +11,8 @@
 import com.ruoyi.account.pojo.AccountExpense;
 import com.ruoyi.account.pojo.AccountIncome;
 import com.ruoyi.account.service.AccountIncomeService;
+import com.ruoyi.approve.service.IApproveProcessService;
+import com.ruoyi.approve.vo.ApproveProcessVO;
 import com.ruoyi.basic.mapper.CustomerMapper;
 import com.ruoyi.basic.pojo.Customer;
 import com.ruoyi.common.enums.FileNameType;
@@ -36,6 +38,7 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.script.DefaultRedisScript;
+import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -46,6 +49,7 @@
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.StandardCopyOption;
+import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.YearMonth;
@@ -68,6 +72,8 @@
     private final AccountIncomeService accountIncomeService;
 
     private final SalesLedgerMapper salesLedgerMapper;
+
+    private final IApproveProcessService approveProcessService;
 
     private final CustomerMapper customerMapper;
 
@@ -399,17 +405,19 @@
             } else {
                 salesLedgerMapper.updateById(salesLedger);
                 SalesLedger salesLedgerDB = salesLedgerMapper.selectById(salesLedger.getId());
-                AccountIncome accountIncomeDB = accountIncomeService.getByInvoiceNumber(salesLedger.getSalesContractNo());
-                if (ObjectUtils.isEmpty(accountIncomeDB)) {
-                    throw new BaseException("鏀跺叆绠$悊鏃犺閿�鍞悎鍚岀殑鏀跺叆璁板綍");
+                List<AccountIncome> accountIncomeDBs = accountIncomeService.getByInvoiceNumberList(salesLedger.getSalesContractNo());
+                if (!CollectionUtils.isEmpty(accountIncomeDBs)) {
+                    accountIncomeDBs.forEach(accountIncomeDB ->{
+                        accountIncomeDB.setCustomerName(salesLedgerDB.getCustomerName());
+                        accountIncomeDB.setIncomeMoney(salesLedgerDB.getContractAmount());
+                        accountIncomeDB.setIncomeDescribed("閿�鍞悎鍚岋細" + salesLedgerDB.getSalesContractNo());
+                        accountIncomeDB.setInvoiceNumber(salesLedgerDB.getSalesContractNo());
+                        accountIncomeDB.setInputTime(new Date());
+                        accountIncomeDB.setInputUser(salesLedgerDB.getEntryPerson());
+                        accountIncomeService.updateById(accountIncomeDB);
+                    });
                 }
-                accountIncomeDB.setCustomerName(salesLedgerDB.getCustomerName());
-                accountIncomeDB.setIncomeMoney(salesLedgerDB.getContractAmount());
-                accountIncomeDB.setIncomeDescribed("閿�鍞悎鍚岋細" + salesLedgerDB.getSalesContractNo());
-                accountIncomeDB.setInvoiceNumber(salesLedgerDB.getSalesContractNo());
-                accountIncomeDB.setInputTime(new Date());
-                accountIncomeDB.setInputUser(salesLedgerDB.getEntryPerson());
-                accountIncomeService.updateById(accountIncomeDB);
+
             }
 
             // 4. 澶勭悊瀛愯〃鏁版嵁
@@ -429,6 +437,28 @@
             if (salesLedgerDto.getTempFileIds() != null && !salesLedgerDto.getTempFileIds().isEmpty()) {
                 migrateTempFilesToFormal(salesLedger.getId(), salesLedgerDto.getTempFileIds());
             }
+
+            //6.閿�鍞鍗曟寜绱ф�ョ▼搴﹀垎绫伙紝濡傛櫘閫氳鍗曚互鍙婄揣鎬ヨ鍗曪紱鏅�氳鍗曢渶娴佽浆鑷充笟鍔″崟鎹繘琛屽鎵癸紝绱ф�ヨ鍗曟棤闇�瀹℃壒銆�
+            if (salesLedger.getSalesType().equals("鏅��")){
+                //鏂板瀹℃壒鏁版嵁approve_process
+                ApproveProcessVO approveProcessVO = new ApproveProcessVO();
+                approveProcessVO.setApproveDeptId(salesLedger.getTenantId());
+                approveProcessVO.setApproveReason(salesLedger.getSalesContractNo());//瀹℃壒鐞嗙敱鏄攢鍞悎鍚屽彿鐢ㄨ繖涓潵鍏宠仈
+                DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+                approveProcessVO.setApproveTime(LocalDate.now().format(dateFormat));
+                approveProcessVO.setApproveType(6);//6鏄攢鍞彴璐�
+                approveProcessVO.setApproveUser(Long.parseLong(salesLedger.getEntryPerson()));//褰曞叆浜�=鐢宠浜�
+                approveProcessVO.setApproveUserIds(salesLedgerDto.getApproveUserIds());//瀹℃壒浜�
+                try {
+                    approveProcessService.addApprove(approveProcessVO);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }else {
+                //绱ф�ラ粯璁ら�氳繃
+                salesLedger.setApprovalStatus(3);
+                salesLedgerMapper.updateById(salesLedger);
+            }
             return 1;
         } catch (IOException e) {
             throw new BaseException("鏂囦欢杩佺Щ澶辫触: " + e.getMessage());

--
Gitblit v1.9.3