feat: 新增现场勘察派单全流程业务能力
1. 新增共享电工管理模块:包含实体、DTO、控制器、服务以及前后端API 2. 重构勘察工单实体与查询逻辑,完善工单全状态流程与字段 3. 新增勘察SOP模板与工单回执业务体系 4. 更新数据库字典与初始化脚本,补充业务数据 5. 新增勘察派单增删改查、指派、复核、催办等全流程接口 6. 修复用户服务角色关联SQL生成问题 7. 新增勘察派单前后端完整交互链路
This commit is contained in:
1 parent
1c83e09fa1
commit
6b00f61550
21 files changed
+4739
-388
No files matched your search
+68
-6
@@ -100,7 +100,7 @@ footer p{text-align:center;font-size:13px;color:var(--muted)}
|
||||
<p class="sub">基于《鑫潼智电系统需求分析报告 V1.0》数据说明,设计 37 张数据表 + 3 个分区管理函数 + 1 个物化视图,覆盖客户、项目、设备、派单、报警、报修、维保、报酬、用电采集等全部业务域。采用逻辑隔离 + 时序分区方案。</p>
|
||||
<div class="meta">
|
||||
<span>数据库:<b>PostgreSQL 15+</b></span>
|
||||
<span>表数量:<b>37 张</b></span>
|
||||
<span>表数量:<b>39 张</b></span>
|
||||
<span>隔离方案:<b>customer_id 逻辑隔离</b></span>
|
||||
<span>时序分区:<b>electricity_data 按月分区</b></span>
|
||||
<span>自动分区:<b>3 个管理函数</b></span>
|
||||
@@ -126,7 +126,7 @@ footer p{text-align:center;font-size:13px;color:var(--muted)}
|
||||
|
||||
<!-- 02 业务域划分 -->
|
||||
<section id="domains">
|
||||
<div class="sh"><span class="sn">02</span><h2>业务域划分</h2><span class="d">14 个业务域 · 37 张表</span></div>
|
||||
<div class="sh"><span class="sn">02</span><h2>业务域划分</h2><span class="d">14 个业务域 · 39 张表</span></div>
|
||||
|
||||
<div class="domains">
|
||||
<div class="dom dom-blue">
|
||||
@@ -183,6 +183,8 @@ footer p{text-align:center;font-size:13px;color:var(--muted)}
|
||||
<div class="dom-head"><span class="dn">D6</span><h3>派单域</h3></div>
|
||||
<div class="dom-body">
|
||||
<div class="tbl"><span class="tn">survey_order</span><span class="tc">勘察派单</span></div>
|
||||
<div class="tbl"><span class="tn">survey_sop_item</span><span class="tc">勘察SOP模板检查项</span></div>
|
||||
<div class="tbl"><span class="tn">survey_sop_result</span><span class="tc">勘察SOP工单回执</span></div>
|
||||
<div class="tbl"><span class="tn">install_order</span><span class="tc">安装派单</span></div>
|
||||
<div class="tbl"><span class="tn">acceptance</span><span class="tc">项目验收</span></div>
|
||||
<div class="tbl"><span class="tn">visit_record</span><span class="tc">客户回访</span></div>
|
||||
@@ -290,6 +292,9 @@ erDiagram
|
||||
worker ||--o{ worker_income : "电工收入"
|
||||
worker_income ||--o{ worker_income_detail : "收入明细"
|
||||
dispatch_price ||--o{ worker_income_detail : "价格参考"
|
||||
|
||||
survey_order ||--o{ survey_sop_result : "工单回执"
|
||||
survey_sop_item ||--o{ survey_sop_result : "模板检查项"
|
||||
</figure>
|
||||
</section>
|
||||
|
||||
@@ -325,7 +330,7 @@ erDiagram
|
||||
|
||||
<!-- 05 全部表字段说明 -->
|
||||
<section id="tables">
|
||||
<div class="sh"><span class="sn">05</span><h2>全部数据表字段说明</h2><span class="d">37 张表 · 按业务域分组</span></div>
|
||||
<div class="sh"><span class="sn">05</span><h2>全部数据表字段说明</h2><span class="d">39 张表 · 按业务域分组</span></div>
|
||||
|
||||
<!-- D1 系统管理域 -->
|
||||
<div class="dom-div"><span class="dn">D1</span><h3>系统管理域</h3><span class="dc">7 张表 · 用户/角色/菜单/字典/日志</span></div>
|
||||
@@ -593,7 +598,7 @@ erDiagram
|
||||
</tbody></table></div>
|
||||
|
||||
<!-- D6 派单域 -->
|
||||
<div class="dom-div"><span class="dn">D6</span><h3>派单域</h3><span class="dc">4 张表 · 勘察/安装/验收/回访</span></div>
|
||||
<div class="dom-div"><span class="dn">D6</span><h3>派单域</h3><span class="dc">6 张表 · 勘察/勘察SOP/安装/验收/回访</span></div>
|
||||
|
||||
<div class="tbl-title"><code>survey_order</code><span class="td">— 客户勘察派单信息表</span></div>
|
||||
<div class="table-wrap"><table><thead><tr><th>字段</th><th>类型</th><th>键</th><th>说明</th></tr></thead><tbody>
|
||||
@@ -603,9 +608,61 @@ erDiagram
|
||||
<tr><td><code>surveyor</code></td><td>VARCHAR(64)</td><td></td><td>勘察人(共享电工)</td></tr>
|
||||
<tr><td><code>worker_id</code></td><td>BIGINT</td><td></td><td>共享电工 ID</td></tr>
|
||||
<tr><td><code>survey_time</code></td><td>TIMESTAMPTZ</td><td></td><td>勘察时间</td></tr>
|
||||
<tr><td><code>priority</code></td><td>SMALLINT</td><td><span class="pill p-pi">IDX</span></td><td>优先级:1特急P1 2加急P2 3常规P3</td></tr>
|
||||
<tr><td><code>task_title</code></td><td>VARCHAR(128)</td><td></td><td>勘察任务标题</td></tr>
|
||||
<tr><td><code>site_location</code></td><td>VARCHAR(255)</td><td></td><td>具体勘察物理区域</td></tr>
|
||||
<tr><td><code>source</code></td><td>VARCHAR(32)</td><td></td><td>工单来源:ledger台账派工 visit拜访转勘察 customer客户发起</td></tr>
|
||||
<tr><td><code>loop_spec</code></td><td>VARCHAR(128)</td><td></td><td>主进线规约与断路器容量</td></tr>
|
||||
<tr><td><code>loop_count</code></td><td>INTEGER</td><td></td><td>预估分支测绘回路数</td></tr>
|
||||
<tr><td><code>progress_done</code></td><td>INTEGER</td><td></td><td>已完成测绘回路数</td></tr>
|
||||
<tr><td><code>progress_total</code></td><td>INTEGER</td><td></td><td>应测绘回路总数</td></tr>
|
||||
<tr><td><code>drawing_count</code></td><td>INTEGER</td><td></td><td>待技术复核图纸数</td></tr>
|
||||
<tr><td><code>salesman_id</code></td><td>BIGINT</td><td><span class="pill p-pi">IDX</span></td><td>责任业务员 ID(→ sys_user,数据隔离)</td></tr>
|
||||
<tr><td><code>tech_contact</code></td><td>VARCHAR(128)</td><td></td><td>现场技术联系人</td></tr>
|
||||
<tr><td><code>plan_start</code></td><td>TIMESTAMPTZ</td><td><span class="pill p-pi">IDX</span></td><td>计划到场窗口开始</td></tr>
|
||||
<tr><td><code>plan_end</code></td><td>TIMESTAMPTZ</td><td></td><td>计划到场窗口结束</td></tr>
|
||||
<tr><td><code>expect_minutes</code></td><td>INTEGER</td><td></td><td>要求接单后到场时限(分钟)</td></tr>
|
||||
<tr><td><code>expect_arrival_at</code></td><td>TIMESTAMPTZ</td><td></td><td>期望到场时限(指派时按 expect_minutes 推算)</td></tr>
|
||||
<tr><td><code>sla_level</code></td><td>VARCHAR(32)</td><td></td><td>履约质保要求</td></tr>
|
||||
<tr><td><code>urge_count</code></td><td>INTEGER</td><td></td><td>催办次数</td></tr>
|
||||
<tr><td><code>last_urged_at</code></td><td>TIMESTAMPTZ</td><td></td><td>最近催办时间</td></tr>
|
||||
<tr><td><code>is_draft</code></td><td>SMALLINT</td><td></td><td>是否草稿:0正式工单 1草稿</td></tr>
|
||||
<tr><td><code>estimated_fee</code></td><td>NUMERIC(10,2)</td><td></td><td>预估劳务费(基础出场费+回路补贴)</td></tr>
|
||||
<tr><td><code>actual_fee</code></td><td>NUMERIC(10,2)</td><td></td><td>实际结算劳务费</td></tr>
|
||||
<tr><td><code>photos</code></td><td>VARCHAR(1024)</td><td></td><td>现场取证照片对象key(JSON数组字符串)</td></tr>
|
||||
<tr><td><code>review_remark</code></td><td>TEXT</td><td></td><td>技术复核意见</td></tr>
|
||||
<tr><td><code>reviewed_at</code></td><td>TIMESTAMPTZ</td><td></td><td>技术复核时间</td></tr>
|
||||
<tr><td><code>cancel_reason</code></td><td>VARCHAR(255)</td><td></td><td>取消原因</td></tr>
|
||||
<tr><td><code>remark</code></td><td>TEXT</td><td></td><td>备注</td></tr>
|
||||
<tr><td><code>status</code></td><td>SMALLINT</td><td></td><td>状态:0已派发 1已接单 2已完成</td></tr>
|
||||
<tr><td><code>status</code></td><td>SMALLINT</td><td><span class="pill p-pi">IDX</span></td><td>状态:0待指派 1现场勘察中 2待技术复核 3已归档 4预留 5已取消</td></tr>
|
||||
<tr><td><code>created_at</code></td><td>TIMESTAMPTZ</td><td></td><td>创建时间</td></tr>
|
||||
<tr><td><code>updated_at</code></td><td>TIMESTAMPTZ</td><td></td><td>更新时间(触发器自动维护)</td></tr>
|
||||
</tbody></table></div>
|
||||
|
||||
<div class="tbl-title"><code>survey_sop_item</code><span class="td">— 勘察 SOP 模板检查项表</span></div>
|
||||
<div class="table-wrap"><table><thead><tr><th>字段</th><th>类型</th><th>键</th><th>说明</th></tr></thead><tbody>
|
||||
<tr><td><code>id</code></td><td>BIGSERIAL</td><td><span class="pill p-pk">PK</span></td><td>自增主键</td></tr>
|
||||
<tr><td><code>template_code</code></td><td>VARCHAR(64)</td><td><span class="pill p-uk">UNIQUE</span></td><td>SOP模板编码:standard_dist 标准配电改造模板(与 sort_order 联合唯一)</td></tr>
|
||||
<tr><td><code>sort_order</code></td><td>INTEGER</td><td></td><td>检查项序号</td></tr>
|
||||
<tr><td><code>item_name</code></td><td>VARCHAR(128)</td><td></td><td>检查项名称</td></tr>
|
||||
<tr><td><code>item_desc</code></td><td>VARCHAR(255)</td><td></td><td>检查项说明</td></tr>
|
||||
<tr><td><code>receipt_type</code></td><td>VARCHAR(16)</td><td></td><td>回执形式:photo现场照片 form清单表单 meter测仪截图</td></tr>
|
||||
<tr><td><code>receipt_require</code></td><td>VARCHAR(64)</td><td></td><td>回执指标要求,如「照片 ≥ 2 张」</td></tr>
|
||||
<tr><td><code>required</code></td><td>BOOLEAN</td><td></td><td>是否必填</td></tr>
|
||||
<tr><td><code>created_at</code></td><td>TIMESTAMPTZ</td><td></td><td>创建时间</td></tr>
|
||||
</tbody></table></div>
|
||||
|
||||
<div class="tbl-title"><code>survey_sop_result</code><span class="td">— 勘察 SOP 工单回执表</span></div>
|
||||
<div class="table-wrap"><table><thead><tr><th>字段</th><th>类型</th><th>键</th><th>说明</th></tr></thead><tbody>
|
||||
<tr><td><code>id</code></td><td>BIGSERIAL</td><td><span class="pill p-pk">PK</span></td><td>自增主键</td></tr>
|
||||
<tr><td><code>survey_order_id</code></td><td>BIGINT</td><td><span class="pill p-fk">FK</span></td><td>勘察工单 ID(→ survey_order,级联删除)</td></tr>
|
||||
<tr><td><code>sop_item_id</code></td><td>BIGINT</td><td><span class="pill p-fk">FK</span></td><td>SOP 检查项 ID(→ survey_sop_item)</td></tr>
|
||||
<tr><td><code>checked</code></td><td>BOOLEAN</td><td></td><td>是否已完成回执</td></tr>
|
||||
<tr><td><code>receipt_value</code></td><td>VARCHAR(1024)</td><td></td><td>回执内容(照片对象key数组/表单值/截图key)</td></tr>
|
||||
<tr><td><code>remark</code></td><td>VARCHAR(255)</td><td></td><td>回执备注</td></tr>
|
||||
<tr><td><code>checked_at</code></td><td>TIMESTAMPTZ</td><td></td><td>回执时间</td></tr>
|
||||
<tr><td><code>created_at</code></td><td>TIMESTAMPTZ</td><td></td><td>创建时间</td></tr>
|
||||
<tr><td><code>updated_at</code></td><td>TIMESTAMPTZ</td><td></td><td>更新时间</td></tr>
|
||||
</tbody></table></div>
|
||||
|
||||
<div class="tbl-title"><code>install_order</code><span class="td">— 项目安装任务派单信息表</span></div>
|
||||
@@ -810,6 +867,11 @@ erDiagram
|
||||
<tr><td><code>password_hash</code></td><td>VARCHAR(255)</td><td></td><td>密码哈希(BCrypt)</td></tr>
|
||||
<tr><td><code>id_card</code></td><td>VARCHAR(18)</td><td></td><td>身份证号</td></tr>
|
||||
<tr><td><code>status</code></td><td>SMALLINT</td><td></td><td>状态:1在岗 0离职</td></tr>
|
||||
<tr><td><code>worker_title</code></td><td>VARCHAR(32)</td><td></td><td>职衔:电工/资深班组长/特种高压电工</td></tr>
|
||||
<tr><td><code>rating</code></td><td>NUMERIC(3,2)</td><td></td><td>服务评分(0-5,推荐算法权重 0.5)</td></tr>
|
||||
<tr><td><code>cert_info</code></td><td>VARCHAR(128)</td><td></td><td>持证资质</td></tr>
|
||||
<tr><td><code>cert_verified</code></td><td>BOOLEAN</td><td></td><td>资质是否已核验(推荐算法权重 0.3)</td></tr>
|
||||
<tr><td><code>completed_count</code></td><td>INTEGER</td><td></td><td>历史累计勘察场次(推荐算法权重 0.2)</td></tr>
|
||||
<tr><td><code>last_login_at</code></td><td>TIMESTAMPTZ</td><td></td><td>最后登录时间</td></tr>
|
||||
<tr><td><code>created_at</code></td><td>TIMESTAMPTZ</td><td></td><td>创建时间</td></tr>
|
||||
<tr><td><code>updated_at</code></td><td>TIMESTAMPTZ</td><td></td><td>更新时间</td></tr>
|
||||
@@ -1098,7 +1160,7 @@ flowchart LR
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<p>鑫潼智电系统 PostgreSQL 数据库设计文档 · 基于《需求分析报告 V1.0》 · 37 张表 · 3 个分区管理函数 · 1 个物化视图 · pg_cron 自动调度 · 2026-08</p>
|
||||
<p>鑫潼智电系统 PostgreSQL 数据库设计文档 · 基于《需求分析报告 V1.0》 · 39 张表 · 3 个分区管理函数 · 1 个物化视图 · pg_cron 自动调度 · 2026-08</p>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
|
||||
Reference in new issue
Block a user