From deff787716b00b4f491de429ba092915d7fa1a9e Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 27 三月 2026 13:07:05 +0800
Subject: [PATCH] 过程检数据查询+原有生产订单表增加产品规格id

---
 src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java          |   20 +++++
 src/main/resources/mapper/production/ProductionProductRouteItemMapper.xml            |   49 ++++++++++++
 src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java   |    1 
 src/main/java/com/ruoyi/production/mapper/ProductionProductRouteItemParamMapper.java |    5 +
 src/main/java/com/ruoyi/quality/dto/ProcessPageDto.java                              |   66 ++++++++++++++++
 src/main/java/com/ruoyi/production/service/impl/ProductionRecordServiceImpl.java     |    6 
 src/main/java/com/ruoyi/production/dto/ProductOrderDto.java                          |    4 -
 src/main/java/com/ruoyi/quality/service/IQualityInspectService.java                  |    9 ++
 src/main/java/com/ruoyi/production/pojo/ProductOrder.java                            |    6 +
 src/main/java/com/ruoyi/quality/controller/QualityInspectController.java             |   29 +++++++
 src/main/resources/mapper/production/ProductOrderMapper.xml                          |    8 -
 src/main/resources/mapper/production/ProductionProductRouteItemParamMapper.xml       |    6 +
 src/main/java/com/ruoyi/production/mapper/ProductionProductRouteItemMapper.java      |    5 +
 13 files changed, 200 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/dto/ProductOrderDto.java b/src/main/java/com/ruoyi/production/dto/ProductOrderDto.java
index 10c476c..df748b7 100644
--- a/src/main/java/com/ruoyi/production/dto/ProductOrderDto.java
+++ b/src/main/java/com/ruoyi/production/dto/ProductOrderDto.java
@@ -23,10 +23,6 @@
     @Excel(name = "瑙勬牸")
     private String model;
 
-    @ApiModelProperty(value = "浜у搧绫诲瀷")
-    @Excel(name = "浜у搧绫诲瀷")
-    private String strength;
-
     @ApiModelProperty(value = "宸ヨ壓璺嚎鎻忚堪")
     @Excel(name = "宸ヨ壓璺嚎鎻忚堪")
     private String description;
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionProductRouteItemMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionProductRouteItemMapper.java
index 389e54a..6659e33 100644
--- a/src/main/java/com/ruoyi/production/mapper/ProductionProductRouteItemMapper.java
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionProductRouteItemMapper.java
@@ -1,7 +1,11 @@
 package com.ruoyi.production.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.production.pojo.ProductionProductRouteItem;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.quality.dto.ProcessPageDto;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +17,5 @@
  */
 public interface ProductionProductRouteItemMapper extends BaseMapper<ProductionProductRouteItem> {
 
+    IPage<ProcessPageDto> processPage(Page page, @Param("c") ProcessPageDto processPageDto);
 }
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionProductRouteItemParamMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionProductRouteItemParamMapper.java
index 7fe92f4..0d56b21 100644
--- a/src/main/java/com/ruoyi/production/mapper/ProductionProductRouteItemParamMapper.java
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionProductRouteItemParamMapper.java
@@ -1,7 +1,11 @@
 package com.ruoyi.production.mapper;
 
+import com.ruoyi.production.pojo.ProductionOrderRouteItemParam;
 import com.ruoyi.production.pojo.ProductionProductRouteItemParam;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +17,5 @@
  */
 public interface ProductionProductRouteItemParamMapper extends BaseMapper<ProductionProductRouteItemParam> {
 
+    List<ProductionProductRouteItemParam> processDetails(@Param("productionProductRouteItemId") Long productionProductRouteItemId);
 }
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductOrder.java b/src/main/java/com/ruoyi/production/pojo/ProductOrder.java
index a7479fc..5d5c792 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductOrder.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductOrder.java
@@ -98,4 +98,10 @@
 
     @ApiModelProperty(value = "鐘舵�侊紙1.寰呭紑濮嬨��2.杩涜涓��3.宸插畬鎴愩��4.宸插彇娑堬級")
     private Integer status;
+
+    /**
+     * 鍏宠仈鐗╂枡淇℃伅琛↖D
+     */
+    @ApiModelProperty("鍏宠仈鐗╂枡淇℃伅琛↖D")
+    private Long productMaterialSkuId;
 }
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionRecordServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionRecordServiceImpl.java
index 3dc9f0a..15c3392 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionRecordServiceImpl.java
@@ -229,7 +229,7 @@
             throw new ServiceException("鎶ュ伐澶辫触,鐢熶骇璁㈠崟鏇存柊澶辫触");
         }
 
-        //  瀹屾垚鎶ュ伐涓昏〃-鎶曞叆琛�-浜у嚭琛ㄦ暟鎹�
+        //  瀹屾垚鎶ュ伐涓昏〃-浜у嚭琛�-浜у嚭鏄庣粏琛ㄦ暟鎹�
         ProductionProductMain productionProductMain = new ProductionProductMain();
         productionProductMain.setProductNo(productionProductMainService.generateProductNo());
         productionProductMain.setProductOrderId(dto.getProductOrderId());
@@ -247,7 +247,7 @@
         productionProductInput.setQuantity(dto.getQuantity());
         result = productionProductInputService.save(productionProductInput);
         if (!result) {
-            throw new ServiceException("鎶ュ伐澶辫触,鐢熶骇鎶曞叆瀛樺偍澶辫触");
+            throw new ServiceException("鎶ュ伐澶辫触,鐢熶骇浜у嚭瀛樺偍澶辫触");
         }
 
         ProductionProductOutput productionProductOutput = new ProductionProductOutput();
@@ -481,7 +481,7 @@
         dto.setMaterialCode(productMaterialSkuDto.getMaterialCode());
         dto.setModel(productMaterialSkuDto.getModel());
 
-        //  鏌ヨ鎶曞叆琛紙鑾峰彇浜у搧ID鍜屾姇鍏ユ暟閲忥級
+        //  鏌ヨ鎬荤殑浜у嚭鏁伴噺(杩欓噷鎶婃姇鍏ヨ〃寮勬垚浜嗕骇鍑烘�昏〃)
         ProductionProductInput input = productionProductInputService.getOne(
                 new LambdaQueryWrapper<ProductionProductInput>()
                         .eq(ProductionProductInput::getProductMainId, productMainId)
diff --git a/src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java b/src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java
index 9fccff8..cd3e463 100644
--- a/src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java
+++ b/src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java
@@ -148,6 +148,7 @@
         productOrder.setPlanCompleteTime(productionPlanDto.getPlanCompleteTime());
         productOrder.setStatus(ProductOrderStatusEnum.WAIT.getCode());
         productOrder.setStrength(productionPlanDto.getStrength());
+        productOrder.setProductMaterialSkuId(productionPlanDto.getProductMaterialSkuId());
 
         Long orderId = productOrderService.insertProductOrder(productOrder);
 
diff --git a/src/main/java/com/ruoyi/quality/controller/QualityInspectController.java b/src/main/java/com/ruoyi/quality/controller/QualityInspectController.java
index dec3d1c..48a8d4f 100644
--- a/src/main/java/com/ruoyi/quality/controller/QualityInspectController.java
+++ b/src/main/java/com/ruoyi/quality/controller/QualityInspectController.java
@@ -7,6 +7,7 @@
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.procurementrecord.service.ProcurementRecordService;
 import com.ruoyi.procurementrecord.utils.StockUtils;
+import com.ruoyi.quality.dto.ProcessPageDto;
 import com.ruoyi.quality.dto.QualityInspectDto;
 import com.ruoyi.quality.pojo.QualityInspect;
 import com.ruoyi.quality.pojo.QualityInspectFile;
@@ -14,6 +15,8 @@
 import com.ruoyi.quality.service.IQualityInspectFileService;
 import com.ruoyi.quality.service.IQualityInspectParamService;
 import com.ruoyi.quality.service.IQualityInspectService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
@@ -26,6 +29,7 @@
  * 鍘熸潗鏂欐楠�/杩囩▼妫�楠�/鍑哄巶妫�楠�
  */
 @RestController
+@Api(tags = "璐ㄩ噺绠$悊")
 @RequestMapping("/quality/qualityInspect")
 public class QualityInspectController {
 
@@ -140,4 +144,29 @@
     public void down(HttpServletResponse response,@RequestBody QualityInspect qualityInspect) {
         qualityInspectService.down(response, qualityInspect);
     }
+
+    /************************************************瀹佸涓洓寤烘潗鐨勮繃绋嬫鍜屾垚鍝佹*********************************************************************************/
+
+    /**
+     * 杩囩▼妫�鍒嗛〉鏌ヨ
+     * @param page
+     * @param processPageDto
+     * @return
+     */
+    @GetMapping("/processPage")
+    @ApiOperation("杩囩▼妫�鍒嗛〉鏌ヨ")
+    public AjaxResult processPage(Page page, ProcessPageDto processPageDto) {
+        return AjaxResult.success(qualityInspectService.processPage(page, processPageDto));
+    }
+
+    /**
+     * 杩囩▼妫�璇︽儏
+     * @param processPageDto
+     * @return
+     */
+    @GetMapping("/processDetails")
+    @ApiOperation("杩囩▼妫�璇︽儏")
+    public AjaxResult processDetails(ProcessPageDto processPageDto) {
+        return AjaxResult.success(qualityInspectService.processDetails(processPageDto));
+    }
 }
diff --git a/src/main/java/com/ruoyi/quality/dto/ProcessPageDto.java b/src/main/java/com/ruoyi/quality/dto/ProcessPageDto.java
new file mode 100644
index 0000000..58202be
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/dto/ProcessPageDto.java
@@ -0,0 +1,66 @@
+package com.ruoyi.quality.dto;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel("璐ㄩ噺绠$悊---杩囩▼妫�(鍙拌处)")
+public class ProcessPageDto {
+
+    @ApiModelProperty("鐢熶骇鎶ュ伐璁板綍鐨勫伐搴忚〃id")
+    private Long ProductionProductRouteItemId;
+
+    @ApiModelProperty(value = "鏃ユ湡")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "鎶ュ伐鍗曞彿")
+    private String productNo;
+
+    @ApiModelProperty(value = "鐢熶骇璁㈠崟鍙�")
+    private String npsNo;
+
+    @ApiModelProperty(value = "宸ュ簭鍚嶇О")
+    private String process;
+
+    @ApiModelProperty(value = "宀椾綅浜哄憳")
+    private String postName;
+
+    @ApiModelProperty(value = "鐝")
+    private String schedule;
+
+    @ApiModelProperty(value = "浜у搧缂栫爜")
+    private String materialCode;
+
+    @ApiModelProperty(value = "浜у搧鍚嶇О")
+    private String productName;
+
+    @ApiModelProperty(value = "瑙勬牸")
+    private String model;
+
+    @ApiModelProperty(value = "浜у搧绫诲瀷")
+    private String strength;
+
+    @ApiModelProperty("鍚堟牸鏁伴噺")
+    private BigDecimal qualifiedQuantity;
+
+    @ApiModelProperty("涓嶅悎鏍兼暟閲�")
+    private BigDecimal unqualifiedQuantity;
+
+    @ApiModelProperty("浜у嚭鏁伴噺")
+    private BigDecimal quantity;
+
+
+    private LocalDateTime startTime;
+    private LocalDateTime endTime;
+}
diff --git a/src/main/java/com/ruoyi/quality/service/IQualityInspectService.java b/src/main/java/com/ruoyi/quality/service/IQualityInspectService.java
index 92bc88f..6f5f604 100644
--- a/src/main/java/com/ruoyi/quality/service/IQualityInspectService.java
+++ b/src/main/java/com/ruoyi/quality/service/IQualityInspectService.java
@@ -3,10 +3,15 @@
 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.ProcessRouteItemParamDto;
+import com.ruoyi.production.pojo.ProductionOrderRouteItemParam;
+import com.ruoyi.production.pojo.ProductionProductRouteItemParam;
+import com.ruoyi.quality.dto.ProcessPageDto;
 import com.ruoyi.quality.dto.QualityInspectDto;
 import com.ruoyi.quality.pojo.QualityInspect;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 public interface IQualityInspectService extends IService<QualityInspect> {
 
@@ -24,4 +29,8 @@
     int submit(QualityInspect qualityInspect);
 
     void down(HttpServletResponse response, QualityInspect qualityInspect);
+
+    IPage<ProcessPageDto> processPage(Page page, ProcessPageDto processPageDto);
+
+    List<ProductionProductRouteItemParam> processDetails(ProcessPageDto processPageDto);
 }
diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
index 8a1e066..0d48fc7 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -14,6 +14,12 @@
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.procurementrecord.service.ProcurementRecordService;
 import com.ruoyi.procurementrecord.utils.StockUtils;
+import com.ruoyi.production.dto.ProcessRouteItemParamDto;
+import com.ruoyi.production.mapper.ProductionProductRouteItemMapper;
+import com.ruoyi.production.mapper.ProductionProductRouteItemParamMapper;
+import com.ruoyi.production.pojo.ProductionOrderRouteItemParam;
+import com.ruoyi.production.pojo.ProductionProductRouteItemParam;
+import com.ruoyi.quality.dto.ProcessPageDto;
 import com.ruoyi.quality.dto.QualityInspectDto;
 import com.ruoyi.quality.mapper.QualityInspectMapper;
 import com.ruoyi.quality.mapper.QualityTestStandardMapper;
@@ -54,6 +60,10 @@
     private SalesLedgerProductMapper salesLedgerProductMapper;
 
     private ProcurementRecordService procurementRecordService;
+
+    private ProductionProductRouteItemMapper productionProductRouteItemMapper;
+
+    private ProductionProductRouteItemParamMapper productionProductRouteItemParamMapper;
 
     @Override
     public int add(QualityInspectDto qualityInspectDto) {
@@ -157,6 +167,16 @@
     }
 
     @Override
+    public IPage<ProcessPageDto> processPage(Page page, ProcessPageDto processPageDto) {
+        return productionProductRouteItemMapper.processPage(page,processPageDto);
+    }
+
+    @Override
+    public List<ProductionProductRouteItemParam> processDetails(ProcessPageDto processPageDto) {
+        return productionProductRouteItemParamMapper.processDetails(processPageDto.getProductionProductRouteItemId());
+    }
+
+    @Override
     public int updateQualityInspect(QualityInspectDto qualityInspectDto) {
         if (ObjectUtils.isNotNull(qualityInspectDto.getQualityInspectParams())) {
             qualityInspectParamService.remove(Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId, qualityInspectDto.getId()));
diff --git a/src/main/resources/mapper/production/ProductOrderMapper.xml b/src/main/resources/mapper/production/ProductOrderMapper.xml
index c758af7..4cd3372 100644
--- a/src/main/resources/mapper/production/ProductOrderMapper.xml
+++ b/src/main/resources/mapper/production/ProductOrderMapper.xml
@@ -54,13 +54,7 @@
         FROM product_order po
         LEFT JOIN process_route pr ON po.route_id = pr.id
         LEFT JOIN product_bom pb ON pr.bom_id = pb.id
-        LEFT JOIN (
-        SELECT product_order_id, MIN(production_plan_id) AS production_plan_id
-        FROM product_order_plan
-        GROUP BY product_order_id
-        ) pop ON po.id = pop.product_order_id
-        LEFT JOIN production_plan pp ON pop.production_plan_id = pp.id
-        LEFT JOIN product_material_sku pms ON pms.id = pp.product_material_sku_id
+        LEFT JOIN product_material_sku pms ON pms.id = po.product_material_sku_id
         LEFT JOIN product_material pm ON pm.id = pms.product_id
         <where>
             <if test="c.npsNo != null and c.npsNo != ''">
diff --git a/src/main/resources/mapper/production/ProductionProductRouteItemMapper.xml b/src/main/resources/mapper/production/ProductionProductRouteItemMapper.xml
index bae946b..a56128c 100644
--- a/src/main/resources/mapper/production/ProductionProductRouteItemMapper.xml
+++ b/src/main/resources/mapper/production/ProductionProductRouteItemMapper.xml
@@ -14,5 +14,54 @@
         <result column="update_time" property="updateTime"/>
         <result column="tenant_id" property="tenantId"/>
     </resultMap>
+    <select id="processPage" resultType="com.ruoyi.quality.dto.ProcessPageDto">
+        select ppri.id ProductionProductRouteItemId,
+               ppri.create_time,
+               ppm.product_no,
+               po.nps_no,
+               pp.name process,
+               ppri.post_name,
+               ppm.schedule,
+               pms.material_code,
+               pm.product_name,
+               pms.model,
+               po.strength,
+               ppo.quantity qualifiedQuantity,
+               ppo.scrap_qty unqualifiedQuantity,
+               ppo.quantity + ppo.scrap_qty quantity
+        from production_product_route_item ppri
+                 left join production_product_main ppm on ppri.product_main_id = ppm.id
+                 left join production_product_output ppo on ppo.product_main_id = ppm.id
+                 left join product_order po on ppm.product_order_id = po.id
+                 left join product_process pp on ppri.process_id = pp.id
+                 left join product_material_sku pms on pms.id = po.product_material_sku_id
+                 left join product_material pm on pm.id = pms.product_id
+        where 1=1
+            <if test="c.npsNo != null and c.npsNo != ''">
+                AND po.nps_no LIKE CONCAT('%', #{c.npsNo}, '%')
+            </if>
+            <if test="c.process != null and c.process != ''">
+                AND pp.name LIKE CONCAT('%', #{c.process}, '%')
+            </if>
+            <if test="c.productNo != null and c.productNo != ''">
+                AND ppm.product_no LIKE CONCAT('%', #{c.productNo}, '%')
+            </if>
+            <if test="c.productName != null and c.productName != ''">
+                AND pm.product_name LIKE CONCAT('%', #{c.productName}, '%')
+            </if>
+            <if test="c.materialCode != null and c.materialCode != ''">
+                AND pms.material_code LIKE CONCAT('%', #{c.materialCode}, '%')
+            </if>
+            <if test="c.model != null and c.model != ''">
+                AND pms.model LIKE CONCAT('%', #{c.model}, '%')
+            </if>
+            <if test="c.strength != null and c.strength != ''">
+                AND po.strength = #{c.strength}
+            </if>
+            <if test="c.startTime != null and c.endTime != null">
+                AND po.create_time BETWEEN #{c.startTime} AND #{c.endTime}
+            </if>
+        order by ppri.id desc
+    </select>
 
 </mapper>
diff --git a/src/main/resources/mapper/production/ProductionProductRouteItemParamMapper.xml b/src/main/resources/mapper/production/ProductionProductRouteItemParamMapper.xml
index 81c99d0..45e1d13 100644
--- a/src/main/resources/mapper/production/ProductionProductRouteItemParamMapper.xml
+++ b/src/main/resources/mapper/production/ProductionProductRouteItemParamMapper.xml
@@ -27,5 +27,11 @@
         <result column="update_time" property="updateTime"/>
         <result column="tenant_id" property="tenantId"/>
     </resultMap>
+    <select id="processDetails" resultType="com.ruoyi.production.pojo.ProductionProductRouteItemParam">
+        select pprip.*
+        from production_product_route_item_param pprip
+        where pprip.production_product_route_item_id = #{productionProductRouteItemId}
+        and pprip.order_item_param_id is not null
+    </select>
 
 </mapper>

--
Gitblit v1.9.3