src/main/java/com/ruoyi/production/controller/ProductionOperationTaskController.java
@@ -77,11 +77,9 @@ } @GetMapping("/byOrder/{orderId}") @Operation(summary = "根据生产订单ID查询分组数据") @Operation(summary = "根据生产订单ID查询工单列表") public R<List<ProductionOperationTaskVo>> byOrder(@PathVariable Long orderId) { ProductionOperationTaskDto dto = new ProductionOperationTaskDto(); dto.setProductionOrderId(orderId); return R.ok(productionOperationTaskService.listProductionOperationTask(dto)); return R.ok(productionOperationTaskService.listByOrderId(orderId)); } @GetMapping("/getOperation") src/main/java/com/ruoyi/production/mapper/ProductionOperationTaskMapper.java
@@ -45,4 +45,6 @@ List<ProductionOperationTaskVo> getOperation(@Param("c") ProductionOperationTaskDto dto); List<ProductionOperationTaskVo> listGroupedProductionOperationTask(@Param("c") ProductionOperationTaskDto dto); List<ProductionOperationTaskVo> listByOrderId(@Param("orderId") Long orderId); } src/main/java/com/ruoyi/production/service/ProductionOperationTaskService.java
@@ -30,4 +30,6 @@ void down(HttpServletResponse response, ProductionOperationTaskDto dto); List<ProductionOperationTaskVo> getOperation(ProductionOperationTaskDto dto); List<ProductionOperationTaskVo> listByOrderId(Long orderId); } src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java
@@ -381,6 +381,13 @@ return result; } @Override public List<ProductionOperationTaskVo> listByOrderId(Long orderId) { List<ProductionOperationTaskVo> result = baseMapper.listByOrderId(orderId); fillUserNames(result); return result; } private void fillOperationTypes(List<ProductionOperationTaskVo> voList) { // 回填工序类型(0 计时 / 1 计件) if (voList == null || voList.isEmpty()) { src/main/resources/mapper/production/ProductionOperationTaskMapper.xml
@@ -260,4 +260,41 @@ order by min(poro.drag_sort), poro.operation_name </select> <select id="listByOrderId" resultType="com.ruoyi.production.bean.vo.ProductionOperationTaskVo"> select pot.id, pot.work_order_no, pot.plan_start_time as planStartTime, pot.plan_end_time as planEndTime, pot.actual_start_time as actualStartTime, pot.actual_end_time as actualEndTime, pot.status, pot.production_order_id as productionOrderId, pot.plan_quantity as planQuantity, pot.complete_quantity as completeQuantity, po.nps_no as npsNo, po.is_end_order as endOrder, p.product_name as productName, pm.model as model, pm.unit as unit, poro.operation_name as operationName, poro.type as type, case when pot.work_order_no like 'FG%' then '返工返修' else '正常' end as workOrderType, ifnull(scrapStat.scrapQty, 0) as scrapQty, round(ifnull(pot.complete_quantity, 0) / nullif(pot.plan_quantity, 0) * 100, 2) as completionStatus from production_operation_task pot left join production_order po on pot.production_order_id = po.id left join production_order_routing_operation poro on pot.production_order_routing_operation_id = poro.id left join product_model pm on pm.id = ifnull(poro.product_model_id, po.product_model_id) left join product p on pm.product_id = p.id left join ( select ppm.production_operation_task_id as taskId, sum(ifnull(ppo.scrap_qty, 0)) as scrapQty from production_product_main ppm left join production_product_output ppo on ppo.production_product_main_id = ppm.id group by ppm.production_operation_task_id ) scrapStat on scrapStat.taskId = pot.id where pot.production_order_id = #{orderId} order by pot.id desc </select> </mapper>