From 27ba205534c711e3674efd669f4fa88a035a10e1 Mon Sep 17 00:00:00 2001
From: quxin <592870522@qq.com>
Date: 星期四, 03 九月 2026 13:57:05 +0800
Subject: [PATCH] 添加逻辑: 采购管理--采购申请 审批不通过的订单可以通过修改订单详情后再次提交申请
---
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/enums/ErrorCodeConstants.java | 1 +
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseRequestService.java | 7 +++++++
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseRequestServiceImpl.java | 16 ++++++++++++++++
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseRequestController.java | 8 ++++++++
4 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseRequestController.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseRequestController.java
index 8851644..2d41a03 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseRequestController.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseRequestController.java
@@ -143,6 +143,14 @@
return success(true);
}
+ @PutMapping("/reset-status")
+ @Operation(summary = "閲嶇疆閲囪喘鐢宠鐘舵�侊紙椹冲洖鈫掕崏绋匡級")
+ @PreAuthorize("@ss.hasPermission('erp:purchase-request:update')")
+ public CommonResult<Boolean> resetPurchaseRequestStatus(@RequestParam("id") Long id) {
+ purchaseRequestService.resetPurchaseRequestStatus(id);
+ return success(true);
+ }
+
@GetMapping("/approve-process-list")
@Operation(summary = "鑾峰彇閲囪喘鐢宠瀹℃壒娴佺▼鍒楄〃")
@PreAuthorize("@ss.hasPermission('erp:purchase-request:query')")
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/enums/ErrorCodeConstants.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/enums/ErrorCodeConstants.java
index 96a6482..d7fb9d3 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/enums/ErrorCodeConstants.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/enums/ErrorCodeConstants.java
@@ -53,6 +53,7 @@
ErrorCode PURCHASE_REQUEST_ORDER_EXISTS = new ErrorCode(1_030_104_007, "閲囪喘鐢宠鍗曞凡鐢熸垚閲囪喘璁㈠崟锛岃鍕块噸澶嶆搷浣�");
ErrorCode PURCHASE_REQUEST_BPM_CATEGORY_NOT_EXISTS = new ErrorCode(1_030_104_008, "閲囪喘鐢宠瀹℃壒鍒嗙被涓嶅瓨鍦紝璇峰厛鍦˙PM妯″潡鍒涘缓閲囪喘鐢宠瀹℃壒娴佺▼鍒嗙被");
ErrorCode PURCHASE_REQUEST_BPM_PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1_030_104_009, "閲囪喘鐢宠瀹℃壒鍒嗙被涓嬫病鏈夊彲鐢ㄧ殑娴佺▼妯″瀷锛岃鍏堝垱寤哄苟鍙戝竷娴佺▼");
+ ErrorCode PURCHASE_REQUEST_RESET_FAIL_NOT_REJECT = new ErrorCode(1_030_104_010, "閲嶇疆澶辫触锛屽彧鏈夐┏鍥炵姸鎬佺殑閲囪喘鐢宠鍗曟墠鑳介噸缃�");
// ========== ERP 閲囪喘鏉ョエ锛�1-030-105-000锛� ==========
ErrorCode PURCHASE_INVOICE_NOT_EXISTS = new ErrorCode(1_030_105_000, "鏉ョエ涓嶅瓨鍦�");
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseRequestService.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseRequestService.java
index a761923..f06dc72 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseRequestService.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseRequestService.java
@@ -104,6 +104,13 @@
Long generatePurchaseOrder(Long id, Long supplierId);
/**
+ * 閲嶇疆閲囪喘鐢宠鐘舵�侊紙椹冲洖 鈫� 鑽夌锛�
+ *
+ * @param id 缂栧彿
+ */
+ void resetPurchaseRequestStatus(Long id);
+
+ /**
* 鏍规嵁缂栧彿鍒楄〃鑾峰彇閲囪喘鐢宠鍒楄〃
*
* @param ids 缂栧彿鍒楄〃
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseRequestServiceImpl.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseRequestServiceImpl.java
index 7f2debd..681e96a 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseRequestServiceImpl.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseRequestServiceImpl.java
@@ -448,6 +448,22 @@
return null;
}
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void resetPurchaseRequestStatus(Long id) {
+ ErpPurchaseRequestDO purchaseRequest = validatePurchaseRequestExists(id);
+ Integer status = purchaseRequest.getStatus();
+ // 鍏煎鏁版嵁涓嶄竴鑷达細BPM 宸查┏鍥炰絾涓氬姟琛� status 鏈洿鏂帮紙浠嶄负瀹℃壒涓級
+ if (!ErpPurchaseRequestStatusEnum.REJECT.getStatus().equals(status)
+ && !ErpPurchaseRequestStatusEnum.PROCESS.getStatus().equals(status)) {
+ throw exception(PURCHASE_REQUEST_RESET_FAIL_NOT_REJECT);
+ }
+ purchaseRequestMapper.updateById(new ErpPurchaseRequestDO()
+ .setId(id)
+ .setStatus(ErpPurchaseRequestStatusEnum.DRAFT.getStatus())
+ .setProcessInstanceId(""));
+ }
+
private ErpPurchaseRequestDO validatePurchaseRequestExists(Long id) {
ErpPurchaseRequestDO purchaseRequest = purchaseRequestMapper.selectById(id);
if (purchaseRequest == null) {
--
Gitblit v1.9.3