# SGGL_HBAZ — 智慧施工管理信息系统(河北安装) 施工管理信息系统(WebForms + Web API),.NET Framework 4.8,SQL Server,LINQ to SQL。解决方案在 `SGGL/SGGL.sln`(仓库根即本目录,与解决方案目录不同级)。 ## Commands - 构建(msbuild 不在 PATH,用 VS2022 的 MSBuild): `& 'D:\Development Kit\MVStudio\2022\MSBuild\Current\Bin\MSBuild.exe' 'SGGL\SGGL.sln' /p:Configuration=Debug`(Release 同理,已验证可构建) - 打发布包:`ReleasePacker.bat`(aspnet_compiler 预编译 + aspnet_merge 合并 → `SGGLPackFile/`;脚本引用 %VS100COMNTOOLS%,旧环境) - 重新生成 Model:`CreateModel.bat`(SqlMetal 从 SQL2022 实例 / SGGLDB_HBAZ 库生成 `SGGL/Model/Model.cs`) - 无测试项目 / 无测试命令(项目内没有单元测试)。 ## Architecture - `SGGL/FineUIPro.Web/` — WebForms 主站。入口 `Login.aspx`、`index*.aspx`、`indexProject*.aspx`;基类 `common/PageBase.cs`(Session["CurrUser"] 鉴权);业务模块按文件夹组织(BaseInfo、CQMS、HSSE、HJGL、JDGL、PZHGL、SHIYE、SYHSE、SysManage、TaskScheduling、ZHGL 等)。 - `SGGL/BLL/` — 业务逻辑层。`Common/Funs.cs`(全局配置 + LINQ-to-SQL 上下文 Funs.DB);`SQLHelper.cs` 原始 ADO.NET;`API/` 外部接口;`TaskScheduling/` Quartz 定时任务。业务类为 `public static class XxxService`。 - `SGGL/Model/` — LINQ to SQL 实体,`Model.cs` 由 SqlMetal 生成(约 14MB,勿手改);实体前缀 `Sys_`(Sys_User、Sys_Role、Sys_ErrLogInfo)。 - `SGGL/WebAPI/` — 经典 ASP.NET Web API(System.Web.Http),`Controllers/` 供移动端/第三方调用(材料、人员、人脸、身份证、视频、车辆、用户等)。 - `SGGL/SgManager.AI/` — AI 辅助库:百度 OCR/人脸(IDCardRecognition、FaceClass)、地图、邮件。被 BLL 与 FineUIPro.Web 引用。 - `SGGL/FineUIPro/` — 商业 UI 框架 FineUIPro v6.3.0 的 DLL(非源码,勿改)。 - `DataBase/版本日志/` — 数据库增量变更脚本,命名 `SGGLDB_V-<序号>-<作者>.sql`;`script/script.sql` 为库整体脚本;`SGGLPackFile/` 为发布包输出目录(ReleasePacker 产物)。 ## 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]`。 - `SGGL/Backup*` 是开发备份目录,不要在其中改代码;`packages/` 被 gitignore(NuGet 还原)。 ## Notes - 构建警告基线(2026-02 优化后):845 → 40,剩余 40 条均为 CS0618(Aspose.Words/Office Interop 过时 API,有意使用,勿自动改)。 - `FineUIPro.Web/ErrLog.txt` 为运行时日志,已加入 .gitignore(git rm --cached 后本地保留)。 - Web.config 含明文数据库密码与第三方 API Key,注意勿泄露/勿提交外发。 - 测试 WebAPI 时注意:PowerShell 调用 `curl.exe -d '{"..."}'` 会剥掉 JSON 双引号导致反序列化失败,须用 `--data-binary '@body.json'`(文件方式)发 JSON body。 - 本地运行验证:`iisexpress.exe /path:"SGGL\FineUIPro.Web" /port:4528`(WebForms)与 `/path:"SGGL\WebAPI" /port:7143`(WebAPI),数据库 SGGLDB_HBAZ 在本机 SQL Server 可用。