From 1222ce7dfd00e7336beaebdfb0199ec3597aeec2 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期二, 02 六月 2026 15:02:01 +0800
Subject: [PATCH] fix: 对销售台账产品进行发货,点击发货按钮后,发货状态直接变更为已发货,
---
src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java | 4 ++--
src/main/resources/mapper/sales/SalesLedgerProductMapper.xml | 13 +++++++++++--
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java | 4 ++++
src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java | 18 +++---------------
src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java | 1 +
5 files changed, 21 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java
index 5da3984..8d7477b 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java
@@ -420,20 +420,8 @@
instance.setStatus("REJECTED");
instance.setFinishTime(now);
this.updateById(instance);
- // 椹冲洖瀵瑰簲鐨勪紒涓氭柊闂伙紝 宸梾鎶ラ攢
- if (instance.getBusinessType().equals(TypeEnums.ENTERPRISE_NEWS_APPROVAL.getCode())) {
- enterpriseNewsMapper.update(
- new LambdaUpdateWrapper<EnterpriseNews>()
- .eq(EnterpriseNews::getId, instance.getBusinessId())
- .set(EnterpriseNews::getStatus, "REJECTED")
- );
- }else if (instance.getBusinessType().equals(TypeEnums.TRAVEL_REIMBURSEMENT_APPROVAL.getCode())||instance.getBusinessType().equals(TypeEnums.EXPENSE_APPROVAL.getCode())) {
- finReimbursementMapper.update(
- new LambdaUpdateWrapper<FinReimbursement>()
- .eq(FinReimbursement::getId, instance.getBusinessId())
- .set(FinReimbursement::getBillStatus, "REJECTED")
- );
- }
+ // 缁熶竴澶勭悊涓氬姟鐘舵�佹洿鏂�
+ handleBusinessAfterApprovalFinished(instance);
return R.ok("瀹℃壒宸查┏鍥�");
}
@@ -682,7 +670,7 @@
private void handleShippingApprovalFinished(ApprovalInstance instance, String status) {
ShippingInfo shippingInfo = shippingInfoMapper.selectOne(
new LambdaQueryWrapper<ShippingInfo>()
- .eq(ShippingInfo::getId, instance.getTitle())
+ .eq(ShippingInfo::getShippingNo, instance.getTitle())
.orderByDesc(ShippingInfo::getCreateTime)
.last("limit 1")
);
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index f4a42d6..d9f8eff 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -185,4 +185,8 @@
@TableField(exist = false)
@Schema(description = "寰呭彂璐ф暟閲�")
private BigDecimal noQuantity;
+
+ @TableField(exist = false)
+ @Schema(description = "瀹℃壒涓暟閲�")
+ private BigDecimal pendingApprovalQuantity;
}
diff --git a/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java b/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
index f244453..ed9a268 100644
--- a/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
+++ b/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
@@ -68,6 +68,7 @@
private String shippingCarNumber;
@Schema(description = "鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
@Schema(description = "淇敼鏃堕棿")
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
index 4e6ff58..e9b04eb 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
@@ -172,7 +172,7 @@
@Override
public boolean addReq(ShippingInfoDto req) {
- LoginUser loginUser = SecurityUtils.getLoginUser();
+ LoginUser loginUser = SecurityUtils.getLoginUser();
String sh = OrderUtils.countTodayByCreateTime(shippingInfoMapper, "SH","shipping_no",req.getCreateTime());
// 鍏堜繚瀛樺彂璐у崟锛屽啀鍙戣捣瀹℃壒锛涙棤瀹℃牳浜鸿嚜鍔ㄩ�氳繃鏃堕渶瑕佹寜鍙戣揣缂栧彿鍥炲啓鍙戣揣鐘舵�併��
req.setShippingNo(sh);
@@ -185,7 +185,7 @@
approvalInstance.setBusinessId(req.getId());
approvalInstance.setBusinessType(7L);
approvalInstance.setCurrentLevel(1);
- approvalInstance.setTitle(sh+"瀹℃壒");
+ approvalInstance.setTitle(sh);
approvalInstance.setApplicantId(loginUser.getUserId());
approvalInstance.setApplicantName(loginUser.getNickName());
approvalInstance.setApplyTime(LocalDateTime.now());
diff --git a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
index 49569de..e2e6277 100644
--- a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
@@ -34,8 +34,10 @@
ELSE 0
END as has_sufficient_stock,
(IFNULL(T1.quantity, 0) - IFNULL(t3.shipped_quantity, 0)) as no_quantity,
+ IFNULL(t5.pending_approval_quantity, 0) as pending_approval_quantity,
CASE
- WHEN IFNULL(t3.shipped_quantity, 0) = 0 THEN '寰呭彂璐�'
+ WHEN IFNULL(t3.shipped_quantity, 0) = 0 AND IFNULL(t5.pending_approval_quantity, 0) = 0 THEN '寰呭彂璐�'
+ WHEN IFNULL(t3.shipped_quantity, 0) = 0 AND IFNULL(t5.pending_approval_quantity, 0) > 0 THEN '瀹℃壒涓�'
WHEN (IFNULL(T1.quantity, 0) - IFNULL(t3.shipped_quantity, 0)) > 0 THEN '閮ㄥ垎鍙戣揣'
ELSE '宸插彂璐�'
END as shippingStatus,
@@ -56,7 +58,7 @@
SELECT sales_ledger_product_id, IFNULL(SUM(spd.quantity), 0) as shipped_quantity
FROM shipping_info si
LEFT JOIN shipping_product_detail spd ON si.id = spd.shipping_info_id
- where si.status != '瀹℃牳鎷掔粷'
+ where si.status = '瀹℃牳閫氳繃' OR si.status = '宸插彂璐�'
GROUP BY sales_ledger_product_id
) t3 ON t3.sales_ledger_product_id = T1.id
LEFT JOIN (
@@ -92,6 +94,13 @@
) rel
GROUP BY rel.sales_ledger_product_id
) t4 ON t4.sales_ledger_product_id = T1.id
+ LEFT JOIN (
+ SELECT sales_ledger_product_id, IFNULL(SUM(spd.quantity), 0) as pending_approval_quantity
+ FROM shipping_info si
+ LEFT JOIN shipping_product_detail spd ON si.id = spd.shipping_info_id
+ WHERE si.status IN ('寰呭鏍�', '瀹℃牳涓�')
+ GROUP BY sales_ledger_product_id
+ ) t5 ON t5.sales_ledger_product_id = T1.id
left join product_model pm ON T1.product_model_id = pm.id
left join product p ON pm.product_id = p.id
<where>
--
Gitblit v1.9.3