Sfoglia il codice sorgente

fix(expense): 停用制度时同步冻结额度 - effective=0时 quota status→FROZEN

- 修改制度时检测 effective 字段变化
- 停用(0)→所有关联额度记录变 FROZEN
- 启用(1)→所有关联额度记录变 ACTIVE
alphah 2 settimane fa
parent
commit
7e18e482fe

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

@@ -911,6 +911,23 @@ class InstitutionService:
                 await crud.update_by_institution_id(institution_id, update_data)
                 log.info(f"已更新本地制度: institution_id={institution_id}")
 
+            # 制度生效/失效时同步更新额度状态
+            if hasattr(data, 'effective') and data.effective is not None:
+                from app.plugin.module_payment.expense.quota.model import QuotaModel
+                from app.plugin.module_payment.expense.quota.enums import QuotaStatusEnum
+                from sqlalchemy import update as sa_quota_update
+                new_quota_status = (
+                    QuotaStatusEnum.QUOTA_ACTIVE.value
+                    if data.effective == "1"
+                    else QuotaStatusEnum.QUOTA_FROZEN.value
+                )
+                quota_upd = sa_quota_update(QuotaModel).where(
+                    QuotaModel.institution_id == institution_id
+                ).values(status=new_quota_status)
+                await auth.db.execute(quota_upd)
+                await auth.db.flush()
+                log.info(f"已同步更新额度状态: institution_id={institution_id}, effective={data.effective}, quota_status={new_quota_status}")
+
             # 同步标准规则(modify_standard_detail_info)
             std_detail = (raw_data or {}).get("modify_standard_detail_info") or {}
             if std_detail: