test-workorder-data.md 1.5 KB

工单工序排产数据诊断

问题描述

工单工序排产列表页面不显示数据

诊断步骤

1. 检查API响应

  • API端点: GET /admin-api/product/workorder-schedule/page?pageNo=1&pageSize=20
  • 状态码: 200
  • 响应内容: 空

2. 可能的原因

原因1: 需要认证Token

  • Controller使用了 @PreAuthorize("@ss.hasPermission('product:workorder-schedule:query')") 注解
  • 需要登录后获取token才能访问

原因2: 数据库中没有数据

  • 表名: WorkOrdMaster
  • 查询条件: WHERE a.Status != ''

原因3: MyBatis Plus分页配置问题

  • 自定义XML查询可能没有正确应用分页插件

原因4: 租户拦截器问题

  • Mapper使用了 @InterceptorIgnore(tenantLine = "true") 来忽略租户拦截
  • 但可能还有其他拦截器影响

解决方案

方案1: 前端登录后测试

  1. 启动前端: cd yudao-ui/yudao-ui-admin-vue3 && pnpm dev
  2. 访问: http://localhost
  3. 登录系统
  4. 访问工单工序排产页面
  5. 检查浏览器控制台和网络请求

方案2: 使用Swagger测试

  1. 访问: http://localhost:48080/doc.html
  2. 先调用登录接口获取token
  3. 使用token调用工单排产接口

方案3: 检查数据库

直接查询数据库确认是否有数据:

SELECT COUNT(*) FROM WorkOrdMaster WHERE Status != '';
SELECT * FROM WorkOrdMaster WHERE Status != '' LIMIT 10;

方案4: 添加调试日志

在Service实现中添加日志,查看实际执行的SQL和返回结果