From 7c060a33ae9399a86db97ad18da965e7a848dfc3 Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期三, 25 三月 2026 17:24:10 +0800
Subject: [PATCH] feat(production): 添加生产订单完成功能
---
src/main/resources/mapper/production/ProductWorkOrderMapper.xml | 1 +
src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java | 23 +++++++++++++++++++----
src/main/resources/mapper/production/ProductOrderMapper.xml | 1 +
src/main/java/com/ruoyi/production/controller/ProductOrderController.java | 5 +++++
src/main/java/com/ruoyi/production/service/ProductOrderService.java | 3 ++-
src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java | 1 +
src/main/java/com/ruoyi/production/pojo/ProductOrder.java | 1 +
7 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/controller/ProductOrderController.java b/src/main/java/com/ruoyi/production/controller/ProductOrderController.java
index eef5b98..d513b6c 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductOrderController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductOrderController.java
@@ -72,4 +72,9 @@
public R delete(@PathVariable("ids") Long[] ids) {
return R.ok(productOrderService.delete(ids));
}
+
+ @PatchMapping("/{id}")
+ public R finishOrder(@PathVariable Long id) {
+ return R.ok(productOrderService.finishOrder(id));
+ }
}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java b/src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java
index 2ab2b2a..3bfb3e9 100644
--- a/src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java
+++ b/src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java
@@ -33,6 +33,7 @@
//鐢熶骇璁㈠崟鍙�
@ApiModelProperty(value = "鐢熶骇璁㈠崟鍙�")
private String productOrderNpsNo;
+ private Boolean productOrderIsEnd;
@ApiModelProperty(value = "瀹屾垚杩涘害")
private BigDecimal completionStatus;
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductOrder.java b/src/main/java/com/ruoyi/production/pojo/ProductOrder.java
index 36a3846..7367483 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductOrder.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductOrder.java
@@ -116,4 +116,5 @@
@ApiModelProperty(value = "鎵瑰彿")
private String batchNo;
+ private Boolean isEnd;
}
diff --git a/src/main/java/com/ruoyi/production/service/ProductOrderService.java b/src/main/java/com/ruoyi/production/service/ProductOrderService.java
index 5a714a6..44edb22 100644
--- a/src/main/java/com/ruoyi/production/service/ProductOrderService.java
+++ b/src/main/java/com/ruoyi/production/service/ProductOrderService.java
@@ -3,7 +3,6 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.production.dto.ProductBomDto;
import com.ruoyi.production.dto.ProductOrderDto;
import com.ruoyi.production.dto.ProductStructureDto;
import com.ruoyi.production.pojo.ProcessRoute;
@@ -25,4 +24,6 @@
Boolean addProductOrder(ProductOrder productOrder);
Boolean delete(Long[] id);
+
+ int finishOrder(Long orderId);
}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
index 8a1099c..c7ea9f2 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.production.service.impl;
+import cn.hutool.core.util.BooleanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -7,8 +8,6 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
-import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum;
import com.ruoyi.procurementrecord.utils.StockUtils;
import com.ruoyi.production.dto.ProductOrderDto;
import com.ruoyi.production.dto.ProductStructureDto;
@@ -16,7 +15,6 @@
import com.ruoyi.production.pojo.*;
import com.ruoyi.production.service.ProductOrderService;
import com.ruoyi.quality.mapper.QualityInspectMapper;
-import com.ruoyi.quality.pojo.QualityInspect;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -67,7 +65,17 @@
@Override
public IPage<ProductOrderDto> pageProductOrder(Page page, ProductOrderDto productOrder) {
- return productOrderMapper.pageProductOrder(page, productOrder);
+ IPage<ProductOrderDto> productOrderDtoIPage = productOrderMapper.pageProductOrder(page, productOrder);
+ List<ProductOrderDto> productOrderDtos = productOrderDtoIPage.getRecords();
+ for (int i = 0; i < productOrderDtos.size(); i++) {
+ ProductOrderDto productOrderDto = productOrderDtos.get(i);
+ if (BooleanUtil.isTrue(productOrderDto.getIsEnd())) {
+ // 濡傛灉鐢熶骇璁㈠崟琚粨鏉燂紝鍒欏皢瀹屾垚杩涘害璁剧疆涓�100%
+ productOrderDto.setCompletionStatus(BigDecimal.valueOf(100));
+ }
+ }
+
+ return productOrderDtoIPage;
}
@Override
@@ -201,4 +209,11 @@
}
+ @Override
+ public int finishOrder(Long orderId) {
+ ProductOrder productOrder = new ProductOrder();
+ productOrder.setId(orderId);
+ productOrder.setIsEnd(true);
+ return productOrderMapper.updateById(productOrder);
+ }
}
diff --git a/src/main/resources/mapper/production/ProductOrderMapper.xml b/src/main/resources/mapper/production/ProductOrderMapper.xml
index 5052055..f781da3 100644
--- a/src/main/resources/mapper/production/ProductOrderMapper.xml
+++ b/src/main/resources/mapper/production/ProductOrderMapper.xml
@@ -14,6 +14,7 @@
<result property="updateTime" column="update_time"/>
<result property="expectedSchedule" column="expected_schedule"/>
<result property="manufacturingTeam" column="manufacturing_team"/>
+ <result property="isEnd" column="is_end"/>
</resultMap>
<select id="pageProductOrder" resultType="com.ruoyi.production.dto.ProductOrderDto">
select po.*,
diff --git a/src/main/resources/mapper/production/ProductWorkOrderMapper.xml b/src/main/resources/mapper/production/ProductWorkOrderMapper.xml
index fe03f1e..ed47f64 100644
--- a/src/main/resources/mapper/production/ProductWorkOrderMapper.xml
+++ b/src/main/resources/mapper/production/ProductWorkOrderMapper.xml
@@ -28,6 +28,7 @@
pm.uid_no,
p.product_name AS productName,
po.nps_no AS productOrderNpsNo,
+ po.is_end as productOrderIsEnd,
ROUND(pwo.complete_quantity / pwo.plan_quantity * 100, 2) AS completionStatus,
CASE
WHEN pwo.work_order_no LIKE 'FG%' THEN '杩斿伐杩斾慨'
--
Gitblit v1.9.3