|
|
@@ -277,23 +277,25 @@ async def modify_institution_controller(
|
|
|
EXPENSE_TYPE_MAP = {"GENERAL": "DEFAULT", "DEFAULT": "DEFAULT"}
|
|
|
if data.get("expense_type") in EXPENSE_TYPE_MAP:
|
|
|
data["expense_type"] = EXPENSE_TYPE_MAP[data["expense_type"]]
|
|
|
- # 构造 scope 变更信息写入支付宝模型
|
|
|
+ # 提取 scope 变更数据(需与基础修改分两次请求)
|
|
|
applicable_scope = data.get("applicable_scope", "")
|
|
|
+ scope_info = None
|
|
|
if applicable_scope and applicable_scope not in ("NONE", "none"):
|
|
|
ADAPTER_MAP = {"all": "EMPLOYEE_ALL", "employee": "EMPLOYEE_SELECT", "department": "DEPARTMENT_SELECT"}
|
|
|
scope_info = {
|
|
|
"adapter_type": ADAPTER_MAP.get(applicable_scope, applicable_scope),
|
|
|
"owner_type": "ENTERPRISE_PAY_UID",
|
|
|
}
|
|
|
- if applicable_scope == "employee" and data.get("scope_owner_id_list"):
|
|
|
+ if applicable_scope in ("employee", "department") and data.get("scope_owner_id_list"):
|
|
|
scope_info["add_owner_id_list"] = data["scope_owner_id_list"]
|
|
|
- elif applicable_scope == "department" and data.get("scope_owner_id_list"):
|
|
|
- scope_info["add_owner_id_list"] = data["scope_owner_id_list"]
|
|
|
- data["modify_scope_info"] = scope_info
|
|
|
+ # 从请求中移除 scope 数据,避免与基础修改冲突
|
|
|
+ data.pop("modify_scope_info", None)
|
|
|
|
|
|
- institution_modify_model = AlipayEbppInvoiceInstitutionModifyModel.from_alipay_dict(data)
|
|
|
+ # 第1次请求:仅修改制度基础信息(不含 scope)
|
|
|
+ base_data = {k: v for k, v in data.items() if k != "modify_scope_info"}
|
|
|
+ institution_modify_model = AlipayEbppInvoiceInstitutionModifyModel.from_alipay_dict(base_data)
|
|
|
result = await InstitutionService.modify_institution_service(
|
|
|
- auth=auth, data=institution_modify_model, raw_data=data
|
|
|
+ auth=auth, data=institution_modify_model, raw_data=base_data, scope_info=scope_info
|
|
|
)
|
|
|
log.info(f"编辑费控制度成功: institution_id={institution_modify_model.institution_id}")
|
|
|
return SuccessResponse(data=result, msg="编辑费控制度成功")
|