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/mapper/ProductWorkOrderMapper.java | 2 +
src/main/java/com/ruoyi/production/service/ProductionProductMainService.java | 2 +
src/main/resources/mapper/production/ProductWorkOrderMapper.xml | 33 ++++++++++++++++
src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java | 10 +++--
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 6 +++
src/main/java/com/ruoyi/production/controller/ProductWorkOrderController.java | 5 ++
src/main/java/com/ruoyi/production/service/ProductWorkOrderService.java | 3 +
src/main/resources/mapper/production/ProductionProductMainMapper.xml | 28 ++++++++++++++
src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java | 10 +++++
src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java | 2 +
src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java | 6 +++
11 files changed, 103 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/controller/ProductWorkOrderController.java b/src/main/java/com/ruoyi/production/controller/ProductWorkOrderController.java
index 029e457..7e8e92c 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductWorkOrderController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductWorkOrderController.java
@@ -57,4 +57,9 @@
productWorkOrderservice.down(response, productWorkOrder);
}
+ @ApiOperation("鏍规嵁鐢熶骇璁㈠崟id鏌ヨ鏁版嵁")
+ @GetMapping("/getByProductOrderId/{productOrderId}")
+ public R getProductWorkOrderListByProductOrderId(@PathVariable Long productOrderId) {
+ return R.ok(productWorkOrderservice.getByProductOrderId(productOrderId));
+ }
}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java b/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
index 57348e6..3a47e6b 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
@@ -59,4 +59,10 @@
ExcelUtil<ProductionProductMainDto> util = new ExcelUtil<ProductionProductMainDto>(ProductionProductMainDto.class);
util.exportExcel(response, list, "鐢熶骇鎶ュ伐鏁版嵁");
}
+
+ @GetMapping("/getByProductWorkOrderId/{productWorkOrderId}")
+ public R getByProductWorkOrderId(@PathVariable Long productWorkOrderId) {
+ return R.ok(productionProductMainService.getByProductWorkOrderId(productWorkOrderId));
+ }
+
}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java b/src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java
index 4f53192..7a10f4a 100644
--- a/src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java
+++ b/src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java
@@ -25,6 +25,9 @@
private Long processId;
+ @ApiModelProperty(value = "宸ュ簭缂栧彿")
+ private String processNo;
+
//鍗曚綅
@ApiModelProperty(value = "鍗曚綅")
private String unit;
@@ -51,4 +54,11 @@
@ApiModelProperty(value = "鏄惁鍙互鎶ュ伐")
private Boolean isCanReport;
+
+ // 鍚堟牸鏁伴噺
+ @ApiModelProperty(value = "鍚堟牸鏁伴噺")
+ private BigDecimal completeQty;
+
+ @ApiModelProperty(value = "涓嶈壇鐜�")
+ private BigDecimal scrapRate;
}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductWorkOrderMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductWorkOrderMapper.java
index d637f7d..cd1844f 100644
--- a/src/main/java/com/ruoyi/production/mapper/ProductWorkOrderMapper.java
+++ b/src/main/java/com/ruoyi/production/mapper/ProductWorkOrderMapper.java
@@ -17,6 +17,8 @@
IPage<ProductWorkOrderDto> pageProductWorkOrder(Page<ProductWorkOrderDto> page, @Param("c") ProductWorkOrderDto productWorkOrder);
+ List<ProductWorkOrderDto> getByProductOrderId(@Param("productOrderId") Long productOrderId);
+
ProductWorkOrderDto getProductWorkOrderFlowCard(@Param("id") Long id);
List<ProductWorkOrderDto> selectWorkOrderStartStats(@Param("startDate") String startDate, @Param("endDate") String endDate);
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java
index e63e032..2ccf787 100644
--- a/src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java
@@ -33,4 +33,6 @@
IPage<ProductionProductMainDto> listProductionDetails(@Param("ew") SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto, Page page);
ArrayList<Long> listMain(List<Long> idList);
+
+ List<ProductionProductMainDto> getByProductWorkOrderId(Long productWorkOrderId);
}
diff --git a/src/main/java/com/ruoyi/production/service/ProductWorkOrderService.java b/src/main/java/com/ruoyi/production/service/ProductWorkOrderService.java
index 8ef28e6..24f9adc 100644
--- a/src/main/java/com/ruoyi/production/service/ProductWorkOrderService.java
+++ b/src/main/java/com/ruoyi/production/service/ProductWorkOrderService.java
@@ -7,6 +7,7 @@
import com.ruoyi.production.pojo.ProductWorkOrder;
import javax.servlet.http.HttpServletResponse;
+import java.util.List;
public interface ProductWorkOrderService extends IService<ProductWorkOrder>{
@@ -15,4 +16,6 @@
int updateProductWorkOrder(ProductWorkOrderDto productWorkOrderDto);
void down(HttpServletResponse response, ProductWorkOrder productWorkOrder);
+
+ List<ProductWorkOrderDto> getByProductOrderId(Long productOrderId);
}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java b/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java
index 72d868c..58d25d2 100644
--- a/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java
+++ b/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java
@@ -17,4 +17,6 @@
Boolean removeProductMain(Long id);
ArrayList<Long> listMain(List<Long> idList);
+
+ List<ProductionProductMainDto> getByProductWorkOrderId(Long productWorkOrderId);
}
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 23190db..dc6f264 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java
@@ -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)
@@ -143,4 +140,9 @@
}
}
+ @Override
+ public List<ProductWorkOrderDto> getByProductOrderId(Long productOrderId) {
+ return productWorkOrdermapper.getByProductOrderId(productOrderId);
+ }
+
}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
index 96e7f7e..b3ad019 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -37,6 +37,7 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -374,4 +375,9 @@
public ArrayList<Long> listMain(List<Long> idList) {
return productionProductMainMapper.listMain(idList);
}
+
+ @Override
+ public List<ProductionProductMainDto> getByProductWorkOrderId(Long productWorkOrderId) {
+ return productionProductMainMapper.getByProductWorkOrderId(productWorkOrderId);
+ }
}
diff --git a/src/main/resources/mapper/production/ProductWorkOrderMapper.xml b/src/main/resources/mapper/production/ProductWorkOrderMapper.xml
index d697825..8a4a5de 100644
--- a/src/main/resources/mapper/production/ProductWorkOrderMapper.xml
+++ b/src/main/resources/mapper/production/ProductWorkOrderMapper.xml
@@ -53,6 +53,39 @@
</if>
order by pwo.priority
</select>
+
+ <select id="getByProductOrderId" resultType="com.ruoyi.production.dto.ProductWorkOrderDto">
+ SELECT
+ pwo.*,
+ pp.id as processId,
+ pp.NAME as processName,
+ pp.no as processNo,
+ pm.model,
+ pm.unit,
+ p.product_name AS productName,
+ po.nps_no AS productOrderNpsNo,
+ ppri.drag_sort,
+ ppri.product_route_id,
+ sum(ppo.scrap_qty) scrapQty,
+ ROUND(pwo.complete_quantity / pwo.plan_quantity * 100, 2) AS completionStatus,
+ ROUND(sum(ppo.scrap_qty) / pwo.complete_quantity * 100, 2) AS scrapRate,
+ (pwo.complete_quantity - sum(ppo.scrap_qty)) AS completeQty,
+ CASE
+ WHEN pwo.work_order_no LIKE 'FG%' THEN '杩斿伐杩斾慨'
+ ELSE '姝e父'
+ END AS work_order_type
+ 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
+ LEFT JOIN production_product_main ppm ON ppm.work_order_id = pwo.id
+ LEFT JOIN production_product_output ppo ON ppo.product_main_id = ppm.id
+ where po.id=#{productOrderId}
+ order by ppri.drag_sort
+ </select>
<select id="getProductWorkOrderFlowCard" resultType="com.ruoyi.production.dto.ProductWorkOrderDto">
SELECT
pwo.*,
diff --git a/src/main/resources/mapper/production/ProductionProductMainMapper.xml b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
index 11301ad..4ac2dce 100644
--- a/src/main/resources/mapper/production/ProductionProductMainMapper.xml
+++ b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
@@ -53,6 +53,34 @@
order by ppm.id
</select>
+ <select id="getByProductWorkOrderId" resultType="com.ruoyi.production.dto.ProductionProductMainDto">
+ select ppm.*,
+ pwo.work_order_no as workOrderNo,
+ pwo.status as workOrderStatus,
+ u.nick_name as nickName,
+ p.product_name as productName,
+ pp.name as process,
+ pm.model as productModelName,
+ ppo.quantity,
+ ppo.scrap_qty,
+ ppo.other_data,
+ pm.unit,
+ sl.sales_contract_no salesContractNo
+ from
+ production_product_main ppm
+ left join product_work_order pwo on pwo.id = ppm.work_order_id
+ left join product_process_route_item ppri on ppri.id = pwo.product_process_route_item_id
+ left join product_process pp on pp.id = ppri.process_id
+ left join product_order po on po.id = pwo.product_order_id
+ left join production_product_output ppo on ppm.id = ppo.product_main_id
+ left join product_model pm on pm.id = ppo.product_model_id
+ left join product p on p.id = pm.product_id
+ left join sales_ledger sl on sl.id = po.sales_ledger_id
+ left join sys_user u on u.user_id = ppm.user_id
+ where pwo.id = #{productWorkOrderId}
+ order by ppm.id
+ </select>
+
<select id="getOrderByMainId" resultType="com.ruoyi.production.pojo.ProductOrder">
select po.*
from product_order po
--
Gitblit v1.9.3