ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AI 编程 Trae 的 SOLO 模式实战:从零搭建固定资产管理系统(附源代码)

AI 编程 Trae 的 SOLO 模式实战:从零搭建固定资产管理系统(附源代码) 1. 为什么我盯上了 Trae SOLO 模式做固定资产管理固定资产管理这个需求说大不大说小也不小。公司里几十台笔记本、几台投影仪、一堆显示器谁在用、放哪个工位、什么时候该盘点靠 Excel 传来传去最后一定是「这台机器到底在谁手上」都说不清。我之前的做法是拿现成开源项目改但字段对不上、审批流又太复杂改到最后还不如重写。Trae 的 SOLO 模式吸引我的点在于它不是单纯补全代码而是你把需求讲清楚它帮你把「详细设计 数据库表 前后端骨架」一次性铺出来。对于固定资产管理这种模块清晰、CRUD 密集、还带一点审批流的系统正好是它的舒适区。这篇就把我完整跑一遍的过程拆开需求怎么拆、提示词怎么写、Trae 生成后哪里会翻车、接口怎么验证、报错怎么定位。最后你能拿到一套可复制的配置骨架和项目结构照着做就能复现整条链路。适合谁看会一点 Vue 或 Spring Boot、想用 AI 把重复劳动砍掉的开发者或者你手上正好有个内部小系统要交付想试试 AI 编程到底能省多少事。不适合完全没碰过后端的人因为调试环节还是需要你看得懂接口和日志。我用的技术栈是前后端分离前端 Vue3后端 Spring Boot Maven数据库 MySQL全部跑在本地。下面按「先讲清楚要做什么 → 再配好工具 → 再贴可复制配置 → 再验证 → 再排错」的顺序来。2. 先把需求拆成 Trae 能吃的颗粒度很多人用 AI 编程翻车不是模型不行是需求给得太糊。「帮我做个固定资产管理系统」这种话Trae 只能给你一个玩具。真正能跑的东西需要你把模块、角色、字段、状态流转都写清楚。固定资产管理拆下来其实是四块资产台账、我的资产、盘点任务、盘点审批。角色分三种普通用户、部门管理员、系统管理员。普通用户只能看自己的资产、参与盘点部门管理员多看一个部门内资产管理员全都能看还要管部门、位置、分类、用户这些基础数据。字段这块要具体到能建表。比如固定资产录入需要名称、规格、厂商、价格、登记日期、购买日期、维保联系人、维保公司、维保到期日、备注录入后自动生成固定资产编号。我的资产在此基础上还要带所属人、部门资产管理员、数量、单位、资产状态、所属位置、所属部门、所属公司。盘点任务的流转也要说死新建任务时状态是「未盘点」用户点盘点后录入盘点结果、说明、图片管理员审批通过后状态变更为「已盘点」。所有资产变更都要写操作日志。把这些整理成一段结构化提示词直接丢给 Trae你是一名专业的全栈开发者专注于帮助开发者构建固定资产管理系统。 一、项目采用前后端分离架构 1、前端Vue3 2、后端Spring Boot提供 API 接口Maven 管理 3、数据库MySQL存储数据 4、本地运行 二、模块划分 1、固定资产管理 1.1 固定资产列表通过资产名称或资产编码查询操作按钮查看、资产调拨可调拨给具体人资产所属人变更 1.2 固定资产录入名称、规格、厂商、价格、登记日期、购买日期、维保联系人、维保公司、维保到期日、备注录入后生成固定资产编号 2、我的资产显示固定资产信息外增加所属人、部门资产管理员、数量、单位、资产状态、所属位置、所属部门、所属公司 3、盘点任务管理 3.1 盘点任务列表新增盘点任务名称、开始日期、结束日期初始化状态未盘点 3.2 我的盘点加载我的资产列表点击盘点选择盘点任务名称录入盘点结果、说明、图片 3.3 盘点结果列表对应盘点任务下所有人录入盘点后管理员审批审批通过后状态变更为已盘点 三、使用人员说明 1、普通用户菜单我的资产、盘点任务管理-我的盘点普通用户需要有所属部门 2、部门管理员我的资产同时可查看部门内所有资产、盘点任务管理-我的盘点 3、管理员用户菜单所有菜单 资产的所有变更需要进行操作日志记录。 根据以上功能描述输出系统详细设计.md、数据库表设计.md这段提示词的关键在于「输出物明确」——我让它先产出两份设计文档而不是直接写代码。这样我能先审一遍表结构和模块划分确认没问题再让它生成代码避免它一口气写歪了还得回滚。3. TaoToken 前置给 Trae 接一个稳定的模型入口Trae SOLO 模式本身能调模型但如果你想让它在不同模型之间切换、或者把调用统一管理接一个兼容 OpenAI 协议的入口会方便很多。我用的是 TaoToken它的 API 地址是https://taotoken.net/api兼容常见的 chat completions 格式Trae 里配置自定义模型时可以直接填。先拿 Key。打开控制台页面登录后进 API Keys 管理新建一个 Key复制出来。这个 Key 只显示一次记得存好。拿到 Key 之后在 Trae 的模型配置里新增一个自定义 providerBase URL 填https://taotoken.net/apiAPI Key 填刚复制的那个模型名按你实际要用的填。配置完可以先在模型对话里发一句测试确认能通再去跑 SOLO。如果你主要是长期做编码、跑 Agent 任务可以看下 Coding Plan额度模型更适合高频调用只是偶尔验证模型通不通用模型对话就够了。接入文档里有完整的参数说明遇到 401 或 404 先翻文档对一遍 Base URL 和路径。4. 可复制的 Trae 配置骨架与项目结构Trae 生成代码前我习惯先把项目骨架定下来这样它填代码时不会乱放文件。后端用标准 Maven 结构前端用 Vite Vue3。后端pom.xml关键依赖dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-validation/artifactId /dependency dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-boot-starter/artifactId version3.5.5/version /dependency dependency groupIdcom.mysql/groupId artifactIdmysql-connector-j/artifactId scoperuntime/scope /dependency /dependenciesapplication.yml里数据库和端口配置server: port: 15173 spring: datasource: url: jdbc:mysql://localhost:3306/asset_db?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/Shanghai username: root password: your_password driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl注意log-impl这行调试阶段一定要开SQL 会打到控制台后面排查「我的资产没数据」全靠它。前端vite.config.js配代理避免跨域export default defineConfig({ plugins: [vue()], server: { port: 5173, proxy: { /api: { target: http://localhost:15173, changeOrigin: true } } } })数据库建库语句CREATE DATABASE asset_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;核心表我让 Trae 按设计文档生成重点几张asset资产台账、asset_assign资产归属与调拨记录、inventory_task盘点任务、inventory_record盘点记录、operation_log操作日志。asset表里asset_code加唯一索引owner_id和dept_id建普通索引查询「我的资产」时走索引会快很多。Trae 生成后我检查了一遍发现它把「我的资产」查询写成了全表扫描再内存过滤这种在数据量上来后必卡。我手动改成按owner_id直接查SQL 层面就过滤掉了。5. 验证请求从后端接口到前端页面代码生成完别急着点页面先测后端接口。启动 Spring Boot看控制台有没有报错。然后直接用 curl 打接口curl -X POST http://localhost:15173/api/auth/login \ -H Content-Type: application/json \ -d {username:admin,password:admin123}返回里应该带一个 token。拿到 token 后测「我的资产」curl http://localhost:15173/api/my-assets \ -H Authorization: Bearer 你的token如果这里返回空数组别慌先看控制台打的 SQL。我当时遇到的就是这个接口通了但列表没数据。打开log-impl后看到 SQL 是SELECT * FROM asset WHERE owner_id ?参数传的是当前登录用户 id但数据库里owner_id存的是字符串类型对不上条件永远不成立。把实体类字段类型改成Long后重新查数据就出来了。前端这边登录页填admin/admin123进去先看仪表盘再点固定资产管理确认列表能加载。然后点「我的资产」如果还是空打开浏览器 F12 看 Network对比请求参数和后端日志里的参数是否一致。我踩过的坑是前端传的是userId后端接的是ownerId字段名不一致导致后端收不到。统一字段名后解决。盘点流程验证管理员新建一个盘点任务状态是「未盘点」切普通用户登录进「我的盘点」选任务录入结果和说明提交再切回管理员进盘点记录审批通过后状态变「已盘点」。这条链路走通说明核心业务闭环没问题。6. 本篇常见错排查接口 401 或 403先确认请求头里 token 带了没格式是不是Bearer xxx。如果 token 带了还 401检查后端拦截器有没有放行登录接口以及 token 解析的密钥和签发时是否一致。我的资产列表为空按顺序查三步。第一看控制台 SQL 有没有执行、参数是什么第二手动去数据库执行同样的 SQL确认数据存在第三对比前端传参和后端接收字段名。九成是字段名或类型不匹配。跨域报错 CORS前端开发时用 Vite 代理别直接写死后端地址。如果代理配了还报检查changeOrigin是否为 true以及后端有没有重复加 CORS 注解导致冲突。Trae 生成代码跑偏如果发现它开始改无关文件或者逻辑越写越乱直接终止对话把当前文件状态说清楚重新给一段聚焦的提示词。我试过在提示词里加一句「不要轻描淡写地说好了先测后端接口再调前端」它后面确实更踏实会先给验证步骤再改代码。盘点审批状态不流转检查审批接口有没有更新inventory_task的状态字段以及事务注解有没有加。如果更新了但前端没刷新是前端没重新拉列表加个请求刷新即可。日志太多看不清调试阶段开 SQL 日志上线前关掉。MyBatis-Plus 的log-impl改成org.apache.ibatis.logging.nologging.NoLoggingImpl就行。7. 把链路跑通之后整套跑下来Trae SOLO 模式在「生成骨架 填 CRUD」这件事上确实省时间尤其是设计文档和表结构基本一遍过。但调试环节它不会替你做完接口不通、字段对不上、状态不流转还是得你自己看日志定位。我的经验是提示词里把验证步骤写进去让它先测后端再调前端比让它一口气写完再返工效率高得多。如果你也想复现建议先从「我的资产」这一个接口打通再往外扩模块。模型调用统一走 TaoToken 的 API 入口切换和排查都方便长期编码任务可以看 Coding Plan接入细节翻文档。代码骨架和配置按上面贴的抄数据库建好接口测通剩下的就是按业务微调字段和权限。
返回列表