From 868e1e1f5d568e1bb8b50df758ca3d157a680678 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 20 三月 2026 13:05:32 +0800
Subject: [PATCH] 根据生产订单查询工单信息,根据工单查询报工数据

---
 src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java |   50 +++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 41 insertions(+), 9 deletions(-)

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 4a68ce8..dc6f264 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java
@@ -7,19 +7,19 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.deepoove.poi.XWPFTemplate;
-import com.deepoove.poi.config.Configure;
 import com.deepoove.poi.data.PictureRenderData;
 import com.deepoove.poi.data.Pictures;
-import com.ruoyi.common.utils.HackLoopTableRenderPolicy;
 import com.ruoyi.common.utils.MatrixToImageWriter;
 import com.ruoyi.production.dto.ProductWorkOrderDto;
+import com.ruoyi.production.mapper.ProductProcessRouteItemMapper;
 import com.ruoyi.production.mapper.ProductWorkOrderFileMapper;
 import com.ruoyi.production.mapper.ProductWorkOrderMapper;
+import com.ruoyi.production.mapper.ProductionProductMainMapper;
+import com.ruoyi.production.pojo.ProductProcessRouteItem;
 import com.ruoyi.production.pojo.ProductWorkOrder;
 import com.ruoyi.production.pojo.ProductWorkOrderFile;
+import com.ruoyi.production.pojo.ProductionProductMain;
 import com.ruoyi.production.service.ProductWorkOrderService;
-import com.ruoyi.quality.pojo.QualityInspectParam;
-import lombok.AllArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -29,10 +29,7 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Service
 @Transactional(rollbackFor = Exception.class)
@@ -42,13 +39,43 @@
     private ProductWorkOrderMapper productWorkOrdermapper;
     @Autowired
     private ProductWorkOrderFileMapper productWorkOrderFileMapper;
+    @Autowired
+    private ProductProcessRouteItemMapper productProcessRouteItemMapper;
+    @Autowired
+    private ProductionProductMainMapper productionProductMainMapper;
 
     @Value("${file.temp-dir}")
     private String tempDir;
 
     @Override
     public IPage<ProductWorkOrderDto> listPage(Page<ProductWorkOrderDto> page, ProductWorkOrderDto productWorkOrder) {
-        return productWorkOrdermapper.pageProductWorkOrder(page, productWorkOrder);
+        IPage<ProductWorkOrderDto> productWorkOrderDtoIPage = productWorkOrdermapper.pageProductWorkOrder(page, productWorkOrder);
+        productWorkOrderDtoIPage.getRecords().forEach(record -> {
+            //妫�鏌ヤ笂涓�涓伐搴忔槸鍚﹀凡鎶ュ伐
+            Integer currentDragSort = record.getDragSort();
+            if (currentDragSort == null || currentDragSort == 1) {
+                record.setIsCanReport(true);
+            } else {
+                //鏌ユ壘涓婁竴涓伐搴�
+                ProductProcessRouteItem previousItem = productProcessRouteItemMapper.selectOne(
+                        Wrappers.<ProductProcessRouteItem>lambdaQuery()
+                                .eq(ProductProcessRouteItem::getProductRouteId, record.getProductRouteId())
+                                .eq(ProductProcessRouteItem::getDragSort, currentDragSort - 1)
+                );
+
+                if (previousItem != null) {
+                    //妫�鏌ヤ笂涓�涓伐搴忔槸鍚︽湁鎶ュ伐璁板綍
+                    Long count = productionProductMainMapper.selectCount(
+                            Wrappers.<ProductionProductMain>lambdaQuery()
+                                    .eq(ProductionProductMain::getProductProcessRouteItemId, previousItem.getId())
+                    );
+                    record.setIsCanReport(count > 0);
+                } else {
+                    record.setIsCanReport(true);
+                }
+            }
+        });
+        return productWorkOrderDtoIPage;
     }
 
     @Override
@@ -113,4 +140,9 @@
         }
     }
 
+    @Override
+    public List<ProductWorkOrderDto> getByProductOrderId(Long productOrderId) {
+        return productWorkOrdermapper.getByProductOrderId(productOrderId);
+    }
+
 }

--
Gitblit v1.9.3