Parcourir la source

fix: QuotaModel补充quota_type/target_type/target_id字段+插入时赋值

- model.py: 新增quota_type/target_type/target_id列
- quota/service.py: 批量发放时写入额度记录字段
- institution/service.py: 创建制度时写入额度记录字段
alphah il y a 2 semaines
Parent
commit
61ab4301a0

+ 3 - 0
backend/app/plugin/module_payment/expense/institution/service.py

@@ -374,6 +374,9 @@ class InstitutionService:
             stmt = insert(QuotaModel).values(
                 employee_id=emp_id,
                 institution_id=institution_id,
+                quota_type="CAP" if grant_mode == "period" else None,
+                target_type="INSTITUTION",
+                target_id=institution_id,
                 quota_id=issue_rule_id,
                 out_biz_no=f"inst_{institution_id}_{emp_id}",
                 total_amount=total,

+ 9 - 0
backend/app/plugin/module_payment/expense/quota/model.py

@@ -41,6 +41,15 @@ class QuotaModel(PaymentModelMixin, TenantMixin, EnterpriseMixin):
     valid_to: Mapped[datetime | None] = mapped_column(
         DateTime, comment="有效期结束"
     )
+    quota_type: Mapped[str | None] = mapped_column(
+        String(32), default="CAP", comment="额度类型: CAP(余额)/COUPON(点券)/COUNT(次卡)"
+    )
+    target_type: Mapped[str | None] = mapped_column(
+        String(32), comment="额度维度: INSTITUTION(制度)/EXPENSE_TYPE(费用类型)"
+    )
+    target_id: Mapped[str | None] = mapped_column(
+        String(64), comment="额度维度ID"
+    )
     status: Mapped[str] = mapped_column(
         String(32),
         default=QuotaStatusEnum.QUOTA_ACTIVE.value,

+ 3 - 1
backend/app/plugin/module_payment/expense/quota/service.py

@@ -436,7 +436,9 @@ class QuotaService:
                     stmt = insert(QuotaModel).values(
                         employee_id=item.owner_id or "",
                         institution_id=data.institution_id,
-                        quota_id=result.issue_batch_id,
+                        quota_type=data.quota_type,
+                        target_type="INSTITUTION",
+                        target_id=data.institution_id,
                         out_biz_no=f"batch_{data.batch_no}_{item.owner_id}",
                         total_amount=quota_amount,
                         available_amount=quota_amount,