From 0989ec1e6b465141f99ed67e40fa2a0b928dce94 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 29 四月 2026 16:54:51 +0800
Subject: [PATCH] feat(production): 新增生产核算和生产工单功能模块 - 添加生产核算控制器、服务接口及实现类 - 实现生产核算分页查询和工人生产工资信息查询功能 - 添加生产工单控制器、服务接口及实现类 - 实现生产工单的增删改查和状态统计功能 - 集成工单流转卡下载和二维码生成功能 - 添加工单相关的数据传输对象和值对象 - 实现工单与用户关联的分配功能 - 完善工单附件图片处理和展示功能
---
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