You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
3.7 KiB
52 lines
3.7 KiB
|
1 day ago
|
# A5 项目管理 Demo 操作说明(票 14/15 产出 · 供 16 审计与 19 验收使用)
|
||
|
|
|
||
|
|
## 入口
|
||
|
|
|
||
|
|
- **单页入口**:`.scratch/crm-project/demo/index.html`(浏览器直接打开;默认 API=`http://localhost:8080`,可用 `?api=<base>` 覆写,存 localStorage)。
|
||
|
|
- 被测后端:`crm-app` fat jar,verify profile(见下「环境」)。
|
||
|
|
|
||
|
|
## 环境(起服)
|
||
|
|
|
||
|
|
```
|
||
|
|
构建:mvn -s settings.xml clean package -DskipTests (JAVA_HOME=C:\Users\Administrator\.jdks\corretto-17.0.13,mvn=IDEA 捆绑 D:\INTELL~1.3\plugins\maven\lib\maven3\bin\mvn.cmd)
|
||
|
|
起服:SPRING_PROFILES_ACTIVE=verify + CRM_MINIO_AK=admin + CRM_MINIO_SK=Itc@123456 → java -jar crm-app\target\crm-app-1.0.0-SNAPSHOT.jar
|
||
|
|
DB:远程共享库 8.129.84.155(凭据在 application.yml 默认值);本地 8080 占用时先杀 java 进程(jar 锁)。
|
||
|
|
```
|
||
|
|
|
||
|
|
## 种子数据(幂等)
|
||
|
|
|
||
|
|
```
|
||
|
|
py -X utf8 .scratch/crm-project/demo/seed_project_demo.py # 造客户/商机/方案卡/两个用户
|
||
|
|
py -X utf8 .scratch/crm-project/demo/seed_project_demo.py --wipe # 清理(demo 项目按名 A5DEMO-% 清)
|
||
|
|
```
|
||
|
|
|
||
|
|
产出固定 id:客户 `99021001` / 方案卡 `99021008` / **销售总监 `99021002`**(title=销售总监,可回退)/ **普通销售 `99021003`**(回退被拒 68005)。
|
||
|
|
|
||
|
|
## 角色切换
|
||
|
|
|
||
|
|
页头输入 userId → 「uid 登录」(verify profile `/api/auth/debug/token`,ADR-0014)。审计/验收至少切:`99021002`(总监,回退可见可操作)、`99021003`(普通销售,回退按钮可见但服务端 68005 拒绝——原型权限在服务端强制)。真实管理员角色用户(ROLE_ADMIN)同样可回退。
|
||
|
|
|
||
|
|
## 全流程演示路径(对齐票 19 验收路径)
|
||
|
|
|
||
|
|
1. **建项**:`+ 新建项目` → 名称 + 客户 `99021001` + 方案卡 `99021008` → 创建。落库 stage=0 冲突处理 / 报备审核中(建项即报备,grill#12);自动跳详情。
|
||
|
|
2. **冲突解除=报备审核**(详情动作区或看板 stage0 卡「冲突解除」):通过 → filing=2 + stage 0→1 双写;驳回 → filing=3 停 stage0(可再审)。
|
||
|
|
3. **推进**:1→2→3 逐级(动作区按钮);stage3 有两颗按钮:`投标完成→4` 与 `无需招投标(3→5 连跳)`(唯一连跳)。
|
||
|
|
4. **回退**:stage≥2 出现「回退…」→ 弹窗列可选节点(已过节点、下限 stage1;3→5 连跳后 stage4 不在列)→ 选节点回退。总监可操作;普通销售服务端拒绝。
|
||
|
|
5. **赢/输分叉**(stage5):`标记赢单` → stage5 闭环锁死(回退 68003);`标记输单` → stage6 结项终态(status=3)。
|
||
|
|
6. **关闭**:任意 stage(进行中)→ 关闭类型/原因/备注 → status=2,关后无动作(终态锁)。
|
||
|
|
7. **详情 8 页签**:跟进(可新增)、附件(fileId 挂载/软删)、客户(目录单客户)、动态(全事件投影)、方案设计/商务报价/招投标(含标底等级名)/开标(赢输快照)——全读主表扩展列,零阶段子表。
|
||
|
|
|
||
|
|
## 冒烟自检
|
||
|
|
|
||
|
|
```
|
||
|
|
.scratch/customer-e2e/.venv10/Scripts/python.exe .scratch/crm-project/demo/smoke_a5.py
|
||
|
|
```
|
||
|
|
|
||
|
|
25 步:登录→建项→看板 7 列/badge→列表双筛/mine→动态→冲突解除→推进→连跳→回退口径→赢单锁死(68003)→输单终态→关闭→8 页签→跟进新增→普通销售 68005→零 PUT/DELETE、零 console error。结果落 `smoke-result.json`,截图落 `shots/`。
|
||
|
|
|
||
|
|
## 已知演示性简化(非缺陷)
|
||
|
|
|
||
|
|
- 附件新增需先经 crm-file 上传拿 fileId(demo 不含上传控件,直接贴 fileId)。
|
||
|
|
- 「跟进时间」默认值取浏览器 UTC 时间(toISOString),演示时可手改本地时间。
|
||
|
|
- 看板卡/列表行点击进详情;详情依赖最近一次点击的项目(刷新页面后需重进)。
|