From 1ab2b329a40decba8ff7eefbeb158ff259aceb6d Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 14 七月 2026 15:23:34 +0800
Subject: [PATCH] 追溯+分类接口
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/feedback/MesProFeedbackServiceImpl.java | 39 +++++++++++++++++++++++++++++++++++----
1 files changed, 35 insertions(+), 4 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 e7148ee..71f0852 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
@@ -1,5 +1,7 @@
package cn.iocoder.yudao.module.mes.service.pro.feedback;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -9,6 +11,7 @@
import cn.iocoder.yudao.module.mes.controller.admin.pro.feedback.vo.MesProFeedbackSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.route.MesProRouteProcessDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.pro.route.MesProRouteProductBomDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemconsume.MesWmItemConsumeDO;
@@ -19,6 +22,7 @@
import cn.iocoder.yudao.module.mes.enums.wm.MesWmQualityStatusEnum;
import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService;
import cn.iocoder.yudao.module.mes.service.pro.route.MesProRouteProcessService;
+import cn.iocoder.yudao.module.mes.service.pro.route.MesProRouteProductBomService;
import cn.iocoder.yudao.module.mes.service.pro.task.MesProTaskService;
import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService;
import cn.iocoder.yudao.module.mes.service.wm.itemconsume.MesWmItemConsumeService;
@@ -31,6 +35,8 @@
import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
+import java.util.Collection;
+import java.util.Collections;
import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -52,6 +58,8 @@
private MesProWorkOrderService workOrderService;
@Resource
private MesProRouteProcessService routeProcessService;
+ @Resource
+ private MesProRouteProductBomService routeProductBomService;
@Resource
private MesMdWorkstationService workstationService;
@Resource
@@ -105,6 +113,19 @@
}
@Override
+ public List<MesProFeedbackDO> getFeedbackListByTaskIds(Collection<Long> taskIds) {
+ if (CollUtil.isEmpty(taskIds)) {
+ return Collections.emptyList();
+ }
+ return feedbackMapper.selectListByTaskIds(taskIds);
+ }
+
+ @Override
+ public List<MesProFeedbackDO> getFeedbackListByTaskId(Long taskId) {
+ return feedbackMapper.selectListByTaskId(taskId);
+ }
+
+ @Override
public PageResult<MesProFeedbackDO> getFeedbackPage(MesProFeedbackPageReqVO pageReqVO) {
return feedbackMapper.selectPage(pageReqVO);
}
@@ -154,10 +175,20 @@
throw exception(PRO_FEEDBACK_UNCHECK_QUANTITY_EXISTS, feedback.getUncheckQuantity());
}
- // 3. 鐗╂枡娑堣�楋細鏍规嵁宸ュ簭 BOM 鐢熸垚娑堣�楄褰曞苟鎵ц鎵e噺
- MesWmItemConsumeDO itemConsume = itemConsumeService.generateItemConsume(feedback);
- if (itemConsume != null) {
- itemConsumeService.finishItemConsume(itemConsume.getId());
+ // 3. 鐗╂枡娑堣�楋細鍊掑啿宸ュ簭鎸� BOM 鑷姩鎵f枡锛涢潪鍊掑啿宸ュ簭璺宠繃锛堢墿鏂欒蛋鎵嬪伐棰嗘枡/鎶曟枡锛�
+ boolean backflushFlag = routeProcess != null && Boolean.TRUE.equals(routeProcess.getBackflushFlag());
+ if (backflushFlag) {
+ // 3.1 鏍¢獙鍊掑啿宸ュ簭蹇呴』閰嶇疆 BOM 娑堣�楋紝閬垮厤闈欓粯涓嶆墸鏂�
+ List<MesProRouteProductBomDO> boms = routeProductBomService.getRouteProductBomList(
+ feedback.getRouteId(), feedback.getProcessId(), feedback.getItemId());
+ if (CollUtil.isEmpty(boms)) {
+ throw exception(PRO_FEEDBACK_BACKFLUSH_BOM_REQUIRED);
+ }
+ // 3.2 鐢熸垚娑堣�楄褰曞苟鎵ц鎵e噺锛圔OM 脳 鎶ュ伐鏁伴噺锛孎IFO 鎵g嚎杈瑰簱锛�
+ MesWmItemConsumeDO itemConsume = itemConsumeService.generateItemConsume(feedback);
+ if (itemConsume != null) {
+ itemConsumeService.finishItemConsume(itemConsume.getId());
+ }
}
// 4. 鍏抽敭宸ュ簭锛氱敓鎴愪骇鍑哄崟锛屽苟鏍规嵁鏄惁闇�瑕佹楠屽喅瀹氬叆搴撴柟寮�
--
Gitblit v1.9.3