From 0a73b4d40662ea554bdf80b22966901da1abb424 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 26 一月 2026 13:45:13 +0800
Subject: [PATCH] 生产工单流转卡
---
src/main/java/com/ruoyi/production/mapper/ProductWorkOrderMapper.java | 1
src/main/resources/mapper/production/ProductWorkOrderMapper.xml | 26 +++++++++++-
src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java | 14 +++++++
src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java | 23 +++++++++++
src/main/java/com/ruoyi/production/controller/ProductOrderController.java | 10 +++++
src/main/java/com/ruoyi/production/controller/ProductWorkOrderController.java | 9 ++++
src/main/java/com/ruoyi/production/service/ProductOrderService.java | 3 +
src/main/java/com/ruoyi/production/service/ProductWorkOrderService.java | 1
src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java | 5 ++
9 files changed, 89 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/controller/ProductOrderController.java b/src/main/java/com/ruoyi/production/controller/ProductOrderController.java
index 658b40a..442528d 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductOrderController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductOrderController.java
@@ -64,4 +64,14 @@
}
+ /**
+ * 鐢熶骇璁㈠崟娴佽浆鍗℃樉绀哄唴瀹�
+ */
+ @ApiOperation("鐢熶骇璁㈠崟娴佽浆鍗℃樉绀哄唴瀹�")
+ @GetMapping("/getProductOrderFlowCard")
+ public R getProductOrderFlowCard(Long orderId) {
+ return R.ok(productOrderService.getProductOrderFlowCard(orderId));
+ }
+
+
}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductWorkOrderController.java b/src/main/java/com/ruoyi/production/controller/ProductWorkOrderController.java
index 188a701..001316b 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductWorkOrderController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductWorkOrderController.java
@@ -43,4 +43,13 @@
return R.ok(productWorkOrderservice.getById(id));
}
+ /**
+ * 鐢熶骇宸ュ崟娴佽浆鍗℃樉绀哄唴瀹�
+ */
+ @ApiOperation("鐢熶骇宸ュ崟娴佽浆鍗℃樉绀哄唴瀹�")
+ @GetMapping("/getProductWorkOrderFlowCard")
+ public R getProductWorkOrderFlowCard(Long id) {
+ return R.ok(productWorkOrderservice.getProductWorkOrderFlowCard(id));
+ }
+
}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java b/src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java
index f4ebe75..563260d 100644
--- a/src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java
+++ b/src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java
@@ -2,11 +2,13 @@
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.production.pojo.ProductWorkOrder;
+import com.ruoyi.production.pojo.ProductWorkOrderFile;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
+import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Data
@@ -35,4 +37,7 @@
@ApiModelProperty(value = "瀹屾垚杩涘害")
private BigDecimal completionStatus;
+
+ @ApiModelProperty(value = "闄勪欢璇︽儏")
+ private List<ProductWorkOrderFile> productWorkOrderFiles;
}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductWorkOrderMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductWorkOrderMapper.java
index 8a8a52f..b0b8d6a 100644
--- a/src/main/java/com/ruoyi/production/mapper/ProductWorkOrderMapper.java
+++ b/src/main/java/com/ruoyi/production/mapper/ProductWorkOrderMapper.java
@@ -17,4 +17,5 @@
IPage<ProductWorkOrderDto> pageProductWorkOrder(Page<ProductWorkOrderDto> page, @Param("c") ProductWorkOrderDto productWorkOrder);
+ ProductWorkOrderDto getProductWorkOrderFlowCard(@Param("id") Long id);
}
diff --git a/src/main/java/com/ruoyi/production/service/ProductOrderService.java b/src/main/java/com/ruoyi/production/service/ProductOrderService.java
index 78a3de1..4babc68 100644
--- a/src/main/java/com/ruoyi/production/service/ProductOrderService.java
+++ b/src/main/java/com/ruoyi/production/service/ProductOrderService.java
@@ -6,6 +6,7 @@
import com.ruoyi.production.dto.ProductBomDto;
import com.ruoyi.production.dto.ProductOrderDto;
import com.ruoyi.production.dto.ProductStructureDto;
+import com.ruoyi.production.dto.ProductWorkOrderDto;
import com.ruoyi.production.pojo.ProcessRoute;
import com.ruoyi.production.pojo.ProductOrder;
@@ -21,4 +22,6 @@
List<ProcessRoute> listProcessRoute(Long productModelId);
List<ProductStructureDto> listProcessBom(Long orderId);
+
+ List<ProductWorkOrderDto> getProductOrderFlowCard(Long orderId);
}
diff --git a/src/main/java/com/ruoyi/production/service/ProductWorkOrderService.java b/src/main/java/com/ruoyi/production/service/ProductWorkOrderService.java
index 392230e..49b4fcc 100644
--- a/src/main/java/com/ruoyi/production/service/ProductWorkOrderService.java
+++ b/src/main/java/com/ruoyi/production/service/ProductWorkOrderService.java
@@ -12,4 +12,5 @@
int updateProductWorkOrder(ProductWorkOrderDto productWorkOrderDto);
+ ProductWorkOrderDto getProductWorkOrderFlowCard(Long id);
}
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 3dc98a1..d2cbd73 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
@@ -2,11 +2,13 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+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.production.dto.ProductBomDto;
import com.ruoyi.production.dto.ProductOrderDto;
import com.ruoyi.production.dto.ProductStructureDto;
+import com.ruoyi.production.dto.ProductWorkOrderDto;
import com.ruoyi.production.mapper.*;
import com.ruoyi.production.pojo.*;
import com.ruoyi.production.service.ProcessRouteService;
@@ -17,6 +19,7 @@
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;
+import java.util.stream.Collectors;
@Service
public class ProductOrderServiceImpl extends ServiceImpl<ProductOrderMapper, ProductOrder> implements ProductOrderService {
@@ -38,6 +41,9 @@
@Autowired
private ProductWorkOrderMapper productWorkOrderMapper;
+
+ @Autowired
+ private ProductWorkOrderFileMapper productWorkOrderFileMapper;
@Override
@@ -110,4 +116,21 @@
public List<ProductStructureDto> listProcessBom(Long orderId) {
return productOrderMapper.listProcessBom(orderId);
}
+
+ @Override
+ public List<ProductWorkOrderDto> getProductOrderFlowCard(Long orderId) {
+ //鏌ヨ璁㈠崟涓嬬殑鎵�鏈夊伐鍗曞苟鎸夌収宸ュ簭鐨勯『搴�
+ List<ProductWorkOrder> productWorkOrders = productWorkOrderMapper.selectList(Wrappers.<ProductWorkOrder>lambdaQuery()
+ .eq(ProductWorkOrder::getProductOrderId, orderId));
+ if (productWorkOrders.size()==0){
+ return null;
+ }
+ List<ProductWorkOrderDto> productWorkOrderDtos = productWorkOrders.stream().map(productWorkOrder -> {
+ ProductWorkOrderDto productWorkOrderFlowCard = productWorkOrderMapper.getProductWorkOrderFlowCard(productWorkOrder.getId());
+ List<ProductWorkOrderFile> productWorkOrderFiles = productWorkOrderFileMapper.selectList(Wrappers.<ProductWorkOrderFile>lambdaQuery().eq(ProductWorkOrderFile::getWorkOrderId, productWorkOrder.getId()));
+ productWorkOrderFlowCard.setProductWorkOrderFiles(productWorkOrderFiles);
+ return productWorkOrderFlowCard;
+ }).collect(Collectors.toList());
+ return productWorkOrderDtos;
+ }
}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java
index 6f70e7c..ec6b8a9 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java
@@ -2,15 +2,20 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
+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.production.dto.ProductWorkOrderDto;
+import com.ruoyi.production.mapper.ProductWorkOrderFileMapper;
import com.ruoyi.production.mapper.ProductWorkOrderMapper;
import com.ruoyi.production.pojo.ProductWorkOrder;
+import com.ruoyi.production.pojo.ProductWorkOrderFile;
import com.ruoyi.production.service.ProductWorkOrderService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
@Service
@AllArgsConstructor
@@ -18,6 +23,7 @@
public class ProductWorkOrderServiceImpl extends ServiceImpl<ProductWorkOrderMapper, ProductWorkOrder> implements ProductWorkOrderService {
private ProductWorkOrderMapper productWorkOrdermapper;
+ private ProductWorkOrderFileMapper productWorkOrderFileMapper;
@Override
public IPage<ProductWorkOrderDto> listPage(Page<ProductWorkOrderDto> page, ProductWorkOrderDto productWorkOrder) {
@@ -29,4 +35,12 @@
return productWorkOrdermapper.updateById(productWorkOrderDto);
}
+ @Override
+ public ProductWorkOrderDto getProductWorkOrderFlowCard(Long id) {
+ ProductWorkOrderDto productWorkOrderFlowCard = productWorkOrdermapper.getProductWorkOrderFlowCard(id);
+ List<ProductWorkOrderFile> productWorkOrderFiles = productWorkOrderFileMapper.selectList(Wrappers.<ProductWorkOrderFile>lambdaQuery().eq(ProductWorkOrderFile::getWorkOrderId, id));
+ productWorkOrderFlowCard.setProductWorkOrderFiles(productWorkOrderFiles);
+ return productWorkOrderFlowCard;
+ }
+
}
diff --git a/src/main/resources/mapper/production/ProductWorkOrderMapper.xml b/src/main/resources/mapper/production/ProductWorkOrderMapper.xml
index 06f79e1..67e5bb6 100644
--- a/src/main/resources/mapper/production/ProductWorkOrderMapper.xml
+++ b/src/main/resources/mapper/production/ProductWorkOrderMapper.xml
@@ -34,13 +34,33 @@
LEFT JOIN product_process pp ON pp.id = ppri.process_id
LEFT JOIN product_model pm ON pm.id = ppri.product_model_id
LEFT JOIN product p ON p.id = pm.product_id
- <where>
+ where 1=1
<if test="c.workOrderNo != null and c.workOrderNo != ''">
- pwo.work_order_no like concat('%',#{c.workOrderNo},'%')
+ and pwo.work_order_no like concat('%',#{c.workOrderNo},'%')
</if>
<if test="c.planStartTime != null and c.planEndTime != null">
and DATE(pwo.create_time) between #{c.planStartTime} and #{c.planEndTime}
</if>
- </where>
+ <if test="c.orderId != null and c.orderId != ''">
+ and pwo.product_order_id = #{c.orderId}
+ </if>
+ </select>
+ <select id="getProductWorkOrderFlowCard" resultType="com.ruoyi.production.dto.ProductWorkOrderDto">
+ SELECT
+ pwo.*,
+ pp.NAME as processName,
+ pm.model,
+ pm.unit,
+ p.product_name AS productName,
+ po.nps_no AS productOrderNpsNo,
+ ROUND(pwo.complete_quantity / pwo.plan_quantity * 100, 2) AS completionStatus
+ FROM
+ product_work_order pwo
+ LEFT JOIN product_process_route_item ppri ON ppri.id = pwo.product_process_route_item_id
+ LEFT JOIN product_order po ON po.id = pwo.product_order_id
+ LEFT JOIN product_process pp ON pp.id = ppri.process_id
+ LEFT JOIN product_model pm ON pm.id = ppri.product_model_id
+ LEFT JOIN product p ON p.id = pm.product_id
+ WHERE pwo.id = #{id}
</select>
</mapper>
--
Gitblit v1.9.3