Files
shanxia2.0/docs/sql/2026-11-01-pl-contract-cert-quota.sql
T

289 lines
24 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 购买证/运输证额度新表迁移;执行前完成历史对账与备份。不得从旧齐备值推算额度。
SET NAMES utf8mb4;
CREATE TABLE `pl_purchase_cert` (
`id` varchar(64) NOT NULL COMMENT '主键UUID',
`cert_no` varchar(100) NOT NULL COMMENT '证件编号,租户内按证种唯一;删除后不得重建另一额度池',
`issue_date` date DEFAULT NULL COMMENT '核发日期',
`product_name_on_cert` varchar(200) NOT NULL COMMENT '证面物品名称原文,不随产品主数据更名',
`total_qty` decimal(18,6) NOT NULL COMMENT '证面核定总量,单位为quantity_unit',
`quantity_unit` varchar(32) NOT NULL COMMENT '数量单位代码;同证全部余额使用此单位,异单位不自动换算',
`valid_from` date DEFAULT NULL COMMENT '有效期起始日期',
`valid_to` date DEFAULT NULL COMMENT '有效期截止日期',
`valid_use_text` varchar(32) NOT NULL COMMENT '有效次数:一次有效或多次有效;不增加数值次数表单',
`entry_mode` varchar(20) NOT NULL DEFAULT 'manual' COMMENT '首次建档方式:manual手工录入/image_parse图片解析后确认;补图不改变来源',
`attachment_urls` text COMMENT 'MinIO原件附件地址,可空,多附件逗号分隔;无图片也可手工建档',
`status` varchar(20) NOT NULL DEFAULT 'draft' COMMENT 'draft草稿/active可用/suspended停用/void作废;到期由日期判断',
`verified_by` varchar(64) DEFAULT NULL COMMENT '证件信息复核人',
`verified_time` datetime DEFAULT NULL COMMENT '证件信息复核时间',
`reserved_qty` decimal(18,6) NOT NULL DEFAULT 0 COMMENT '已安排未结转预占量;余额缓存,禁止手工直接编辑',
`used_qty` decimal(18,6) NOT NULL DEFAULT 0 COMMENT '已发生量;余额缓存,包含有凭据的期初及调整流水',
`opening_single_use_consumed` smallint NOT NULL DEFAULT 0 COMMENT '期初明确核实的一次有效证已使用标记,不能由已用数量推算',
`revision` int NOT NULL DEFAULT 1 COMMENT '证面信息修订版本;使用时保留快照',
`buyer_name` varchar(255) NOT NULL COMMENT '购买单位或个人名称',
`buyer_address` varchar(1000) DEFAULT NULL COMMENT '购买方住所或地址',
`buyer_legal_representative` varchar(100) DEFAULT NULL COMMENT '购买方法定代表人',
`buyer_phone` varchar(100) DEFAULT NULL COMMENT '购买方电话',
`seller_name` varchar(255) NOT NULL COMMENT '销售单位名称',
`seller_address` varchar(1000) DEFAULT NULL COMMENT '销售单位住所',
`seller_legal_representative` varchar(100) DEFAULT NULL COMMENT '销售方法定代表人',
`seller_phone` varchar(100) DEFAULT NULL COMMENT '销售方电话',
`purchase_purpose` varchar(1000) DEFAULT NULL COMMENT '用途',
`tenant_no` varchar(64) NOT NULL COMMENT '租户编号,由服务端当前用户上下文设置',
`order_num` int DEFAULT NULL COMMENT '公共排序号',
`remark` varchar(1000) DEFAULT NULL COMMENT '系统备注,与证面备注分开',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建部门',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` smallint NOT NULL DEFAULT 0 COMMENT '软删除标记:0正常,1删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_purchase_cert_no` (`tenant_no`,`cert_no`),
KEY `idx_purchase_cert_select` (`tenant_no`,`status`,`del_flag`,`valid_to`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='购买证档案';
CREATE TABLE `pl_transport_cert` (
`id` varchar(64) NOT NULL COMMENT '主键UUID',
`cert_no` varchar(100) NOT NULL COMMENT '证件编号,租户内按证种唯一;删除后不得重建另一额度池',
`issue_date` date DEFAULT NULL COMMENT '核发日期',
`product_name_on_cert` varchar(200) NOT NULL COMMENT '证面物品名称原文,不随产品主数据更名',
`total_qty` decimal(18,6) NOT NULL COMMENT '证面核定总量,单位为quantity_unit',
`quantity_unit` varchar(32) NOT NULL COMMENT '数量单位代码;同证全部余额使用此单位,异单位不自动换算',
`valid_from` date DEFAULT NULL COMMENT '有效期起始日期',
`valid_to` date DEFAULT NULL COMMENT '有效期截止日期',
`valid_use_text` varchar(32) NOT NULL COMMENT '有效次数:一次有效或多次有效;不增加数值次数表单',
`entry_mode` varchar(20) NOT NULL DEFAULT 'manual' COMMENT '首次建档方式:manual手工录入/image_parse图片解析后确认;补图不改变来源',
`attachment_urls` text COMMENT 'MinIO原件附件地址,可空,多附件逗号分隔;无图片也可手工建档',
`status` varchar(20) NOT NULL DEFAULT 'draft' COMMENT 'draft草稿/active可用/suspended停用/void作废;到期由日期判断',
`verified_by` varchar(64) DEFAULT NULL COMMENT '证件信息复核人',
`verified_time` datetime DEFAULT NULL COMMENT '证件信息复核时间',
`reserved_qty` decimal(18,6) NOT NULL DEFAULT 0 COMMENT '已安排未结转预占量;余额缓存,禁止手工直接编辑',
`used_qty` decimal(18,6) NOT NULL DEFAULT 0 COMMENT '已发生量;余额缓存,包含有凭据的期初及调整流水',
`opening_single_use_consumed` smallint NOT NULL DEFAULT 0 COMMENT '期初明确核实的一次有效证已使用标记,不能由已用数量推算',
`revision` int NOT NULL DEFAULT 1 COMMENT '证面信息修订版本;使用时保留快照',
`shipper_name` varchar(255) NOT NULL COMMENT '货主名称或姓名',
`shipper_address` varchar(1000) DEFAULT NULL COMMENT '货主住所或地址',
`shipper_legal_representative` varchar(100) DEFAULT NULL COMMENT '货主法定代表人',
`shipper_phone` varchar(100) DEFAULT NULL COMMENT '货主电话',
`packaging_text` varchar(255) DEFAULT NULL COMMENT '包装,例如槽罐',
`carrier_name` varchar(255) DEFAULT NULL COMMENT '运输单位名称',
`carrier_address_phone` varchar(1200) DEFAULT NULL COMMENT '运输单位住所/电话,按用户指定证面合并栏保存',
`transport_mode` varchar(100) DEFAULT NULL COMMENT '运输方式,例如汽车',
`vehicle_numbers_json` json NOT NULL COMMENT '车号列表,例如[皖HA3190,皖H10291],所有车共用该证额度',
`route_text` text COMMENT '运输路线完整原文',
`consignee_name` varchar(255) DEFAULT NULL COMMENT '收货单位名称或姓名',
`applicant_name` varchar(255) DEFAULT NULL COMMENT '申请单位名称或姓名',
`tenant_no` varchar(64) NOT NULL COMMENT '租户编号,由服务端当前用户上下文设置',
`order_num` int DEFAULT NULL COMMENT '公共排序号',
`remark` varchar(1000) DEFAULT NULL COMMENT '系统备注,与证面备注分开',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建部门',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` smallint NOT NULL DEFAULT 0 COMMENT '软删除标记:0正常,1删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_transport_cert_no` (`tenant_no`,`cert_no`),
KEY `idx_transport_cert_select` (`tenant_no`,`status`,`del_flag`,`valid_to`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='运输证档案';
CREATE TABLE `pl_transport_cert_purchase_ref` (
`id` varchar(64) NOT NULL COMMENT '主键UUID',
`transport_cert_id` varchar(64) NOT NULL COMMENT '运输证ID',
`reference_type` varchar(24) NOT NULL COMMENT 'purchase_permit/purchase_filing/export_permit/unknown',
`reference_no` varchar(100) NOT NULL COMMENT '被引用的证号,保留未建档号码',
`purchase_cert_id` varchar(64) DEFAULT NULL COMMENT '如为山峡所管理购买证,关联其ID;外部未知证号可空',
`tenant_no` varchar(64) NOT NULL COMMENT '租户编号,由服务端当前用户上下文设置',
`order_num` int DEFAULT NULL COMMENT '公共排序号',
`remark` varchar(1000) DEFAULT NULL COMMENT '系统备注,与证面备注分开',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建部门',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` smallint NOT NULL DEFAULT 0 COMMENT '软删除标记:0正常,1删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_transport_ref` (`tenant_no`,`transport_cert_id`,`reference_no`),
KEY `idx_ref_purchase` (`tenant_no`,`purchase_cert_id`,`del_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='运输证证面引用的许可备案证号,不建立客户下游交易台账';
CREATE TABLE `pl_contract_cert_link` (
`id` varchar(64) NOT NULL COMMENT '主键UUID',
`contract_id` varchar(64) NOT NULL COMMENT '山峡自身CRM合同ID,不录入客户下游合同',
`contract_no_snapshot` varchar(100) NOT NULL COMMENT '系统关联合同编号快照,不等于证件编号',
`cert_type` varchar(16) NOT NULL COMMENT 'purchase或transport',
`cert_id` varchar(64) NOT NULL COMMENT '按cert_type指向对应证件表;服务层校验同租户',
`link_status` varchar(16) NOT NULL DEFAULT 'active' COMMENT 'active可选/inactive停止新增使用;历史使用不迁移',
`scope_revision` int NOT NULL DEFAULT 1 COMMENT '适用产品范围版本,增删或停用产品时递增,使未执行用证确认失效',
`tenant_no` varchar(64) NOT NULL COMMENT '租户编号,由服务端当前用户上下文设置',
`order_num` int DEFAULT NULL COMMENT '公共排序号',
`remark` varchar(1000) DEFAULT NULL COMMENT '系统备注,与证面备注分开',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建部门',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` smallint NOT NULL DEFAULT 0 COMMENT '软删除标记:0正常,1删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_contract_cert` (`tenant_no`,`contract_id`,`cert_type`,`cert_id`),
KEY `idx_contract_cert` (`tenant_no`,`contract_id`,`del_flag`),
KEY `idx_link_cert` (`tenant_no`,`cert_type`,`cert_id`,`del_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='山峡合同绑定购买证或运输证,一个合同可绑定多张证';
CREATE TABLE `pl_contract_cert_product` (
`id` varchar(64) NOT NULL COMMENT '主键UUID',
`contract_cert_link_id` varchar(64) NOT NULL COMMENT 'pl_contract_cert_link.id,继承合同、证种及证件身份',
`contract_product_id` varchar(64) NOT NULL COMMENT '该合同中的产品明细ID;多条产品行可属于同一合同证件绑定',
`scope_status` varchar(16) NOT NULL DEFAULT 'active' COMMENT 'active允许新增使用/inactive停止新增使用;保留历史',
`tenant_no` varchar(64) NOT NULL COMMENT '租户编号,由服务端当前用户上下文设置',
`order_num` int DEFAULT NULL COMMENT '公共排序号',
`remark` varchar(1000) DEFAULT NULL COMMENT '系统备注',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建部门',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` smallint NOT NULL DEFAULT 0 COMMENT '软删除标记:0正常,1删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_contract_cert_product` (`tenant_no`,`contract_cert_link_id`,`contract_product_id`),
KEY `idx_scope_product` (`tenant_no`,`contract_product_id`,`scope_status`,`del_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='合同产品与证件多对多,同产品可属于多个证件范围;各证独立额度';
CREATE TABLE `pl_plan_cert_usage` (
`id` varchar(64) NOT NULL COMMENT '主键UUID',
`plan_id` varchar(64) NOT NULL COMMENT '运输计划ID',
`plan_no_snapshot` varchar(100) NOT NULL COMMENT '计划编号快照',
`transport_id` varchar(64) DEFAULT NULL COMMENT '运输单ID',
`cert_type` varchar(16) NOT NULL COMMENT 'purchase或transport',
`cert_id` varchar(64) NOT NULL COMMENT '购买证或运输证ID',
`cert_no_snapshot` varchar(100) NOT NULL COMMENT '本次使用证号快照',
`cert_revision` int NOT NULL COMMENT '本次确认的证件版本',
`quantity_unit` varchar(32) NOT NULL COMMENT '数量单位代码;同证全部余额使用此单位,异单位不自动换算',
`reserved_qty` decimal(18,6) NOT NULL DEFAULT 0 COMMENT '本计划对该证当前未结转的占用',
`used_qty` decimal(18,6) NOT NULL DEFAULT 0 COMMENT '本计划对该证已发生量',
`usage_status` varchar(20) NOT NULL DEFAULT 'draft' COMMENT 'draft/reserved/in_transit/settled/released/exception',
`confirmed_by` varchar(64) DEFAULT NULL COMMENT '最近一次用证确认人',
`confirmed_time` datetime DEFAULT NULL COMMENT '最近一次用证确认时间',
`settled_time` datetime DEFAULT NULL COMMENT '最近一次实际量结转时间',
`row_version` int NOT NULL DEFAULT 1 COMMENT '用量记录版本,防止使用旧版本重复修改',
`confirmation_snapshot` json DEFAULT NULL COMMENT '证面、计划量、车号、实际装送主体/地址及核验结果快照',
`tenant_no` varchar(64) NOT NULL COMMENT '租户编号,由服务端当前用户上下文设置',
`order_num` int DEFAULT NULL COMMENT '公共排序号',
`remark` varchar(1000) DEFAULT NULL COMMENT '系统备注,与证面备注分开',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建部门',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` smallint NOT NULL DEFAULT 0 COMMENT '软删除标记:0正常,1删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_plan_cert_usage` (`tenant_no`,`plan_id`,`cert_type`,`cert_id`),
KEY `idx_usage_cert` (`tenant_no`,`cert_type`,`cert_id`,`usage_status`,`del_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='一趟计划对一张证的用量汇总,采购与运输证独立记账';
CREATE TABLE `pl_plan_cert_usage_item` (
`id` varchar(64) NOT NULL COMMENT '主键UUID',
`usage_id` varchar(64) NOT NULL COMMENT 'pl_plan_cert_usage.id',
`contract_cert_link_id` varchar(64) NOT NULL COMMENT '合同与证件绑定ID,须与usage的证件相同',
`contract_cert_product_id` varchar(64) NOT NULL COMMENT '本产品的适用范围明细ID:pl_contract_cert_product.id',
`contract_scope_revision` int NOT NULL COMMENT '本次确认的合同证件适用范围版本',
`contract_id` varchar(64) NOT NULL COMMENT '本次履行的山峡合同ID',
`contract_product_id` varchar(64) NOT NULL COMMENT '对应合同产品行ID',
`plan_product_id` varchar(64) NOT NULL COMMENT '计划产品行ID',
`source_stop_type` varchar(16) NOT NULL COMMENT '唯一计量侧:load或delivery',
`source_stop_id` varchar(64) NOT NULL COMMENT '计量来源装货或送货段ID',
`source_stop_product_id` varchar(64) NOT NULL COMMENT '计量来源段次产品行ID',
`related_stop_products` json DEFAULT NULL COMMENT '关联另一侧段产品ID列表,仅用于追溯,不另行扣量',
`allocation_seq` int NOT NULL COMMENT '同计划同合同来源同证种的分配顺序,正数且不重复;归档按此顺序结转',
`source_unit` varchar(32) NOT NULL COMMENT '来源段产品单位',
`planned_source_qty` decimal(18,6) NOT NULL COMMENT '安排时来源段产品完整计划数量快照,来源单位;跨证重复快照不得求和',
`allocated_source_qty` decimal(18,6) DEFAULT NULL COMMENT '本证分配的来源计划数量,来源单位;同产品同证种各证合计须等于完整计划量',
`actual_source_qty` decimal(18,6) DEFAULT NULL COMMENT '归档时来源段产品完整实际数量快照,来源单位;未知为NULL',
`actual_allocated_source_qty` decimal(18,6) DEFAULT NULL COMMENT '归档时本证分配的来源实际数量;同产品同证种各证合计须等于完整实际量;异单位重新确认',
`planned_cert_qty` decimal(18,6) DEFAULT NULL COMMENT '自动分配或人工确认的安排用证量,证件单位;草稿可空,预占前必填',
`reserve_input_mode` varchar(16) DEFAULT NULL COMMENT 'same_unit同单位带入/manual异单位人工填写',
`reserve_conversion_note` varchar(1000) DEFAULT NULL COMMENT '异单位安排折算说明,manual时必填;不存自动换算系数',
`reserve_confirmed_by` varchar(64) DEFAULT NULL COMMENT '安排折算量确认人,服务端取当前用户',
`reserve_confirmed_time` datetime DEFAULT NULL COMMENT '安排折算量确认时间',
`actual_cert_qty` decimal(18,6) DEFAULT NULL COMMENT '按实际来源量自动分配或人工确认的实际用证量,证件单位;不可用预占量替代',
`settle_input_mode` varchar(16) DEFAULT NULL COMMENT 'same_unit同单位带入/manual异单位重新人工填写',
`settle_conversion_note` varchar(1000) DEFAULT NULL COMMENT '异单位归档折算说明,manual时必填',
`settle_confirmed_by` varchar(64) DEFAULT NULL COMMENT '归档实际用证量确认人,服务端取当前用户',
`settle_confirmed_time` datetime DEFAULT NULL COMMENT '归档实际用证量确认时间',
`source_fingerprint` char(64) DEFAULT NULL COMMENT '源数据版本摘要;数量/单位/合同/产品/车辆/装送范围变化使确认失效',
`reserved_qty` decimal(18,6) NOT NULL DEFAULT 0 COMMENT '本分配当前预占量,证件单位',
`used_qty` decimal(18,6) NOT NULL DEFAULT 0 COMMENT '本分配已发生量,证件单位',
`item_status` varchar(20) NOT NULL DEFAULT 'draft' COMMENT 'draft/reserved/in_transit/settled/released/exception',
`source_snapshot` json DEFAULT NULL COMMENT '合同、产品、原始计划/归档量与分配依据快照',
`tenant_no` varchar(64) NOT NULL COMMENT '租户编号,由服务端当前用户上下文设置',
`order_num` int DEFAULT NULL COMMENT '公共排序号',
`remark` varchar(1000) DEFAULT NULL COMMENT '系统备注,与证面备注分开',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建部门',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` smallint NOT NULL DEFAULT 0 COMMENT '软删除标记:0正常,1删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_usage_source` (`tenant_no`,`usage_id`,`source_stop_type`,`source_stop_product_id`),
KEY `idx_usage_item_contract` (`tenant_no`,`contract_product_id`,`del_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='用量来源分配,指定一侧为计量来源,避免装送重复相加';
CREATE TABLE `pl_cert_qty_log` (
`id` varchar(64) NOT NULL COMMENT '主键UUID',
`operation_id` varchar(64) NOT NULL COMMENT '业务幂等操作号;同一次双证操作共用一个号',
`request_hash` char(64) NOT NULL COMMENT '规范化业务请求SHA256,同幂等号不同请求应拒绝',
`cert_type` varchar(16) NOT NULL COMMENT 'purchase或transport',
`cert_id` varchar(64) NOT NULL COMMENT '证件ID',
`usage_id` varchar(64) DEFAULT NULL COMMENT '计划用量ID;有凭据的期初导入可空',
`plan_id` varchar(64) DEFAULT NULL COMMENT '计划ID;期初导入可空',
`event_type` varchar(24) NOT NULL COMMENT 'opening/reserve/resize/release/settle/adjust/total_adjust',
`quantity_unit` varchar(32) NOT NULL COMMENT '数量单位代码;同证全部余额使用此单位,异单位不自动换算',
`total_delta` decimal(18,6) NOT NULL DEFAULT 0 COMMENT '核定总量变动,须附修订依据',
`reserved_delta` decimal(18,6) NOT NULL DEFAULT 0 COMMENT '预占增量,释放或结转为负数',
`used_delta` decimal(18,6) NOT NULL DEFAULT 0 COMMENT '实际使用增量,有依据的纠错可以为负数',
`before_total_qty` decimal(18,6) NOT NULL COMMENT '操作前核定总量',
`after_total_qty` decimal(18,6) NOT NULL COMMENT '操作后核定总量',
`before_reserved_qty` decimal(18,6) NOT NULL COMMENT '操作前预占',
`after_reserved_qty` decimal(18,6) NOT NULL COMMENT '操作后预占',
`before_used_qty` decimal(18,6) NOT NULL COMMENT '操作前已发生',
`after_used_qty` decimal(18,6) NOT NULL COMMENT '操作后已发生',
`reason` varchar(1000) NOT NULL COMMENT '操作原因或业务动作说明',
`evidence_urls` text COMMENT '期初、核定量修订或实际量调整凭据,多个URL逗号分隔',
`event_snapshot` json DEFAULT NULL COMMENT '来源分配、证面版本、校验及变更前后明细',
`tenant_no` varchar(64) NOT NULL COMMENT '租户编号,由服务端当前用户上下文设置',
`order_num` int DEFAULT NULL COMMENT '公共排序号',
`remark` varchar(1000) DEFAULT NULL COMMENT '系统备注,与证面备注分开',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建部门',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` smallint NOT NULL DEFAULT 0 COMMENT '软删除标记:0正常,1删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_cert_operation` (`tenant_no`,`operation_id`,`cert_type`,`cert_id`),
KEY `idx_qty_log_cert` (`tenant_no`,`cert_type`,`cert_id`,`create_time`),
KEY `idx_qty_log_usage` (`tenant_no`,`usage_id`,`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='证件额度及核销次数流水,追加留痕,不覆盖历史';
CREATE TABLE `pl_cert_operation` (
`id` varchar(64) NOT NULL COMMENT '主键UUID',
`operation_id` varchar(64) NOT NULL COMMENT '客户端请求操作号',
`action` varchar(32) NOT NULL COMMENT '请求动作',
`plan_id` varchar(64) DEFAULT NULL COMMENT '关联计划',
`request_hash` char(64) NOT NULL COMMENT '规范请求SHA256',
`result_json` json DEFAULT NULL COMMENT '原请求结果',
`tenant_no` varchar(64) NOT NULL COMMENT '租户编号,由服务端当前用户上下文设置',
`order_num` int DEFAULT NULL COMMENT '公共排序号',
`remark` varchar(1000) DEFAULT NULL COMMENT '系统备注,与证面备注分开',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建部门',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` smallint NOT NULL DEFAULT 0 COMMENT '软删除标记:0正常,1删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_cert_request` (`tenant_no`,`operation_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='证件请求级幂等操作记录';