paiban/CLAUDE.md
Asoka.Wang 21f044712c 1
2025-08-27 18:39:19 +08:00

4.9 KiB
Raw Blame History

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

代码开发规范

  • 引用检查编写代码时必须检查所有using引用是否正确确保引用的命名空间和类存在
  • 编译验证:完成一个功能时必须执行编译检查,发现错误立即修复,确保代码能够正常编译

深度思考与详细实现要求

  • 深度思考原则:对每个业务问题都要进行深度思考,分析所有可能的边界情况和业务场景
  • 最终抉择要求:在分析各种方案后,必须给出明确的最终决策和理由,不允许含糊其辞
  • 详细实现标准:所有功能都必须详细实现,不允许简化或省略关键逻辑
  • 完整性验证:实现功能时必须考虑所有相关的上下文和依赖关系
  • 业务场景覆盖:确保代码能够处理所有合理的业务场景,包括异常情况
  • 错误处理完整性:每个方法都必须包含适当的异常处理和错误信息
  • 注释详细程度:关键业务逻辑必须包含详细的业务思考过程注释

项目概述

NPP.SmartSchedue 是一个智能生产调度系统,基于 .NET 9.0 和中台Admin框架开发实现生产任务的智能排班和调度管理。

架构设计

项目结构

  • NPP.SmartSchedue.Api.Contracts: 契约层包含实体、接口和DTO定义
  • NPP.SmartSchedue.Api: 业务逻辑层包含Repository和Service实现
  • NPP.SmartSchedue.Host: 宿主程序Web API启动入口
  • NPP.SmartSchedue.Tests: 单元测试项目

核心领域模块

  1. Work: 工作任务管理

    • WorkOrderEntity: 工作任务实体(支持多租户)
    • WorkOrderFLPersonnelEntity: 任务与FL人员关联
    • ProcessEntity: 工序管理
    • ProcessGroupEntity: 工序组管理
  2. Time: 时间和班次管理

    • ShiftEntity: 班次定义
    • ShiftRuleEntity: 班次规则
    • CalendarEntity: 日历管理
    • EmployeeLeaveEntity: 员工请假
  3. Personnel: 人员管理

    • PersonnelQualificationEntity: 人员资质
    • PersonnelWorkLimitEntity: 人员工作限制
    • QualificationEntity: 资质定义
  4. Schedule: 排班调度

    • AutoScheduleInput: 自动排班输入
    • ScheduleValidationService: 排班验证服务
    • TaskIntegrationInput: 任务整合输入

技术栈

  • .NET 9.0: 主要开发框架
  • FreeSql: ORM框架支持MySQL
  • ZhonTai.Admin: 中台管理框架
  • DotNetCore.CAP: 事件总线支持RabbitMQ
  • xUnit: 单元测试框架

常用命令

构建和运行

# 构建整个解决方案
dotnet build NPP.SmartSchedue.sln

# 运行Host项目
dotnet run --project NPP.SmartSchedue.Host

# 发布项目
dotnet publish NPP.SmartSchedue.Host -c Release

测试

# 运行所有测试
dotnet test NPP.SmartSchedue.Tests

# 运行特定测试文件
dotnet test NPP.SmartSchedue.Tests --filter ClassName=TestName

# 生成测试覆盖率报告
dotnet test NPP.SmartSchedue.Tests --collect:"XPlat Code Coverage"

数据库相关

# 项目使用FreeSql进行数据库操作支持Code First
# 数据库连接配置在 ConfigCenter/dbconfig.json
# 初始化SQL脚本位于 ConfigCenter/createdbsql.txt

开发规范

实体设计

  • 工作任务相关实体继承 EntityTenant(支持多租户)
  • 基础配置实体继承 EntityBase
  • 使用 FreeSql 特性进行数据库映射

服务层架构

  • Repository层数据访问继承自 AppRepositoryBase<T>
  • Service层业务逻辑实现对应的Interface
  • 输入输出模型使用Input/Output后缀命名

命名约定

  • 实体类Entity后缀
  • 仓储接口I前缀 + Repository后缀
  • 服务接口I前缀 + Service后缀
  • 数据库表名:使用 DbConsts.TableNamePrefix 前缀

排班业务逻辑要点

  • 任务状态使用 WorkOrderStatusEnum 枚举管理
  • 支持任务优先级、紧急程度、复杂度等多维度排序
  • FL人员与任务为多对多关系通过 WorkOrderFLPersonnelEntity 关联
  • 支持批量任务整合和验证功能
  • 班次规则支持多种类型,通过 ShiftRuleTypeEnum 管理

多任务验证架构决策

  • 单一验证原则:所有冲突检查统一在 ValidateWorkOrderWithBatchContextAsync 中完成
  • 批次上下文集成:每个单任务验证都考虑批次内其他任务的影响
  • 取消跨任务验证:原有的 CheckCrossTaskConflictsAsync 已被移除,避免重复验证
  • 全面冲突检查:包含时间冲突、工作量限制、班次规则、时间段重叠等所有验证维度
  • 性能优化:减少重复查询,统一数据获取和验证逻辑

配置文件

  • 应用配置ConfigCenter/appconfig.json
  • 数据库配置ConfigCenter/dbconfig.json
  • JWT配置ConfigCenter/jwtconfig.json
  • 缓存配置ConfigCenter/cacheconfig.json
  • CAP事件总线appsettings.json中的CAP节点