From eee03bbfea8b15d1a56ab63bd09a35c6c861c4cb Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 09 十一月 2026 13:01:08 +0800
Subject: [PATCH] feat(mes): 不合格品处置联动入库与生产订单
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/feedback/MesProFeedbackServiceImpl.java | 29 +++++++++++++++++++++++------
1 files changed, 23 insertions(+), 6 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/feedback/MesProFeedbackServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/feedback/MesProFeedbackServiceImpl.java
index b097178..cb90136 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/feedback/MesProFeedbackServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/feedback/MesProFeedbackServiceImpl.java
@@ -352,21 +352,29 @@
reqVO.setLotNumber(reason);
}
}
- approveFeedback(reqVO);
+ // BPM 鍥炶皟鏃舵祦绋嬪疄渚嬩粛鍦ㄨ繍琛岋紝蹇呴』璧板唴閮ㄦ柟娉曪紝涓嶈兘琚�屽凡鍙戣捣娴佺▼銆嶇殑鏍¢獙鎷︿綇
+ doApproveFeedback(reqVO, feedback, true);
} else if (cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum.REJECT.getStatus().equals(bpmResult) ||
cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum.CANCEL.getStatus().equals(bpmResult)) {
- rejectFeedback(id);
+ doRejectFeedback(id);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void rejectFeedback(Long id) {
- equipmentService.lock();
// 1. 鏍¢獙瀛樺湪 + 瀹℃壒涓姸鎬�
- validateFeedbackStatusApproving(id);
+ MesProFeedbackDO feedback = validateFeedbackStatusApproving(id);
+ // 1.1 宸插彂璧峰鎵规祦绋嬬殑鎶ュ伐鍗曞彧鑳界敱瀹℃壒浜洪�氳繃銆屽緟鍔炰换鍔°�嶅鐞嗭紝閬垮厤涓氬姟鎺ュ彛缁曡繃娴佺▼
+ if (StrUtil.isNotBlank(feedback.getProcessInstanceId())) {
+ throw exception(PRO_FEEDBACK_APPROVAL_HANDLE_IN_BPM);
+ }
+ doRejectFeedback(id);
+ }
- // 2. 鏇存柊鐘舵�佷负鑽夌
+ private void doRejectFeedback(Long id) {
+ equipmentService.lock();
+ // 1. 鏇存柊鐘舵�佷负鑽夌
feedbackMapper.updateById(new MesProFeedbackDO().setId(id)
.setStatus(MesProFeedbackStatusEnum.PREPARE.getStatus()));
}
@@ -378,9 +386,18 @@
}
private boolean approveFeedback(MesProFeedbackApproveReqVO reqVO, boolean enforceQualityGate) {
- equipmentService.lock();
// 1.1 鏍¢獙瀛樺湪 + 瀹℃壒涓姸鎬�
MesProFeedbackDO feedback = validateFeedbackStatusApproving(reqVO.getId());
+ // 1.2 宸插彂璧峰鎵规祦绋嬬殑鎶ュ伐鍗曞彧鑳界敱瀹℃壒浜洪�氳繃銆屽緟鍔炰换鍔°�嶅鐞嗭紝閬垮厤涓氬姟鎺ュ彛缁曡繃娴佺▼
+ if (StrUtil.isNotBlank(feedback.getProcessInstanceId())) {
+ throw exception(PRO_FEEDBACK_APPROVAL_HANDLE_IN_BPM);
+ }
+ return doApproveFeedback(reqVO, feedback, enforceQualityGate);
+ }
+
+ private boolean doApproveFeedback(MesProFeedbackApproveReqVO reqVO, MesProFeedbackDO feedback,
+ boolean enforceQualityGate) {
+ equipmentService.lock();
equipmentService.validateApproval(feedback);
try (var equipmentScope = equipmentService.beginApproval(feedback)) {
return approveValidatedFeedback(reqVO, feedback, enforceQualityGate);
--
Gitblit v1.9.3