From 6c82f16f44cf9e51d0fae9593fdefe4c43cb5e55 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 06 五月 2026 15:38:38 +0800
Subject: [PATCH] feat:1.生产追溯(订单-工单-报工-质检) 2.订单工序数据查询 3.领料退料调整
---
src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationServiceImpl.java | 40 +++++++++++++++++++++++++++++++++++++---
1 files changed, 37 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationServiceImpl.java
index 489fc30..886da11 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationServiceImpl.java
@@ -1,17 +1,24 @@
package com.ruoyi.production.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.production.mapper.ProductionOperationTaskMapper;
import com.ruoyi.production.mapper.ProductionOrderRoutingOperationMapper;
+import com.ruoyi.production.mapper.ProductionOrderRoutingOperationParamMapper;
import com.ruoyi.production.mapper.ProductionProductMainMapper;
import com.ruoyi.production.pojo.ProductionOperationTask;
import com.ruoyi.production.pojo.ProductionOrderRoutingOperation;
+import com.ruoyi.production.pojo.ProductionOrderRoutingOperationParam;
import com.ruoyi.production.pojo.ProductionProductMain;
import com.ruoyi.production.service.ProductionOrderRoutingOperationService;
import com.ruoyi.production.service.ProductionProductMainService;
+import com.ruoyi.technology.mapper.TechnologyOperationParamMapper;
+import com.ruoyi.technology.mapper.TechnologyParamMapper;
+import com.ruoyi.technology.pojo.TechnologyOperationParam;
+import com.ruoyi.technology.pojo.TechnologyParam;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -19,6 +26,7 @@
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
import java.util.List;
@Service
@@ -31,10 +39,36 @@
private final ProductionOperationTaskMapper productionOperationTaskMapper;
private final ProductionProductMainMapper productionProductMainMapper;
private final ProductionProductMainService productionProductMainService;
+ private final TechnologyOperationParamMapper technologyOperationParamMapper;
+ private final TechnologyParamMapper technologyParamMapper;
+ private final ProductionOrderRoutingOperationParamMapper productionOrderRoutingOperationParamMapper;
@Override
public R addRouteItem(ProductionOrderRoutingOperation productionOrderRoutingOperation) {
int insert = productionOrderRoutingOperationMapper.insert(productionOrderRoutingOperation);
+ //宸ュ簭鍏宠仈鐨勫弬鏁伴渶瑕佸悓姝ユ柊澧�
+ List<TechnologyOperationParam> technologyOperationParams = technologyOperationParamMapper.selectList(Wrappers.<TechnologyOperationParam>lambdaQuery()
+ .eq(TechnologyOperationParam::getTechnologyOperationId, productionOrderRoutingOperation.getTechnologyOperationId()));
+ if (CollectionUtils.isNotEmpty(technologyOperationParams)){
+ ArrayList<ProductionOrderRoutingOperationParam> productionOrderRoutingOperationParams = new ArrayList<>();
+ for (TechnologyOperationParam technologyOperationParam : technologyOperationParams) {
+ TechnologyParam technologyParam = technologyParamMapper.selectById(technologyOperationParam.getTechnologyParamId());
+ ProductionOrderRoutingOperationParam productionOrderRoutingOperationParam = new ProductionOrderRoutingOperationParam();
+ productionOrderRoutingOperationParam.setProductionOrderId(productionOrderRoutingOperation.getProductionOrderId());
+ productionOrderRoutingOperationParam.setProductionOrderRoutingOperationId(productionOrderRoutingOperation.getId());
+ productionOrderRoutingOperationParam.setParamCode(technologyParam.getParamCode());
+ productionOrderRoutingOperationParam.setParamName(technologyParam.getParamName());
+ productionOrderRoutingOperationParam.setParamType(technologyParam.getParamType());
+ productionOrderRoutingOperationParam.setParamFormat(technologyParam.getParamFormat());
+ productionOrderRoutingOperationParam.setUnit(technologyParam.getUnit());
+ productionOrderRoutingOperationParam.setIsRequired(technologyParam.getIsRequired());
+ productionOrderRoutingOperationParam.setRemark(technologyParam.getRemark());
+ productionOrderRoutingOperationParam.setParamId(technologyParam.getId());
+ productionOrderRoutingOperationParam.setTechnologyOperationId(productionOrderRoutingOperation.getTechnologyOperationId());
+ productionOrderRoutingOperationParams.add(productionOrderRoutingOperationParam);
+ }
+ productionOrderRoutingOperationParamMapper.insert(productionOrderRoutingOperationParams);
+ }
String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
if (insert > 0) {
ProductionOperationTask lastTask = productionOperationTaskMapper.selectOne(
@@ -56,7 +90,7 @@
}
String workOrderNoStr = "GD" + String.format("%s%03d", datePrefix, sequenceNumber);
ProductionOperationTask productionOperationTask = new ProductionOperationTask();
- productionOperationTask.setTechnologyRoutingOperationId(productionOrderRoutingOperation.getId());
+ productionOperationTask.setProductionOrderRoutingOperationId(productionOrderRoutingOperation.getId());
productionOperationTask.setProductionOrderId(productionOrderRoutingOperation.getProductionOrderId());
productionOperationTask.setPlanQuantity(BigDecimal.ZERO);
productionOperationTask.setCompleteQuantity(BigDecimal.ZERO);
@@ -72,7 +106,7 @@
try {
ProductionOperationTask productionOperationTask = productionOperationTaskMapper.selectOne(
new LambdaQueryWrapper<ProductionOperationTask>()
- .eq(ProductionOperationTask::getTechnologyRoutingOperationId, id)
+ .eq(ProductionOperationTask::getProductionOrderRoutingOperationId, id)
.last("limit 1"));
if (productionOperationTask == null) {
throw new RuntimeException("鍒犻櫎澶辫触锛氭湭鎵惧埌鍏宠仈鐨勭敓浜у伐鍗�");
@@ -94,7 +128,7 @@
routingId = deleteItem.getOrderRoutingId();
}
productionOperationTaskMapper.delete(new LambdaQueryWrapper<ProductionOperationTask>()
- .eq(ProductionOperationTask::getTechnologyRoutingOperationId, id));
+ .eq(ProductionOperationTask::getProductionOrderRoutingOperationId, id));
productionOrderRoutingOperationMapper.deleteById(id);
if (routingId != null) {
List<ProductionOrderRoutingOperation> operationList = productionOrderRoutingOperationMapper.selectList(
--
Gitblit v1.9.3