From 8c65f898ed6e5b0c7a94c792c4562f6ec831dccd Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 07 十一月 2026 08:50:53 +0800
Subject: [PATCH] feat: 完善质检、生产、销售、财务与人事模块并接入审批流程
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/indicatorresult/MesQcIndicatorResultServiceImpl.java | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/indicatorresult/MesQcIndicatorResultServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/indicatorresult/MesQcIndicatorResultServiceImpl.java
index 1163b31..8cceafd 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/indicatorresult/MesQcIndicatorResultServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/indicatorresult/MesQcIndicatorResultServiceImpl.java
@@ -22,6 +22,7 @@
import cn.iocoder.yudao.module.mes.service.qc.oqc.MesQcOqcService;
import cn.iocoder.yudao.module.mes.service.qc.rqc.MesQcRqcService;
import cn.iocoder.yudao.module.system.api.dict.DictDataApi;
+import cn.iocoder.yudao.module.system.api.storage.StorageAttachmentApi;
import jakarta.annotation.Resource;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
@@ -67,6 +68,12 @@
@Resource
private DictDataApi dictDataApi;
+ @Resource
+ private StorageAttachmentApi storageAttachmentApi;
+
+ /** 杩囩▼妫�楠岃闄勪欢鐨勫瓨鍌ㄥ叧鑱旂被鍨嬶紙涓� MesQcAttachmentController 淇濇寔涓�鑷达級 */
+ private static final String IPQC_DETAIL_RECORD_TYPE = "mes_qc_ipqc_detail_attachment";
+
@Override
@Transactional(rollbackFor = Exception.class)
public Long createIndicatorResult(MesQcIndicatorResultSaveReqVO createReqVO) {
@@ -103,6 +110,27 @@
List<MesQcIndicatorResultDetailDO> details = BeanUtils.toBean(updateReqVO.getItems(),
MesQcIndicatorResultDetailDO.class);
resultDetailService.createOrUpdateDetailList(details);
+ // 2.3 杩囩▼妫�楠屾敮鎸佹墜宸ュ鍒犳楠岃锛氬垹闄ゆ湰娆℃湭鎻愪氦鐨勬槑缁嗭紝骞舵竻鐞嗗叾琛岄檮浠跺叧鑱�
+ if (MesQcTypeEnum.IPQC.getType().equals(updateReqVO.getQcType())) {
+ deleteIndicatorDetailsRemoved(updateReqVO.getId(), updateReqVO.getItems());
+ }
+ }
+
+ /**
+ * 鍒犻櫎鏈淇濆瓨涓凡琚Щ闄ょ殑杩囩▼妫�楠岃锛堣闄勪欢涓�骞惰В缁戯級
+ */
+ private void deleteIndicatorDetailsRemoved(Long resultId, List<MesQcIndicatorResultSaveReqVO.Item> items) {
+ Set<Long> keepIds = convertSet(items, MesQcIndicatorResultSaveReqVO.Item::getId);
+ List<Long> removedIds = resultDetailService.getDetailListByResultId(resultId).stream()
+ .map(MesQcIndicatorResultDetailDO::getId)
+ .filter(id -> id != null && !keepIds.contains(id))
+ .toList();
+ if (CollUtil.isEmpty(removedIds)) {
+ return;
+ }
+ removedIds.forEach(detailId ->
+ storageAttachmentApi.bindAttachments("file", IPQC_DETAIL_RECORD_TYPE, detailId, Collections.emptyList()));
+ resultDetailService.deleteDetailList(removedIds);
}
@Override
--
Gitblit v1.9.3