From 69e0f44e279f7763fa9c9a4d105f154db39ee1d8 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期六, 23 五月 2026 11:38:02 +0800
Subject: [PATCH] feat(sales): 添加每件数量字段支持及多业务流程优化
---
src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java | 49 ++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 44 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
index bf2cdb2..66853d9 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -26,6 +26,7 @@
import com.ruoyi.basic.utils.FileUtil;
import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
+import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
import com.ruoyi.common.utils.OrderUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.procurementrecord.utils.StockUtils;
@@ -39,9 +40,11 @@
import com.ruoyi.purchase.pojo.PurchaseLedger;
import com.ruoyi.sales.mapper.CommonFileMapper;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
+import com.ruoyi.sales.mapper.SalesQuotationMapper;
import com.ruoyi.sales.mapper.ShippingInfoMapper;
import com.ruoyi.sales.pojo.CommonFile;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import com.ruoyi.sales.pojo.SalesQuotation;
import com.ruoyi.sales.pojo.ShippingInfo;
import com.ruoyi.sales.service.impl.CommonFileServiceImpl;
import lombok.RequiredArgsConstructor;
@@ -71,6 +74,7 @@
private final ISysNoticeService sysNoticeService;
private final PurchaseLedgerMapper purchaseLedgerMapper;
private final SalesLedgerProductMapper salesLedgerProductMapper;
+ private final SalesQuotationMapper salesQuotationMapper;
private final StockUtils stockUtils;
private final ShippingInfoMapper shippingInfoMapper;
private final ApproveNodeMapper approveNodeMapper;
@@ -89,7 +93,17 @@
.collect(Collectors.toList());
// 鏃犲鏍镐汉閫昏緫娣诲姞
if (CollectionUtils.isEmpty(nodeIds)) {
- autoPassPurchaseApproveIfNoApprover(approveProcessVO); // 閲囪喘鍗曟棤瀹℃牳浜洪�昏緫
+ switch (approveProcessVO.getApproveType()){
+ case 5:
+ autoPassPurchaseApproveIfNoApprover(approveProcessVO); // 閲囪喘鍗曟棤瀹℃牳浜洪�昏緫
+ break;
+ case 6:
+ autoPassSalesApproveIfNoApprover(approveProcessVO); // 閿�鍞姤浠锋棤瀹℃牳浜洪�昏緫
+ break;
+ case 7:
+ autoShippingApproveIfNoApprover(approveProcessVO); // 閿�鍞彂璐ф棤瀹℃牳浜洪�昏緫
+ break;
+ }
return;
}
List<SysUser> sysUsers = sysUserMapper.selectUserByIds(nodeIds);
@@ -138,7 +152,7 @@
.collect(Collectors.joining(","));
approveNodeService.initApproveNodes(nodeIdStr, no, approveProcessVO.getApproveDeptId());
// 闄勪欢缁戝畾
- fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.APPROVE_PROCESS, approveProcess.getId(), approveProcessVO.getStorageBlobDTOList());
+ fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.APPROVE_PROCESS, approveProcess.getId(), approveProcessVO.getStorageBlobDTOS());
/*娑堟伅閫氱煡*/
Long id = nodeIds.getFirst();
if (approveProcess.getApproveType() == 8) {
@@ -154,10 +168,35 @@
}
}
+ private void autoPassSalesApproveIfNoApprover(ApproveProcessVO approveProcessVO) {
+ if (!StringUtils.hasText(approveProcessVO.getApproveReason())) {
+ return;
+ }
+ salesQuotationMapper.update(null, new LambdaUpdateWrapper<SalesQuotation>()
+ .eq(SalesQuotation::getQuotationNo, approveProcessVO.getApproveReason())
+ .set(SalesQuotation::getStatus, "閫氳繃"));
+ }
+
+ private void autoShippingApproveIfNoApprover(ApproveProcessVO approveProcessVO) {
+ if (!StringUtils.hasText(approveProcessVO.getApproveReason())) {
+ return;
+ }
+ ShippingInfo shippingInfo = shippingInfoMapper.selectOne(new LambdaQueryWrapper<ShippingInfo>()
+ .eq(ShippingInfo::getShippingNo, approveProcessVO.getApproveReason())
+ .last("limit 1"));
+ if(shippingInfo == null){
+ return;
+ }
+ shippingInfoMapper.update(null, new LambdaUpdateWrapper<ShippingInfo>()
+ .eq(ShippingInfo::getShippingNo, approveProcessVO.getApproveReason())
+ .set(ShippingInfo::getStatus, "瀹℃牳閫氳繃"));
+ //鏇存敼鍑哄簱瀹℃牳鐘舵�侊紙寰呯‘璁ゆ敼鎴愬緟瀹℃牳锛�
+ stockUtils.shipmentStatus(StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode(), shippingInfo.getId());
+ }
+
private void autoPassPurchaseApproveIfNoApprover(ApproveProcessVO approveProcessVO) {
- if (!Objects.equals(approveProcessVO.getApproveType(), 5)
- || !StringUtils.hasText(approveProcessVO.getApproveReason())) {
- throw new RuntimeException("瀹℃牳鐢ㄦ埛涓嶅瓨鍦�");
+ if (!StringUtils.hasText(approveProcessVO.getApproveReason())) {
+ return;
}
purchaseLedgerMapper.update(null, new LambdaUpdateWrapper<PurchaseLedger>()
--
Gitblit v1.9.3