修复:限定幂等键精确业务域
This commit is contained in:
@@ -12,6 +12,11 @@ class BizInboundOrder(Base):
|
||||
|
||||
__tablename__ = 'biz_inbound_order'
|
||||
__table_args__ = (
|
||||
UniqueConstraint(
|
||||
'warehouse_id',
|
||||
'confirm_idempotency_key',
|
||||
name='uq_biz_inbound_order_warehouse_confirm_idempotency',
|
||||
),
|
||||
CheckConstraint("status IN ('DRAFT', 'CONFIRMED')", name='ck_biz_inbound_order_status'),
|
||||
{'comment': '首次入库单'},
|
||||
)
|
||||
@@ -25,7 +30,7 @@ class BizInboundOrder(Base):
|
||||
comment='仓库ID',
|
||||
)
|
||||
status = Column(String(32), nullable=False, server_default='DRAFT', comment='单据状态')
|
||||
confirm_idempotency_key = Column(String(64), nullable=True, unique=True, comment='确认幂等键')
|
||||
confirm_idempotency_key = Column(String(64), nullable=True, comment='确认幂等键')
|
||||
confirm_request_hash = Column(String(64), nullable=True, comment='确认请求摘要')
|
||||
confirmed_by = Column(BigInteger, ForeignKey('sys_user.user_id'), nullable=True, comment='确认人ID')
|
||||
confirmed_at = Column(DateTime, nullable=True, comment='确认时间')
|
||||
@@ -73,6 +78,11 @@ class BizFillingRecord(Base):
|
||||
|
||||
__tablename__ = 'biz_filling_record'
|
||||
__table_args__ = (
|
||||
UniqueConstraint(
|
||||
'warehouse_id',
|
||||
'idempotency_key',
|
||||
name='uq_biz_filling_record_warehouse_idempotency',
|
||||
),
|
||||
UniqueConstraint('pallet_id', 'active_slot', name='uq_biz_filling_record_pallet_active_slot'),
|
||||
CheckConstraint('initial_packages > 0', name='ck_biz_filling_record_initial_packages'),
|
||||
CheckConstraint(
|
||||
@@ -99,7 +109,7 @@ class BizFillingRecord(Base):
|
||||
initial_packages = Column(Integer, nullable=False, comment='初始包数')
|
||||
active_slot = Column(String(16), nullable=True, comment='活动装填槽')
|
||||
closed_at = Column(DateTime, nullable=True, comment='装填周期关闭时间')
|
||||
idempotency_key = Column(String(64), nullable=False, unique=True, comment='幂等键')
|
||||
idempotency_key = Column(String(64), nullable=False, comment='幂等键')
|
||||
request_hash = Column(String(64), nullable=False, comment='请求摘要')
|
||||
operator_id = Column(BigInteger, ForeignKey('sys_user.user_id'), nullable=False, comment='操作人ID')
|
||||
operated_at = Column(DateTime, nullable=False, comment='操作时间')
|
||||
@@ -120,6 +130,12 @@ class BizShipmentOrder(Base):
|
||||
|
||||
__tablename__ = 'biz_shipment_order'
|
||||
__table_args__ = (
|
||||
UniqueConstraint(
|
||||
'source_warehouse_id',
|
||||
'target_site_id',
|
||||
'confirm_idempotency_key',
|
||||
name='uq_biz_shipment_order_route_confirm_idempotency',
|
||||
),
|
||||
CheckConstraint("status IN ('DRAFT', 'CONFIRMED')", name='ck_biz_shipment_order_status'),
|
||||
{'comment': '整托发货单'},
|
||||
)
|
||||
@@ -139,7 +155,7 @@ class BizShipmentOrder(Base):
|
||||
comment='目标现场ID',
|
||||
)
|
||||
status = Column(String(32), nullable=False, server_default='DRAFT', comment='单据状态')
|
||||
confirm_idempotency_key = Column(String(64), nullable=True, unique=True, comment='确认幂等键')
|
||||
confirm_idempotency_key = Column(String(64), nullable=True, comment='确认幂等键')
|
||||
confirm_request_hash = Column(String(64), nullable=True, comment='确认请求摘要')
|
||||
confirmed_by = Column(BigInteger, ForeignKey('sys_user.user_id'), nullable=True, comment='确认人ID')
|
||||
confirmed_at = Column(DateTime, nullable=True, comment='确认时间')
|
||||
@@ -198,6 +214,7 @@ class BizUsageRecord(Base):
|
||||
|
||||
__tablename__ = 'biz_usage_record'
|
||||
__table_args__ = (
|
||||
UniqueConstraint('site_id', 'idempotency_key', name='uq_biz_usage_record_site_idempotency'),
|
||||
CheckConstraint('used_packages > 0', name='ck_biz_usage_record_used_packages'),
|
||||
CheckConstraint(
|
||||
'remaining_packages_after >= 0',
|
||||
@@ -219,7 +236,7 @@ class BizUsageRecord(Base):
|
||||
line_id = Column(BigInteger, ForeignKey('biz_production_line.line_id'), nullable=False, comment='产线ID')
|
||||
used_packages = Column(Integer, nullable=False, comment='本次使用包数')
|
||||
remaining_packages_after = Column(Integer, nullable=False, comment='使用后剩余包数')
|
||||
idempotency_key = Column(String(64), nullable=False, unique=True, comment='幂等键')
|
||||
idempotency_key = Column(String(64), nullable=False, comment='幂等键')
|
||||
request_hash = Column(String(64), nullable=False, comment='请求摘要')
|
||||
operator_id = Column(BigInteger, ForeignKey('sys_user.user_id'), nullable=False, comment='操作人ID')
|
||||
occurred_at = Column(DateTime, nullable=False, comment='发生时间')
|
||||
@@ -230,6 +247,18 @@ class BizReturnOrder(Base):
|
||||
|
||||
__tablename__ = 'biz_return_order'
|
||||
__table_args__ = (
|
||||
UniqueConstraint(
|
||||
'source_site_id',
|
||||
'target_warehouse_id',
|
||||
'request_idempotency_key',
|
||||
name='uq_biz_return_order_route_request_idempotency',
|
||||
),
|
||||
UniqueConstraint(
|
||||
'source_site_id',
|
||||
'target_warehouse_id',
|
||||
'confirm_idempotency_key',
|
||||
name='uq_biz_return_order_route_confirm_idempotency',
|
||||
),
|
||||
CheckConstraint("status IN ('REQUESTED', 'CONFIRMED')", name='ck_biz_return_order_status'),
|
||||
{'comment': '托盘退回单'},
|
||||
)
|
||||
@@ -249,9 +278,9 @@ class BizReturnOrder(Base):
|
||||
comment='目标仓库ID',
|
||||
)
|
||||
status = Column(String(32), nullable=False, server_default='REQUESTED', comment='退回状态')
|
||||
request_idempotency_key = Column(String(64), nullable=False, unique=True, comment='申请幂等键')
|
||||
request_idempotency_key = Column(String(64), nullable=False, comment='申请幂等键')
|
||||
request_hash = Column(String(64), nullable=False, comment='申请请求摘要')
|
||||
confirm_idempotency_key = Column(String(64), nullable=True, unique=True, comment='确认幂等键')
|
||||
confirm_idempotency_key = Column(String(64), nullable=True, comment='确认幂等键')
|
||||
confirm_request_hash = Column(String(64), nullable=True, comment='确认请求摘要')
|
||||
requested_by = Column(BigInteger, ForeignKey('sys_user.user_id'), nullable=False, comment='申请人ID')
|
||||
requested_at = Column(DateTime, nullable=False, comment='申请时间')
|
||||
|
||||
Reference in New Issue
Block a user