# 工单排产模块快速检查清单 ## 🔍 问题:前端页面不显示数据 ### ✅ 检查清单 #### 1. Maven 依赖检查 - [x] `pom.xml` 根目录已添加 `yudao-module-product` 模块 - [x] `yudao-server/pom.xml` 已添加 `yudao-module-product` 依赖 #### 2. 代码结构检查 - [x] Controller: `WorkOrderScheduleController.java` 存在 - [x] Service: `WorkOrderScheduleService.java` 和实现类存在 - [x] Mapper: `WorkOrdMasterMapper.java` 和 XML 文件存在 - [x] VO 类: 请求和响应 VO 类存在 #### 3. 前端代码检查 - [x] API 文件: `src/api/product/workorderSchedule.ts` 存在 - [x] 页面文件: `src/views/product/WorkOrderSchedule.vue` 存在 - [x] 页面在 `onMounted` 时调用 `handleSearch()` #### 4. 配置检查 - [x] Mapper 接口有 `@Mapper` 注解 - [x] Controller 有 `@RestController` 和 `@RequestMapping` 注解 - [x] Service 实现类有 `@Service` 注解 - [x] 使用 `@InterceptorIgnore(tenantLine = "true")` 禁用租户隔离 ## ⚠️ 关键问题 **后端服务需要重新编译和启动!** 新添加的模块不会自动加载到正在运行的服务中。 ## 🚀 解决步骤 ### 步骤 1: 停止后端服务 如果后端服务正在运行,先停止它。 ### 步骤 2: 重新编译项目 ```bash # 在项目根目录执行 mvn clean install -DskipTests ``` **预计时间**: 2-5 分钟(取决于网络和机器性能) ### 步骤 3: 启动后端服务 ```bash # 方式一:使用脚本 start-backend.sh local # 方式二:使用 Maven cd yudao-server mvn spring-boot:run -Dspring-boot.run.profiles=local ``` ### 步骤 4: 验证后端服务 #### 4.1 检查启动日志 查找类似以下的日志: ``` Mapped "{[/product/workorder-schedule/page]}" onto ... ``` #### 4.2 访问 API 文档 打开浏览器:`http://localhost:48080/doc.html` 搜索 "工单排产" 或 "workorder-schedule" #### 4.3 直接测试 API ```bash # 使用 curl 测试 curl http://localhost:48080/admin-api/product/workorder-schedule/page?pageNo=1&pageSize=20 # 或在浏览器中访问(需要先登录) http://localhost:48080/admin-api/product/workorder-schedule/page?pageNo=1&pageSize=20 ``` ### 步骤 5: 检查前端 1. 确保前端服务正在运行: ```bash cd yudao-ui/yudao-ui-admin-vue3 pnpm dev ``` 2. 打开浏览器开发者工具(F12) 3. 切换到 Network 标签 4. 访问工单排产页面 5. 查看是否有 API 请求: - 请求 URL: `/admin-api/product/workorder-schedule/page` - 请求方法: GET - 状态码: 应该是 200 ## 🐛 常见错误及解决方案 ### 错误 1: 404 Not Found **原因**: 后端服务未加载 product 模块 **解决方案**: 1. 确认已执行 `mvn clean install` 2. 重启后端服务 3. 检查启动日志中是否有 product 相关的 Controller 映射 ### 错误 2: 403 Forbidden **原因**: 权限不足 **解决方案**: 1. 登录系统 2. 进入【系统管理】->【菜单管理】 3. 添加工单排产菜单和权限 4. 或者临时移除 Controller 中的 `@PreAuthorize` 注解进行测试 ### 错误 3: 500 Internal Server Error **原因**: SQL 执行错误或数据库连接问题 **解决方案**: 1. 查看后端日志中的详细错误信息 2. 检查数据库连接配置 3. 确认 `WorkOrdMaster` 表存在 4. 检查 SQL 语法是否正确 ### 错误 4: 前端不发送请求 **原因**: 前端代码问题或路由未配置 **解决方案**: 1. 检查浏览器控制台是否有 JavaScript 错误 2. 确认 API 文件路径正确 3. 检查 Vue 页面是否正确导入 API 函数 ## 📊 数据库检查 ### 检查表是否存在 ```sql SHOW TABLES LIKE 'WorkOrdMaster'; ``` ### 检查数据 ```sql SELECT COUNT(*) FROM WorkOrdMaster WHERE Status != ''; ``` 应该返回 8 条数据(根据你的描述)。 ### 检查数据示例 ```sql SELECT RecID, WorkOrd, ItemNum, Status, QtyOrded, QtyCompleted FROM WorkOrdMaster WHERE Status != '' LIMIT 5; ``` ## 🎯 预期结果 完成以上步骤后: 1. ✅ 后端服务启动成功,日志中有 product 模块的 Controller 映射 2. ✅ API 文档中能看到工单排产相关接口 3. ✅ 直接访问 API 能返回数据(即使是空列表) 4. ✅ 前端页面能发送 API 请求 5. ✅ 前端页面能显示数据列表 ## 📞 仍然有问题? 如果完成以上所有步骤后仍然有问题,请提供: 1. 后端启动日志(特别是 Controller 映射部分) 2. 前端浏览器控制台的错误信息 3. Network 标签中的 API 请求和响应 4. 数据库查询结果 这将帮助进一步诊断问题。