- **`internal/app/service/pig_farm_service.go` (`service.PigFarmService`)**
    - **结构体改造**:
        -   [x] 移除 `PigFarmService` 结构体中的 `logger *logs.Logger` 成员。
        -   [x] 新增 `selfCtx context.Context` 成员。
        -   [x] 移除 `PigFarmService` 结构体中的 `repo repository.PigFarmRepository` 成员，改为
            `repo repository.PigFarmRepository`。
    - **构造函数改造 (`NewPigFarmService`)**:
        -   [x] 修改函数签名，移除 `logger *logs.Logger` 参数，改为接收 `ctx context.Context`。
        -   [x] 在函数内部，为 `PigFarmService` 创建其专属的 `selfCtx`：
            `selfCtx := logs.AddCompName(ctx, "PigFarmService")`。
        -   [x] 将这个 `selfCtx` 赋值给 `PigFarmService` 结构体的 `selfCtx` 成员。
    - **公共方法改造 (
      所有方法，例如 `CreatePigHouse`, `GetPigHouseByID`, `ListPigHouses`, `UpdatePigHouse`, `DeletePigHouse`,
      `CreatePen`, `GetPenByID`, `ListPens`, `UpdatePen`, `DeletePen`, `UpdatePenStatus`)**:
        -   [x] 修改方法签名，添加 `ctx context.Context` 作为第一个参数。
        -   [x] 在方法入口处，使用 `newCtx, logger := logs.Trace(ctx, s.selfCtx, "MethodName")` 获取新的
            `context.Context` 和 `logger` 实例。
        -   [x] 将所有对 `s.logger.Errorf` 和 `s.logger.Infof` 的调用替换为 `logger.Errorf` 和 `logger.Infof`。
        -   [x] 确保所有对 `s.repo` 的调用都将 `newCtx` 作为第一个参数传递。

- **`internal/app/service/pig_batch_service.go` (`service.PigBatchService`)**
    - **结构体改造**:
        -   [x] 移除 `PigBatchService` 结构体中的 `logger *logs.Logger` 成员。
        -   [x] 新增 `selfCtx context.Context` 成员。
    - **构造函数改造 (`NewPigBatchService`)**:
        -   [x] 修改函数签名，移除 `logger *logs.Logger` 参数，改为接收 `ctx context.Context`。
        -   [x] 在函数内部，为 `PigBatchService` 创建其专属的 `selfCtx`：
            `selfCtx := logs.AddCompName(ctx, "PigBatchService")`。
        -   [x] 将这个 `selfCtx` 赋值给 `PigBatchService` 结构体的 `selfCtx` 成员。
    - **公共方法改造 (
      所有方法，例如 `CreatePigBatch`, `GetPigBatch`, `UpdatePigBatch`, `DeletePigBatch`, `ListPigBatches`,
      `AssignEmptyPensToBatch`, `ReclassifyPenToNewBatch`, `RemoveEmptyPenFromBatch`, `MovePigsIntoPen`, `SellPigs`,
      `BuyPigs`, `RecordSickPigs`, `RecordSickPigRecovery`, `RecordSickPigDeath`, `RecordSickPigCull`, `RecordDeath`,
      `RecordCull`)**:
        -   [x] 修改方法签名，添加 `ctx context.Context` 作为第一个参数。
        -   [x] 在方法入口处，使用 `newCtx, logger := logs.Trace(ctx, s.selfCtx, "MethodName")` 获取新的
            `context.Context` 和 `logger` 实例。
        -   [x] 将所有对 `s.logger.Errorf` 和 `s.logger.Infof` 的调用替换为 `logger.Errorf` 和 `logger.Infof`。
        -   [x] 确保所有对 `s.pigBatchRepo`, `s.pigBatchLogRepo`, `s.uow`, `s.transferSvc`, `s.tradeSvc`, `s.sickSvc`
            等依赖的调用都将 `newCtx` 作为第一个参数传递。

- **`internal/app/service/monitor_service.go` (`service.MonitorService`)**
    - **结构体改造**:
        -   [x] 移除 `MonitorService` 结构体中的 `logger *logs.Logger` 成员。
        -   [x] 新增 `selfCtx context.Context` 成员。
    - **构造函数改造 (`NewMonitorService`)**:
        -   [x] 修改函数签名，移除 `logger *logs.Logger` 参数，改为接收 `ctx context.Context`。
        -   [x] 在函数内部，为 `MonitorService` 创建其专属的 `selfCtx`：
            `selfCtx := logs.AddCompName(ctx, "MonitorService")`。
        -   [x] 将这个 `selfCtx` 赋值给 `MonitorService` 结构体的 `selfCtx` 成员。
    - **公共方法改造 (
      所有方法，例如 `ListSensorData`, `ListDeviceCommandLogs`, `ListPlanExecutionLogs`, `ListTaskExecutionLogs`,
      `ListPendingCollections`, `ListUserActionLogs`, `ListRawMaterialPurchases`, `ListRawMaterialStockLogs`,
      `ListFeedUsageRecords`, `ListMedicationLogs`, `ListPigBatchLogs`, `ListWeighingBatches`, `ListWeighingRecords`,
      `ListPigTransferLogs`, `ListPigSickLogs`, `ListPigPurchases`, `ListPigSales`, `ListNotifications`)**:
        -   [x] 修改方法签名，添加 `ctx context.Context` 作为第一个参数。
        -   [x] 在方法入口处，使用 `newCtx, logger := logs.Trace(ctx, s.selfCtx, "MethodName")` 获取新的
            `context.Context` 和 `logger` 实例。
        -   [x] 将所有对 `s.logger.Errorf` 和 `s.logger.Infof` 的调用替换为 `logger.Errorf` 和 `logger.Infof`。
        -   [x] 确保所有对 `s.repo` 的调用都将 `newCtx` 作为第一个参数传递。

- **`internal/app/service/device_service.go` (`service.DeviceService`)**
    - **结构体改造**:
        -   [x] 移除 `DeviceService` 结构体中的 `logger *logs.Logger` 成员。
        -   [x] 新增 `selfCtx context.Context` 成员。
    - **构造函数改造 (`NewDeviceService`)**:
        -   [x] 修改函数签名，移除 `logger *logs.Logger` 参数，改为接收 `ctx context.Context`。
        -   [x] 在函数内部，为 `DeviceService` 创建其专属的 `selfCtx`：
            `selfCtx := logs.AddCompName(ctx, "DeviceService")`。
        -   [x] 将这个 `selfCtx` 赋值给 `DeviceService` 结构体的 `selfCtx` 成员。
    - **公共方法改造 (
      所有方法，例如 `CreateDevice`, `GetDevice`, `ListDevices`, `UpdateDevice`, `DeleteDevice`, `ManualControl`,
      `CreateAreaController`, `GetAreaController`, `ListAreaControllers`, `UpdateAreaController`,
      `DeleteAreaController`, `CreateDeviceTemplate`, `GetDeviceTemplate`, `ListDeviceTemplates`,
      `UpdateDeviceTemplate`, `DeleteDeviceTemplate`)**:
        -   [x] 修改方法签名，添加 `ctx context.Context` 作为第一个参数。
        -   [x] 在方法入口处，使用 `newCtx, logger := logs.Trace(ctx, s.selfCtx, "MethodName")` 获取新的
            `context.Context` 和 `logger` 实例。
        -   [x] 将所有对 `s.logger.Errorf`, `s.logger.Warnf`, `s.logger.Infof` 的调用替换为 `logger.Errorf`,
            `logger.Warnf`, `logger.Infof`。
        -   [x] 确保所有对 `s.repo`, `s.generalDeviceService` 等依赖的调用都将 `newCtx` 作为第一个参数传递。

- **`internal/app/service/plan_service.go` (`service.PlanService`)**
    - **结构体改造**:
        -   [x] 移除 `PlanService` 结构体中的 `logger *logs.Logger` 成员。
        -   [x] 新增 `selfCtx context.Context` 成员。
    - **构造函数改造 (`NewPlanService`)**:
        -   [x] 修改函数签名，移除 `logger *logs.Logger` 参数，改为接收 `ctx context.Context`。
        -   [x] 在函数内部，为 `PlanService` 创建其专属的 `selfCtx`：`selfCtx := logs.AddCompName(ctx, "PlanService")`。
        -   [x] 将这个 `selfCtx` 赋值给 `PlanService` 结构体的 `selfCtx` 成员。
    - **公共方法改造 (
      所有方法，例如 `CreatePlan`, `GetPlanByID`, `ListPlans`, `UpdatePlan`, `DeletePlan`, `StartPlan`, `StopPlan`)**:
        -   [x] 修改方法签名，添加 `ctx context.Context` 作为第一个参数。
        -   [x] 在方法入口处，使用 `newCtx, logger := logs.Trace(ctx, s.selfCtx, "MethodName")` 获取新的
            `context.Context` 和 `logger` 实例。
        -   [x] 将所有对 `s.logger.Errorf` 和 `s.logger.Infof` 的调用替换为 `logger.Errorf` 和 `logger.Infof`。
        -   [x] 确保所有对 `s.repo`, `s.planExecutionManager`, `s.analysisPlanTaskManager` 等依赖的调用都将 `newCtx`
            作为第一个参数传递。

- **`internal/app/service/user_service.go` (`service.UserService`)**
    - **结构体改造**:
        -   [x] 移除 `UserService` 结构体中的 `logger *logs.Logger` 成员。
        -   [x] 新增 `selfCtx context.Context` 成员。
    - **构造函数改造 (`NewUserService`)**:
        -   [x] 修改函数签名，移除 `logger *logs.Logger` 参数，改为接收 `ctx context.Context`。
        -   [x] 在函数内部，为 `UserService` 创建其专属的 `selfCtx`：`selfCtx := logs.AddCompName(ctx, "UserService")`。
        -   [x] 将这个 `selfCtx` 赋值给 `UserService` 结构体的 `selfCtx` 成员。
    - **公共方法改造 (所有方法，例如 `CreateUser`, `Login`, `SendTestNotification`)**:
        -   [x] 修改方法签名，添加 `ctx context.Context` 作为第一个参数。
        -   [x] 在方法入口处，使用 `newCtx, logger := logs.Trace(ctx, s.selfCtx, "MethodName")` 获取新的
            `context.Context` 和 `logger` 实例。
        -   [x] 将所有对 `s.logger.Errorf` 和 `s.logger.Infof` 的调用替换为 `logger.Errorf` 和 `logger.Infof`。
        -   [x] 确保所有对 `s.repo`, `s.tokenService`, `s.notifier` 等依赖的调用都将 `newCtx` 作为第一个参数传递。