# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. 智慧施工管理信息系统(河北安装):WebForms + ASP.NET Web API,.NET Framework 4.8,SQL Server,LINQ to SQL。解决方案 `SGGL.sln` 在本目录;仓库根是上一级 `SGGL_HBAZ/`,其中的 `AGENTS.md` 记录了更多运维细节,与本文件会同时被加载。 ## Commands 构建(`msbuild` 不在 PATH,用 VS2022 的 MSBuild): ``` & 'D:\Development Kit\MVStudio\2022\MSBuild\Current\Bin\MSBuild.exe' 'SGGL.sln' /p:Configuration=Debug ``` `/p:Configuration=Release` 同理。 - 打发布包:仓库根 `ReleasePackerALL2022.bat`(aspnet_compiler 预编译 + aspnet_merge 合并 → `SGGLPackFile/`)。 - 重新生成实体:仓库根 `CreateModel.bat`(SqlMetal 从 SQL2022 实例 / `SGGLDB_HBAZ` 库生成 `Model/Model.cs`)。 - 无测试项目,无测试命令。 ## Architecture - `FineUIPro.Web/` — WebForms 主站。入口 `Login.aspx`、`index*.aspx`;基类 `common/PageBase.cs`(`Session["CurrUser"]` 鉴权)。业务模块按文件夹组织:BaseInfo、CQMS、HSSE、HJGL、JDGL、PZHGL、SHIYE、SYHSE、SysManage、TaskScheduling、ZHGL、DigData、Door、Notice、OfficeCheck、Person、PersonManage、ProjectData、SubPackManage、Video 等。 - `BLL/` — 业务逻辑层,业务类为 `public static class XxxService`。核心:`Common/Funs.cs`(全局配置 + LINQ-to-SQL 上下文 `Funs.DB`,类型 `Model.SGGLDB`,按线程 `ManagedThreadId` 缓存实例);`SQLHelper.cs`(原始 ADO.NET);`API/` 外部接口;`TaskScheduling/` Quartz 定时任务;`ErrLogInfo.cs`(错误落库)。 - `Model/` — LINQ to SQL 实体。`Model.cs` 由 SqlMetal 生成(约 14MB,勿手改);实体前缀 `Sys_`(`Sys_User`、`Sys_Role`、`Sys_ErrLogInfo`)。 - `WebAPI/` — 经典 ASP.NET Web API(`System.Web.Http`),`Controllers/` 供移动端/第三方调用(材料、人员、人脸、身份证、视频、车辆、用户等)。 - `SgManager.AI/` — AI 辅助库:百度 OCR/人脸(`IDCardRecognition`、`FaceClass`)、地图、邮件;被 BLL 与 FineUIPro.Web 引用。 - `FineUIPro/` — 商业 UI 框架 FineUIPro v6.3.0 的 DLL(非源码,勿改)。 ## Conventions - 中文注释;公共方法用 `/// ` XML 注释。 - 数据访问优先 `Funs.DB`(LINQ to SQL,`InsertOnSubmit`/`SubmitChanges`),复杂 SQL 用 `SQLHelper`。 - 错误记录走 `ErrLogInfo.WriteLog(...)`;`Global.asax` 的 `Application_Error` 落库 `Sys_ErrLogInfo`。 - 连接字符串与第三方密钥(含明文密码/API Key)在 `FineUIPro.Web/Web.config` 的 AppSettings 中,`Application_Start` 赋值给 `Funs.*` —— 勿把凭据写进提交内容。 - WebAPI 响应统一包装 `Model.ResponeData`,action 常用 `[HttpPost]` + `[FromBody]`。 - `Backup*` 是开发备份目录,不要在其中改代码;`packages/` 被 gitignore(NuGet 还原)。 ## 本地运行 / 联调注意 - WebForms 站点:`iisexpress.exe /path:"SGGL\FineUIPro.Web" /port:4528`;WebAPI:`/path:"SGGL\WebAPI" /port:7143`(数据库 `SGGLDB_HBAZ` 在本机 SQL Server)。 - PowerShell 下用 `curl.exe -d '{"..."}'` 会把 JSON 双引号剥掉导致反序列化失败,须改用 `--data-binary '@body.json'` 文件方式发 JSON body。