| 编码 | 名称 | 类别 | 形态 | 危险品类别 | 尺寸(m) | 重量(kg) | 层数 | 限高(m) | 承压(kg) | 朝向规则 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ m.code }} | {{ m.name }} | {{ m.category }} | {{ m.form }} | {{ m.hazard_class || '—' }} | {{ m.l }}×{{ m.w }}×{{ m.h }} | {{ m.weight }} | {{ m.max_layers }} | {{ m.max_stack_height==null?'—':m.max_stack_height }} | {{ m.bearing==null?'不可承压':m.bearing }} | {{ m.orientation_rule }} | {{ m.status==='enabled'?'启用':'停用' }} | |
| 暂无数据,可下载模板后批量导入 | ||||||||||||
| 编码 | 名称 | 类型 | 内部尺寸(m) | 额定载重(kg) | 许用面载荷(kg/m²) | 轴数 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ c.code }} | {{ c.name }} | {{ c.ctype }} | {{ c.l }}×{{ c.w }}×{{ c.h }} | {{ c.max_weight }} | {{ c.floor_load }} | {{ c.axles }} | {{ c.status==='enabled'?'启用':'停用' }} | |
| 暂无数据 | ||||||||
创建核算任务
{{ taskMsg.text }}
历史任务
| 任务编号 | 名称 | 品类数 | 状态 | 方案版本 | 规则版本 | 操作 |
|---|---|---|---|---|---|---|
| {{ t.task_no }} | {{ t.name }} | {{ t.items.length }} | {{ {draft:'草稿',running:'计算中',done:'已完成',failed:'失败'}[t.status] }} | V{{ t.plan_version }} | {{ t.rule_version ? 'V'+t.rule_version : '—' }} | |
| 暂无任务 | ||||||
暂无已完成核算的方案 —— 请在「核算任务」中创建并执行核算;若已有历史任务,正在为您自动载入…
{{ plan.stats.vehicle_count }}用车台数
{{ plan.stats.placed_units }}/{{ plan.stats.total_units }}装载件数
{{ curVehicle ? curVehicle.space_util : 0 }}%空间利用率
{{ curVehicle ? curVehicle.weight_util : 0 }}%重量利用率
{{ plan.stats.volume_error }}体积误差 m³
{{ plan.stats.elapsed_s }}s核算耗时
规则版本 V{{ plan.rule_version.version }}
未装载:{{ plan.unplaced.map(u=>u.name+'×'+u.qty+'('+u.reason+')').join(';') }}
车型推荐(按装载结果与利用率综合排序):{{ plan.recommendations.map(r=>r.name+'('+r.vehicle_count+'台, 空间'+r.space_util+'%, 重量'+r.weight_util+'%, 未装'+r.unplaced_cnt+')').join(' | ') }}
约束校验(12 项)
{{ chk.rule }} {{ chk.state==='na'?'不适用':(chk.ok?'通过':'不通过') }}
{{ chk.msg }}
{{ chk.msg }}
装载明细({{ curVehicle?curVehicle.placements.length:0 }} 件)
#{{ p.order }} {{ p.name }}
{{ p.code }} · {{ p.form }}·{{ p.hazard_class }}
· {{ p.l }}×{{ p.w }}×{{ p.h }}m · 第{{ p.layer+1 }}层
· {{ p.flipped?'翻倒':(p.rotated?'水平旋转':'原始朝向') }}
坐标 ({{ p.x }}, {{ p.y }}, {{ p.z }}) m · {{ p.weight }} kg
规则变更即时生效于新核算任务;每个任务自动记录规则版本,历史方案可精确复现。修改必须填写变更说明。
| 版本 | 创建时间 | 创建人 | 类型 | 变更说明 | 规则项 | 操作 |
|---|---|---|---|---|---|---|
| V{{ v.version }} | {{ v.created_at }} | {{ v.created_by }} | {{ v.is_auto?'自动快照':'手动快照' }} | {{ v.change_note }} | {{ v.rule_count }} | |
| 暂无版本 | ||||||
| 编码 | 名称 | 类别 | 当前值 | 单位 | 说明 | 状态 | 最近变更 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ r.rule_code }} | {{ r.name }} | {{ r.category }} | {{ r.type==='bool' ? (r.value==='1'?'启用':'停用') : r.value }} | {{ r.unit }} | {{ r.desc }} | {{ r.enabled?'启用':'停用' }} | {{ r.changed_by }} {{ r.changed_at }} {{ r.change_note }} |
| {{ shortClass(c) }} | |
|---|---|
| {{ shortClass(hazardClasses[i]) }} |
规则版本对比
| 编码 | 规则名称 | 版本 A | 版本 B | 状态 |
|---|---|---|---|---|
| {{ d.rule_code }} | {{ d.name }} {{ d.detail }} |
{{ d.old_enabled?'启用':'停用' }} / {{ d.old_value }} | {{ d.new_enabled?'启用':'停用' }} / {{ d.new_value }} | {{ d.old_value==d.new_value && d.old_enabled==d.new_enabled ? '无变化' : '已变更' }} |
| 两个版本无差异 | ||||
规则版本 V{{ versionDetail.version }} · {{ versionDetail.change_note }}
创建人:{{ versionDetail.created_by }} · {{ versionDetail.created_at }}
| 编码 | 规则名称 | 状态 | 取值 | 单位 |
|---|---|---|---|---|
| {{ code }} | {{ item.name }} | {{ item.enabled?'启用':'停用' }} | {{ item.value }} | {{ item.unit }} |
参数自定义配置
接口与运维
- 开放接口前缀:
/api/open/v1(请求头 X-API-Key) - Swagger 文档:/docs
- OpenAPI 描述:/openapi.json
- 健康检查:/api/open/v1/health
- 运行日志 / 错误日志:按日归档,保留 {{ config.log_keep_days }} 天
开放接口调用示例
curl -X POST http://127.0.0.1:8300/api/open/v1/tasks \\
-H "X-API-Key: {{ config.open_api_token }}" \\
-H "Content-Type: application/json" \\
-d '{"name":"对接核算","items":[{"material_code":"WZ001","qty":10}],
"carrier_codes":["ZT002"]}'
| 时间 | 用户 | 操作 | 详情 | 级别 |
|---|---|---|---|---|
| {{ l.ts }} | {{ l.user }} | {{ l.action }} | {{ l.detail }} | {{ l.level }} |
| 暂无日志 | ||||
文件:{{ currentLogFile || '—' }}
{{ logLines.length ? logLines.join('\n') : '暂无日志内容' }}