数据与媒体架构

人力服务从客户订单到服务结算的二维闭环示意图
模拟业务闭环说明图,不是现场照片、真实订单或试验通过证据;点击可放大查看。

私有 D1/R2 资源已开通,包含 preview 与 pilot 环境。当前资料描述已部署的目标架构;真实网页上传、读取、删除和正式云端闭环仍待验收。

公开字段契约:personnel-service-contract.json。时间以 UTC ISO 8601 保存;业务页面应按 Africa/Harare 展示完整日期,跨日不可截断。金额由 API 转为最小货币单位存储,服务端统一按两位小数输出。

订单、派遣与工时字段

网页/API 字段SQL 列用途与约束
clientName、contractRef、site、serviceDate、shiftName、requestedPeople、roleName、currency、notespersonnel_orders.client_name、contract_ref、site、service_date、shift_name、requested_people、role_name、currency、notes客户服务订单;status/version/created_by/时间戳由服务端维护。
clientHourRate、labourHourCost、budgetAmountpersonnel_orders.client_hour_rate_minor、labour_hour_cost_minor、budget_amount_minor网页输入金额,服务端换算最小货币单位;不能把毛利差额称作净利润。
personnelCode、displayName、roleName、qualificationStatuspersonnel_assignments.personnel_code、display_name、role_name、qualification_status派遣只需代号和必要资格;不收集政府身份证件。替换关系由 replaced_assignment_id、replacement_reason、status 记录。
assignmentId、startedAt、endedAt、breakMinutes、attendance、overtimeMinutes、overtimeStatus、replacementNotepersonnel_timesheets.assignment_id、started_at、ended_at、break_minutes、attendance、overtime_minutes、overtime_status、replacement_noteactual effective/regular minutes 与提交/审批人由服务端计算和审计;一线只能申请加班,审核人才能决定 pending。

绩效、验收、结算与审计

网页/API 字段SQL 列说明
assignmentId、quantity、unit、qualityScore、reworkOrIncident、evidenceBasispersonnel_performance.assignment_id、quantity、unit、quality_score、rework_or_incident、evidence_basis质量分数为 0–100;事件要有依据。
decision、reason、reviewerNamepersonnel_acceptance.decision、reason、reviewer_name验收由 reviewer/admin 角色提交,决定会推进订单状态。
收入、直接人工成本、毛利差额(服务端输出)personnel_settlements.revenue_minor、direct_labour_cost_minor、gross_difference_minor快照还保存 currency、regular_minutes、approved_overtime_minutes、billable_minutes、snapshot_json。仅已批准加班进入结算。
操作者、动作、前后 JSON、时间personnel_audit.actor_id、action、before_json、after_json、created_at浏览器只显示 API 返回的审计项,不能改写。

私有 R2 媒体流程与元数据

浏览器先 POST /personnel/media/init 建立 metadata,再 PUT 原始二进制到同一媒体 ID;失败重试复用该 ID,读取和删除只经授权 API。R2 object_key 永不返回网页。当前试用单件上限为 25 MiB(PERSONNEL_MEDIA_MAX_BYTES),可由部署环境调整;服务端核验文件的字节、类型和大小;视频时长由浏览器读取并记录。当前没有云转码或内容审核。

网页/API 字段SQL 列状态
orderId、stage、purpose、originalName、contentType、sizeBytes、durationSecondspersonnel_media.order_id、stage、purpose、original_name、content_type、size_bytes、duration_seconds阶段可以为派遣、到场、工时、绩效或验收;同一阶段可有任意数量的图片和视频。
description、capturedAt、上传结果personnel_media.description、captured_at、status、failure_reason、byte_count、content_hashpending → uploaded/linked;失败带原因且可重试;deleted 由授权删除操作产生。

返回公司工作台 · 查看三轮未执行试验记录