Initial commit: 风影 OA 全栈源码(API/Web/Flutter/IM)
含 Phase 1.1 IM seq 排序、断线重连、多端已读同步与微信式语音转文字 UI。 排除 node_modules、构建产物、安装包与 .env 密钥。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
-- ExpenseClaim
|
||||
ALTER TABLE "ExpenseClaim" ADD COLUMN "loanId" TEXT;
|
||||
ALTER TABLE "ExpenseClaim" ADD COLUMN "submittedAt" TIMESTAMP(3);
|
||||
ALTER TABLE "ExpenseClaim" ADD COLUMN "decidedAt" TIMESTAMP(3);
|
||||
ALTER TABLE "ExpenseClaim" ADD COLUMN "decidedById" TEXT;
|
||||
ALTER TABLE "ExpenseClaim" ADD COLUMN "rejectComment" TEXT;
|
||||
|
||||
ALTER TABLE "ExpenseClaim" ADD CONSTRAINT "ExpenseClaim_applicantId_fkey" FOREIGN KEY ("applicantId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
ALTER TABLE "ExpenseClaim" ADD CONSTRAINT "ExpenseClaim_decidedById_fkey" FOREIGN KEY ("decidedById") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
ALTER TABLE "ExpenseClaim" ADD CONSTRAINT "ExpenseClaim_loanId_fkey" FOREIGN KEY ("loanId") REFERENCES "LoanRecord"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
CREATE INDEX "ExpenseClaim_applicantId_idx" ON "ExpenseClaim"("applicantId");
|
||||
CREATE INDEX "ExpenseClaim_loanId_idx" ON "ExpenseClaim"("loanId");
|
||||
|
||||
-- LoanRecord
|
||||
ALTER TABLE "LoanRecord" ADD COLUMN "loanNo" TEXT;
|
||||
ALTER TABLE "LoanRecord" ADD COLUMN "costType" TEXT;
|
||||
ALTER TABLE "LoanRecord" ADD COLUMN "bidCaseId" TEXT;
|
||||
ALTER TABLE "LoanRecord" ADD COLUMN "projectId" TEXT;
|
||||
ALTER TABLE "LoanRecord" ADD COLUMN "offsetAmount" DECIMAL(18,2) NOT NULL DEFAULT 0;
|
||||
ALTER TABLE "LoanRecord" ADD COLUMN "remark" TEXT;
|
||||
ALTER TABLE "LoanRecord" ADD COLUMN "submittedAt" TIMESTAMP(3);
|
||||
ALTER TABLE "LoanRecord" ADD COLUMN "decidedAt" TIMESTAMP(3);
|
||||
ALTER TABLE "LoanRecord" ADD COLUMN "decidedById" TEXT;
|
||||
|
||||
UPDATE "LoanRecord" SET "loanNo" = 'JK-LEGACY-' || substr("id", 1, 8) WHERE "loanNo" IS NULL;
|
||||
UPDATE "LoanRecord" SET "costType" = 'ADMIN' WHERE "costType" IS NULL;
|
||||
|
||||
ALTER TABLE "LoanRecord" ALTER COLUMN "loanNo" SET NOT NULL;
|
||||
ALTER TABLE "LoanRecord" ALTER COLUMN "costType" SET NOT NULL;
|
||||
ALTER TABLE "LoanRecord" ALTER COLUMN "status" SET DEFAULT 'DRAFT';
|
||||
|
||||
CREATE UNIQUE INDEX "LoanRecord_tenantId_loanNo_key" ON "LoanRecord"("tenantId", "loanNo");
|
||||
CREATE INDEX "LoanRecord_applicantId_idx" ON "LoanRecord"("applicantId");
|
||||
ALTER TABLE "LoanRecord" ADD CONSTRAINT "LoanRecord_bidCaseId_fkey" FOREIGN KEY ("bidCaseId") REFERENCES "BidCase"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
ALTER TABLE "LoanRecord" ADD CONSTRAINT "LoanRecord_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
ALTER TABLE "LoanRecord" ADD CONSTRAINT "LoanRecord_applicantId_fkey" FOREIGN KEY ("applicantId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
ALTER TABLE "LoanRecord" ADD CONSTRAINT "LoanRecord_decidedById_fkey" FOREIGN KEY ("decidedById") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- BondRecord
|
||||
ALTER TABLE "BondRecord" ADD COLUMN "bondNo" TEXT;
|
||||
ALTER TABLE "BondRecord" ADD COLUMN "projectId" TEXT;
|
||||
ALTER TABLE "BondRecord" ADD COLUMN "contractId" TEXT;
|
||||
ALTER TABLE "BondRecord" ADD COLUMN "remark" TEXT;
|
||||
ALTER TABLE "BondRecord" ADD COLUMN "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP;
|
||||
|
||||
UPDATE "BondRecord" SET "bondNo" = 'BZ-LEGACY-' || substr("id", 1, 8) WHERE "bondNo" IS NULL;
|
||||
ALTER TABLE "BondRecord" ALTER COLUMN "bondNo" SET NOT NULL;
|
||||
ALTER TABLE "BondRecord" ALTER COLUMN "bidCaseId" DROP NOT NULL;
|
||||
|
||||
ALTER TABLE "BondRecord" DROP CONSTRAINT "BondRecord_bidCaseId_fkey";
|
||||
ALTER TABLE "BondRecord" ADD CONSTRAINT "BondRecord_bidCaseId_fkey" FOREIGN KEY ("bidCaseId") REFERENCES "BidCase"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
ALTER TABLE "BondRecord" ADD CONSTRAINT "BondRecord_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
ALTER TABLE "BondRecord" ADD CONSTRAINT "BondRecord_contractId_fkey" FOREIGN KEY ("contractId") REFERENCES "Contract"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
CREATE UNIQUE INDEX "BondRecord_tenantId_bondNo_key" ON "BondRecord"("tenantId", "bondNo");
|
||||
|
||||
-- InvoiceRecord
|
||||
DELETE FROM "InvoiceRecord";
|
||||
ALTER TABLE "InvoiceRecord" ADD COLUMN "contractId" TEXT NOT NULL;
|
||||
ALTER TABLE "InvoiceRecord" ADD COLUMN "milestoneId" TEXT NOT NULL;
|
||||
ALTER TABLE "InvoiceRecord" ADD COLUMN "dueAt" TIMESTAMP(3);
|
||||
ALTER TABLE "InvoiceRecord" ADD COLUMN "remark" TEXT;
|
||||
ALTER TABLE "InvoiceRecord" ADD COLUMN "createdById" TEXT;
|
||||
|
||||
CREATE UNIQUE INDEX "InvoiceRecord_milestoneId_key" ON "InvoiceRecord"("milestoneId");
|
||||
ALTER TABLE "InvoiceRecord" ADD CONSTRAINT "InvoiceRecord_contractId_fkey" FOREIGN KEY ("contractId") REFERENCES "Contract"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
ALTER TABLE "InvoiceRecord" ADD CONSTRAINT "InvoiceRecord_milestoneId_fkey" FOREIGN KEY ("milestoneId") REFERENCES "PaymentMilestone"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
ALTER TABLE "InvoiceRecord" ADD CONSTRAINT "InvoiceRecord_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
Reference in New Issue
Block a user