Explorar o código

fix(expense): 员工未激活时不触发额度联动 - 需等签约激活webhook后才生效

alphah hai 2 semanas
pai
achega
cafa0353fe

+ 2 - 10
backend/app/plugin/module_payment/employee/controller.py

@@ -77,16 +77,8 @@ async def add_employee_controller(
     """添加员工"""
     result = await EmployeeService.add_employee_service(auth=auth, data=data)
     log.info(f"添加员工成功: {data.employee_name}, employee_id={result.employee_id}")
-    # 联动:员工加入部门时,为引用该部门的制度创建额度记录
-    if result.employee_id and data.enterprise_id and data.department_ids:
-        try:
-            from app.plugin.module_payment.expense.institution.scope_sync import sync_employee_add_to_department_institutions
-            await sync_employee_add_to_department_institutions(
-                auth=auth, enterprise_id=data.enterprise_id,
-                employee_id=result.employee_id, department_ids=data.department_ids,
-            )
-        except Exception as e:
-            log.warning(f"添加员工联动额度失败(不影响主体操作): {e}")
+    # 不触发额度联动:员工需完成签约激活后才享受费控制度
+    # 由 webhook employee.activated 通知触发
     return SuccessResponse(data=result, msg="添加员工成功")
 
 

+ 1 - 9
backend/app/plugin/module_payment/notification/handlers/employee_handler.py

@@ -82,17 +82,9 @@ class EmployeeHandler(BaseHandler[dict]):
         ]
 
     async def _handle_add(self, data: EmployeeChangeContent, auth: AuthSchema) -> bool:
-        """处理员工新增"""
+        """处理员工新增(未激活,不触发额度联动)"""
         log.info(f"员工新增: employee_id={data.employee_id}, enterprise_id={data.enterprise_id}")
         await self.update_employee(data, auth)
-        # 联动:员工新增到部门时,创建额度记录
-        dept_ids = await self._get_department_ids(data)
-        if dept_ids:
-            from app.plugin.module_payment.expense.institution.scope_sync import sync_employee_add_to_department_institutions
-            await sync_employee_add_to_department_institutions(
-                auth=auth, enterprise_id=data.enterprise_id,
-                employee_id=data.employee_id, department_ids=dept_ids,
-            )
         return True
 
     async def _handle_activate(self, data: EmployeeChangeContent, auth: AuthSchema) -> bool: