This commit is contained in:
2026-08-13 12:22:31 +08:00
parent 16dc03a2e2
commit e742abd1cf
49 changed files with 821 additions and 50 deletions
@@ -256,4 +256,8 @@ SELECT role.id,permission.id,0 FROM iam_role role JOIN iam_permission permission
ON permission.tenant_id=0 AND permission.permission_code LIKE 'platform:firstleg:ocean-booking:%'
WHERE role.tenant_id=0 AND role.role_code IN ('PLATFORM_ADMIN','ORDER_OPERATOR');
DELETE rp FROM iam_role_permission rp JOIN iam_permission p ON p.tenant_id=rp.tenant_id AND p.id=rp.permission_id
WHERE p.permission_code='platform:firstleg:ocean-booking:view';
UPDATE iam_permission SET status='INACTIVE',deleted=1 WHERE permission_code='platform:firstleg:ocean-booking:view';
USE baiyue_firstleg;
@@ -72,6 +72,7 @@ CREATE TABLE IF NOT EXISTS fl_container_booking (
KEY idx_container_booking_container (container_no),
KEY idx_container_booking_warehouse (warehouse_id, updated_at, id),
KEY idx_container_booking_voyage (voyage_no, updated_at),
KEY idx_container_booking_transit_summary (actual_sailing_at, actual_warehouse_arrival_at, ocean_booking_id, container_type),
CONSTRAINT chk_container_booking_capacity CHECK (capacity_cbm IS NULL OR capacity_cbm > 0),
CONSTRAINT chk_container_booking_weight CHECK (max_weight_kg IS NULL OR max_weight_kg > 0)
) ENGINE=InnoDB COMMENT='平台货柜预订资料;预装状态唯一来源为装柜计划';
@@ -1175,6 +1176,12 @@ WHERE role.tenant_id = 0
USE baiyue_firstleg;
DROP PROCEDURE IF EXISTS assert_phase3_smart_loading_schema;
DELETE rp FROM baiyue_iam.iam_role_permission rp
JOIN baiyue_iam.iam_permission p ON p.tenant_id=rp.tenant_id AND p.id=rp.permission_id
WHERE p.permission_code IN ('platform:firstleg:container:view','platform:firstleg:preload:view','platform:firstleg:loading-list:view');
UPDATE baiyue_iam.iam_permission SET status='INACTIVE',deleted=1
WHERE permission_code IN ('platform:firstleg:container:view','platform:firstleg:preload:view','platform:firstleg:loading-list:view');
DELIMITER $$
CREATE PROCEDURE assert_phase3_smart_loading_schema()
BEGIN
@@ -138,4 +138,8 @@ SELECT role.id,permission.id,0 FROM iam_role role JOIN iam_permission permission
AND permission.permission_code LIKE 'platform:firstleg:truck-appointment:%'
WHERE role.tenant_id=0 AND role.role_code IN ('PLATFORM_ADMIN','ORDER_OPERATOR');
DELETE rp FROM iam_role_permission rp JOIN iam_permission p ON p.tenant_id=rp.tenant_id AND p.id=rp.permission_id
WHERE p.permission_code='platform:firstleg:truck-appointment:view';
UPDATE iam_permission SET status='INACTIVE',deleted=1 WHERE permission_code='platform:firstleg:truck-appointment:view';
USE baiyue_firstleg;
@@ -0,0 +1,35 @@
openapi: 3.0.3
info:
title: Firstleg 客户统计 API
version: 1.0.0
paths:
/api/platform/v1/customers/{customerId}/container-transit-summary:
get:
summary: 查询客户在途柜量(TEU)
description: 需要 platform:firstleg:container:list;按客户+柜次去重,整柜按订舱客户归属,拼柜按 active LoadingPlanItem.accountId 归属。
parameters:
- {name: customerId, in: path, required: true, schema: {type: integer, format: int64, minimum: 1}}
responses:
'200':
description: 成功或业务失败,响应体 code 为字符串 200 时成功
content:
application/json:
schema: {$ref: '#/components/schemas/TransitSummaryEnvelope'}
components:
schemas:
TransitSummaryEnvelope:
type: object
properties:
code: {type: string, example: '200'}
message: {type: string}
data: {$ref: '#/components/schemas/TransitSummary'}
TransitSummary:
type: object
required: [customerId, containerCount, totalTeu, unknownContainerCount, asOf, definition]
properties:
customerId: {type: integer, format: int64, minimum: 1}
containerCount: {type: integer, format: int64, minimum: 0}
totalTeu: {type: number, format: decimal, multipleOf: 0.01, minimum: 0, description: 已知箱型TEU合计;未知箱型不计入}
unknownContainerCount: {type: integer, format: int64, minimum: 0}
asOf: {type: string, format: date-time}
definition: {type: string}