diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdReportController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdReportController.java index d0eb5fef..3c2cfa38 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdReportController.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdReportController.java @@ -167,12 +167,18 @@ public class ProdReportController extends BaseController { } /** - * 在制品跟踪报表导出 + * 在制品跟踪报表导出 - 优化版本 */ @RepeatSubmit() @PostMapping("/wipTrackingReport/export") public void wipTrackingReportExport(@RequestParam(required = false) Map hashMap, HttpServletResponse response) { + // 获取报表数据 List list = prodReportService.wipTrackingReportList(hashMap); - ExcelUtil.exportExcel(list, "在制品跟踪报表", WipTrackingReportVo.class, response); + + // 转换为导出专用VO + List exportList = prodReportService.convertToExportVo(list); + + // 使用EasyExcel导出,保持与页面相同的样式和数据 + ExcelUtil.exportExcel(exportList, "在制品跟踪报表", WipTrackingReportExportVo.class, response); } } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProcessProgressVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProcessProgressVo.java index 154bfd84..832e24b5 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProcessProgressVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProcessProgressVo.java @@ -4,9 +4,11 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; /** - * 工序进度VO + * 工序进度VO - 优化版本 * * @author Yinq * @date 2025-01-25 @@ -17,6 +19,11 @@ public class ProcessProgressVo implements Serializable { @Serial private static final long serialVersionUID = 1L; + /** + * 产品订单ID(用于批量查询结果分组) + */ + private Long productOrderId; + /** * 工序ID */ @@ -33,7 +40,7 @@ public class ProcessProgressVo implements Serializable { private Integer processOrder; /** - * 工序状态:0未派工 1已派工 2已开始 3已完成 + * 工序状态:0未派工 1已派工 2进行中 3已完成 */ private String planStatus; @@ -43,7 +50,52 @@ public class ProcessProgressVo implements Serializable { private String statusDesc; /** - * 是否已完成 + * 是否已完成(1是 0否) */ - private Boolean isCompleted; + private Integer isCompleted; + + /** + * 是否进行中(1是 0否) + */ + private Integer isInProgress; + + /** + * 计划数量 + */ + private BigDecimal planAmount; + + /** + * 完成数量 + */ + private BigDecimal completeAmount; + + /** + * 剩余数量 + */ + private BigDecimal remainingAmount; + + /** + * 工序进度百分比 + */ + private BigDecimal processProgress; + + /** + * 计划开始时间 + */ + private LocalDateTime planBeginTime; + + /** + * 计划结束时间 + */ + private LocalDateTime planEndTime; + + /** + * 实际开始时间 + */ + private LocalDateTime realBeginTime; + + /** + * 实际结束时间 + */ + private LocalDateTime realEndTime; } \ No newline at end of file diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/WipTrackingReportVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/WipTrackingReportVo.java index be556ffc..f1ef39e7 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/WipTrackingReportVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/WipTrackingReportVo.java @@ -29,6 +29,11 @@ public class WipTrackingReportVo implements Serializable { */ private Long productOrderId; + /** + * 租户ID(用于批量查询工序进度的租户过滤) + */ + private Long tenantId; + /** * 生产订单号 */ diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdReportMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdReportMapper.java index 61c2c762..1461383b 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdReportMapper.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdReportMapper.java @@ -119,7 +119,16 @@ public interface ProdReportMapper { List wipTrackingReportList(@Param("map") Map hashMap); /** - * 获取订单的工序进度详情 + * 获取订单的工序进度详情(单订单) */ List getOrderProcessProgress(@Param("productOrderId") Long productOrderId, @Param("planTableName") String planTableName); + + /** + * 批量获取订单的工序进度详情(避免N+1,一次查询一个工序表) + * @param productOrderIds 订单ID列表 + * @param planTableName 工序表名(prod_plan_info_2/_3/_4) + * @return 工序进度明细 + */ + List getOrdersProcessProgressBatch(@Param("productOrderIds") List productOrderIds, + @Param("planTableName") String planTableName); } diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdReportMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdReportMapper.xml index 0eb9094a..9e4c199e 100644 --- a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdReportMapper.xml +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdReportMapper.xml @@ -216,8 +216,8 @@ FORMAT(ppd.create_time, 'yyyy-MM-dd') BETWEEN #{map.beginDate} AND #{map.endDate} - - + AND ppi.release_id = #{map.machineId} @@ -296,48 +296,18 @@ ORDER BY ppd.real_begin_time DESC, ppi.plan_id DESC - + - + + + + + + +