fix: 增加回单核对与付款登记门禁(09-08-reimbursement-payment-closeout)
这个提交包含在:
@@ -1966,6 +1966,8 @@ model PaymentBatchItem {
|
||||
payment_batch PaymentBatch @relation(fields: [payment_batch_id], references: [id], onDelete: Cascade)
|
||||
|
||||
@@index([payment_batch_id, status], map: "idx_payment_batch_items_batch_status")
|
||||
receipt_matches PaymentReceiptMatch[]
|
||||
receipt_claim PaymentReceiptClaim?
|
||||
@@index([entity_id], map: "idx_payment_batch_items_entity_id")
|
||||
@@map("payment_batch_items")
|
||||
}
|
||||
@@ -1993,6 +1995,11 @@ model PaymentBatchReceiptAttachment {
|
||||
|
||||
payment_batch PaymentBatch @relation(fields: [payment_batch_id], references: [id], onDelete: Cascade)
|
||||
uploader Employee @relation("PaymentBatchReceiptAttachmentUploader", fields: [uploaded_by], references: [id], onDelete: Restrict)
|
||||
verifications PaymentReceiptVerification[]
|
||||
manual_proposals PaymentReceiptManualProposal[]
|
||||
receipt_ocr_version Int @default(0)
|
||||
receipt_ocr_state String @default("legacy") @db.VarChar(32)
|
||||
receipt_ocr_started_at DateTime?
|
||||
|
||||
@@index([payment_batch_id, created_at], map: "idx_payment_batch_receipts_batch_created")
|
||||
@@index([uploaded_by], map: "idx_payment_batch_receipts_uploader")
|
||||
@@ -2002,6 +2009,88 @@ model PaymentBatchReceiptAttachment {
|
||||
@@map("payment_batch_receipt_attachments")
|
||||
}
|
||||
|
||||
model PaymentReceiptVerification {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
attachment_id String @db.Uuid
|
||||
source_sha256 String @db.VarChar(64)
|
||||
source_version Int
|
||||
status String @db.VarChar(32)
|
||||
pages_expected Int
|
||||
pages_processed Int
|
||||
normalized_encrypted String
|
||||
created_at DateTime @default(now())
|
||||
attachment PaymentBatchReceiptAttachment @relation(fields: [attachment_id], references: [id], onDelete: Restrict)
|
||||
matches PaymentReceiptMatch[]
|
||||
claims PaymentReceiptClaim[]
|
||||
manual_proposals PaymentReceiptManualProposal[]
|
||||
|
||||
@@index([attachment_id, created_at])
|
||||
@@map("payment_receipt_verifications")
|
||||
}
|
||||
|
||||
model PaymentReceiptManualProposal {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
attachment_id String @db.Uuid
|
||||
original_verification_id String @db.Uuid
|
||||
source_sha256 String @db.VarChar(64)
|
||||
source_version Int
|
||||
status String @db.VarChar(32)
|
||||
proposed_by String @db.Uuid
|
||||
reviewed_by String? @db.Uuid
|
||||
payload_encrypted String
|
||||
review_note_encrypted String?
|
||||
created_at DateTime @default(now())
|
||||
reviewed_at DateTime?
|
||||
attachment PaymentBatchReceiptAttachment @relation(fields: [attachment_id], references: [id], onDelete: Restrict)
|
||||
original_verification PaymentReceiptVerification @relation(fields: [original_verification_id], references: [id], onDelete: Restrict)
|
||||
claims PaymentReceiptClaim[]
|
||||
|
||||
@@unique([attachment_id, source_version])
|
||||
@@map("payment_receipt_manual_proposals")
|
||||
}
|
||||
|
||||
model PaymentReceiptMatch {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
verification_id String @db.Uuid
|
||||
item_id String @db.Uuid
|
||||
page_number Int
|
||||
fingerprint String @db.VarChar(64)
|
||||
key_id String @db.VarChar(64)
|
||||
verification PaymentReceiptVerification @relation(fields: [verification_id], references: [id], onDelete: Restrict)
|
||||
item PaymentBatchItem @relation(fields: [item_id], references: [id], onDelete: Restrict)
|
||||
|
||||
@@unique([verification_id, page_number])
|
||||
@@unique([verification_id, item_id])
|
||||
@@index([item_id])
|
||||
@@map("payment_receipt_matches")
|
||||
}
|
||||
|
||||
model PaymentReceiptClaim {
|
||||
fingerprint String @id @db.VarChar(64)
|
||||
key_id String @db.VarChar(64)
|
||||
item_id String @unique @db.Uuid
|
||||
verification_id String @db.Uuid
|
||||
manual_proposal_id String? @db.Uuid
|
||||
created_at DateTime @default(now())
|
||||
item PaymentBatchItem @relation(fields: [item_id], references: [id], onDelete: Restrict)
|
||||
verification PaymentReceiptVerification @relation(fields: [verification_id], references: [id], onDelete: Restrict)
|
||||
manual_proposal PaymentReceiptManualProposal? @relation(fields: [manual_proposal_id], references: [id], onDelete: Restrict)
|
||||
aliases PaymentReceiptTransactionAlias[]
|
||||
|
||||
@@map("payment_receipt_claims")
|
||||
}
|
||||
|
||||
model PaymentReceiptTransactionAlias {
|
||||
fingerprint String @id @db.VarChar(64)
|
||||
key_id String @db.VarChar(64)
|
||||
claim_fingerprint String @db.VarChar(64)
|
||||
created_at DateTime @default(now())
|
||||
claim PaymentReceiptClaim @relation(fields: [claim_fingerprint], references: [fingerprint], onDelete: Restrict)
|
||||
|
||||
@@index([claim_fingerprint])
|
||||
@@map("payment_receipt_transaction_aliases")
|
||||
}
|
||||
|
||||
model PortalAnnouncement {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
title String
|
||||
|
||||
在新工单中引用
屏蔽一个用户