From ffe7921a138331185186fd100846fe50dcaf841c Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 16 七月 2026 10:08:02 +0800
Subject: [PATCH] 1.采购管理-采购申请恢复
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeServiceImpl.java | 30 +++++++++++++++++++++++++++---
1 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeServiceImpl.java
index 29db064..2f5f920 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeServiceImpl.java
@@ -15,8 +15,10 @@
import cn.iocoder.yudao.module.erp.api.purchase.dto.ErpPurchaseOrderRespDTO;
import cn.iocoder.yudao.module.erp.api.purchase.dto.ErpPurchaseOrderItemRespDTO;
import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService;
+import cn.iocoder.yudao.module.mes.service.qc.iqc.MesQcIqcService;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
@@ -50,6 +52,10 @@
@Resource
private MesMdmItemService mdmItemService;
+
+ @Resource
+ @Lazy
+ private MesQcIqcService iqcService;
@Override
public Long createArrivalNotice(MesWmArrivalNoticeSaveReqVO createReqVO) {
@@ -115,7 +121,7 @@
@Transactional(rollbackFor = Exception.class)
public void submitArrivalNotice(Long id) {
// 1.1 鏍¢獙瀛樺湪 + 鑽夌鐘舵��
- validateArrivalNoticeExistsAndDraft(id);
+ MesWmArrivalNoticeDO notice = validateArrivalNoticeExistsAndDraft(id);
// 1.2 妫�鏌ユ槸鍚︽湁琛岄」鐩�
List<MesWmArrivalNoticeLineDO> lines = arrivalNoticeLineService.getArrivalNoticeLineListByNoticeId(id);
if (CollUtil.isEmpty(lines)) {
@@ -126,9 +132,26 @@
boolean needCheck = CollectionUtils.anyMatch(lines,
line -> Boolean.TRUE.equals(line.getIqcCheckFlag()));
if (needCheck) {
- // 闇�瑕佹楠岋紝杩涘叆寰呰川妫�
+ // 2.1 闇�瑕佹楠岋紝杩涘叆寰呰川妫�
arrivalNoticeMapper.updateById(new MesWmArrivalNoticeDO()
.setId(id).setStatus(MesWmArrivalNoticeStatusEnum.PENDING_QC.getStatus()));
+ // 2.2 涓洪渶瑕佽川妫�鐨勮鑷姩鍒涘缓 IQC 妫�楠屽崟
+ for (MesWmArrivalNoticeLineDO line : lines) {
+ if (Boolean.TRUE.equals(line.getIqcCheckFlag()) && line.getIqcId() == null) {
+ try {
+ Long iqcId = iqcService.createIqcFromArrivalNotice(
+ id, line, notice.getCode(), notice.getVendorId());
+ // 鏇存柊琛屼笂鐨� iqcId
+ arrivalNoticeLineService.updateArrivalNoticeLineIqcId(line.getId(), iqcId);
+ log.info("[submitArrivalNotice][鍒拌揣閫氱煡鍗�({}) 琛�({}) 鑷姩鍒涘缓 IQC 妫�楠屽崟({})]",
+ id, line.getId(), iqcId);
+ } catch (Exception e) {
+ log.warn("[submitArrivalNotice][鍒拌揣閫氱煡鍗�({}) 琛�({}) 鍒涘缓 IQC 澶辫触: {}]",
+ id, line.getId(), e.getMessage());
+ // 缁х画澶勭悊鍏朵粬琛岋紝涓嶄腑鏂祦绋�
+ }
+ }
+ }
return;
}
// 涓嶉渶瑕佹楠岋紝鐩存帴杩涘叆寰呭叆搴�
@@ -295,7 +318,8 @@
// 娉ㄦ剰锛氳繖閲岄渶瑕佹牴鎹� ERP 浜у搧 ID 鏄犲皠鍒� MES 鐗╂枡 ID
// 瀹為檯椤圭洰涓渶瑕侀�氳繃鏄犲皠鏈嶅姟澶勭悊锛岃繖閲屾殏鏃剁暀绌鸿鐢ㄦ埛鎵嬪姩閫夋嫨
line.setArrivalQuantity(item.getCount() != null ? item.getCount().subtract(item.getInCount() != null ? item.getInCount() : BigDecimal.ZERO) : BigDecimal.ZERO);
- line.setIqcCheckFlag(false); // 榛樿涓嶉渶瑕佹楠岋紝鐢ㄦ埛鍙慨鏀�
+ // 浠庨噰璐鍗曟槑缁嗗甫鍏ヨ川妫�鏍囪瘑
+ line.setIqcCheckFlag(Boolean.TRUE.equals(item.getQcCheckFlag()));
arrivalNoticeLineService.createArrivalNoticeLineFromPurchaseOrderItem(line);
}
--
Gitblit v1.9.3