From 5a2830d36a65f867a35546e4ed2435011d9ea347 Mon Sep 17 00:00:00 2001 From: Zones <765289303@qq.com> Date: Fri, 11 Sep 2026 11:14:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E5=AE=89=E5=85=A8?= =?UTF-8?q?=E6=8A=80=E6=9C=AF=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SGGLDB_V2026-08-27-001-pdfbook.sql | 89 ++ ...SGGLDB_V2026-08-27-002-safetybook-chapters.sql | 841 ++++++++++++++++ .../SGGLDB_V2026-09-05-001-drop-sys_pdfpage.sql | 17 + ...026-09-08-001-safety-construction-chapters.sql | 484 ++++++++++ PDF书籍WebAPI接口文档.md | 423 ++++++++ PDF书籍关键词章节检索设计方案.md | 298 ++++++ SGGL/BLL/API/APIPdfBookService.cs | 443 +++++++++ SGGL/BLL/BLL.csproj | 4 +- SGGL/BLL/PdfBookService.cs | 202 ++++ SGGL/BLL/ProjectData/UnitWorkService.cs | 64 +- SGGL/BLL/ZHGL/DataSync/CQMSDataService.cs | 123 +-- .../BLL/ZHGL/DataSync/HSSEData_HSSEService.cs | 98 +- .../Project_CQMSDataService.cs | 129 +-- SGGL/FineUIPro.Web/FineUIPro.Web.csproj | 10 +- .../HSSE/PDFDOC/PdfBookView.aspx | 205 ++++ .../HSSE/PDFDOC/PdfBookView.aspx.cs | 431 +++++++++ .../HSSE/PDFDOC/PdfBookView.aspx.designer.cs | 314 ++++++ SGGL/FineUIPro.Web/common/Menu_DigData.xml | 1 + SGGL/Model/Model.cs | 909 ++++++++++++++++++ SGGL/SgManager.AI/SgManager.AI.csproj | 2 +- .../Controllers/HSSE/PdfBookController.cs | 258 +++++ .../Controllers/MaterialsBasicsController.cs | 2 +- SGGL/WebAPI/Filter/TestPermissionAttribute.cs | 7 +- SGGL/WebAPI/WebAPI.csproj | 3 +- 24 files changed, 5065 insertions(+), 292 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_V2026-08-27-001-pdfbook.sql create mode 100644 DataBase/版本日志/SGGLDB_V2026-08-27-002-safetybook-chapters.sql create mode 100644 DataBase/版本日志/SGGLDB_V2026-09-05-001-drop-sys_pdfpage.sql create mode 100644 DataBase/版本日志/SGGLDB_V2026-09-08-001-safety-construction-chapters.sql create mode 100644 PDF书籍WebAPI接口文档.md create mode 100644 PDF书籍关键词章节检索设计方案.md create mode 100644 SGGL/BLL/API/APIPdfBookService.cs create mode 100644 SGGL/BLL/PdfBookService.cs create mode 100644 SGGL/FineUIPro.Web/HSSE/PDFDOC/PdfBookView.aspx create mode 100644 SGGL/FineUIPro.Web/HSSE/PDFDOC/PdfBookView.aspx.cs create mode 100644 SGGL/FineUIPro.Web/HSSE/PDFDOC/PdfBookView.aspx.designer.cs create mode 100644 SGGL/WebAPI/Controllers/HSSE/PdfBookController.cs diff --git a/DataBase/版本日志/SGGLDB_V2026-08-27-001-pdfbook.sql b/DataBase/版本日志/SGGLDB_V2026-08-27-001-pdfbook.sql new file mode 100644 index 0000000..4dc5325 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2026-08-27-001-pdfbook.sql @@ -0,0 +1,89 @@ +-- ===================================================================== +-- PDF 书籍检索模块:建表脚本(CREATE TABLE + 字段注释=扩展属性 MS_Description) +-- 说明: +-- * Sys_PdfBook 书籍主表;Sys_PdfChapter 章节(目录+聚合正文,支持多级);Sys_PdfPage 分页OCR文本。 +-- * SQL Server 的字段注释不是写在 CREATE 里的 -- 注释,而是存成 扩展属性 (MS_Description), +-- 通过 sp_addextendedproperty 写入,SSMS 表设计器与 sys.extended_properties 中可见。 +-- * 全部幂等:表不存在才建;每个字段注释仅在不存在时才添加,可重复执行。 +-- * 适用范围:新库直接执行即可(仅 CREATE,无需 ALTER)。 +-- ===================================================================== + +-- ============================ 1. 书籍主表 ============================ +IF OBJECT_ID(N'[dbo].[Sys_PdfBook]', N'U') IS NULL +BEGIN + CREATE TABLE [dbo].[Sys_PdfBook] ( + [BookId] nvarchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL, + [Title] nvarchar(200) COLLATE Chinese_PRC_CI_AS NULL, + [FilePath] nvarchar(500) COLLATE Chinese_PRC_CI_AS NULL, + [TotalPages] int NULL, + [IndexStatus] int NULL, + [IndexProgress] int NULL, + [Dpi] int NULL DEFAULT 200, + [FileHash] nvarchar(64) COLLATE Chinese_PRC_CI_AS NULL, + [LastIndexTime] datetime NULL, + [CreateUser] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL, + [CreateTime] datetime NULL, + CONSTRAINT [PK_Sys_PdfBook] PRIMARY KEY CLUSTERED ([BookId] ASC) + ); +END + +IF COL_LENGTH(N'dbo.Sys_PdfBook', N'BookId') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfBook') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfBook'), N'BookId', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'书籍ID(主键)', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfBook', @level2type=N'COLUMN', @level2name=N'BookId'; +IF COL_LENGTH(N'dbo.Sys_PdfBook', N'Title') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfBook') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfBook'), N'Title', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'书名', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfBook', @level2type=N'COLUMN', @level2name=N'Title'; +IF COL_LENGTH(N'dbo.Sys_PdfBook', N'FilePath') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfBook') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfBook'), N'FilePath', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'PDF文件路径', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfBook', @level2type=N'COLUMN', @level2name=N'FilePath'; +IF COL_LENGTH(N'dbo.Sys_PdfBook', N'TotalPages') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfBook') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfBook'), N'TotalPages', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'总页数', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfBook', @level2type=N'COLUMN', @level2name=N'TotalPages'; +IF COL_LENGTH(N'dbo.Sys_PdfBook', N'IndexStatus') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfBook') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfBook'), N'IndexStatus', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'索引状态(0待索引 1索引中 2完成 3失败)', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfBook', @level2type=N'COLUMN', @level2name=N'IndexStatus'; +IF COL_LENGTH(N'dbo.Sys_PdfBook', N'IndexProgress') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfBook') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfBook'), N'IndexProgress', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'已处理页数(索引进度)', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfBook', @level2type=N'COLUMN', @level2name=N'IndexProgress'; +IF COL_LENGTH(N'dbo.Sys_PdfBook', N'Dpi') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfBook') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfBook'), N'Dpi', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'页图像渲染DPI', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfBook', @level2type=N'COLUMN', @level2name=N'Dpi'; +IF COL_LENGTH(N'dbo.Sys_PdfBook', N'FileHash') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfBook') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfBook'), N'FileHash', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'文件MD5(用于判断内容是否变化)', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfBook', @level2type=N'COLUMN', @level2name=N'FileHash'; +IF COL_LENGTH(N'dbo.Sys_PdfBook', N'LastIndexTime') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfBook') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfBook'), N'LastIndexTime', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'最近一次索引时间', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfBook', @level2type=N'COLUMN', @level2name=N'LastIndexTime'; +IF COL_LENGTH(N'dbo.Sys_PdfBook', N'CreateUser') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfBook') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfBook'), N'CreateUser', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'创建人', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfBook', @level2type=N'COLUMN', @level2name=N'CreateUser'; +IF COL_LENGTH(N'dbo.Sys_PdfBook', N'CreateTime') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfBook') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfBook'), N'CreateTime', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'创建时间', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfBook', @level2type=N'COLUMN', @level2name=N'CreateTime'; + +-- ===================== 2. 章节表(目录+聚合正文,支持多级) ===================== +IF OBJECT_ID(N'[dbo].[Sys_PdfChapter]', N'U') IS NULL +BEGIN + CREATE TABLE [dbo].[Sys_PdfChapter] ( + [ChapterId] nvarchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL, + [BookId] nvarchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL, + [ParentChapterId] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL, + [Level] int NULL, + [ChapterTitle] nvarchar(200) COLLATE Chinese_PRC_CI_AS NULL, + [PageStart] int NULL, + [PageEnd] int NULL, + [Text] nvarchar(max) COLLATE Chinese_PRC_CI_AS NULL, + [SortNo] int NULL, + CONSTRAINT [PK_Sys_PdfChapter] PRIMARY KEY CLUSTERED ([ChapterId] ASC), + CONSTRAINT [FK_PdfChapter_Book] FOREIGN KEY ([BookId]) REFERENCES [dbo].[Sys_PdfBook]([BookId]) + ); +END + +IF COL_LENGTH(N'dbo.Sys_PdfChapter', N'ChapterId') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfChapter') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfChapter'), N'ChapterId', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'章节ID(主键)', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfChapter', @level2type=N'COLUMN', @level2name=N'ChapterId'; +IF COL_LENGTH(N'dbo.Sys_PdfChapter', N'BookId') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfChapter') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfChapter'), N'BookId', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'所属书籍ID(外键→Sys_PdfBook)', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfChapter', @level2type=N'COLUMN', @level2name=N'BookId'; +IF COL_LENGTH(N'dbo.Sys_PdfChapter', N'ParentChapterId') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfChapter') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfChapter'), N'ParentChapterId', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'上一级章节ID(NULL=顶级,用于多级目录)', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfChapter', @level2type=N'COLUMN', @level2name=N'ParentChapterId'; +IF COL_LENGTH(N'dbo.Sys_PdfChapter', N'Level') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfChapter') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfChapter'), N'Level', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'层级(1章 2节 3小节)', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfChapter', @level2type=N'COLUMN', @level2name=N'Level'; +IF COL_LENGTH(N'dbo.Sys_PdfChapter', N'ChapterTitle') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfChapter') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfChapter'), N'ChapterTitle', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'章节名称', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfChapter', @level2type=N'COLUMN', @level2name=N'ChapterTitle'; +IF COL_LENGTH(N'dbo.Sys_PdfChapter', N'PageStart') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfChapter') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfChapter'), N'PageStart', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'起始页码', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfChapter', @level2type=N'COLUMN', @level2name=N'PageStart'; +IF COL_LENGTH(N'dbo.Sys_PdfChapter', N'PageEnd') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfChapter') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfChapter'), N'PageEnd', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'结束页码', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfChapter', @level2type=N'COLUMN', @level2name=N'PageEnd'; +IF COL_LENGTH(N'dbo.Sys_PdfChapter', N'Text') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfChapter') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfChapter'), N'Text', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'章节聚合正文(供检索)', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfChapter', @level2type=N'COLUMN', @level2name=N'Text'; +IF COL_LENGTH(N'dbo.Sys_PdfChapter', N'SortNo') IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys.extended_properties WHERE class=1 AND major_id=OBJECT_ID(N'dbo.Sys_PdfChapter') AND minor_id=COLUMNPROPERTY(OBJECT_ID(N'dbo.Sys_PdfChapter'), N'SortNo', 'ColumnId') AND name=N'MS_Description') + EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'排序号(用于目录顺序)', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_PdfChapter', @level2type=N'COLUMN', @level2name=N'SortNo'; + diff --git a/DataBase/版本日志/SGGLDB_V2026-08-27-002-safetybook-chapters.sql b/DataBase/版本日志/SGGLDB_V2026-08-27-002-safetybook-chapters.sql new file mode 100644 index 0000000..ca5f202 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2026-08-27-002-safetybook-chapters.sql @@ -0,0 +1,841 @@ +-- ===================================================================== +-- 导入书籍《施工现场安全防护手册》全部章节(12章 三级目录,来自用户提供的目录) +-- 幂等脚本:重复执行会先清空本书旧章节再重新导入。 +-- 说明:原文编号笔误 2..3 已修正为 2.1.3;原文 3.3.4 缺失(3.3.3 直接接 3.3.5),按原文保留。 +-- ===================================================================== +DECLARE @BookId nvarchar(50) = N'BOOK_SAFE_20260827'; +DECLARE @BookTitle nvarchar(200) = N'《施工现场安全防护手册》'; -- 书名可按需修改 +DECLARE @n int = 0, @id nvarchar(50), @L1 nvarchar(50), @L2 nvarchar(50); + +-- 书籍(不存在则新增) +IF NOT EXISTS (SELECT 1 FROM dbo.Sys_PdfBook WHERE BookId = @BookId) + INSERT INTO dbo.Sys_PdfBook (BookId, Title, FilePath, TotalPages, IndexStatus, CreateUser, CreateTime) + VALUES (@BookId, @BookTitle, NULL, 0, 2, N'import', GETDATE()); + +-- 清空本书旧章节(幂等) +DELETE FROM dbo.Sys_PdfPage WHERE BookId = @BookId; +DELETE FROM dbo.Sys_PdfChapter WHERE BookId = @BookId; + +-- 章节(ChapterId = 书ID+_C+三位序号,ParentChapterId 逐级挂接) +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第一章 安全防护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'1.1"三宝”四口”“五临边”', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'1.2三宝', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'1.2.1安全帽.', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'1.2.2安全带.', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'1.2.3安全网.', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'1.3"四口安全防护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'1.3.1电梯井竖向洞口防护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'1.3.2预留洞口安全防护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'1.3.3通道口安全防护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'1.4"五临边"安全防护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'1.4.1临边作业', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'1.4.2基坑临边防护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'1.4.3楼层临边防护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'1.4.4楼梯临边防护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第二章 基坑工程', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'2.1有限空间', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.1.1有限空间作业防护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.1.2施工现场常见的有限空间作业', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.1.3肥槽、电梯井一定属于有限空间作业吗', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.1.4有限空间作业气体检测标准15', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.1.5有限空间作业环境分级', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.1.6有限空间作业安全检查要点16', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'2.2 地基基础阶段', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.2.1桩孔防护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.2.2泥浆池防护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.2.3人工挖孔桩', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.2.4桩基施工中安全注意事项18', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'2.3基坑支护阶段', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.3.1基槽施工', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.3.2边坡施工', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.3.3排桩、双排桩施工', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.3.4地下连续墙', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.3.5土钉墙、复合土钉墙', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.3.6钢板桩与钢支撑', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.3.7钢筋混凝土内支撑与立柱', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'2.4基坑降排水和开挖阶段', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.4.1基坑降水', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.4.2基坑排水', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.4.3边坡降排水', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.4.4支护结构强度', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.4.5土方开挖22', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.4.6土方开挖与支撑安装22', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'2.5坑边荷载', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.5.1基坑边堆置土、料具等荷载22', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.5.2施工机械与基坑边沿的安全距离23', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'2.6 基坑监测', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.6.1 基坑工程监测23', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.6.2支护结构监测23', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'2.7支撑拆除', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'2.8基坑作业', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.8.1基坑内土方机械24', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.8.2管线保护24', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'2.8.3内支撑临边防护、基坑临边防护24', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'2.9裸土覆盖25', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第三章 脚手架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'3.1扣件钢管脚手架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.1.1脚手架立杆基础', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.1.2扣件钢管脚手架接头设置要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.1.3脚手架连墙件设置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.1.4剪刀撑', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.1.5脚手板设置要求35', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'3.2承插盘扣式脚手架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.2.1盘口架体的基本步距、跨距', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.2.2盘扣外架的扫地杆高度', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.2.3盘扣外架的立杆接头是否必须错开', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.2.4作业层设置应符合下列规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.2.5盘扣外架竖向斜杆设置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.2.6盘扣外架最大悬臂高度', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.2.7脚手架作业层和主体结构边缘之间的防护措施', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.2.8脚手架基础遇高低跨加腋', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.2.9脚手架堆载', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.2.10外架安全挑网', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.2.11脚手架门洞设置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.2.12脚手架斜道设置:人形斜道、运料斜道46', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.2.13落地脚手架的立杆是否必须要设置垫板或者底座', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.2.14移动式操作平台47', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'3.3型钢悬挑式脚手架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.3.1悬挑钢梁48', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.3.2悬挑钢梁锚固49', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.3.3限位钢筋', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.3.5悬挑长度与固定段长度', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.3.6悬挑卸荷钢丝绳', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.3.7钢丝绳拉环', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.3.8悬挑钢梁阴阳角特殊部位处理', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.3.9悬挑钢梁通过阳台或其它悬挑结构', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.3.10悬挑架转换层', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.3.11悬挑架洞口设置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'3.4花篮悬挑脚手架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.4.1花篮拉杆梁悬挑架与传统工字钢悬挑型钢对比', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.4.2对拉螺栓套管预埋', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.4.3工字钢安装及混凝土强度要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.4.4斜拉杆安装及混凝土强度要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.4.5悬挑钢梁长度', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.4.6节点实物照片', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.4.7悬挑阳台、飘窗部位的花篮拉杆节点', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.4.8落地式脚手架和悬挑脚手架的搭配使用', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'3.5附着式升降脚手架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.5.1爬架的三大系统', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.5.2爬架的各组成构件', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.5.3爬架安装的流程', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.5.4附着式升降脚手架的安全验收总结', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'3.5.5拆除管理', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第四章模板支架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'4.1扣件式模板支架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.1.1基础搭设要求74', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.1.2扫地杆', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.1.3 步距与跨距', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.1.4立杆、水平杆搭设要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.1.5剪刀撑搭设要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.1.6可调托撑', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.1.7后浇带需要设置独立支撑', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.1.8高大模板支撑架架体防倾覆措施', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.1.9布料机的支撑部位加固', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.1.10边梁支模架做法', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.1.11支模架不符合模数处理方式', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'4.2承插盘扣式模板支架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.1盘扣内架的结构组成', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.2盘扣支架搭设流程', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.3盘扣支架可调底座', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.4底板有坡度的盘扣支架搭设方法', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.5盘扣支架的立杆接头是否必须错开', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.6梁和板的立柱间距关系', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.7模板支架安全平网设置要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.8盘扣支架水平剪刀撑该如何布置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.9盘扣内架竖向斜杆、竖向剪刀撑', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.10竖向斜杆的设置方式', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.11盘扣支撑架立杆悬臂高度', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.12盘扣可调顶托>650mm处理', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.13盘扣顶层步距是否缩减', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.14支模架顶部自由端的长度汇总', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.15盘扣竖向模数优先确定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.16梁板分离体系', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.17梁板立柱共用体系99', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.18双槽托梁设置要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.19支撑三脚架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.20盘扣内架抗倾覆措施', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.21模数不匹配的断缝处拉结设置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.22高支模与一般支模架拉结设置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.23斜坡上支模架做法', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.24楼梯支架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.25伸缩缝处双梁支模架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.26梁底主梁双钢管布置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.27异形支模架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.28后浇带支模架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.29外墙模加固', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.2.30盘扣支架用普通钢管连接', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'4.3高支模和高大模板', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.3.1高支模', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.3.2高大模板', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.3.3高大模板的搭设高度8米到底是指层高还是净高', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.3.4MPa、kpa、kN、t如何大概换算', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'4.3.5模板体系超危大工程的荷载计算、超限板、超限梁', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第五章卸料平台与钢丝绳布置规范', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'5.1落地式卸料平台111', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'5.2悬挑卸料平台', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'5.2.1悬挑卸料平台的主次梁及安全防护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'5.2.2卸料平台吊装环、斜拉环', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'5.2.3预埋钢丝绳斜拉环', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'5.2.4预埋锚固螺栓', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'5.2.5固定段与悬挑段长度', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'5.2.6悬挑卸料平台的钢丝绳设置要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'5.2.7卸料平台钢丝绳的绳夹数量', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'5.3钢丝绳绳夹布置规范', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'5.4钢丝绳编结长度', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'5.5十七种钢丝绳报废', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第六章模板工程', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'6.1模板工程常见术语125', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'6.2模板安装和加固125', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'6.3砼浇捣方向', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'6.4模板拆模', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'6.4.1混凝土模板拆模条件及时间', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'6.4.2模板拆模原则及流程', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第七章 吊篮', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'7.1吊篮的构成', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.1.1吊篮的6大组成系统', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.1.2吊篮构配件的名称', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'7.2吊篮的型号释义', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'7.3吊篮载重极限', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'7.4吊篮悬吊平台', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'7.5吊篮悬挂机构', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.5.1悬挂机构一一悬挂机构两吊点间距', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.5.2悬挂机构—悬挑横梁高差', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.5.3悬挂机构一一支架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.5.4悬挂机构—前梁外伸长度', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.5.5悬挂机构一一工作钢丝绳、安全钢丝绳', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.5.6悬挂机构——钢丝绳构造及绳端固定形式', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.5.7悬挂机构一—高强螺栓、两平一弹', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.5.8悬挂机构一一配重', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'7.6吊篮安全装置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.6.1吊篮安全装置一一安全锁', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.6.2吊篮安全装置--限位器 (超高限位)', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.6.3吊篮安全装置一一重锤', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.6.4吊篮安全装置一安全保护绳', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.6.5吊篮安全装置-一提升机构及手动滑降装置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.6.6吊篮安全装置电气系统及急停开关', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'7.7吊篮其他注意事项', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.7.1吊篮作业人数', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.7.2吊篮停层平台', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.7.3吊篮平台作业', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.7.4吊篮横梁是否可以直接担在女儿墙上', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.7.5吊篮双拉钢丝绳', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.7.6需要专家论证的高处作业吊篮方案', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.7.7骑马式吊篮悬挂装置后拉钢丝绳', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'7.8专项施工方案编制与审批', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.8.1专项施工方案编制', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'7.8.2专项施工方案审核审批手续', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第八章 临时用电', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'8.1三相五线制与三相四线制', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'8.2术语和代号', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'8.3临时用电来源与外电防护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.3.1工地的临时用电是从哪来', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.3.2外电防护的规范要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'8.4临时用电的配电系统', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.4.1一般规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.4.2三级配电系统', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.4.3多级剩余电流动作保护系统', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.4.4三级配电——配电室', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.4.5三级配电——配电箱、开关箱的设置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.4.6工业插座式配电箱', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.4.7配电箱、开关箱的箱体及电器安装尺寸', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'8.5配电箱、开关箱的检查要点口', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'8.6配电箱、开关箱的其他检查要点', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.6.1总配电箱的消防水泵回路、配电室的照明回路', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.6.2动照分设', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.6.3断路器和剩余电流动作保护器的区别', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.6.4剩余电流动作保护器的选择', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.6.5配电箱可以不设置隔离开关吗', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.6.6三级箱一机一闸一保护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.6.7开关箱是否必须设置零线端子排', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.6.8开关箱是否必须做接地', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.6.9开关箱的3种类型', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.6.10开关箱、分配电箱可以串联或并联吗', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'8.7 TN-S 系统', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.7.1什么是TN-S系统。', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.7.2TN-S 的系统要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.7.3工作接地', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.7.4重复接地', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.7.5重复接地的保护接地导体(PE线)', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.7.6重复接地的接地体(接地极)', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.7.7防雷保护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.7.8保护接零', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.7.9保护接地保护接零工作接地重复接地', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.7.10三大配电系统', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'8.8配电线路', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.8.1电缆线路', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.8.2电缆线路敷设', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.8.3在建工程内的电缆线路架设', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.8.4电缆线路一钢塑配线', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.8.5室内配线', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'8.9电动建筑机械和手持式电动工具', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.9.1一般规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.9.2起重机械', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.9.3桩工机械', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.9.4夯土机械', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.9.5焊接机械', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.9.6手持式电动工具', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'8.10照明', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.10.1照明供电的一般规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.10.2行灯', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.10.3照明装置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'8.11 临时用电工程管理', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.11.1临时用电工程组织设计', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.11.2现场勘测', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.11.3验收', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.11.4电工及用电人员', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'8.11.5用电安全资料', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第九章施工升降机', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'9.1施工升降机的设置原则', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'9.2施工升降机的基础设置注意事项', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'9.3基坑底板基础形式', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'9.4筏板基础形式(回填土)', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'9.5地库顶板基础形式(回顶)', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'9.6施工升降机安装', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'9.6.1底架护栏', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'9.6.2导轨架安装', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'9.6.3导轨架加高及标准节', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'9.6.4安装螺栓位置和数量', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'9.6.5吊笼和驱动装置安装', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'9.6.6附墙架设置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'9.6.7停层平台', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'9.7施工升降机安全保护装置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'9.7.1顶门(顶窗)限位开关', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'9.7.2吊笼门限位开关和机械连锁开关', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'9.7.3上、下限位开关', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'9.7.4上、下极限限位开关(极限开关)', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'9.7.5防坠安全器', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'9.7.6超载检测装置-重量限制器', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'9.7.7急停开关', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'9.7.8电缆线防护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'9.7.9吊笼顶防护栏杆', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'9.7.10齿距、标准节齿条阶差', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'9.8施工升降机垂直度检测要求224', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'9.9施工电梯外挂入户', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第十章汽车吊及剪叉式登高车', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'10.1汽车吊', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'10.1.1汽车吊的分类', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'10.1.2汽车吊的选型把控', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'10.1.3汽车吊的安全管理', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'10.1.4汽车吊的进场资料收集', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'10.1.5汽车吊进场验收', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'10.1.6汽车吊吊装时安全管控要点', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'10.1.7吊钩报废标准', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'10.1.8钢丝绳的破断拉力和楔套连接', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'10.1.9卸扣报废标准和正确使用方式', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'10.2剪叉式登高车', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'10.2.1剪叉式登高车的进场验收', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'10.2.2剪叉式登高车作业时安全管控要点', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'10.2.3剪叉式登高车的维修保养', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第十一章 塔式起重机', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'11.1塔吊型号参数', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'11.2塔吊的独立高度、自由高度、扶墙件设置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'11.3塔吊的结构构造', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'11.4塔吊的安全装置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.4.1起升高度限制器', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.4.2力矩限制器', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.4.3回转限位器', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.4.4起重量限制器', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.4.5变幅限制器255', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.4.6卷筒、滑轮保险装置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.4.7小车断轴保护装置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.4.8小车断绳保护、钢丝绳及钢丝绳卡头', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.4.9缓冲器、止挡装置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.4.10风速仪', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.4.11电气装置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.4.12塔吊四件套', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.4.13塔吊爬梯', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'11.5附着装置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'11.6塔吊安全距离', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'11.7塔吊十不吊', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'11.8塔吊垂直度检测', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'11.9金属结构', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'11.10塔吊顶升步骤及注意事项', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.10.1安装塔吊附墙的准备工作', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.10.2安装塔吊附墙', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.10.3准备顶升工作', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.10.4开始顶升', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.10.5顶升完成', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.10.6顶升注意事项', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'11.11格构式塔吊基础', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'11.12大型机械设备管理流程(以塔吊为例,一通百通)', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.12.1选定型号', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.12.2方案编制及审核', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.12.3设备基础施工', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.12.4设备进场', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.12.5设备安装', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.12.6机械设备验收', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.12.7办理使用登记证', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.12.8机械设备使用', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.12.9检查整改', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'11.12.10设备拆除退场', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第十二章消防安全', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'12.1防火间距', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'12.2消防车道', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'12.3建筑防火', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'12.3.1临时用房防火', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'12.3.2在建工程防火', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'12.4临时消防设施', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'12.4.1消防设施设置要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'12.4.2灭火器', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'12.4.3临时消防给水系统', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'12.4.4应急照明', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'12.4.5可燃物及易燃易爆危险品管理', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'12.4.6动火管理', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'12.4.7动火作业等级划分', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'12.4.8用气管理', NULL, NULL, N'', @n); + +SELECT @n AS 已导入章节数; diff --git a/DataBase/版本日志/SGGLDB_V2026-09-05-001-drop-sys_pdfpage.sql b/DataBase/版本日志/SGGLDB_V2026-09-05-001-drop-sys_pdfpage.sql new file mode 100644 index 0000000..042f173 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2026-09-05-001-drop-sys_pdfpage.sql @@ -0,0 +1,17 @@ +-- ===================================================================== +-- 删除未使用的数据表 Sys_PdfPage +-- 原因:该项目 PDF 书籍模块实际采用 Sys_PdfChapter(章节富文本 HTML)方案, +-- Sys_PdfPage 为早期"分页 OCR 文本"设计,代码中无任何引用(0 处), +-- 属于冗余表,可安全删除。 +-- 幂等:表存在才删,可重复执行。 +-- ===================================================================== + +IF OBJECT_ID(N'[dbo].[Sys_PdfPage]', N'U') IS NOT NULL +BEGIN + DROP TABLE [dbo].[Sys_PdfPage]; + PRINT N'表 Sys_PdfPage 已删除'; +END +ELSE +BEGIN + PRINT N'表 Sys_PdfPage 不存在,跳过'; +END \ No newline at end of file diff --git a/DataBase/版本日志/SGGLDB_V2026-09-08-001-safety-construction-chapters.sql b/DataBase/版本日志/SGGLDB_V2026-09-08-001-safety-construction-chapters.sql new file mode 100644 index 0000000..3619e1b --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2026-09-08-001-safety-construction-chapters.sql @@ -0,0 +1,484 @@ +-- ===================================================================== +-- 导入书籍《施工安全技术手册》全部章节(12章 三级目录) +-- 幂等脚本:重复执行会先清空本书旧章节再重新导入。 +-- BookId: BOOK_CONSTR_20260908 +-- ===================================================================== +DECLARE @BookId nvarchar(50) = N'BOOK_CONSTR_20260908'; +DECLARE @BookTitle nvarchar(200) = N'《施工安全技术手册》'; +DECLARE @n int = 0, @id nvarchar(50), @L1 nvarchar(50), @L2 nvarchar(50); + +-- 书籍(不存在则新增) +IF NOT EXISTS (SELECT 1 FROM dbo.Sys_PdfBook WHERE BookId = @BookId) + INSERT INTO dbo.Sys_PdfBook (BookId, Title, FilePath, TotalPages, IndexStatus, CreateUser, CreateTime) + VALUES (@BookId, @BookTitle, NULL, 0, 2, N'import', GETDATE()); + +-- 清空本书旧章节(幂等) +DELETE FROM dbo.Sys_PdfChapter WHERE BookId = @BookId; + +-- 章节(ChapterId = 书ID+_C+三位序号,ParentChapterId 逐级挂接) +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第一章 基坑工程', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'1.1 人工挖孔桩', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'安全措施', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'其他要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'1.2 基坑工程', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'主控项目', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'一般项目', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'其他规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'1.3 土石方工程', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'基本规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'机械设备', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'土石方爆破', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第二章 模板工程', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'2.1 模板安装', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'常见模板类型', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'材料要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'模板构造及安装', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'2.2 钢管扣件式支模架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'2.3 盘扣式支模架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'2.4 碗扣式支模架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'节点构造', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'材料及构配件', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'构造要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'2.5 模板及支架拆除', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'拆模要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第三章 脚手架工程', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'3.1 双排扣件式钢管落地脚手架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'构配件', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'构造要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'3.2 满堂脚手架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'3.3 型钢悬挑脚手架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'构造要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'搭拆及验收', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'3.4 花篮式悬挑脚手架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'3.5 盘扣式脚手架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'施工准备', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'构造要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'检查与验收', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'作业架安装与拆除', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'3.6 附着式升降脚手架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'常用术语和定义', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'主要参数', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'标记', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'材料构配件', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'工艺标准', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'结构和构造', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'技术要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'组装与拆除', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'检验规则', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'标志、运输和贮存', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'3.7 高处作业吊篮', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'型号', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'吊篮组成', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'一般技术要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'平台及悬挂机构', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'电气系统', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'控制系统', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'标志标牌及随机资料', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第四章 临时用电', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'4.1 常用名称及代号', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'常用名称', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'常用代号', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'4.2 三级配电系统', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'4.3 TN-S接零保护系统', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'4.4 两级漏电保护系统', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'4.5 临时用电管理', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'用电组织设计', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'电工及用电人员', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'安全技术档案', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'4.6 外电线路及电气设备防护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'外电线路防护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'4.7 防雷与接地', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'一般规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'保护接零', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'接地与接地电阻', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'防雷', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'4.8 配电线路', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'4.9 配电箱和开关箱', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'配电箱及开关箱的设置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'电器装置的选择', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'使用与维护', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'4.10 照明', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'一般规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'照明供电', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'照明装置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第五章 高处作业', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'5.1 安全网', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'基本术语', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'技术要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'安全网的使用', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'5.2 安全帽及安全带', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'安全帽', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'安全带', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'5.3 临边与洞口作业', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'临边作业', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'洞口作业', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'防护栏杆', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'5.4 操作平台', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'基本规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'移动式操作平台', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'落地式操作平台', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'悬挑式操作平台', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'5.5 攀登与悬空作业', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'攀登作业', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'悬空作业', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'5.6 交叉作业', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'基本规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'安全措施', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第六章 机械设备', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'6.1 塔式起重机', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'塔身结构', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'机构及零部件', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'安全装置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'电气系统', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'技术资料', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'信息标志', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'安装、拆卸及使用', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'6.2 物料提升机', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'技术资料', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'基本规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'动力与传动装置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'安全装置与防护设施', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'电气', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'附墙架', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'安装、拆除与验收', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'6.3 施工升降机', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'技术资料', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'安全操作距离', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'防护围栏', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'吊笼', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'架体结构', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'层门及楼层平台', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'对重、缓冲装置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'安全装置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'电气系统', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'附着装置', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'6.4 资料管理', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'基本规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'安拆单位提供资料', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'租赁单位提供资料', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'施工总承包单位提供资料', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'6.5 起重吊装', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'基本规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'履带起重机', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'汽车、轮胎式起重机', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第七章 施工机具', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'7.1 钢筋加工机械', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'一般规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'钢筋调直切断机', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'钢筋切断机', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'钢筋弯曲机', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'钢筋车丝机', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'钢筋除锈机', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'7.2 木工加工机械', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'一般规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'圆盘锯', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'7.3 混凝土机械', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'一般规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'混凝土输送泵', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'混凝土泵车', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'插入式振捣器', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'混凝土布料机', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'砂浆搅拌罐', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'7.4 焊接机械', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'一般规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'对焊机', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'气焊(割)设备', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'7.5 其他机具', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'水磨石机', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'手持电动工具', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第八章 消防安全', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'8.1 总平面布局', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'一般规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'防火间距', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'消防车道', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'8.2 建筑防火', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'临时用房防火', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'在建工程防火', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'8.3 临时消防设施', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'一般规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'灭火器', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'临时消防给水系统', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'8.4 防火管理', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'一般规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'其他防火管理', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第九章 有限空间作业', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第十章 安全管理与文明施工', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'10.1 安全管理', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'保证项目', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'检查要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'一般项目', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'10.2 文明施工', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'保证项目', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'检查要求', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'一般项目', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第十一章 危大工程及特种作业人员', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'11.1 危大工程安全管理规定', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'专项施工方案', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L2, 3, N'现场安全管理', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L2 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, @L1, 2, N'11.2 特种作业人员', NULL, NULL, N'', @n); +SET @n = @n + 1; SET @id = @BookId + '_C' + RIGHT('000' + CAST(@n AS varchar(10)), 3); +SET @L1 = @id; +INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES (@id, @BookId, NULL, 1, N'第十二章 重大事故隐患判定标准', NULL, NULL, N'', @n); + +-- 完成检查 +SELECT COUNT(*) AS ChapterCount FROM dbo.Sys_PdfChapter WHERE BookId = @BookId; diff --git a/PDF书籍WebAPI接口文档.md b/PDF书籍WebAPI接口文档.md new file mode 100644 index 0000000..1c24203 --- /dev/null +++ b/PDF书籍WebAPI接口文档.md @@ -0,0 +1,423 @@ +# PDF 书籍模块 WebAPI 接口文档 + +> 对应功能:PC 端《PDF 书籍阅读》页(FineUIPro.Web/HSSE/PDFDOC/PdfBookView.aspx)—— 多级章节目录 + 富文本正文维护。 +> 服务项目:SGGL/WebAPI(经典 ASP.NET Web API,.NET Framework 4.8);数据服务:SGGL/BLL/API/APIPdfBookService.cs。 +> 数据表:Sys_PdfBook(书籍)/ Sys_PdfChapter(章节,目录层级用 ParentChapterId + Level(1章 2节 3小节),同级用 SortNo 排序,正文 HTML 存 [Text])。 +> 状态:已实现并经本地 IIS Express 联调验证(2026-09)。 + +--- + +## 1. 通用约定 + +### 1.1 地址与路由 + +- 路由模板:api/{controller}/{action}/{id},本模块控制器名为 **PdfBook**。 +- 调用前缀示例:http:///api/PdfBook/getBooks +- 只支持 JSON 输出(服务端已清除 XML 格式化器);请使用 UTF-8 编码收发中文。 + +### 1.2 统一响应包装(Model.ResponeData) + +所有接口返回同一结构: + +| 字段 | 类型 | 说明 | +|---|---|---| +| code | int | **1** = 成功;**0** = 失败(注:权限过滤返回的 code 为字符串 "0") | +| message | string | 失败时的中文错误描述;成功为 null | +| data | object | 业务数据,失败为 null | + +示例: + +```json +{ "code": 1, "message": null, "data": { } } +``` + +### 1.3 字段命名 + +响应 JSON 键名与 C# 属性一致,采用 **PascalCase**(如 BookId、ChapterTitle),与全站既有 API 保持一致;请求 JSON 键名大小写不敏感(Newtonsoft 反序列化),文档示例统一小写开头书写。 + +### 1.4 鉴权 + +本模块接口按读/写区分权限(全局过滤器 WebAPI/Filter/TestPermissionAttribute.cs): + +| 类型 | 接口 | 鉴权 | +|---|---|---| +| 只读 | getBooks / getChapterTree / getChapter / searchChapter | **免登录**(已加入白名单,与 ProtectionStandards 等规范类只读接口一致) | +| 维护 | addBook / addChapter / editChapter / deleteChapter / saveContent | 需**登录态 + token 双重校验**(见下) | + +维护接口调用步骤: + +1. 先调登录接口获取 FormsAuth Cookie: + POST /api/user/postLoginOn + ```json + { "Account": "jinkn", "Password": "xxxxxx" } + ``` + 成功后响应会写入名为 auth 的 Cookie(十年有效),后续请求须携带该 Cookie。 +2. 请求头携带 token: (Sys_User.UserId,登录响应 data.UserId 即该值)。 +3. 二者缺一不可:缺 Cookie 或缺有效 token 均返回 {"code":"0","message":"您没有权限!"}。 + +--- + +## 2. 接口总览 + +| # | 方法 | 路径 | 说明 | +|---|---|---|---| +| 1 | GET | /api/PdfBook/getBooks | 书籍列表(含章节数) | +| 2 | GET | /api/PdfBook/getChapterTree?bookId= | 某本书多级章节目录树 | +| 3 | GET | /api/PdfBook/getChapter?chapterId= | 章节正文详情(HTML + 纯文本) | +| 4 | POST | /api/PdfBook/searchChapter | 章节关键词检索(可限定书籍) | +| 5 | POST | /api/PdfBook/addBook | 新增书籍(需登录) | +| 6 | POST | /api/PdfBook/addChapter | 新增章节(可指定父章节,需登录) | +| 7 | POST | /api/PdfBook/editChapter | 修改章节名称(需登录) | +| 8 | POST | /api/PdfBook/deleteChapter | 删除章节(连同全部子章节,需登录) | +| 9 | POST | /api/PdfBook/saveContent | 保存章节正文(富文本 HTML,需登录) | +--- + +## 3. 接口明细 + +### 3.1 书籍列表 + +GET /api/PdfBook/getBooks + +无参数。返回按登记时间升序的全部书籍(与 PC 页下拉一致,第一本即页面默认选中书)。 + +响应示例(实测): + +```json +{ + "code": 1, + "message": null, + "data": [ + { + "BookId": "BOOK_SAFE_20260827", + "Title": "《施工现场安全防护手册》", + "ChapterCount": 366, + "CreateTime": "2026-09-03T10:30:49" + }, + { + "BookId": "BOOK_TEST_001", + "Title": "《测试书籍-数据库连通》", + "ChapterCount": 0, + "CreateTime": "2026-09-04T15:50:30.39" + } + ] +} +``` + +data 数组元素字段: + +| 字段 | 类型 | 说明 | +|---|---|---| +| BookId | string | 书籍主键 | +| Title | string | 书名 | +| ChapterCount | int | 章节总数 | +| CreateTime | datetime? | 登记时间 | + +### 3.2 章节目录树 + +GET /api/PdfBook/getChapterTree?bookId=BOOK_SAFE_20260827 + +| 参数 | 必填 | 说明 | +|---|---|---| +| bookId | 是 | 书籍主键 | + +返回**多级嵌套树**:顶级节点数组,子章节在 Children 中递归(叶子章节 Children 为空数组),同级按 SortNo 排序。 + +响应示例(实测节选): + +```json +{ + "code": 1, + "message": null, + "data": [ + { + "ChapterId": "BOOK_SAFE_20260827_C001", + "ChapterTitle": "第一章 安全防护", + "Level": 1, + "PageStart": 0, + "PageEnd": 0, + "HasContent": false, + "Children": [ + { + "ChapterId": "BOOK_SAFE_20260827_C002", + "ChapterTitle": "1.1三宝四口五临边", + "Level": 2, + "PageStart": 0, + "PageEnd": 0, + "HasContent": true, + "Children": [] + }, + { + "ChapterId": "BOOK_SAFE_20260827_C003", + "ChapterTitle": "1.2三宝", + "Level": 2, + "PageStart": 0, + "PageEnd": 0, + "HasContent": false, + "Children": [ + { + "ChapterId": "BOOK_SAFE_20260827_C004", + "ChapterTitle": "1.2.1安全帽", + "Level": 3, + "PageStart": 0, + "PageEnd": 0, + "HasContent": true, + "Children": [] + } + ] + } + ] + } + ] +} +``` + +data 节点字段: + +| 字段 | 类型 | 说明 | +|---|---|---| +| ChapterId | string | 章节主键(getChapter / saveContent 等接口用) | +| ChapterTitle | string | 章节名称 | +| Level | int | 层级:1=章,2=节,3=小节 | +| PageStart / PageEnd | int | 起止页码(手动维护模式无页码则为 0) | +| HasContent | bool | 该章节是否已录入正文(true 才建议作为可阅读节点) | +| Children | array | 子章节数组(叶子为 []) | + +> 提示:与 PC 页交互一致——目录型节点(有子章节)自身通常无正文(HasContent=false),正文多录入在叶子章节。 + +### 3.3 章节正文详情 + +GET /api/PdfBook/getChapter?chapterId=BOOK_SAFE_20260827_C004 + +| 参数 | 必填 | 说明 | +|---|---|---| +| chapterId | 是 | 章节主键 | + +响应示例(实测,Content 字段较长已省略): + +```json +{ + "code": 1, + "message": null, + "data": { + "ChapterId": "BOOK_SAFE_20260827_C004", + "BookId": "BOOK_SAFE_20260827", + "BookTitle": "《施工现场安全防护手册》", + "ChapterTitle": "1.2.1安全帽", + "ParentChapterId": "BOOK_SAFE_20260827_C003", + "Level": 3, + "PageStart": 0, + "PageEnd": 0, + "Content": "

…安全帽在购买、日常检查时要检查如下内容…

", + "ContentText": "1、安全帽在购买、日常检查时要检查如下内容: (1)安全帽如有下颊带,应使用宽度不小于10mm的织带…" + } +} +``` + +- Content:富文本 HTML(UMeditor 生成)。2026-09 起页面上传图片在保存时转为 base64 内嵌(data:image/png;base64,...),正文自包含不依赖图片文件;个别历史数据仍可能是 res/umeditor 路径引用。WebView/rich-text 均可直接渲染 data URL; +- ContentText:去标签纯文本,适合列表摘要/全文展示; +- 章节不存在时返回 code=0、message=章节不存在或已被删除。 + +### 3.4 章节关键词检索 + +POST /api/PdfBook/searchChapter + +请求体: + +```json +{ "keyword": "安全帽", "bookId": "BOOK_SAFE_20260827" } +``` + +| 字段 | 必填 | 说明 | +|---|---|---| +| keyword | 是 | 检索关键词(正文纯文本 LIKE 字面匹配;% _ 通配符已转义) | +| bookId | 否 | 限定书籍;不传则全库检索 | + +响应示例(实测,命中两章): + +```json +{ + "code": 1, + "message": null, + "data": [ + { + "BookId": "BOOK_SAFE_20260827", + "BookTitle": "《施工现场安全防护手册》", + "ChapterId": "BOOK_SAFE_20260827_C002", + "ChapterTitle": "1.1三宝四口五临边", + "PageStart": 0, + "PageEnd": 0, + "Snippet": "1.三宝:是指安全帽、安全带、安全网…" + }, + { + "BookId": "BOOK_SAFE_20260827", + "BookTitle": "《施工现场安全防护手册》", + "ChapterId": "BOOK_SAFE_20260827_C004", + "ChapterTitle": "1.2.1安全帽", + "PageStart": 0, + "PageEnd": 0, + "Snippet": "1、安全帽在购买、日常检查时要检查如下内容…" + } + ] +} +``` + +- 匹配对象为 Sys_PdfChapter.[Text](先剔除 HTML 标签再做 LIKE),命中片段取关键词前后各约 40 字; +- 说明:当前为字面匹配,未做分词/全文索引,后续可升级 SQL Server 全文检索。 +--- + +### 3.5 新增书籍(需登录) + +POST /api/PdfBook/addBook + +请求体: + +```json +{ "title": "《新书示例》", "createUser": "apitest" } +``` + +| 字段 | 必填 | 说明 | +|---|---|---| +| title | 是 | 书名 | +| createUser | 否 | 登记人,缺省 api | + +响应: + +```json +{ "code": 1, "message": null, "data": { "bookId": "PB202609051447346108" } } +``` + +新增书籍无章节;与 PC 页一致:FilePath=NULL、TotalPages=0、IndexStatus=2(手动维护)。 + +### 3.6 新增章节(需登录) + +POST /api/PdfBook/addChapter + +请求体: + +```json +{ "bookId": "PB202609051447346108", "parentChapterId": "", "chapterTitle": "第一章 示例" } +``` + +| 字段 | 必填 | 说明 | +|---|---|---| +| bookId | 是 | 所属书籍主键 | +| parentChapterId | 否 | 父章节主键;**为空=顶级章节**;传入则挂到该章节下(层级=父级+1) | +| chapterTitle | 是 | 章节名称 | +| createUser | 否 | 预留 | + +响应: + +```json +{ "code": 1, "message": null, "data": { "chapterId": "CH20260905144734f549" } } +``` + +### 3.7 修改章节名称(需登录) + +POST /api/PdfBook/editChapter + +```json +{ "chapterId": "CH20260905144734ba08", "chapterTitle": "1.1 子章节(改名后)" } +``` + +成功响应:{ "code": 1, "data": true };仅改名,不影响层级与正文。 + +### 3.8 删除章节(需登录,级联删除) + +POST /api/PdfBook/deleteChapter + +```json +{ "chapterId": "CH20260905144734f549" } +``` + +成功响应(实测:父章节带 1 个子章节,共删 2 条): + +```json +{ "code": 1, "message": null, "data": { "deletedCount": 2 } } +``` + +> 删除会递归收集该章节的**全部后代子章节**一并删除(与 PC 页删除章节及其子章节行为一致),请谨慎调用。 + +### 3.9 保存章节正文(需登录) + +POST /api/PdfBook/saveContent + +```json +{ + "chapterId": "CH20260905144734ba08", + "content": "

安全帽验收接口测试正文:检查下颊带宽度。

" +} +``` + +成功响应:{ "code": 1, "data": true };content 为 UMeditor 风格富文本 HTML,存 Sys_PdfChapter.[Text]。PC 页保存时会把本站上传图片引用转成 base64 内嵌,App/第三方提交的内容按原样存储。 + +--- + +## 4. 常见错误 + +| code | message | 场景 | +|---|---|---| +| 1 | - | 成功 | +| 0 | 书名不能为空 / 章节名称不能为空 / bookId 不能为空 / chapterId 不能为空 / keyword 不能为空 | 必填参数缺失 | +| 0 | 父章节不存在:xxx / 章节不存在:xxx / 章节不存在或已被删除 | 引用的数据不存在 | +| "0" | 您没有权限! | 维护接口未携带 auth Cookie 或有效 token | +| "0" | 登录超出,请重新登录! | 同上(过滤器另一分支文案,同为未授权) | + +--- + +## 5. 附录 + +### 5.1 数据结构说明(SQL Server) + +Sys_PdfBook: + +| 列 | 说明 | +|---|---| +| BookId | 主键(PB+yyyyMMddHHmmss+4位随机,服务端生成) | +| Title | 书名 | +| IndexStatus | 2=手动维护(无自动索引流程) | +| CreateUser / CreateTime | 登记人 / 登记时间 | + +Sys_PdfChapter: + +| 列 | 说明 | +|---|---| +| ChapterId | 主键(CH+yyyyMMddHHmmss+4位随机,服务端生成) | +| BookId | 所属书籍 | +| ParentChapterId | 父章节,NULL=顶级 | +| Level | 1=章 2=节 3=小节(新增自动=父级+1) | +| ChapterTitle | 章节名称 | +| PageStart / PageEnd | 页码(手动维护为 NULL,接口输出 0) | +| Text | 正文富文本 HTML | +| SortNo | 同级排序(新增=全书 MAX+1) | + +### 5.2 curl 调用示例(Windows;含中文的 JSON 请用文件方式 --data-binary 发送) + +```bat +REM 1) 登录,保存 cookie(login.json 内容见 1.4) +curl -c cookies.txt -X POST -H "Content-Type: application/json" --data-binary "@login.json" http://localhost:7143/api/user/postLoginOn + +REM 2) 只读(免登录) +curl "http://localhost:7143/api/PdfBook/getBooks" +curl "http://localhost:7143/api/PdfBook/getChapterTree?bookId=BOOK_SAFE_20260827" + +REM 3) 维护(cookie + token 头) +curl -b cookies.txt -H "token: " -X POST -H "Content-Type: application/json" --data-binary "@body.json" http://localhost:7143/api/PdfBook/saveContent +``` + +### 5.3 与 PC 页面(HSSE/PDFDOC/PdfBookView.aspx)的对应关系 + +| 页面操作 | 接口 | +|---|---| +| 页首书籍下拉(默认第一本) | getBooks | +| 左侧多级目录树 | getChapterTree | +| 点击叶子章节显示正文 | getChapter | +| 保存内容(富文本) | saveContent | +| 新增书籍弹窗 | addBook | +| 新增章节 / 编辑名称 / 删除章节(含子章节) | addChapter / editChapter / deleteChapter | + +### 5.4 变更记录 + +| 日期 | 内容 | +|---|---| +| 2026-09-05 | 初版:新增 PdfBookController + APIPdfBookService,9 个接口全部经本地 IIS Express(http://localhost:7143)联调通过;只读接口加入权限白名单免登录 | +| 2026-09-05 | 页面富文本图片改为 base64 内嵌存储:保存内容时自动转换(getChapter 返回的 Content 中图片为 data URL) | diff --git a/PDF书籍关键词章节检索设计方案.md b/PDF书籍关键词章节检索设计方案.md new file mode 100644 index 0000000..6028dc5 --- /dev/null +++ b/PDF书籍关键词章节检索设计方案.md @@ -0,0 +1,298 @@ +# PDF 书籍关键词章节检索 — 设计方案 + +> 目标:对**扫描版(图片型)PDF 书籍**,通过 WebAPI 接口传入关键字,检索并返回**命中的章节信息**(章节名 + 页码 + 命中片段)。 +> 范围:**单本 / 少量固定参考书**(如规范、施工手册),一次性或按需索引,不需要实时高吞吐。 +> 状态:设计文档(仅设计,暂不编码)。依赖版本与类名为现有仓库基线,实现时可按实际微调。 + +--- + +## 1. 背景与现状 + +- 仓库为 `.NET Framework 4.8`,WebForms(`FineUIPro.Web`)+ ASP.NET Web API(`WebAPI`)+ BLL + Model + `SgManager.AI` 五子项目。 +- **扫描版 PDF 是整页图片,无文本层**,无法直接 `LIKE` 或取文字;必须先 `PDF 页 → 图像 → OCR → 文本`。 +- 仓库现状: + - 《`SgManager.AI`》已有 **百度 OCR / token** 基础设施(`IDCardRecognition.cs`、`IDCardToken.cs`、`OCR_CharacterRecognitionErrorType.cs`,`AipSdk` v3.5.0.0),可直接复用其取 token 与请求通道,但现有类都指向"身份证/特定识别",需**新增通用文字识别**方法。 + - 现有 `Aspose.Words.dll`(v10.5)只能处理 Word,**读不了 PDF 文本**,不做渲染/取文使用。 + - 仓库当前**没有**任何 PDF 渲染、图像转文字、全文索引类库 → 需新增引用。 + - 数据访问惯例:`Funs.DB`(LINQ to SQL)/ `SQLHelper`;接口统一包装 `Model.ResponeData`。 + +--- + +## 2. 总体架构 + +``` + ┌─────────────────────────────────────────────────────────┐ + │ WebForms (FineUIPro.Web) │ + │ 书籍管理页(上传/登记/触发索引) 章节检索页(输入关键词→展示命中) │ + └───────────────┬─────────────────────────────┬───────────┘ + │ │ + ▼ ▼ + ┌───────────────────────────┐ ┌────────────────────────────┐ + │ WebAPI (System.Web.Http)│ │ BLL PdfSearchService │ + │ PdfBookController │ │ 抽取+OCR+章节识别+索引落库 │ + │ PdfSearchController │─▶│ (后台 Quartz 任务亦可调用) │ + └───────────────┬───────────┘ └───────────────┬────────────┘ + │ │ + ▼ ▼ + ┌───────────────────────────┐ ┌────────────────────────────┐ + │ SQL Server │ │ SgManager.AI │ + │ Sys_PdfBook / Page / │ │ PDF渲染 + 百度通用OCR │ + │ Sys_PdfChapter │ │ PdfRenderOcrService │ + └───────────────────────────┘ └────────────────────────────┘ +``` + +- **分层职责**(沿用项目分层): + - `SgManager.AI`:PDF 页 → bitmap 渲染、百度通用 OCR(纯能力,无业务)。 + - `BLL\PdfSearchService`:调度渲染+OCR+章节识别+落库、以及检索查询。业务类为 `public static class XxxService`。 + - `WebAPI\Controllers\PdfSearchController`:暴露接口,返回 `Model.ResponeData`。 + - `FineUIPro.Web`:书籍管理页 + 章节检索页。 + - `Model\`:新增 `Sys_PdfBook` / `Sys_PdfPage` / `Sys_PdfChapter` 实体(由 `CreateModel.bat` 重新生成,勿手改)。 + +--- + +## 3. 数据模型(SQL Server,实体前缀 `Sys_`) + +```sql +-- 书籍主表 +CREATE TABLE [dbo].[Sys_PdfBook] ( + BookId nvarchar(50) NOT NULL PRIMARY KEY, + Title nvarchar(200) NULL, -- 书名 + FilePath nvarchar(500) NULL, -- PDF 物理路径 + TotalPages int NULL, -- 总页数(渲染后统计) + IndexStatus int NULL, -- 0待索引 1索引中 2完成 3失败 + IndexProgress int NULL, -- 已处理页数(进度用) + Dpi int NULL DEFAULT 200, + FileHash nvarchar(64) NULL, -- 供"内容未变跳过重建"判断 + LastIndexTime datetime NULL, + CreateUser nvarchar(50) NULL, + CreateTime datetime NULL +); + +-- 分页表:按页存 OCR 文本,供"精确页码"与"重建章节"复用 +CREATE TABLE [dbo].[Sys_PdfPage] ( + PageId nvarchar(50) NOT NULL PRIMARY KEY, + BookId nvarchar(50) NOT NULL, + PageNo int NOT NULL, + Text nvarchar(max) NULL, -- 本页OCR结果文本 + OcrStatus int NULL, -- 0待 1成功 2失败(可重试) + RetryCount int NULL DEFAULT 0, + CONSTRAINT [FK_PdfPage_Book] FOREIGN KEY (BookId) REFERENCES [dbo].[Sys_PdfBook](BookId) +); + +-- 章节表:由章节识别结果聚合,检索主表(支持多级目录) +CREATE TABLE [dbo].[Sys_PdfChapter] ( + ChapterId nvarchar(50) NOT NULL PRIMARY KEY, + BookId nvarchar(50) NOT NULL, + ParentChapterId nvarchar(50) NULL, -- 上一级章节,NULL=顶级 + Level int NULL, -- 层级:1章 2节 3小节 + ChapterTitle nvarchar(200) NULL, -- 章节名 + PageStart int NULL, -- 起始页 + PageEnd int NULL, -- 结束页 + Text nvarchar(max) NULL, -- 章节聚合文本(供检索) + SortNo int NULL, + CONSTRAINT [FK_PdfChapter_Book] FOREIGN KEY (BookId) REFERENCES [dbo].[Sys_PdfBook](BookId) +); +``` + +> 说明: +> - 检索命中优先在 `Sys_PdfPage.Text`(能定位到**精确页**),再关联 `Sys_PdfChapter` 给出章节名与页码范围。 +> - `Sys_PdfChapter.Text` 用 `STRING_AGG`/`FOR XML` 把该章节所有页文本拼起来,方便返回"整章"级别的片段。 +> - 命名遵循现有 `Sys_` 前缀与 `nvarchar` 中文排序规则 `Chinese_PRC_CI_AS`;变更走 `DataBase/版本日志/SGGLDB_V--<作者>.sql`。 + +--- + +## 4. 核心流程 + +### 4.1 PDF 页 → 图像渲染 +- 扫描版 PDF 每页通常即一张整页图,但**最稳妥**是把页面渲染成位图,而不是猜内嵌图片。 +- 选型(二选一,均开源、纯 .NET 友好): + - **`Docnet.Core`**(PDFium 包装,MIT)—— 轻量、渲染页到 `byte[]`。 + - **`PdfiumViewer` + `PDFium`**(同样基于 PDFium)。 +- 分辨率:`200~300 DPI`(中文字号偏小,太低影响识别;默认 200),输出 JPEG/PNG 后压缩到 ≤ 4MB 再 base64(百度单图限制)。 +- 分页过滤页眉/页脚(根据 OCR 返回行坐标 `location.top` 判断,正文框外的不计入章节标题匹配)。 + +### 4.2 OCR 识别(走百度,复用现有 token 设施) +- 接口:百度**通用文字识别**。建议优先**高精度含位置版**(`/rest/2.0/ocr/v1/accurate`,返回每行 `words` + 四角坐标),标准版 `general_basic` 更快但无坐标。 +- `SgManager.AI` 新增 `PdfOcrService`(原名 `BaiduCommonOcr`):`GetAccessToken()`(复用 `IDCardToken` 的 `client_credentials` 逻辑)+ `Recognize(string imageBase64, ...)` 返回行列表。 +- **串行或低并发**:百度 QPS 有限(如标准 2~5 QPS),每页 1 次请求;小并发 2~4 并行 + 失败重试(指数退避),逐页记录进度到 `Sys_PdfPage.OcrStatus/RetryCount`,支持断点续跑。 +- 对整本几百页的书,OCR 是**分钟级**任务 → 放后台(Quartz `TaskScheduling` 或"开始索引"按钮起后台任务),前端轮询进度 `IndexProgress`。 + +### 4.3 章节识别(扫描版通常无 PDF 书签,用启发式) +- 标题行正则(叠加"页内坐标 + 字体大小估计"辅助): + - `^第[一二三四五六七八九十百0-9]+[章节]`(如 `第3章`、`第2节`) + - `^\d+\.\d+`(如 `3.2`) + - `^[一二三四五六七八九十]+、`(如 `五、`) + - `^\([一二三四五六七八九十]+\)`(如 `(一)`) +- 识别到新标题行即**开启新章节**,其页文本归入该章;直到下一个标题结束。 +- 对"章节标题在版心、页眉/页码在边距"的布局:先按 `location` 剔除页眉/页脚候选,避免误判为章节。 +- 若某书 OCR 质量差、正则不稳定,可提供"手动锚定章节"兜底(在书籍管理页按页码指定标题)。 + +### 4.4 索引落库 +- 新增/更新 `Sys_PdfBook`(`IndexStatus=1` → `=2`/`=3`)。 +- 逐页写 `Sys_PdfPage`;每章聚合写 `Sys_PdfChapter`。 +- 幂等:用 `FileHash`(MD5)判断内容是否变化;未变则跳过重建。删除旧章节/旧页在重建成功后清理。 +- 事务与日志:单页 OCR 失败不影响整本书;`ErrLogInfo.WriteLog(...)` 记录失败页码。 + +### 4.5 可插拔识别模型(调用市面大模型,可切换千问 / DeepSeek 等) +识别环节**不绑定**某一家厂商,而是抽象为**多模态识别提供者(Provider)接口**:管线(渲染 → 识别 → 章节识别 → 落库)不变,只换"识别器"。这里的"自定义模型"= **调用市面上成熟的大模型(视觉语言模型 / 图文理解),不在本地训练**,且提供者/模型名可配置、随时切换。 + +```csharp +// SgManager.AI —— 提供者抽象(对外 OpenAI 兼容聊天补全风格) +public interface IRecognizer { + string Provider { get; } // qwen / deepseek / glm / openai / baidu ... + string Model { get; } // qwen-vl-max / deepseek-vl / glm-4v / gpt-4o ... + Task RecognizeAsync(byte[] pageImage, RecognizeOptions opts); +} +// PageUnderstandingResult = { FullText, Headings[], Tables[], Figures[], Confidence } +// 通过构造 prompt 让模型输出结构化 JSON:{text, headings:[{title,page}], tables:[], figures:[]} +``` + +**对接方式**:绝大多数国产大模型提供 **OpenAI 兼容端点**(`/chat/completions`,多模态传 `image_url` + base64 图片)。用同一套 HTTP 客户端 + 不同 `BaseUrl/Model/ApiKey` 即可无缝切换。**注意密钥只放 `Web.config`,勿提交/外发。** + +| 提供者 | API/端点 | 是否支持看图识别 | 备注 | +|---|---|---|---| +| **千问 Qwen**(阿里云 DashScope) | `dashscope.aliyuncs.com/compatible-mode/v1` | ✅ `qwen-vl-max/qwen-vl-plus` | 官方支持图片输入,最省心,中文/文档版式好 | +| **DeepSeek** | `api.deepseek.com` | ⚠️ **官方 API 纯文本**(`deepseek-chat`/`deepseek-reasoner`)**不支持图片** | 看图需用开源 `DeepSeek-VL2`(自部署)或第三方聚合/中转平台 | +| **智谱 GLM** | `open.bigmodel.cn/api/paas/v4` | ✅ `glm-4v` | 支持图片输入 | +| **其他**(GPT-4o / Claude 等) | 各自端点 | ✅ 多模态 | 视预算/合规选择 | + +> **关键提醒**:你要做的"识别"是**看图**,所以必须选**带视觉能力的模型**(千问 VL / GLM-4V 等)。**DeepSeek 官方 API 目前只收文本**——若坚持用 DeepSeek,适合放在"已提取文本后的语义加工"环节,而不是直接看图。 + +**推荐的**两段式(把千问 + DeepSeek 都用上): +1. **看图识别(VLM,如千问 VL)**:读整页图 → 输出 `{text, headings, tables, figures}`,直接给出结构与图/表。 +2. **语义整理(文本 LLM,如 DeepSeek)**:对识别结果做**纠错、规整、章节边界确认、关键词相关度排序**。DeepSeek 在此环节非常擅长且便宜。 + +**两段式的配置(`Web.config` AppSettings → `Funs.*`)**: +``` +PdfRecognition.Provider = qwen # / glm / deepseek / openai / baidu +PdfRecognition.Model = qwen-vl-max +PdfRecognition.BaseUrl = https://dashscope.aliyuncs.com/compatible-mode/v1 +PdfRecognition.ApiKey = <密钥,勿提交> +PdfSemantic.Provider = deepseek # 第二段语义处理(可选) +PdfSemantic.Model = deepseek-chat +``` + +> 说明:即便都走"市面大模型",仍建议保留 `IPdfRecognizer`/`IRecognizer` 接口——这样在**百度 OCR(便宜、快、稳定)** 与 **大模型图文理解(结构更好、能看图/表)** 之间可按成本/质量切换,互不干扰主流程。 + +### 4.6 PDF 内含图片 / 表格的处理 +你的书除扫描正文外还嵌有**图片/表格/图示**,这类内容用视觉大模型能**直接理解**,比纯 OCR 文本行强得多: + +1. **整页给模型**:将渲染出的整页(含图片)直接交给 VLM,让其按 prompt 输出 `text`、`headings`、`tables`、`figures`(图注/图题)。模型天然区分正文/表格/图片,无需再"区域切图"。 +2. **表格**:模型可转成结构化文本(JSON 数组或 Markdown 表格)并入该页 `Text`,命中"表头/表体关键词"同样可检索。 +3. **图片/图示**: + - 提取**图注/图题**并入索引,用于关键词检索; + - 如需看图内容,可让 VLM 生成一行**图片描述**并入索引(更强,但每页 token/成本上升)。 +4. 落库扩展:`Sys_PdfPage` 增加 `HasImage/HasTable` 标记;可另建 `Sys_PdfFigure(BookId,PageNo,FigureCaption,ImagePath)` 存图注/缩略图。 +5. 章节识别受益:VLM 直接给出**标题行 + 阅读顺序**,比纯行正则更准,能显著改善"章节边界"判定;第二段 DeepSeek 再做边界确认与纠错。 + +--- + +## 5. 检索接口(WebAPI,遵循 `Model.ResponeData`) + +沿用项目惯例:`[HttpPost]` + `[FromBody]` 收参,统一返回 `Model.ResponeData`。 + +### POST `/api/pdf/search` +请求体: +```json +{ + "keyword": "高空作业", + "bookId": "可选,限定某本书;不传则全库图书检索" +} +``` +响应(`ResponeData`,`data` 内): +```json +{ + "success": true, + "errorMessage": null, + "data": { + "total": 12, + "chapters": [ + { + "bookId": "...", + "bookTitle": "《建筑施工安全规范》", + "chapterTitle": "第8章 高处作业", + "pageStart": 210, + "pageEnd": 238, + "firstHitPage": 215, + "snippet": "……高处作业必须系挂安全带,作业点下方……" // 命中词前后各 ~40 字 + } + ] + } +} +``` + +**查询实现**:优先在 `Sys_PdfPage.Text` 上 `LIKE '%关键字%'`(单本/少量书足够),命中页聚合到章节;如需相关度排序/中文分词更优,再升级为 **SQL Server 全文检索 `CONTAINS`**(2016+ 对中文友好;需建全文索引 + 中文断词器)。 + +**其他配套接口**: +| 接口 | 说明 | +|---|---| +| `GET /api/pdf/book/list` | 书籍列表(含索引状态/进度) | +| `POST /api/pdf/book/index` | `{bookId}` 触发某书索引(后台任务,返回 `jobId/IndexProgress`) | +| `GET /api/pdf/book/index/status?bookId=` | 查询索引进度(前端轮询) | +| `GET /api/pdf/preview?bookId=&page=` | 返回该页渲染图,用于前端"点击命中页 → 预览" | + +--- + +## 6. 前端页面(FineUIPro.Web) + +- **书籍管理页**(如 `Doc/PdfBookManager.aspx`):上传/登记 PDF、显示索引状态与进度、触发/重试索引。 +- **章节阅读页 `HSSE/PDFDOC/PdfBookView.aspx`(已落地)**:左侧目录树 + 右侧正文阅读。数据优先读数据库 `Sys_PdfBook`/`Sys_PdfChapter`,库为空或未建表时回退到**内置示例书籍**(可直接在 PC 预览目录与正文)。切换书籍用顶部下拉。 +- **章节检索页**(如 `Doc/PdfSearch.aspx`):输入关键字 → 调用 `/api/pdf/search` → 列表展示命中章节(章节名 + 页码 + 片段),点击用 `pdf/preview` 预览对应页。 +- 复用现有菜单/权限体系(`common/PageBase.cs`、`Menu_*.xml`)。 + +--- + +## 7. 关键技术选型与理由 + +| 能力 | 选型 | 理由 | +|---|---|---| +| PDF 页渲染 | `Docnet.Core` / `PdfiumViewer` | 开源 MIT、纯 .NET、扫描页渲染可靠 | +| 识别提供者封装 | `IRecognizer`(千问 / DeepSeek / GLM / baidu 可切换) | 调市面大模型 + 传统OCR均可,配置即切换 | +| 识别(主导) | **视觉语言大模型**:千问 VL(`qwen-vl-max`)/ GLM-4V 等 | 直接读整页图+理解版式/图/表,输出结构化章节信息 | +| 识别(兜底/低成本) | 百度通用 OCR(复用现有 AipSdk/token) | 便宜、快、稳定,作为成本或降级路径 | +| 语义加工(可选) | 文本大模型 DeepSeek(`deepseek-chat`) | 对识别结果纠错/规整/章节边界确认/相关度排序 | +| 检索 | 先用 `LIKE`,可选 SQL 全文检索 | 单本/少量书 `LIKE` 足够;升级路径清晰 | +| 章节识别 | VLM 给出标题行+阅读顺序;正则+坐标过滤作兜底 | 视觉模型能理解版式,章节边界更准 | +| 图片/表格 | VLM 直接理解并转结构化文本/图注(无需区域切图) | 书中嵌入图/表,视觉模型天然区分正文/表/图 | +| 索引调度 | 后台 Quartz / 手动触发 | 整书识别分钟级,不宜阻塞请求 | + +> ⚠️ 需新增 NuGet 引用(`Docnet.Core` 或 `PdfiumViewer`);务必确认其与 `.NET Framework 4.8` 兼容,并连同 `dll` 一并打进发布包(`ReleasePackerALL2022.bat`)。 + +--- + +## 8. 边界、风险与应对 + +| 风险 | 影响 | 应对 | +|---|---|---| +| 扫描清晰度低/倾斜 | OCR 错字率高,命中率下降 | 200~300 DPI;倾斜校正;优先高精度版;保留"人工锚定章节"兜底 | +| 百度 QPS/配额限制 | 整书索引慢 | 小并发 + 指数退避重试 + 断点续跑;`IndexProgress` 上报 | +| 中文分词 | `LIKE` 无法语义匹配,仅字面命中 | 初期字面匹配可接受;后可按需升级全文检索/ES | +| 大书耗时 | 索引长时间占用资源 | 后台任务 + 进度展示,不阻塞在线请求 | +| 版权/敏感 | PDF 内容外发风险 | 仅本地索引存储;注意 `Web.config` 密钥保密,勿在接口回传全文 | +| dll 依赖新引入 | 发布包缺失导致运行异常 | 打发布包时并入对应 dll;本地用 `iisexpress /port:4528` 联调 | + +--- + +## 9. 分期实施计划 + +1. **P1(能力底座)**:`SgManager.AI` 新增 PDF 渲染 + 识别提供者接口 `IPdfRecognizer`;先接入**百度通用 OCR**(`PdfOcrService`),验证单页 OCR 质量(含图片/表格页)。 +2. **P2(索引)**:新增 `Sys_PdfBook/Page/Chapter` 三表(含 `DataBase/版本日志` 增量脚本)与 `Model` 实体;`BLL\PdfSearchService` 实现渲染→识别→章节识别→落库;建立一本书完整索引。 +3. **P3(接口+页面)**:`PdfSearchController`(`/search`、`/book/index`、`/status`、`/preview`);`FineUIPro.Web` 书籍管理与章节检索页。 +4. **P4(增强)**:接入**更多识别提供者**(DeepSeek-VL / GLM-4V / OpenAI 兼容多模态)与**第二段语义加工**(DeepSeek 纠错/章节确认/相关度),支持布局/表格/图处理;全文检索/相关度排序、多书检索、命中高亮。 + +--- + +## 10. 涉及改动文件清单(预估) + +- `SGGL/SgManager.AI/PdfOcrService.cs`(新增):渲染 + 识别调用(对接 `IRecognizer`)。 +- `SGGL/SgManager.AI/IRecognizer.cs`(新增):`IRecognizer` 接口 + `PageUnderstandingResult` 结果模型 + 提供者工厂(千问 / DeepSeek / GLM / baidu)。 +- `SGGL/SgManager.AI/VlmClient.cs`(新增):OpenAI 兼容 `/chat/completions` 多模态 HTTP 客户端(`image_url` + base64),供各家对接。 +- `SGGL/SgManager.AI/ConfigAppSetting.cs`(改):新增 `PdfRecognition.*` / `PdfSemantic.*` 配置项读取。 +- `SGGL/BLL/PdfSearchService.cs`(新增):索引与检索核心。 +- `SGGL/BLL/Common/Funs.cs`(改):如有全局配置需挂到 `Application_Start`。 +- `SGGL/WebAPI/Controllers/PdfSearchController.cs`(新增):接口。 +- `SGGL/BLL/PdfBookService.cs`(新增):目录/正文读取(库数据 + 示例数据回退)。 +- `SGGL/FineUIPro.Web/HSSE/PDFDOC/PdfBookView.aspx`(新增):PC 端「目录树 + 正文阅读」页(已落地,示例数据可预览);后续补 `PdfBookManager*`、`PdfSearch*`。 +- `SGGL/Model/Model.cs`(重新生成)+ `Model.csproj`:实体(当前用 SQLHelper 读取,不依赖实体重生成)。 +- `DataBase/版本日志/SGGLDB_V2026-08-27-001-pdfbook.sql`(新增):Sys_PdfBook / Sys_PdfChapter / Sys_PdfPage 三张表。 +- `.csproj`(`SgManager.AI` / `BLL` / `WebAPI`):新增 DLL 引用。 diff --git a/SGGL/BLL/API/APIPdfBookService.cs b/SGGL/BLL/API/APIPdfBookService.cs new file mode 100644 index 0000000..dc833f6 --- /dev/null +++ b/SGGL/BLL/API/APIPdfBookService.cs @@ -0,0 +1,443 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; + +namespace BLL +{ + /// + /// PDF 书籍模块 WebAPI 数据服务(移动端 / 第三方系统集成用)。 + /// 对应 PC 页面 HSSE/PDFDOC/PdfBookView.aspx 的完整功能:书籍、多级章节目录、章节正文(富文本 HTML)的 + /// 查询与维护(新增书籍 / 新增·编辑·删除章节 / 保存章节正文),并额外提供章节关键词检索。 + /// 数据表:Sys_PdfBook / Sys_PdfChapter(正文存 [Text] 列,为 UMeditor 生成的 HTML)。 + /// 说明:目录结构用 ParentChapterId + Level(1章 2节 3小节) 表达多级层级,SortNo 控制同级顺序。 + /// + public static class APIPdfBookService + { + #region 返回模型 + /// 书籍列表项。 + public class BookItem + { + /// 书籍主键。 + public string BookId { get; set; } + /// 书名。 + public string Title { get; set; } + /// 章节总数。 + public int ChapterCount { get; set; } + /// 登记时间。 + public DateTime? CreateTime { get; set; } + } + + /// 章节目录树节点(多级嵌套)。 + public class ChapterTreeNode + { + /// 章节主键。 + public string ChapterId { get; set; } + /// 章节名称。 + public string ChapterTitle { get; set; } + /// 层级:1章 2节 3小节。 + public int Level { get; set; } + /// 起始页码(无则为0)。 + public int PageStart { get; set; } + /// 结束页码(无则为0)。 + public int PageEnd { get; set; } + /// 是否已有正文内容(用于客户端标识可读章节)。 + public bool HasContent { get; set; } + /// 子章节列表(叶子章节为空数组)。 + public List Children { get; set; } + } + + /// 章节正文详情。 + public class ChapterDetailItem + { + /// 章节主键。 + public string ChapterId { get; set; } + /// 所属书籍主键。 + public string BookId { get; set; } + /// 所属书籍名称。 + public string BookTitle { get; set; } + /// 章节名称。 + public string ChapterTitle { get; set; } + /// 父章节主键(顶级为 null)。 + public string ParentChapterId { get; set; } + /// 层级:1章 2节 3小节。 + public int Level { get; set; } + /// 起始页码(无则为0)。 + public int PageStart { get; set; } + /// 结束页码(无则为0)。 + public int PageEnd { get; set; } + /// 正文(富文本 HTML,可直接用 WebView 渲染)。 + public string Content { get; set; } + /// 正文纯文本(去掉 HTML 标签,便于全文展示/搜索)。 + public string ContentText { get; set; } + } + + /// 章节关键词检索命中项。 + public class SearchHitItem + { + /// 书籍主键。 + public string BookId { get; set; } + /// 书籍名称。 + public string BookTitle { get; set; } + /// 章节主键。 + public string ChapterId { get; set; } + /// 章节名称。 + public string ChapterTitle { get; set; } + /// 起始页码(无则为0)。 + public int PageStart { get; set; } + /// 结束页码(无则为0)。 + public int PageEnd { get; set; } + /// 命中片段(关键词前后各约40字)。 + public string Snippet { get; set; } + } + #endregion + + #region 查询:书籍列表 + /// + /// 获取全部书籍(按登记时间升序,与页面下拉一致)。 + /// + public static List GetBooks() + { + var list = new List(); + DataTable dt = SQLHelper.GetDataTableRunText( + "SELECT b.BookId, b.Title, b.CreateTime, " + + "(SELECT COUNT(*) FROM dbo.Sys_PdfChapter c WHERE c.BookId = b.BookId) AS ChapterCount " + + "FROM dbo.Sys_PdfBook b ORDER BY b.CreateTime", new SqlParameter[] { }); + if (dt == null) + return list; + foreach (DataRow r in dt.Rows) + { + list.Add(new BookItem + { + BookId = r["BookId"] == null ? "" : r["BookId"].ToString(), + Title = r["Title"] == null ? "" : r["Title"].ToString(), + ChapterCount = r["ChapterCount"] == DBNull.Value ? 0 : Convert.ToInt32(r["ChapterCount"]), + CreateTime = r["CreateTime"] == DBNull.Value ? (DateTime?)null : Convert.ToDateTime(r["CreateTime"]) + }); + } + return list; + } + #endregion + + #region 查询:多级章节目录树 + /// + /// 获取某本书的多级章节目录树(嵌套 Children,顶级为根的数组;按 SortNo 排序)。 + /// + public static List GetChapterTree(string bookId) + { + if (string.IsNullOrWhiteSpace(bookId)) + throw new Exception("bookId 不能为空"); + + var chapters = PdfBookService.GetChapters(bookId); + var result = new List(); + if (chapters == null || chapters.Count == 0) + return result; + + // 有正文标记(一次查询) + var hasContentSet = new HashSet(); + DataTable dt = SQLHelper.GetDataTableRunText( + "SELECT ChapterId FROM dbo.Sys_PdfChapter " + + "WHERE BookId = @BookId AND [Text] IS NOT NULL AND LTRIM(RTRIM([Text])) <> N''", + new[] { new SqlParameter("@BookId", bookId) }); + if (dt != null) + foreach (DataRow r in dt.Rows) + hasContentSet.Add(r["ChapterId"] == null ? "" : r["ChapterId"].ToString()); + + // 1) 先为每个章节建节点 + var nodeMap = new Dictionary(); + foreach (PdfChapter c in chapters) + { + nodeMap[c.ChapterId] = new ChapterTreeNode + { + ChapterId = c.ChapterId, + ChapterTitle = c.Title, + Level = c.Level, + PageStart = c.PageStart, + PageEnd = c.PageEnd, + HasContent = hasContentSet.Contains(c.ChapterId), + Children = new List() + }; + } + + // 2) 按父章节挂接(父不在列表中的作为顶级) + foreach (PdfChapter c in chapters) + { + var node = nodeMap[c.ChapterId]; + if (!string.IsNullOrWhiteSpace(c.ParentChapterId) && nodeMap.ContainsKey(c.ParentChapterId)) + nodeMap[c.ParentChapterId].Children.Add(node); + else + result.Add(node); + } + return result; + } + #endregion + + #region 查询:章节正文 + /// + /// 获取章节正文详情(含 HTML 与纯文本);章节不存在返回 null。 + /// + public static ChapterDetailItem GetChapterDetail(string chapterId) + { + if (string.IsNullOrWhiteSpace(chapterId)) + throw new Exception("chapterId 不能为空"); + + DataTable dt = SQLHelper.GetDataTableRunText( + "SELECT c.ChapterId, c.BookId, b.Title AS BookTitle, c.ParentChapterId, c.[Level], " + + "c.ChapterTitle, c.PageStart, c.PageEnd, c.[Text] " + + "FROM dbo.Sys_PdfChapter c INNER JOIN dbo.Sys_PdfBook b ON c.BookId = b.BookId " + + "WHERE c.ChapterId = @ChapterId", + new[] { new SqlParameter("@ChapterId", chapterId) }); + if (dt == null || dt.Rows.Count == 0) + return null; + + DataRow r = dt.Rows[0]; + string html = r["Text"] == DBNull.Value ? "" : r["Text"].ToString(); + var item = new ChapterDetailItem + { + ChapterId = r["ChapterId"] == null ? "" : r["ChapterId"].ToString(), + BookId = r["BookId"] == null ? "" : r["BookId"].ToString(), + BookTitle = r["BookTitle"] == null ? "" : r["BookTitle"].ToString(), + ParentChapterId = r["ParentChapterId"] == DBNull.Value ? null : r["ParentChapterId"].ToString(), + Level = r["Level"] == DBNull.Value ? 1 : Convert.ToInt32(r["Level"]), + ChapterTitle = r["ChapterTitle"] == null ? "" : r["ChapterTitle"].ToString(), + PageStart = r["PageStart"] == DBNull.Value ? 0 : Convert.ToInt32(r["PageStart"]), + PageEnd = r["PageEnd"] == DBNull.Value ? 0 : Convert.ToInt32(r["PageEnd"]), + Content = html, + ContentText = HtmlToPlainText(html) + }; + return item; + } + #endregion + + #region 查询:章节关键词检索 + /// + /// 章节关键词检索:在章节正文中按关键词做字面匹配(正文为 HTML,匹配前先剔除标签)。 + /// bookId 可空:不传则全库检索。 + /// + public static List SearchChapter(string keyword, string bookId) + { + if (string.IsNullOrWhiteSpace(keyword)) + throw new Exception("keyword 不能为空"); + + // LIKE 通配符转义(ESCAPE 字符为反斜杠) + string esc = keyword.Replace("\\", "\\\\").Replace("%", "\\%").Replace("_", "\\_"); + var ps = new List + { + new SqlParameter("@Keyword", "%" + esc + "%") + }; + string where = "c.[Text] LIKE @Keyword ESCAPE '\\'"; + if (!string.IsNullOrWhiteSpace(bookId)) + { + where += " AND c.BookId = @BookId"; + ps.Add(new SqlParameter("@BookId", bookId)); + } + + DataTable dt = SQLHelper.GetDataTableRunText( + "SELECT c.ChapterId, c.ChapterTitle, c.BookId, b.Title AS BookTitle, " + + "c.PageStart, c.PageEnd, c.[Text] " + + "FROM dbo.Sys_PdfChapter c INNER JOIN dbo.Sys_PdfBook b ON c.BookId = b.BookId " + + "WHERE " + where + " ORDER BY b.Title, c.SortNo", ps.ToArray()); + + var list = new List(); + if (dt == null) + return list; + foreach (DataRow r in dt.Rows) + { + string html = r["Text"] == DBNull.Value ? "" : r["Text"].ToString(); + string plain = HtmlToPlainText(html); + list.Add(new SearchHitItem + { + BookId = r["BookId"] == null ? "" : r["BookId"].ToString(), + BookTitle = r["BookTitle"] == null ? "" : r["BookTitle"].ToString(), + ChapterId = r["ChapterId"] == null ? "" : r["ChapterId"].ToString(), + ChapterTitle = r["ChapterTitle"] == null ? "" : r["ChapterTitle"].ToString(), + PageStart = r["PageStart"] == DBNull.Value ? 0 : Convert.ToInt32(r["PageStart"]), + PageEnd = r["PageEnd"] == DBNull.Value ? 0 : Convert.ToInt32(r["PageEnd"]), + Snippet = BuildSnippet(plain, keyword) + }); + } + return list; + } + + /// 取关键词命中片段(前后各约40字)。 + private static string BuildSnippet(string plain, string keyword) + { + if (string.IsNullOrEmpty(plain)) + return ""; + int idx = plain.IndexOf(keyword, StringComparison.OrdinalIgnoreCase); + if (idx < 0) + return plain.Length > 120 ? plain.Substring(0, 120) + "……" : plain; + int start = Math.Max(0, idx - 40); + int len = Math.Min(plain.Length - start, keyword.Length + 80); + return (start > 0 ? "……" : "") + plain.Substring(start, len) + (start + len < plain.Length ? "……" : ""); + } + + /// HTML 转纯文本(去标签、解码实体、压缩空白)。 + private static string HtmlToPlainText(string html) + { + if (string.IsNullOrEmpty(html)) + return ""; + string s = Regex.Replace(html, "(?i)<(br|/p|/div|/li|/tr|/h[1-6])[^>]*>", "\n"); + s = Regex.Replace(s, "<[^>]+>", ""); + s = System.Net.WebUtility.HtmlDecode(s); + s = Regex.Replace(s, "[\r\n]+", "\n"); + s = Regex.Replace(s, "[ \t]+", " "); + return s.Trim(); + } + #endregion + + #region 维护:书籍 + /// + /// 新增书籍(仅书名;FilePath/TotalPages/IndexStatus 与页面一致:NULL/0/2)。 + /// + public static string AddBook(string title, string createUser) + { + if (string.IsNullOrWhiteSpace(title)) + throw new Exception("书名不能为空"); + if (string.IsNullOrWhiteSpace(createUser)) + createUser = "api"; + + string bookId = NewId("PB"); + SQLHelper.ExecutSql( + "INSERT INTO dbo.Sys_PdfBook (BookId, Title, FilePath, TotalPages, IndexStatus, CreateUser, CreateTime) VALUES ('" + + SqlEsc(bookId) + "',N'" + SqlEsc(title.Trim()) + "',NULL,0,2,N'" + + SqlEsc(createUser) + "',GETDATE())"); + return bookId; + } + #endregion + + #region 维护:章节(新增 / 改名 / 删除 / 保存正文) + /// + /// 新增章节:parentChapterId 为空则为顶级章节,否则挂到指定父章节下(层级=父级+1)。 + /// SortNo 取全书当前最大值+1(与页面逻辑一致)。 + /// + public static string AddChapter(string bookId, string parentChapterId, string chapterTitle, string createUser) + { + if (string.IsNullOrWhiteSpace(bookId)) + throw new Exception("bookId 不能为空"); + if (string.IsNullOrWhiteSpace(chapterTitle)) + throw new Exception("章节名称不能为空"); + + int level = 1; + if (!string.IsNullOrWhiteSpace(parentChapterId)) + { + int parentLevel = GetInt( + "SELECT ISNULL([Level],1) FROM dbo.Sys_PdfChapter WHERE ChapterId='" + SqlEsc(parentChapterId) + "'"); + if (parentLevel <= 0) + throw new Exception("父章节不存在:" + parentChapterId); + level = parentLevel + 1; + } + int sort = GetInt( + "SELECT ISNULL(MAX(SortNo),0) FROM dbo.Sys_PdfChapter WHERE BookId='" + SqlEsc(bookId) + "'") + 1; + + string chapterId = NewId("CH"); + SQLHelper.ExecutSql( + "INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, [Text], SortNo) VALUES ('" + + SqlEsc(chapterId) + "','" + SqlEsc(bookId) + "'," + + (string.IsNullOrWhiteSpace(parentChapterId) ? "NULL" : "'" + SqlEsc(parentChapterId) + "'") + + "," + level + ",N'" + SqlEsc(chapterTitle.Trim()) + "',NULL,NULL,N''," + sort + ")"); + return chapterId; + } + + /// + /// 编辑章节:仅修改章节名称。 + /// + public static void EditChapter(string chapterId, string chapterTitle) + { + if (string.IsNullOrWhiteSpace(chapterId)) + throw new Exception("chapterId 不能为空"); + if (string.IsNullOrWhiteSpace(chapterTitle)) + throw new Exception("章节名称不能为空"); + if (GetInt("SELECT COUNT(*) FROM dbo.Sys_PdfChapter WHERE ChapterId='" + SqlEsc(chapterId) + "'") == 0) + throw new Exception("章节不存在:" + chapterId); + + SQLHelper.ExecutSql("UPDATE dbo.Sys_PdfChapter SET ChapterTitle=N'" + SqlEsc(chapterTitle.Trim()) + + "' WHERE ChapterId='" + SqlEsc(chapterId) + "'"); + } + + /// + /// 删除章节及其全部子章节(递归收集自身+后代后一次性删除)。 + /// + public static int DeleteChapter(string chapterId) + { + if (string.IsNullOrWhiteSpace(chapterId)) + throw new Exception("chapterId 不能为空"); + + DataTable dt = SQLHelper.GetDataTableRunText( + "SELECT BookId FROM dbo.Sys_PdfChapter WHERE ChapterId=@ChapterId", + new[] { new SqlParameter("@ChapterId", chapterId) }); + if (dt == null || dt.Rows.Count == 0) + throw new Exception("章节不存在:" + chapterId); + string bookId = dt.Rows[0]["BookId"].ToString(); + + var all = PdfBookService.GetChapters(bookId); + var ids = new List { chapterId }; + bool changed = true; + while (changed) + { + changed = false; + foreach (PdfChapter c in all) + { + if (!ids.Contains(c.ChapterId) && ids.Contains(c.ParentChapterId ?? "")) + { + ids.Add(c.ChapterId); + changed = true; + } + } + } + + var sb = new StringBuilder(); + foreach (string id in ids) + { + if (sb.Length > 0) + sb.Append(","); + sb.Append("'").Append(id.Replace("'", "''")).Append("'"); + } + SQLHelper.ExecutSql("DELETE FROM dbo.Sys_PdfChapter WHERE ChapterId IN (" + sb + ")"); + return ids.Count; + } + + /// + /// 保存章节正文(富文本 HTML,与页面"保存内容"一致)。 + /// + public static void SaveContent(string chapterId, string content) + { + if (string.IsNullOrWhiteSpace(chapterId)) + throw new Exception("chapterId 不能为空"); + if (GetInt("SELECT COUNT(*) FROM dbo.Sys_PdfChapter WHERE ChapterId='" + SqlEsc(chapterId) + "'") == 0) + throw new Exception("章节不存在:" + chapterId); + + SQLHelper.ExecutSql("UPDATE dbo.Sys_PdfChapter SET [Text]=N'" + SqlEsc(content ?? "") + + "' WHERE ChapterId='" + SqlEsc(chapterId) + "'"); + } + #endregion + + #region 工具 + /// SQL 字符串转义。 + private static string SqlEsc(string s) + { + return (s ?? "").Replace("'", "''"); + } + + /// 执行 SELECT 首行首列并转 int(查无返回0)。 + private static int GetInt(string sql) + { + DataTable dt = SQLHelper.GetDataTableRunText(sql, new SqlParameter[] { }); + if (dt == null || dt.Rows.Count == 0) + return 0; + object v = dt.Rows[0][0]; + return v == DBNull.Value || v == null ? 0 : Convert.ToInt32(v); + } + + /// 生成业务主键(前缀+时间+随机,与页面一致)。 + private static string NewId(string prefix) + { + return prefix + DateTime.Now.ToString("yyyyMMddHHmmss") + + Guid.NewGuid().ToString("N").Substring(0, 4); + } + #endregion + } +} diff --git a/SGGL/BLL/BLL.csproj b/SGGL/BLL/BLL.csproj index c7bda8e..a52784e 100644 --- a/SGGL/BLL/BLL.csproj +++ b/SGGL/BLL/BLL.csproj @@ -169,6 +169,7 @@ + @@ -818,6 +819,7 @@ + @@ -1165,4 +1167,4 @@ --> - \ No newline at end of file + diff --git a/SGGL/BLL/PdfBookService.cs b/SGGL/BLL/PdfBookService.cs new file mode 100644 index 0000000..d2abbe0 --- /dev/null +++ b/SGGL/BLL/PdfBookService.cs @@ -0,0 +1,202 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; + +namespace BLL +{ + /// PDF 书籍视图模型。 + public class PdfBook + { + public string BookId { get; set; } + public string Title { get; set; } + public int ChapterCount { get; set; } + public string Tag { get; set; } + } + + /// PDF 章节(目录项)视图模型,支持多级目录(含父章节与层级)。 + public class PdfChapter + { + public string ChapterId { get; set; } + public string BookId { get; set; } + public string ParentChapterId { get; set; } // 上一级章节,NULL=顶级 + public int Level { get; set; } // 层级:1章 2节 3小节 + public string Title { get; set; } + public int PageStart { get; set; } + public int PageEnd { get; set; } + public int SortNo { get; set; } + } + + /// 章节正文视图模型。 + public class PdfChapterDetail + { + public string ChapterId { get; set; } + public string Title { get; set; } + public int PageStart { get; set; } + public int PageEnd { get; set; } + public string Content { get; set; } + } + + /// + /// PDF 书籍目录/正文读取服务。 + /// 优先读取数据库表 Sys_PdfBook / Sys_PdfChapter;当库无数据或未建表时,回退到内置示例数据,便于界面预览。 + /// + public static class PdfBookService + { + // —— 内置示例数据(仅用于 UI 预览)—— + private const string SampleBookId = "SAMPLE_SP_001"; + private static readonly List _sampleBooks = new List + { + new PdfBook { BookId = SampleBookId, Title = "《建筑施工安全防护(示例)》", Tag = "示例数据", ChapterCount = 15 } + }; + + // 多级目录示例(对应真实书籍:第一章 → 1.1 → 1.2.1) + private static readonly List _sampleChapters = new List + { + Ch("CH01", "第一章 安全防护", 1, 1, 1, 1, null), + Ch("CH011", "1.1 \u201c三宝\u201d\u201c四口\u201d\u201c五临边\u201d", 1, 1, 2, 2, "CH01"), + Ch("CH012", "1.2 三宝", 1, 3, 3, 2, "CH01"), + Ch("CH0121", "1.2.1 安全帽", 1, 1, 4, 3, "CH012"), + Ch("CH0122", "1.2.2 安全带", 2, 2, 5, 3, "CH012"), + Ch("CH0123", "1.2.3 安全网", 3, 3, 6, 3, "CH012"), + Ch("CH013", "1.3 \u201c四口\u201d安全防护", 4, 6, 7, 2, "CH01"), + Ch("CH0131", "1.3.1 电梯井竖向洞口防护", 4, 4, 8, 3, "CH013"), + Ch("CH0132", "1.3.2 预留洞口安全防护", 5, 5, 9, 3, "CH013"), + Ch("CH0133", "1.3.3 通道口安全防护", 6, 6, 10, 3, "CH013"), + Ch("CH014", "1.4 \u201c五临边\u201d安全防护", 10, 12, 11, 2, "CH01"), + Ch("CH0141", "1.4.1 临边作业", 10, 10, 12, 3, "CH014"), + Ch("CH0142", "1.4.2 基坑临边防护", 10, 10, 13, 3, "CH014"), + Ch("CH0143", "1.4.3 楼层临边防护", 11, 11, 14, 3, "CH014"), + Ch("CH0144", "1.4.4 楼梯临边防护", 12, 12, 15, 3, "CH014") + }; + + private static readonly Dictionary _sampleContents = new Dictionary + { + { "CH01", Detail("CH01", "第一章 安全防护", 1, 1, "本章为施工现场安全防护的总述,涵盖\u201c三宝\u201d\u201c四口\u201d\u201c五临边\u201d等基本防护要求。") }, + { "CH011", Detail("CH011", "1.1 \u201c三宝\u201d\u201c四口\u201d\u201c五临边\u201d", 1, 1, "本节概述安全帽、安全带、安全网\u201c三宝\u201d,简称、预留洞口等\u201c四口\u201d以及临边等\u201c五临边\u201d的防护要点。") }, + { "CH012", Detail("CH012", "1.2 三宝", 1, 3, "三宝指安全帽、安全带、安全网,是施工现场最基本的个人防护用品。") }, + { "CH0121", Detail("CH0121", "1.2.1 安全帽", 1, 1, "进入施工现场必须正确佩戴安全帽,并系紧下颏带;安全帽应符合国家标准,不得使用破损或过期的安全帽。") }, + { "CH0122", Detail("CH0122", "1.2.2 安全带", 2, 2, "高处作业应正确使用安全带,做到高挂低用,系挂在牢固可靠的结构上,严禁低挂高用。") }, + { "CH0123", Detail("CH0123", "1.2.3 安全网", 3, 3, "作业面周围应按要求张挂安全平网或立网,安全网应绑扎牢固、无破损,严禁随意拆除。") }, + { "CH013", Detail("CH013", "1.3 \u201c四口\u201d安全防护", 4, 6, "四口指楼梯口、电梯井口、预留洞口、通道口,均应设置可靠的防护设施。") }, + { "CH0131", Detail("CH0131", "1.3.1 电梯井竖向洞口防护", 4, 4, "电梯井口应设置固定式防护门,井内每隔两层并不超过10m设置一道安全平网。") }, + { "CH0132", Detail("CH0132", "1.3.2 预留洞口安全防护", 5, 5, "楼板、屋面等预留洞口应设置盖板或围挡防护,并设置警示标志。") }, + { "CH0133", Detail("CH0133", "1.3.3 通道口安全防护", 6, 6, "通道口应搭设防护棚,并设置明显的安全警示标志和夜间警示灯。") }, + { "CH014", Detail("CH014", "1.4 \u201c五临边\u201d安全防护", 10, 12, "五临边指基坑边、楼层边、屋面边、阳台边、楼梯边等临边作业场所,均应设置防护栏杆。") }, + { "CH0141", Detail("CH0141", "1.4.1 临边作业", 10, 10, "临边作业应设置防护栏杆并挂设安全网,作业人员应正确佩戴和使用安全带。") }, + { "CH0142", Detail("CH0142", "1.4.2 基坑临边防护", 10, 10, "基坑周边应设置高度不低于1.2m的防护栏杆,并设置警示与夜间警示灯。") }, + { "CH0143", Detail("CH0143", "1.4.3 楼层临边防护", 11, 11, "楼层临边应设置防护栏杆和挡脚板,严防人员坠落和物件坠落伤人。") }, + { "CH0144", Detail("CH0144", "1.4.4 楼梯临边防护", 12, 12, "楼梯临边、休息平台等部位应设置临时防护栏杆,随层随设。") } + }; + + private static PdfChapter Ch(string id, string title, int start, int end, int sort, int level, string parent) + { + return new PdfChapter + { + ChapterId = id, BookId = SampleBookId, Title = title, + PageStart = start, PageEnd = end, SortNo = sort, Level = level, ParentChapterId = parent + }; + } + + private static PdfChapterDetail Detail(string id, string title, int pageStart, int pageEnd, string content) + { + return new PdfChapterDetail { ChapterId = id, Title = title, PageStart = pageStart, PageEnd = pageEnd, Content = content }; + } + + /// 获取书籍列表。 + public static List GetBooks() + { + try + { + DataTable dt = SQLHelper.GetDataTableRunText( + "SELECT BookId, Title FROM dbo.Sys_PdfBook ORDER BY CreateTime", new SqlParameter[] { }); + if (dt != null && dt.Rows.Count > 0) + { + var list = new List(); + foreach (DataRow r in dt.Rows) + list.Add(new PdfBook + { + BookId = r["BookId"] == null ? "" : r["BookId"].ToString(), + Title = r["Title"] == null ? "" : r["Title"].ToString(), + Tag = "数据库" + }); + return list; + } + } + catch (Exception) + { + // 未建表或查询失败,回退示例数据 + } + return _sampleBooks; + } + + /// 获取某本书的章节(目录,含层级与父章节,供页面递归建树)。 + public static List GetChapters(string bookId) + { + if (bookId == SampleBookId) + return _sampleChapters; + + try + { + DataTable dt = SQLHelper.GetDataTableRunText( + "SELECT ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, SortNo " + + "FROM dbo.Sys_PdfChapter WHERE BookId=@BookId ORDER BY SortNo", + new[] { new SqlParameter("@BookId", bookId) }); + var list = new List(); + if (dt != null) + foreach (DataRow r in dt.Rows) + { + var c = new PdfChapter + { + ChapterId = r["ChapterId"] == null ? "" : r["ChapterId"].ToString(), + BookId = r["BookId"] == null ? "" : r["BookId"].ToString(), + ParentChapterId = r["ParentChapterId"] == DBNull.Value ? null : r["ParentChapterId"].ToString(), + Title = r["ChapterTitle"] == null ? "" : r["ChapterTitle"].ToString(), + SortNo = r["SortNo"] == DBNull.Value ? 0 : Convert.ToInt32(r["SortNo"]), + Level = r["Level"] == DBNull.Value ? 1 : Convert.ToInt32(r["Level"]) + }; + c.PageStart = r["PageStart"] == DBNull.Value ? 0 : Convert.ToInt32(r["PageStart"]); + c.PageEnd = r["PageEnd"] == DBNull.Value ? 0 : Convert.ToInt32(r["PageEnd"]); + list.Add(c); + } + return list; + } + catch (Exception) + { + return new List(); + } + } + + /// 获取章节正文。 + public static PdfChapterDetail GetChapterContent(string chapterId) + { + if (!string.IsNullOrWhiteSpace(chapterId) && chapterId.StartsWith("CH") && _sampleContents.ContainsKey(chapterId)) + return _sampleContents[chapterId]; + + try + { + DataTable dt = SQLHelper.GetDataTableRunText( + "SELECT ChapterId, ChapterTitle, PageStart, PageEnd, [Text] FROM dbo.Sys_PdfChapter WHERE ChapterId=@ChapterId", + new[] { new SqlParameter("@ChapterId", chapterId) }); + if (dt != null && dt.Rows.Count > 0) + { + DataRow r = dt.Rows[0]; + return new PdfChapterDetail + { + ChapterId = r["ChapterId"] == null ? "" : r["ChapterId"].ToString(), + Title = r["ChapterTitle"] == null ? "" : r["ChapterTitle"].ToString(), + PageStart = r["PageStart"] == DBNull.Value ? 0 : Convert.ToInt32(r["PageStart"]), + PageEnd = r["PageEnd"] == DBNull.Value ? 0 : Convert.ToInt32(r["PageEnd"]), + Content = r["Text"] == DBNull.Value ? "" : r["Text"].ToString() + }; + } + } + catch (Exception) + { + // 未建表或查询失败 + } + return null; + } + } +} diff --git a/SGGL/BLL/ProjectData/UnitWorkService.cs b/SGGL/BLL/ProjectData/UnitWorkService.cs index 8df0e88..9be28ff 100644 --- a/SGGL/BLL/ProjectData/UnitWorkService.cs +++ b/SGGL/BLL/ProjectData/UnitWorkService.cs @@ -284,13 +284,7 @@ namespace BLL } public static ListItem[] GetUnitWork(string projectId) { - List q = (from x in Funs.DB.WBS_UnitWork where x.ProjectId == projectId && x.SuperUnitWork == null orderby x.UnitWorkCode select x).ToList(); - ListItem[] item = new ListItem[q.Count()]; - for (int i = 0; i < q.Count(); i++) - { - item[i] = new ListItem((q[i].UnitWorkCode + "-" + q[i].UnitWorkName + GetProjectType(q[i].ProjectType)) ?? "", q[i].UnitWorkId.ToString()); - } - return item; + return GetUnitWorkList(projectId); } public static ListItem[] GetUnitWork(string projectId,string installationId) { @@ -335,16 +329,9 @@ namespace BLL Funs.FineUIPleaseSelect(dropName); } } - public static void InitUnitWorkDownList(FineUIPro.DropDownList dropName, string projectId,string unitId, bool isShowPlease) + public static void InitUnitWorkDownList(FineUIPro.DropDownList dropName, string projectId, string unitId, bool isShowPlease) { - dropName.DataValueField = "Value"; - dropName.DataTextField = "Text"; - dropName.DataSource = BLL.UnitWorkService.GetUnitWorkList(projectId); - dropName.DataBind(); - if (isShowPlease) - { - Funs.FineUIPleaseSelect(dropName); - } + InitUnitWorkDownList(dropName, projectId, isShowPlease); } /// /// 单位工程表下拉框 @@ -484,26 +471,29 @@ namespace BLL return unitWorkName; } + /// + /// 获取单位工程下拉列表数据源 + /// + private static object GetUnitWorkDropDownSource(string projectId) + { + return from x in Funs.DB.WBS_UnitWork + where x.ProjectId == projectId && x.SuperUnitWork == null + orderby x.UnitWorkCode + select new + { + x.UnitWorkId, + UnitWorkName = GetUnitWorkALLName(x.UnitWorkId) + }; + } + /// /// 获取单位工程下拉列表 /// - /// - /// - /// public static void InitUnitWorkDropDownList(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease) { - var unitWorks = from x in Funs.DB.WBS_UnitWork - where x.ProjectId == projectId && x.SuperUnitWork == null - orderby x.UnitWorkCode - select new - { - x.UnitWorkId, - UnitWorkName = GetUnitWorkALLName(x.UnitWorkId) - }; - dropName.DataValueField = "UnitWorkId"; dropName.DataTextField = "UnitWorkName"; - dropName.DataSource = unitWorks; + dropName.DataSource = GetUnitWorkDropDownSource(projectId); dropName.DataBind(); if (isShowPlease) { @@ -512,25 +502,13 @@ namespace BLL } /// - /// 获取单位工程下拉列表 + /// 获取单位工程名称下拉列表 /// - /// - /// - /// public static void InitUnitWorkNameDropDownList(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease) { - var unitWorks = from x in Funs.DB.WBS_UnitWork - where x.ProjectId == projectId && x.SuperUnitWork == null - orderby x.UnitWorkCode - select new - { - x.UnitWorkId, - UnitWorkName = GetUnitWorkALLName(x.UnitWorkId) - }; - dropName.DataValueField = "UnitWorkName"; dropName.DataTextField = "UnitWorkName"; - dropName.DataSource = unitWorks; + dropName.DataSource = GetUnitWorkDropDownSource(projectId); dropName.DataBind(); if (isShowPlease) { diff --git a/SGGL/BLL/ZHGL/DataSync/CQMSDataService.cs b/SGGL/BLL/ZHGL/DataSync/CQMSDataService.cs index 9377ca3..d5b3846 100644 --- a/SGGL/BLL/ZHGL/DataSync/CQMSDataService.cs +++ b/SGGL/BLL/ZHGL/DataSync/CQMSDataService.cs @@ -289,6 +289,51 @@ namespace BLL select x).FirstOrDefault(); return q; } + /// + /// 汇总项目质量数据生成单位级CQMS汇总记录 + /// + private static CQMSData_CQMS BuildCqmsSummary(string unitId, Model.Base_Unit baseUnit, List projectData) + { + return new CQMSData_CQMS + { + UnitId = unitId, + CollCropCode = baseUnit.CollCropCode, + UnitName = baseUnit.UnitName, + ReportDate = DateTime.Now.Date, + TrainPersonNum = projectData.Sum(x => x.TrainPersonNum), + TechnicalDisclosePersonNum = projectData.Sum(x => x.TechnicalDisclosePersonNum), + UseNum = projectData.Sum(x => x.UseNum), + OKNum = projectData.Sum(x => x.OKNum), + CompanyPersonNum = GetCompanyPersonNum(), + BranchPersonNum = GetBranchPersonNum(), + ProjectPersonNum = projectData.Sum(x => x.ProjectPersonNum), + ProblemNum = projectData.Sum(x => x.ProblemNum), + ProblemCompletedNum = projectData.Sum(x => x.ProblemCompletedNum), + ProblemNotCompletedNum = projectData.Sum(x => x.ProblemNotCompletedNum), + SNum = projectData.Sum(x => x.SNum), + ANum = projectData.Sum(x => x.ANum), + BNum = projectData.Sum(x => x.BNum), + CNum = projectData.Sum(x => x.CNum), + KeyProcessNum = projectData.Sum(x => x.KeyProcessNum), + KeyProcessOKNum = projectData.Sum(x => x.KeyProcessOKNum), + SpecialProcessNum = projectData.Sum(x => x.SpecialProcessNum), + SpecialProcessOKNum = projectData.Sum(x => x.SpecialProcessOKNum), + ConcealedWorksNum = projectData.Sum(x => x.ConcealedWorksNum), + ConcealedWorksOKNum = projectData.Sum(x => x.ConcealedWorksOKNum), + UnitProjectOnesNum = projectData.Sum(x => x.UnitProjectOnesNum), + UnitProjectOnesOKNum = projectData.Sum(x => x.UnitProjectOnesOKNum), + MaterialInRecheckNum = projectData.Sum(x => x.MaterialInRecheckNum), + MaterialInRecheckOKNum = projectData.Sum(x => x.MaterialInRecheckOKNum), + SingleProjectNum = projectData.Sum(x => x.SingleProjectNum), + UnitProjectNum = projectData.Sum(x => x.UnitProjectNum), + SubProjectNum = projectData.Sum(x => x.SubProjectNum), + SubdivisionalWorksNum = projectData.Sum(x => x.SubdivisionalWorksNum), + InspectionLotNum = projectData.Sum(x => x.InspectionLotNum), + CreateMan = Const.sysglyId, + CreateDate = DateTime.Now + }; + } + public static CQMSData_CQMS GetSubUnitCqmsDataByDate(string Unitid, DateTime? reportdate) { @@ -302,44 +347,7 @@ namespace BLL var ProjectData = (from x in Funs.DB.Project_CQMSData_CQMS where x.ReportDate == reportdate && projectlist.Select(e => e.ProjectId).Contains(x.ProjectId) select x).ToList(); - result = new CQMSData_CQMS - { - UnitId = Unitid, - CollCropCode = base_Unit.CollCropCode, - UnitName = base_Unit.UnitName, - ReportDate = DateTime.Now.Date, - TrainPersonNum = ProjectData.Sum(x => x.TrainPersonNum), - TechnicalDisclosePersonNum = ProjectData.Sum(x => x.TechnicalDisclosePersonNum), - UseNum = ProjectData.Sum(x => x.UseNum), - OKNum = ProjectData.Sum(x => x.OKNum), - CompanyPersonNum = GetCompanyPersonNum(), - BranchPersonNum = GetBranchPersonNum(), - ProjectPersonNum = ProjectData.Sum(x => x.ProjectPersonNum), - ProblemNum = ProjectData.Sum(x => x.ProblemNum), - ProblemCompletedNum = ProjectData.Sum(x => x.ProblemCompletedNum), - ProblemNotCompletedNum = ProjectData.Sum(x => x.ProblemNotCompletedNum), - SNum = ProjectData.Sum(x => x.SNum), - ANum = ProjectData.Sum(x => x.ANum), - BNum = ProjectData.Sum(x => x.BNum), - CNum = ProjectData.Sum(x => x.CNum), - KeyProcessNum = ProjectData.Sum(x => x.KeyProcessNum), - KeyProcessOKNum = ProjectData.Sum(x => x.KeyProcessOKNum), - SpecialProcessNum = ProjectData.Sum(x => x.SpecialProcessNum), - SpecialProcessOKNum = ProjectData.Sum(x => x.SpecialProcessOKNum), - ConcealedWorksNum = ProjectData.Sum(x => x.ConcealedWorksNum), - ConcealedWorksOKNum = ProjectData.Sum(x => x.ConcealedWorksOKNum), - UnitProjectOnesNum = ProjectData.Sum(x => x.UnitProjectOnesNum), - UnitProjectOnesOKNum = ProjectData.Sum(x => x.UnitProjectOnesOKNum), - MaterialInRecheckNum = ProjectData.Sum(x => x.MaterialInRecheckNum), - MaterialInRecheckOKNum = ProjectData.Sum(x => x.MaterialInRecheckOKNum), - SingleProjectNum = ProjectData.Sum(x => x.SingleProjectNum), - UnitProjectNum = ProjectData.Sum(x => x.UnitProjectNum), - SubProjectNum = ProjectData.Sum(x => x.SubProjectNum), - SubdivisionalWorksNum = ProjectData.Sum(x => x.SubdivisionalWorksNum), - InspectionLotNum = ProjectData.Sum(x => x.InspectionLotNum), - CreateMan = Const.sysglyId, - CreateDate = DateTime.Now - }; + result = BuildCqmsSummary(Unitid, base_Unit, ProjectData); return result; } public static void UpdateTodyData_State() @@ -396,44 +404,7 @@ namespace BLL var ProjectData = (from x in Funs.DB.Project_CQMSData_CQMS where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date select x).ToList(); - var table = new CQMSData_CQMS - { - UnitId = thisUnitId, - CollCropCode = base_Unit.CollCropCode, - UnitName = base_Unit.UnitName, - ReportDate = DateTime.Now.Date, - TrainPersonNum = ProjectData.Sum(x => x.TrainPersonNum), - TechnicalDisclosePersonNum = ProjectData.Sum(x => x.TechnicalDisclosePersonNum), - UseNum = ProjectData.Sum(x => x.UseNum), - OKNum = ProjectData.Sum(x => x.OKNum), - CompanyPersonNum = GetCompanyPersonNum(), - BranchPersonNum = GetBranchPersonNum(), - ProjectPersonNum = ProjectData.Sum(x => x.ProjectPersonNum), - ProblemNum = ProjectData.Sum(x => x.ProblemNum), - ProblemCompletedNum = ProjectData.Sum(x => x.ProblemCompletedNum), - ProblemNotCompletedNum = ProjectData.Sum(x => x.ProblemNotCompletedNum), - SNum = ProjectData.Sum(x => x.SNum), - ANum = ProjectData.Sum(x => x.ANum), - BNum = ProjectData.Sum(x => x.BNum), - CNum = ProjectData.Sum(x => x.CNum), - KeyProcessNum = ProjectData.Sum(x => x.KeyProcessNum), - KeyProcessOKNum = ProjectData.Sum(x => x.KeyProcessOKNum), - SpecialProcessNum = ProjectData.Sum(x => x.SpecialProcessNum), - SpecialProcessOKNum = ProjectData.Sum(x => x.SpecialProcessOKNum), - ConcealedWorksNum = ProjectData.Sum(x => x.ConcealedWorksNum), - ConcealedWorksOKNum = ProjectData.Sum(x => x.ConcealedWorksOKNum), - UnitProjectOnesNum = ProjectData.Sum(x => x.UnitProjectOnesNum), - UnitProjectOnesOKNum = ProjectData.Sum(x => x.UnitProjectOnesOKNum), - MaterialInRecheckNum = ProjectData.Sum(x => x.MaterialInRecheckNum), - MaterialInRecheckOKNum = ProjectData.Sum(x => x.MaterialInRecheckOKNum), - SingleProjectNum = ProjectData.Sum(x => x.SingleProjectNum), - UnitProjectNum = ProjectData.Sum(x => x.UnitProjectNum), - SubProjectNum = ProjectData.Sum(x => x.SubProjectNum), - SubdivisionalWorksNum = ProjectData.Sum(x => x.SubdivisionalWorksNum), - InspectionLotNum = ProjectData.Sum(x => x.InspectionLotNum), - CreateMan = Const.sysglyId, - CreateDate = DateTime.Now - }; + var table = BuildCqmsSummary(thisUnitId, base_Unit, ProjectData); if (IsReportByToday()) { table.Id = GetTodayData().Id; diff --git a/SGGL/BLL/ZHGL/DataSync/HSSEData_HSSEService.cs b/SGGL/BLL/ZHGL/DataSync/HSSEData_HSSEService.cs index 63c9d45..bbcdd67 100644 --- a/SGGL/BLL/ZHGL/DataSync/HSSEData_HSSEService.cs +++ b/SGGL/BLL/ZHGL/DataSync/HSSEData_HSSEService.cs @@ -2968,10 +2968,10 @@ namespace BLL } /// - /// 获取一般事故数 + /// 按事故等级获取在施项目事故列表 /// - /// - public static List GetGeneralAccident() + /// 事故等级(1一般 2较大 3重大 4特别重大) + private static List GetAccidentByDegree(string accidentDegree) { var query = from Record in Funs.DB.Accident_AccidentReport join AccidentType in Funs.DB.Sys_Const on new { ConstValue = Record.AccidentTypeId, GroupId = "AccidentReportRegistration" } equals new { ConstValue = AccidentType.ConstValue, GroupId = AccidentType.GroupId } into AccidentTypeGroup @@ -2980,7 +2980,7 @@ namespace BLL from Project in ProjectGroup.DefaultIfEmpty() join Unit in Funs.DB.Base_Unit on Record.UnitId equals Unit.UnitId into UnitGroup from Unit in UnitGroup.DefaultIfEmpty() - where Record.AccidentDate > Const.DtmarkTime && BeUnderConstructionList.Contains(Record.ProjectId) && Record.AccidentDegree == "1" + where Record.AccidentDate > Const.DtmarkTime && BeUnderConstructionList.Contains(Record.ProjectId) && Record.AccidentDegree == accidentDegree select new AccidentOutput { Id = Record.AccidentReportId, @@ -2995,10 +2995,15 @@ namespace BLL Info = Record.Abstract }; - var result = query.ToList(); + return query.ToList(); + } - - return result; + /// + /// 获取一般事故数 + /// + public static List GetGeneralAccident() + { + return GetAccidentByDegree("1"); } public static async Task> GetGeneralAccidentAsync() @@ -3009,33 +3014,9 @@ namespace BLL /// /// 获取较大事故数 /// - /// public static List GetMajorAccident() { - var query = from Record in Funs.DB.Accident_AccidentReport - join AccidentType in Funs.DB.Sys_Const on new { ConstValue = Record.AccidentTypeId, GroupId = "AccidentReportRegistration" } equals new { ConstValue = AccidentType.ConstValue, GroupId = AccidentType.GroupId } into AccidentTypeGroup - from AccidentType in AccidentTypeGroup.DefaultIfEmpty() - join Project in Funs.DB.Base_Project on Record.ProjectId equals Project.ProjectId into ProjectGroup - from Project in ProjectGroup.DefaultIfEmpty() - join Unit in Funs.DB.Base_Unit on Record.UnitId equals Unit.UnitId into UnitGroup - from Unit in UnitGroup.DefaultIfEmpty() - where Record.AccidentDate > Const.DtmarkTime && BeUnderConstructionList.Contains(Record.ProjectId) && Record.AccidentDegree == "2" - select new AccidentOutput - { - Id = Record.AccidentReportId, - ProjectId = Record.ProjectId, - ProjectCode = Project.ProjectCode, - ProjectName = Project.ProjectName, - AccidentTypeName = AccidentType.ConstText, - AccidentDate = Record.AccidentDate, - UnitId = Unit.UnitId, - UnitName = Unit.UnitName, - PeopleNum = Record.PeopleNum, - Info = Record.Abstract - }; - - var result = query.ToList(); - return result; + return GetAccidentByDegree("2"); } public static async Task> GetMajorAccidentAsync() @@ -3046,69 +3027,22 @@ namespace BLL /// /// 获取重大事故数 /// - /// public static List GetSeriousAccident() { - var query = from Record in Funs.DB.Accident_AccidentReport - join AccidentType in Funs.DB.Sys_Const on new { ConstValue = Record.AccidentTypeId, GroupId = "AccidentReportRegistration" } equals new { ConstValue = AccidentType.ConstValue, GroupId = AccidentType.GroupId } into AccidentTypeGroup - from AccidentType in AccidentTypeGroup.DefaultIfEmpty() - join Project in Funs.DB.Base_Project on Record.ProjectId equals Project.ProjectId into ProjectGroup - from Project in ProjectGroup.DefaultIfEmpty() - join Unit in Funs.DB.Base_Unit on Record.UnitId equals Unit.UnitId into UnitGroup - from Unit in UnitGroup.DefaultIfEmpty() - where Record.AccidentDate > Const.DtmarkTime && BeUnderConstructionList.Contains(Record.ProjectId) && Record.AccidentDegree == "3" - select new AccidentOutput - { - Id = Record.AccidentReportId, - ProjectId = Record.ProjectId, - ProjectCode = Project.ProjectCode, - ProjectName = Project.ProjectName, - AccidentTypeName = AccidentType.ConstText, - AccidentDate = Record.AccidentDate, - UnitId = Unit.UnitId, - UnitName = Unit.UnitName, - PeopleNum = Record.PeopleNum, - Info = Record.Abstract - }; - - var result = query.ToList(); - return result; + return GetAccidentByDegree("3"); } public static async Task> GetSeriousAccidentAsync() { return await Task.Run(GetSeriousAccident); } + /// /// 获取特别重大事故数 /// - /// public static List GetSpecialSeriousAccident() { - var query = from Record in Funs.DB.Accident_AccidentReport - join AccidentType in Funs.DB.Sys_Const on new { ConstValue = Record.AccidentTypeId, GroupId = "AccidentReportRegistration" } equals new { ConstValue = AccidentType.ConstValue, GroupId = AccidentType.GroupId } into AccidentTypeGroup - from AccidentType in AccidentTypeGroup.DefaultIfEmpty() - join Project in Funs.DB.Base_Project on Record.ProjectId equals Project.ProjectId into ProjectGroup - from Project in ProjectGroup.DefaultIfEmpty() - join Unit in Funs.DB.Base_Unit on Record.UnitId equals Unit.UnitId into UnitGroup - from Unit in UnitGroup.DefaultIfEmpty() - where Record.AccidentDate > Const.DtmarkTime && BeUnderConstructionList.Contains(Record.ProjectId) && Record.AccidentDegree == "4" - select new AccidentOutput - { - Id = Record.AccidentReportId, - ProjectId = Record.ProjectId, - ProjectCode = Project.ProjectCode, - ProjectName = Project.ProjectName, - AccidentTypeName = AccidentType.ConstText, - AccidentDate = Record.AccidentDate, - UnitId = Unit.UnitId, - UnitName = Unit.UnitName, - PeopleNum = Record.PeopleNum, - Info = Record.Abstract - }; - - var result = query.ToList(); - return result; + return GetAccidentByDegree("4"); } public static async Task> GetSpecialSeriousAccidentAsync() diff --git a/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_CQMSDataService.cs b/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_CQMSDataService.cs index 6e0cd9c..45d14e7 100644 --- a/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_CQMSDataService.cs +++ b/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_CQMSDataService.cs @@ -523,173 +523,132 @@ namespace BLL return result; } /// + /// 按质量控制点级别(S/A/B/C)统计数量 + /// + private static int GetClassNum(string projectid, string classType) + { + return (from x in Funs.DB.WBS_BreakdownProject + where x.ProjectId == projectid && x.Class.Contains(classType) && x.IsSelected == true && x.CompileDate > Const.DtmarkTime + select x).Count(); + } + /// /// 获取S级数 /// - /// public static int GetSNum(string projectid) { - int result = (from x in Funs.DB.WBS_BreakdownProject - where x.ProjectId == projectid && x.Class.Contains("S") && x.IsSelected == true && x.CompileDate > Const.DtmarkTime - select x).Count(); - return result; + return GetClassNum(projectid, "S"); } /// /// 获取A级数 /// - /// public static int GetANum(string projectid) { - int result = (from x in Funs.DB.WBS_BreakdownProject - where x.ProjectId == projectid && x.Class.Contains("A") && x.IsSelected == true && x.CompileDate > Const.DtmarkTime - select x).Count(); - return result; + return GetClassNum(projectid, "A"); } /// /// 获取B级数 /// - /// public static int GetBNum(string projectid) { - int result = (from x in Funs.DB.WBS_BreakdownProject - where x.ProjectId == projectid && x.Class.Contains("B") && x.IsSelected == true && x.CompileDate > Const.DtmarkTime - select x).Count(); - return result; + return GetClassNum(projectid, "B"); } /// /// 获取C级数 /// - /// public static int GetCNum(string projectid) { - int result = (from x in Funs.DB.WBS_BreakdownProject - where x.ProjectId == projectid && x.Class.Contains("C") && x.IsSelected == true && x.CompileDate > Const.DtmarkTime - select x).Count(); - return result; + return GetClassNum(projectid, "C"); + } + /// + /// 按验收类型统计验收数 + /// + private static int GetInspectionNum(string projectid, string checkAcceptType) + { + return (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + where y.ProjectId == projectid && y.CheckAcceptType == checkAcceptType && x.CreateDate > Const.DtmarkTime + select x).Count(); + } + /// + /// 按验收类型统计一次验收合格数 + /// + private static int GetInspectionOkNum(string projectid, string checkAcceptType) + { + return (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId + where y.ProjectId == projectid && y.CheckAcceptType == checkAcceptType && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime + select x).Count(); } /// /// 获取关键工序验收数 /// - /// public static int GetKeyProcessNum(string projectid) { - int result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail - join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId - where y.ProjectId == projectid && y.CheckAcceptType == "1" && x.CreateDate > Const.DtmarkTime - select x).Count(); - return result; + return GetInspectionNum(projectid, "1"); } /// /// 获取关键工序验收合格数 /// - /// public static int GetKeyProcessOkNum(string projectid) { - int result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail - join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId - join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId - where y.ProjectId == projectid && y.CheckAcceptType == "1" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime - select x).Count(); - return result; + return GetInspectionOkNum(projectid, "1"); } /// /// 获取特殊过程验收数 /// - /// public static int GetSpecialProcessNum(string projectid) { - int result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail - join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId - where y.ProjectId == projectid && y.CheckAcceptType == "2" && x.CreateDate > Const.DtmarkTime - select x).Count(); - return result; + return GetInspectionNum(projectid, "2"); } /// /// 获取特殊过程验收合格数 /// - /// public static int GetSpecialProcessOkNum(string projectid) { - var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail - join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId - join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId - where y.ProjectId == projectid && y.CheckAcceptType == "2" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime - select x).Count(); - return result; + return GetInspectionOkNum(projectid, "2"); } /// /// 获取隐蔽工程验收数 /// - /// public static int GetConcealedWorksNum(string projectid) { - int result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail - join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId - where y.ProjectId == projectid && y.CheckAcceptType == "3" && x.CreateDate > Const.DtmarkTime - select x).Count(); - return result; + return GetInspectionNum(projectid, "3"); } /// /// 获取隐蔽工程验收合格数 /// - /// public static int GetConcealedWorksOkNum(string projectid) { - int result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail - join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId - join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId - where y.ProjectId == projectid && y.CheckAcceptType == "3" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime - select x).Count(); - return result; + return GetInspectionOkNum(projectid, "3"); } /// /// 获取单位工程一次验收数 /// - /// public static int GetUnitProjectOnesNum(string projectid) { - int result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail - join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId - where y.ProjectId == projectid && y.CheckAcceptType == "4" && x.CreateDate > Const.DtmarkTime - select x).Count(); - return result; + return GetInspectionNum(projectid, "4"); } /// /// 获取单位工程一次验收合格数 /// - /// public static int GetUnitProjectOnesOKNum(string projectid) { - int result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail - join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId - join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId - where y.ProjectId == projectid && y.CheckAcceptType == "4" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime - select x).Count(); - return result; + return GetInspectionOkNum(projectid, "4"); } /// /// 获取材料进场复验数 /// - /// public static int GetMaterialInRecheckNum(string projectid) { - int result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail - join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId - where y.ProjectId == projectid && y.CheckAcceptType == "5" && x.CreateDate > Const.DtmarkTime - select x).Count(); - return result; + return GetInspectionNum(projectid, "5"); } /// /// 获取材料进场复验合格数 /// - /// public static int GetMaterialInRecheckOKNum(string projectid) { - int result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail - join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId - join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId - where y.ProjectId == projectid && y.CheckAcceptType == "5" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime - select x).Count(); - return result; + return GetInspectionOkNum(projectid, "5"); } /// /// 获取单项工程个数 diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj index 091a451..8897a47 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj @@ -1,4 +1,4 @@ - + Debug @@ -2541,6 +2541,7 @@ + @@ -16114,6 +16115,13 @@ EarnedValueCurve.aspx + + PdfBookView.aspx + ASPXCodeBehind + + + PdfBookView.aspx + PlanAdjust.aspx ASPXCodeBehind diff --git a/SGGL/FineUIPro.Web/HSSE/PDFDOC/PdfBookView.aspx b/SGGL/FineUIPro.Web/HSSE/PDFDOC/PdfBookView.aspx new file mode 100644 index 0000000..f8cf967 --- /dev/null +++ b/SGGL/FineUIPro.Web/HSSE/PDFDOC/PdfBookView.aspx @@ -0,0 +1,205 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PdfBookView.aspx.cs" Inherits="FineUIPro.Web.HSSE.PDFDOC.PdfBookView" ValidateRequest="false" %> + + + + + + + PDF 书籍阅读 + + + + +
+ + + + + + <%-- 左栏:书籍选择 + 目录树 --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- 中部:章节内容编辑 --%> + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/HSSE/PDFDOC/PdfBookView.aspx.cs b/SGGL/FineUIPro.Web/HSSE/PDFDOC/PdfBookView.aspx.cs new file mode 100644 index 0000000..24da43c --- /dev/null +++ b/SGGL/FineUIPro.Web/HSSE/PDFDOC/PdfBookView.aspx.cs @@ -0,0 +1,431 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Text; +using System.Text.RegularExpressions; +using BLL; + +namespace FineUIPro.Web.HSSE.PDFDOC +{ + /// + /// PDF 书籍维护页:左侧多级目录树 + 右侧富文本内容编辑(UMEditor,可输入文字、上传图片)。 + /// 章节与内容全部手动录入维护:新增书籍 / 新增·编辑·删除章节 / 保存章节富文本内容。 + /// 数据存 Sys_PdfBook / Sys_PdfChapter(内容为 HTML;上传图片在保存时转为 base64 内嵌,正文自包含)。 + /// + public partial class PdfBookView : PageBase + { + #region 页面加载 + /// + /// 页面加载。 + /// + protected void Page_Load(object sender, EventArgs e) + { + // 显式指定 UTF-8 编码,避免个别环境下中文乱码 + this.Response.ContentEncoding = System.Text.Encoding.UTF8; + this.Response.Charset = "utf-8"; + + if (!IsPostBack) + { + BindBooks(); + if (this.drpBook.Items.Count > 0) + { + this.drpBook.SelectedIndex = 0; + InitTree(this.drpBook.SelectedValue); + } + this.lblProgress.Text = ""; + } + } + #endregion + + #region 绑定书籍 + /// + /// 绑定书籍下拉框。 + /// + private void BindBooks() + { + this.drpBook.Items.Clear(); + foreach (PdfBook book in PdfBookService.GetBooks()) + { + this.drpBook.Items.Add(new FineUIPro.ListItem(book.Title, book.BookId)); + } + } + #endregion + + #region 目录树 + /// + /// 初始化目录树(按父章节/层级递归建树,支持多级目录)。 + /// + private void InitTree(string bookId) + { + this.trCatalog.Nodes.Clear(); + this.trCatalog.SelectedNodeID = ""; + var chapters = PdfBookService.GetChapters(bookId); + + // 1) 先为每个章节创建节点 + var nodeMap = new Dictionary(); + foreach (PdfChapter c in chapters) + { + var node = new FineUIPro.TreeNode + { + Text = c.Title, + NodeID = c.ChapterId, + CommandName = "chapter", + CommandArgument = c.ChapterId, + ToolTip = c.PageStart > 0 ? ("第" + c.PageStart + " - " + c.PageEnd + " 页") : "", + EnableClickEvent = true, + Expanded = true // 页面默认全部展开 + }; + nodeMap[c.ChapterId] = node; + } + + // 2) 按父章节挂接,没有父级(或父级不在列表)的作为顶级 + var roots = new List(); + foreach (PdfChapter c in chapters) + { + var node = nodeMap[c.ChapterId]; + if (!string.IsNullOrWhiteSpace(c.ParentChapterId) && nodeMap.ContainsKey(c.ParentChapterId)) + { + nodeMap[c.ParentChapterId].Nodes.Add(node); + } + else + { + roots.Add(node); + } + } + + // 3) 顶级节点加入树 + foreach (var r in roots) + this.trCatalog.Nodes.Add(r); + } + #endregion + + #region 下拉切换 + /// + /// 切换书籍。 + /// + protected void drpBook_SelectedIndexChanged(object sender, EventArgs e) + { + InitTree(this.drpBook.SelectedValue); + this.htmlContent.Text = ""; + this.hfCurrentChapterId.Text = ""; + this.lblProgress.Text = ""; + } + #endregion + + #region 目录点击 → 加载章节内容 + /// + /// 点击目录节点,把章节富文本内容加载到编辑器。 + /// 所有章节(含带子章节的目录章节)均可编辑自身正文,点击即加载。 + /// + protected void trCatalog_NodeCommand(object sender, FineUIPro.TreeCommandEventArgs e) + { + if (e.Node == null) + return; + + string chapterId = e.Node.CommandArgument; + if (string.IsNullOrWhiteSpace(chapterId)) + chapterId = e.Node.NodeID; + + PdfChapterDetail detail = PdfBookService.GetChapterContent(chapterId); + this.htmlContent.Text = detail == null ? "" : (detail.Content ?? ""); + this.hfCurrentChapterId.Text = chapterId; + this.trCatalog.SelectedNodeID = e.Node.NodeID; + this.lblProgress.Text = "正在编辑:" + (detail == null ? e.Node.Text : detail.Title); + } + #endregion + + #region 保存章节内容(富文本) + /// + /// 保存当前章节的富文本内容(HTML;本站上传图片引用自动转为 base64 内嵌存储)。 + /// + protected void btnSaveContent_Click(object sender, EventArgs e) + { + string chapterId = this.hfCurrentChapterId.Text; + if (string.IsNullOrWhiteSpace(chapterId)) + { + FineUIPro.Alert.Show("请先在左侧目录选择章节。"); + return; + } + + // 本地上传图片转 base64 后入库,正文自包含(不依赖 upload 目录文件) + string html = EmbedLocalImagesAsBase64(this.htmlContent.Text); + + SQLHelper.ExecutSql("UPDATE dbo.Sys_PdfChapter SET Text=N'" + SqlEsc(html) + + "' WHERE ChapterId='" + SqlEsc(chapterId) + "'"); + this.lblProgress.Text = "内容已保存:" + DateTime.Now.ToString("HH:mm:ss"); + } + + /// + /// 把 HTML 中指向本站 UMeditor 上传相关路径(/res/umeditor/net/..,含 ../../../upload 形态)的图片引用替换为 base64 内嵌。 + /// 已是 data: 的图片与外部 http(s) 图片原样保留;路径非图片扩展名或文件不存在时不做替换(回退原引用)。 + /// + private static readonly Regex LocalUploadImgSrcRegex = new Regex( + "src\\s*=\\s*([\"'])([^\"']*?/res/umeditor/net/[^\"']*?)\\1", + RegexOptions.IgnoreCase | RegexOptions.Compiled); + + private string EmbedLocalImagesAsBase64(string html) + { + if (string.IsNullOrEmpty(html) || + html.IndexOf("/res/umeditor/net/", StringComparison.OrdinalIgnoreCase) < 0) + return html; + + return LocalUploadImgSrcRegex.Replace(html, delegate(Match m) + { + string quote = m.Groups[1].Value; + string raw = m.Groups[2].Value; + int i = raw.IndexOf("/res/umeditor/net/", StringComparison.OrdinalIgnoreCase); + if (i < 0) + return m.Value; + string virtualPath = raw.Substring(i); + int q = virtualPath.IndexOf('?'); + if (q >= 0) virtualPath = virtualPath.Substring(0, q); + + string extCheck = System.IO.Path.GetExtension(virtualPath).ToLowerInvariant(); + if (extCheck != ".png" && extCheck != ".jpg" && extCheck != ".jpeg" && extCheck != ".gif" && extCheck != ".bmp") + return m.Value; + + try + { + string physical = Server.MapPath(virtualPath); + if (!System.IO.File.Exists(physical)) + return m.Value; + byte[] bytes = System.IO.File.ReadAllBytes(physical); + if (bytes.Length == 0) + return m.Value; + + string ext = System.IO.Path.GetExtension(physical).ToLowerInvariant(); + string mime = ext == ".png" ? "image/png" + : ext == ".gif" ? "image/gif" + : ext == ".bmp" ? "image/bmp" + : "image/jpeg"; + return "src=" + quote + "data:" + mime + ";base64," + Convert.ToBase64String(bytes) + quote; + } + catch + { + return m.Value; + } + }); + } + #endregion + + #region 书籍新增 + /// + /// 打开新增书籍弹窗。 + /// + protected void btnAddBook_Click(object sender, EventArgs e) + { + this.txtBookTitle.Text = ""; + this.WindowBook.Hidden = false; + } + + /// + /// 保存新增书籍。 + /// + protected void btnSaveBook_Click(object sender, EventArgs e) + { + string title = this.txtBookTitle.Text.Trim(); + if (title.Length == 0) + { + FineUIPro.Alert.Show("请输入书名。"); + return; + } + + string bookId = NewId("PB"); + SQLHelper.ExecutSql( + "INSERT INTO dbo.Sys_PdfBook (BookId, Title, FilePath, TotalPages, IndexStatus, CreateUser, CreateTime) VALUES ('" + + SqlEsc(bookId) + "',N'" + SqlEsc(title) + "',NULL,0,2,N'test',GETDATE())"); + + this.WindowBook.Hidden = true; + BindBooks(); + this.drpBook.SelectedValue = bookId; + InitTree(bookId); + this.htmlContent.Text = ""; + this.hfCurrentChapterId.Text = ""; + this.lblProgress.Text = "已新增书籍:《" + title + "》,请继续添加章节。"; + } + + /// + /// 关闭新增书籍弹窗。 + /// + protected void btnCloseBook_Click(object sender, EventArgs e) + { + this.WindowBook.Hidden = true; + } + #endregion + + #region 章节新增/编辑/删除 + /// + /// 打开新增章节弹窗(父级=目录树选中节点,未选中则为顶级章节)。 + /// + protected void btnAddChapter_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(this.drpBook.SelectedValue)) + { + FineUIPro.Alert.Show("请先新增/选择书籍。"); + return; + } + + this.hfEditChapterId.Text = ""; + this.txtChapterTitle.Text = ""; + string parentId = this.trCatalog.SelectedNodeID; + this.lblParentChapter.Text = string.IsNullOrEmpty(parentId) ? "顶级章节" : "选中节点的子章节"; + this.WindowChapter.Title = "新增章节"; + this.WindowChapter.Hidden = false; + } + + /// + /// 打开编辑章节弹窗(修改选中章节名称)。 + /// + protected void btnEditChapter_Click(object sender, EventArgs e) + { + string chapterId = this.trCatalog.SelectedNodeID; + if (string.IsNullOrEmpty(chapterId)) + { + FineUIPro.Alert.Show("请先在目录中选择要编辑的章节。"); + return; + } + + DataTable dt = SQLHelper.GetDataTableRunText( + "SELECT ChapterTitle FROM dbo.Sys_PdfChapter WHERE ChapterId=@id", + new[] { new SqlParameter("@id", chapterId) }); + if (dt == null || dt.Rows.Count == 0) + { + FineUIPro.Alert.Show("未找到该章节。"); + return; + } + + this.hfEditChapterId.Text = chapterId; + this.txtChapterTitle.Text = dt.Rows[0]["ChapterTitle"].ToString(); + this.lblParentChapter.Text = "修改章节名称"; + this.WindowChapter.Title = "编辑章节"; + this.WindowChapter.Hidden = false; + } + + /// + /// 保存章节(新增:挂在选中节点下,层级=父级+1;编辑:仅改名)。 + /// 保存后保持选中刚保存的章节:叶子章节加载其内容,目录章节仅刷新选中、不动编辑器。 + /// + protected void btnSaveChapter_Click(object sender, EventArgs e) + { + string title = this.txtChapterTitle.Text.Trim(); + if (title.Length == 0) + { + FineUIPro.Alert.Show("请输入章节名称。"); + return; + } + + string bookId = this.drpBook.SelectedValue; + string affectedId; + + if (this.hfEditChapterId.Text != "") + { + // 编辑:仅改名称 + affectedId = this.hfEditChapterId.Text; + SQLHelper.ExecutSql("UPDATE dbo.Sys_PdfChapter SET ChapterTitle=N'" + SqlEsc(title) + + "' WHERE ChapterId='" + SqlEsc(affectedId) + "'"); + } + else + { + // 新增:父级为目录树选中节点 + string parentId = this.trCatalog.SelectedNodeID; + int level = 1; + if (!string.IsNullOrEmpty(parentId)) + { + int parentLevel = SQLHelper.GetIntValue( + "SELECT ISNULL([Level],1) FROM dbo.Sys_PdfChapter WHERE ChapterId='" + SqlEsc(parentId) + "'"); + level = parentLevel + 1; + } + int sort = SQLHelper.GetIntValue( + "SELECT ISNULL(MAX(SortNo),0) FROM dbo.Sys_PdfChapter WHERE BookId='" + SqlEsc(bookId) + "'") + 1; + affectedId = NewId("CH"); + + SQLHelper.ExecutSql( + "INSERT INTO dbo.Sys_PdfChapter (ChapterId, BookId, ParentChapterId, [Level], ChapterTitle, PageStart, PageEnd, Text, SortNo) VALUES ('" + + SqlEsc(affectedId) + "','" + SqlEsc(bookId) + "'," + + (string.IsNullOrEmpty(parentId) ? "NULL" : "'" + SqlEsc(parentId) + "'") + + "," + level + ",N'" + SqlEsc(title) + "',NULL,NULL,N''," + sort + ")"); + } + + this.WindowChapter.Hidden = true; + InitTree(bookId); + + // 保持选中刚保存的章节并加载其正文(目录章节同样可编辑正文) + this.trCatalog.SelectedNodeID = affectedId; + PdfChapterDetail detail = PdfBookService.GetChapterContent(affectedId); + this.htmlContent.Text = detail == null ? "" : (detail.Content ?? ""); + this.hfCurrentChapterId.Text = affectedId; + this.lblProgress.Text = "章节已保存,正在编辑:" + (detail == null ? title : detail.Title); + } + + /// + /// 删除选中章节及其全部子章节。 + /// + protected void btnDelChapter_Click(object sender, EventArgs e) + { + string chapterId = this.trCatalog.SelectedNodeID; + if (string.IsNullOrEmpty(chapterId)) + { + FineUIPro.Alert.Show("请先在目录中选择要删除的章节。"); + return; + } + + string bookId = this.drpBook.SelectedValue; + var all = PdfBookService.GetChapters(bookId); + + // 递归收集要删除的章节(自身+全部后代) + var ids = new List { chapterId }; + bool changed = true; + while (changed) + { + changed = false; + foreach (PdfChapter c in all) + { + if (!ids.Contains(c.ChapterId) && ids.Contains(c.ParentChapterId ?? "")) + { + ids.Add(c.ChapterId); + changed = true; + } + } + } + + var sb = new StringBuilder(); + foreach (string id in ids) + { + if (sb.Length > 0) + sb.Append(","); + sb.Append("'").Append(id.Replace("'", "''")).Append("'"); + } + SQLHelper.ExecutSql("DELETE FROM dbo.Sys_PdfChapter WHERE ChapterId IN (" + sb + ")"); + + InitTree(bookId); + this.htmlContent.Text = ""; + this.hfCurrentChapterId.Text = ""; + this.lblProgress.Text = "章节已删除(含子章节 " + (ids.Count - 1) + " 个)。"; + } + + /// + /// 关闭章节弹窗。 + /// + protected void btnCloseChapter_Click(object sender, EventArgs e) + { + this.WindowChapter.Hidden = true; + } + #endregion + + #region 工具 + /// SQL 字符串转义。 + private static string SqlEsc(string s) + { + return (s ?? "").Replace("'", "''"); + } + + /// 生成业务主键(前缀+时间+随机)。 + private static string NewId(string prefix) + { + return prefix + DateTime.Now.ToString("yyyyMMddHHmmss") + + Guid.NewGuid().ToString("N").Substring(0, 4); + } + #endregion + } +} diff --git a/SGGL/FineUIPro.Web/HSSE/PDFDOC/PdfBookView.aspx.designer.cs b/SGGL/FineUIPro.Web/HSSE/PDFDOC/PdfBookView.aspx.designer.cs new file mode 100644 index 0000000..8cd4942 --- /dev/null +++ b/SGGL/FineUIPro.Web/HSSE/PDFDOC/PdfBookView.aspx.designer.cs @@ -0,0 +1,314 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.HSSE.PDFDOC +{ + + + public partial class PdfBookView + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// hfCurrentChapterId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hfCurrentChapterId; + + /// + /// hfEditChapterId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hfEditChapterId; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// panelLeftRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelLeftRegion; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// drpBook 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpBook; + + /// + /// btnAddBook 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAddBook; + + /// + /// Toolbar3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar3; + + /// + /// btnAddChapter 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAddChapter; + + /// + /// btnEditChapter 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnEditChapter; + + /// + /// btnDelChapter 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnDelChapter; + + /// + /// trCatalog 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Tree trCatalog; + + /// + /// panelCenterRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelCenterRegion; + + /// + /// Toolbar2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar2; + + /// + /// btnSaveContent 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSaveContent; + + /// + /// ToolbarFill2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill2; + + /// + /// lblProgress 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblProgress; + + /// + /// htmlContent 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HtmlEditor htmlContent; + + /// + /// WindowBook 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window WindowBook; + + /// + /// formBook 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form formBook; + + /// + /// txtBookTitle 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtBookTitle; + + /// + /// ToolbarBook 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar ToolbarBook; + + /// + /// btnSaveBook 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSaveBook; + + /// + /// btnCloseBook 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnCloseBook; + + /// + /// WindowChapter 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window WindowChapter; + + /// + /// formChapter 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form formChapter; + + /// + /// txtChapterTitle 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtChapterTitle; + + /// + /// lblParentChapter 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblParentChapter; + + /// + /// ToolbarChapter 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar ToolbarChapter; + + /// + /// btnSaveChapter 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSaveChapter; + + /// + /// btnCloseChapter 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnCloseChapter; + } +} diff --git a/SGGL/FineUIPro.Web/common/Menu_DigData.xml b/SGGL/FineUIPro.Web/common/Menu_DigData.xml index 0905938..72552c7 100644 --- a/SGGL/FineUIPro.Web/common/Menu_DigData.xml +++ b/SGGL/FineUIPro.Web/common/Menu_DigData.xml @@ -24,6 +24,7 @@ + diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index f8d6e54..76c8049 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -2555,6 +2555,15 @@ namespace Model partial void InsertSys_parameter(Sys_parameter instance); partial void UpdateSys_parameter(Sys_parameter instance); partial void DeleteSys_parameter(Sys_parameter instance); + partial void InsertSys_PdfBook(Sys_PdfBook instance); + partial void UpdateSys_PdfBook(Sys_PdfBook instance); + partial void DeleteSys_PdfBook(Sys_PdfBook instance); + partial void InsertSys_PdfChapter(Sys_PdfChapter instance); + partial void UpdateSys_PdfChapter(Sys_PdfChapter instance); + partial void DeleteSys_PdfChapter(Sys_PdfChapter instance); + partial void InsertSys_PdfPage(Sys_PdfPage instance); + partial void UpdateSys_PdfPage(Sys_PdfPage instance); + partial void DeleteSys_PdfPage(Sys_PdfPage instance); partial void InsertSys_Role(Sys_Role instance); partial void UpdateSys_Role(Sys_Role instance); partial void DeleteSys_Role(Sys_Role instance); @@ -9693,6 +9702,30 @@ namespace Model } } + public System.Data.Linq.Table Sys_PdfBook + { + get + { + return this.GetTable(); + } + } + + public System.Data.Linq.Table Sys_PdfChapter + { + get + { + return this.GetTable(); + } + } + + public System.Data.Linq.Table Sys_PdfPage + { + get + { + return this.GetTable(); + } + } + public System.Data.Linq.Table Sys_Role { get @@ -402209,6 +402242,882 @@ namespace Model } } + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Sys_PdfBook")] + public partial class Sys_PdfBook : INotifyPropertyChanging, INotifyPropertyChanged + { + + private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); + + private string _BookId; + + private string _Title; + + private string _FilePath; + + private System.Nullable _TotalPages; + + private System.Nullable _IndexStatus; + + private System.Nullable _IndexProgress; + + private System.Nullable _Dpi; + + private string _FileHash; + + private System.Nullable _LastIndexTime; + + private string _CreateUser; + + private System.Nullable _CreateTime; + + private EntitySet _Sys_PdfChapter; + + private EntitySet _Sys_PdfPage; + + #region 可扩展性方法定义 + partial void OnLoaded(); + partial void OnValidate(System.Data.Linq.ChangeAction action); + partial void OnCreated(); + partial void OnBookIdChanging(string value); + partial void OnBookIdChanged(); + partial void OnTitleChanging(string value); + partial void OnTitleChanged(); + partial void OnFilePathChanging(string value); + partial void OnFilePathChanged(); + partial void OnTotalPagesChanging(System.Nullable value); + partial void OnTotalPagesChanged(); + partial void OnIndexStatusChanging(System.Nullable value); + partial void OnIndexStatusChanged(); + partial void OnIndexProgressChanging(System.Nullable value); + partial void OnIndexProgressChanged(); + partial void OnDpiChanging(System.Nullable value); + partial void OnDpiChanged(); + partial void OnFileHashChanging(string value); + partial void OnFileHashChanged(); + partial void OnLastIndexTimeChanging(System.Nullable value); + partial void OnLastIndexTimeChanged(); + partial void OnCreateUserChanging(string value); + partial void OnCreateUserChanged(); + partial void OnCreateTimeChanging(System.Nullable value); + partial void OnCreateTimeChanged(); + #endregion + + public Sys_PdfBook() + { + this._Sys_PdfChapter = new EntitySet(new Action(this.attach_Sys_PdfChapter), new Action(this.detach_Sys_PdfChapter)); + this._Sys_PdfPage = new EntitySet(new Action(this.attach_Sys_PdfPage), new Action(this.detach_Sys_PdfPage)); + OnCreated(); + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BookId", DbType="NVarChar(50) NOT NULL", CanBeNull=false, IsPrimaryKey=true)] + public string BookId + { + get + { + return this._BookId; + } + set + { + if ((this._BookId != value)) + { + this.OnBookIdChanging(value); + this.SendPropertyChanging(); + this._BookId = value; + this.SendPropertyChanged("BookId"); + this.OnBookIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Title", DbType="NVarChar(200)")] + public string Title + { + get + { + return this._Title; + } + set + { + if ((this._Title != value)) + { + this.OnTitleChanging(value); + this.SendPropertyChanging(); + this._Title = value; + this.SendPropertyChanged("Title"); + this.OnTitleChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FilePath", DbType="NVarChar(500)")] + public string FilePath + { + get + { + return this._FilePath; + } + set + { + if ((this._FilePath != value)) + { + this.OnFilePathChanging(value); + this.SendPropertyChanging(); + this._FilePath = value; + this.SendPropertyChanged("FilePath"); + this.OnFilePathChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TotalPages", DbType="Int")] + public System.Nullable TotalPages + { + get + { + return this._TotalPages; + } + set + { + if ((this._TotalPages != value)) + { + this.OnTotalPagesChanging(value); + this.SendPropertyChanging(); + this._TotalPages = value; + this.SendPropertyChanged("TotalPages"); + this.OnTotalPagesChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IndexStatus", DbType="Int")] + public System.Nullable IndexStatus + { + get + { + return this._IndexStatus; + } + set + { + if ((this._IndexStatus != value)) + { + this.OnIndexStatusChanging(value); + this.SendPropertyChanging(); + this._IndexStatus = value; + this.SendPropertyChanged("IndexStatus"); + this.OnIndexStatusChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IndexProgress", DbType="Int")] + public System.Nullable IndexProgress + { + get + { + return this._IndexProgress; + } + set + { + if ((this._IndexProgress != value)) + { + this.OnIndexProgressChanging(value); + this.SendPropertyChanging(); + this._IndexProgress = value; + this.SendPropertyChanged("IndexProgress"); + this.OnIndexProgressChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Dpi", DbType="Int")] + public System.Nullable Dpi + { + get + { + return this._Dpi; + } + set + { + if ((this._Dpi != value)) + { + this.OnDpiChanging(value); + this.SendPropertyChanging(); + this._Dpi = value; + this.SendPropertyChanged("Dpi"); + this.OnDpiChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FileHash", DbType="NVarChar(64)")] + public string FileHash + { + get + { + return this._FileHash; + } + set + { + if ((this._FileHash != value)) + { + this.OnFileHashChanging(value); + this.SendPropertyChanging(); + this._FileHash = value; + this.SendPropertyChanged("FileHash"); + this.OnFileHashChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastIndexTime", DbType="DateTime")] + public System.Nullable LastIndexTime + { + get + { + return this._LastIndexTime; + } + set + { + if ((this._LastIndexTime != value)) + { + this.OnLastIndexTimeChanging(value); + this.SendPropertyChanging(); + this._LastIndexTime = value; + this.SendPropertyChanged("LastIndexTime"); + this.OnLastIndexTimeChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreateUser", DbType="NVarChar(50)")] + public string CreateUser + { + get + { + return this._CreateUser; + } + set + { + if ((this._CreateUser != value)) + { + this.OnCreateUserChanging(value); + this.SendPropertyChanging(); + this._CreateUser = value; + this.SendPropertyChanged("CreateUser"); + this.OnCreateUserChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreateTime", DbType="DateTime")] + public System.Nullable CreateTime + { + get + { + return this._CreateTime; + } + set + { + if ((this._CreateTime != value)) + { + this.OnCreateTimeChanging(value); + this.SendPropertyChanging(); + this._CreateTime = value; + this.SendPropertyChanged("CreateTime"); + this.OnCreateTimeChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_PdfChapter_Book", Storage="_Sys_PdfChapter", ThisKey="BookId", OtherKey="BookId", DeleteRule="NO ACTION")] + public EntitySet Sys_PdfChapter + { + get + { + return this._Sys_PdfChapter; + } + set + { + this._Sys_PdfChapter.Assign(value); + } + } + + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_PdfPage_Book", Storage="_Sys_PdfPage", ThisKey="BookId", OtherKey="BookId", DeleteRule="NO ACTION")] + public EntitySet Sys_PdfPage + { + get + { + return this._Sys_PdfPage; + } + set + { + this._Sys_PdfPage.Assign(value); + } + } + + public event PropertyChangingEventHandler PropertyChanging; + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void SendPropertyChanging() + { + if ((this.PropertyChanging != null)) + { + this.PropertyChanging(this, emptyChangingEventArgs); + } + } + + protected virtual void SendPropertyChanged(String propertyName) + { + if ((this.PropertyChanged != null)) + { + this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + + private void attach_Sys_PdfChapter(Sys_PdfChapter entity) + { + this.SendPropertyChanging(); + entity.Sys_PdfBook = this; + } + + private void detach_Sys_PdfChapter(Sys_PdfChapter entity) + { + this.SendPropertyChanging(); + entity.Sys_PdfBook = null; + } + + private void attach_Sys_PdfPage(Sys_PdfPage entity) + { + this.SendPropertyChanging(); + entity.Sys_PdfBook = this; + } + + private void detach_Sys_PdfPage(Sys_PdfPage entity) + { + this.SendPropertyChanging(); + entity.Sys_PdfBook = null; + } + } + + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Sys_PdfChapter")] + public partial class Sys_PdfChapter : INotifyPropertyChanging, INotifyPropertyChanged + { + + private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); + + private string _ChapterId; + + private string _BookId; + + private string _ParentChapterId; + + private System.Nullable _Level; + + private string _ChapterTitle; + + private System.Nullable _PageStart; + + private System.Nullable _PageEnd; + + private string _Text; + + private System.Nullable _SortNo; + + private EntityRef _Sys_PdfBook; + + #region 可扩展性方法定义 + partial void OnLoaded(); + partial void OnValidate(System.Data.Linq.ChangeAction action); + partial void OnCreated(); + partial void OnChapterIdChanging(string value); + partial void OnChapterIdChanged(); + partial void OnBookIdChanging(string value); + partial void OnBookIdChanged(); + partial void OnParentChapterIdChanging(string value); + partial void OnParentChapterIdChanged(); + partial void OnLevelChanging(System.Nullable value); + partial void OnLevelChanged(); + partial void OnChapterTitleChanging(string value); + partial void OnChapterTitleChanged(); + partial void OnPageStartChanging(System.Nullable value); + partial void OnPageStartChanged(); + partial void OnPageEndChanging(System.Nullable value); + partial void OnPageEndChanged(); + partial void OnTextChanging(string value); + partial void OnTextChanged(); + partial void OnSortNoChanging(System.Nullable value); + partial void OnSortNoChanged(); + #endregion + + public Sys_PdfChapter() + { + this._Sys_PdfBook = default(EntityRef); + OnCreated(); + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ChapterId", DbType="NVarChar(50) NOT NULL", CanBeNull=false, IsPrimaryKey=true)] + public string ChapterId + { + get + { + return this._ChapterId; + } + set + { + if ((this._ChapterId != value)) + { + this.OnChapterIdChanging(value); + this.SendPropertyChanging(); + this._ChapterId = value; + this.SendPropertyChanged("ChapterId"); + this.OnChapterIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BookId", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] + public string BookId + { + get + { + return this._BookId; + } + set + { + if ((this._BookId != value)) + { + if (this._Sys_PdfBook.HasLoadedOrAssignedValue) + { + throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException(); + } + this.OnBookIdChanging(value); + this.SendPropertyChanging(); + this._BookId = value; + this.SendPropertyChanged("BookId"); + this.OnBookIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ParentChapterId", DbType="NVarChar(50)")] + public string ParentChapterId + { + get + { + return this._ParentChapterId; + } + set + { + if ((this._ParentChapterId != value)) + { + this.OnParentChapterIdChanging(value); + this.SendPropertyChanging(); + this._ParentChapterId = value; + this.SendPropertyChanged("ParentChapterId"); + this.OnParentChapterIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Level", DbType="Int")] + public System.Nullable Level + { + get + { + return this._Level; + } + set + { + if ((this._Level != value)) + { + this.OnLevelChanging(value); + this.SendPropertyChanging(); + this._Level = value; + this.SendPropertyChanged("Level"); + this.OnLevelChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ChapterTitle", DbType="NVarChar(200)")] + public string ChapterTitle + { + get + { + return this._ChapterTitle; + } + set + { + if ((this._ChapterTitle != value)) + { + this.OnChapterTitleChanging(value); + this.SendPropertyChanging(); + this._ChapterTitle = value; + this.SendPropertyChanged("ChapterTitle"); + this.OnChapterTitleChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PageStart", DbType="Int")] + public System.Nullable PageStart + { + get + { + return this._PageStart; + } + set + { + if ((this._PageStart != value)) + { + this.OnPageStartChanging(value); + this.SendPropertyChanging(); + this._PageStart = value; + this.SendPropertyChanged("PageStart"); + this.OnPageStartChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PageEnd", DbType="Int")] + public System.Nullable PageEnd + { + get + { + return this._PageEnd; + } + set + { + if ((this._PageEnd != value)) + { + this.OnPageEndChanging(value); + this.SendPropertyChanging(); + this._PageEnd = value; + this.SendPropertyChanged("PageEnd"); + this.OnPageEndChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Text", DbType="NVarChar(MAX)", UpdateCheck=UpdateCheck.Never)] + public string Text + { + get + { + return this._Text; + } + set + { + if ((this._Text != value)) + { + this.OnTextChanging(value); + this.SendPropertyChanging(); + this._Text = value; + this.SendPropertyChanged("Text"); + this.OnTextChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SortNo", DbType="Int")] + public System.Nullable SortNo + { + get + { + return this._SortNo; + } + set + { + if ((this._SortNo != value)) + { + this.OnSortNoChanging(value); + this.SendPropertyChanging(); + this._SortNo = value; + this.SendPropertyChanged("SortNo"); + this.OnSortNoChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_PdfChapter_Book", Storage="_Sys_PdfBook", ThisKey="BookId", OtherKey="BookId", IsForeignKey=true)] + public Sys_PdfBook Sys_PdfBook + { + get + { + return this._Sys_PdfBook.Entity; + } + set + { + Sys_PdfBook previousValue = this._Sys_PdfBook.Entity; + if (((previousValue != value) + || (this._Sys_PdfBook.HasLoadedOrAssignedValue == false))) + { + this.SendPropertyChanging(); + if ((previousValue != null)) + { + this._Sys_PdfBook.Entity = null; + previousValue.Sys_PdfChapter.Remove(this); + } + this._Sys_PdfBook.Entity = value; + if ((value != null)) + { + value.Sys_PdfChapter.Add(this); + this._BookId = value.BookId; + } + else + { + this._BookId = default(string); + } + this.SendPropertyChanged("Sys_PdfBook"); + } + } + } + + public event PropertyChangingEventHandler PropertyChanging; + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void SendPropertyChanging() + { + if ((this.PropertyChanging != null)) + { + this.PropertyChanging(this, emptyChangingEventArgs); + } + } + + protected virtual void SendPropertyChanged(String propertyName) + { + if ((this.PropertyChanged != null)) + { + this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + } + + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Sys_PdfPage")] + public partial class Sys_PdfPage : INotifyPropertyChanging, INotifyPropertyChanged + { + + private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); + + private string _PageId; + + private string _BookId; + + private System.Nullable _PageNo; + + private string _Text; + + private System.Nullable _OcrStatus; + + private System.Nullable _RetryCount; + + private EntityRef _Sys_PdfBook; + + #region 可扩展性方法定义 + partial void OnLoaded(); + partial void OnValidate(System.Data.Linq.ChangeAction action); + partial void OnCreated(); + partial void OnPageIdChanging(string value); + partial void OnPageIdChanged(); + partial void OnBookIdChanging(string value); + partial void OnBookIdChanged(); + partial void OnPageNoChanging(System.Nullable value); + partial void OnPageNoChanged(); + partial void OnTextChanging(string value); + partial void OnTextChanged(); + partial void OnOcrStatusChanging(System.Nullable value); + partial void OnOcrStatusChanged(); + partial void OnRetryCountChanging(System.Nullable value); + partial void OnRetryCountChanged(); + #endregion + + public Sys_PdfPage() + { + this._Sys_PdfBook = default(EntityRef); + OnCreated(); + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PageId", DbType="NVarChar(50) NOT NULL", CanBeNull=false, IsPrimaryKey=true)] + public string PageId + { + get + { + return this._PageId; + } + set + { + if ((this._PageId != value)) + { + this.OnPageIdChanging(value); + this.SendPropertyChanging(); + this._PageId = value; + this.SendPropertyChanged("PageId"); + this.OnPageIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BookId", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] + public string BookId + { + get + { + return this._BookId; + } + set + { + if ((this._BookId != value)) + { + if (this._Sys_PdfBook.HasLoadedOrAssignedValue) + { + throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException(); + } + this.OnBookIdChanging(value); + this.SendPropertyChanging(); + this._BookId = value; + this.SendPropertyChanged("BookId"); + this.OnBookIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PageNo", DbType="Int")] + public System.Nullable PageNo + { + get + { + return this._PageNo; + } + set + { + if ((this._PageNo != value)) + { + this.OnPageNoChanging(value); + this.SendPropertyChanging(); + this._PageNo = value; + this.SendPropertyChanged("PageNo"); + this.OnPageNoChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Text", DbType="NVarChar(MAX)", UpdateCheck=UpdateCheck.Never)] + public string Text + { + get + { + return this._Text; + } + set + { + if ((this._Text != value)) + { + this.OnTextChanging(value); + this.SendPropertyChanging(); + this._Text = value; + this.SendPropertyChanged("Text"); + this.OnTextChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OcrStatus", DbType="Int")] + public System.Nullable OcrStatus + { + get + { + return this._OcrStatus; + } + set + { + if ((this._OcrStatus != value)) + { + this.OnOcrStatusChanging(value); + this.SendPropertyChanging(); + this._OcrStatus = value; + this.SendPropertyChanged("OcrStatus"); + this.OnOcrStatusChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RetryCount", DbType="Int")] + public System.Nullable RetryCount + { + get + { + return this._RetryCount; + } + set + { + if ((this._RetryCount != value)) + { + this.OnRetryCountChanging(value); + this.SendPropertyChanging(); + this._RetryCount = value; + this.SendPropertyChanged("RetryCount"); + this.OnRetryCountChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_PdfPage_Book", Storage="_Sys_PdfBook", ThisKey="BookId", OtherKey="BookId", IsForeignKey=true)] + public Sys_PdfBook Sys_PdfBook + { + get + { + return this._Sys_PdfBook.Entity; + } + set + { + Sys_PdfBook previousValue = this._Sys_PdfBook.Entity; + if (((previousValue != value) + || (this._Sys_PdfBook.HasLoadedOrAssignedValue == false))) + { + this.SendPropertyChanging(); + if ((previousValue != null)) + { + this._Sys_PdfBook.Entity = null; + previousValue.Sys_PdfPage.Remove(this); + } + this._Sys_PdfBook.Entity = value; + if ((value != null)) + { + value.Sys_PdfPage.Add(this); + this._BookId = value.BookId; + } + else + { + this._BookId = default(string); + } + this.SendPropertyChanged("Sys_PdfBook"); + } + } + } + + public event PropertyChangingEventHandler PropertyChanging; + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void SendPropertyChanging() + { + if ((this.PropertyChanging != null)) + { + this.PropertyChanging(this, emptyChangingEventArgs); + } + } + + protected virtual void SendPropertyChanged(String propertyName) + { + if ((this.PropertyChanged != null)) + { + this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + } + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Sys_Role")] public partial class Sys_Role : INotifyPropertyChanging, INotifyPropertyChanged { diff --git a/SGGL/SgManager.AI/SgManager.AI.csproj b/SGGL/SgManager.AI/SgManager.AI.csproj index e8a4b58..4112649 100644 --- a/SGGL/SgManager.AI/SgManager.AI.csproj +++ b/SGGL/SgManager.AI/SgManager.AI.csproj @@ -1,4 +1,4 @@ - + diff --git a/SGGL/WebAPI/Controllers/HSSE/PdfBookController.cs b/SGGL/WebAPI/Controllers/HSSE/PdfBookController.cs new file mode 100644 index 0000000..5d83573 --- /dev/null +++ b/SGGL/WebAPI/Controllers/HSSE/PdfBookController.cs @@ -0,0 +1,258 @@ +using BLL; +using System; +using System.Web.Http; + +namespace WebAPI.Controllers.HSSE +{ + /// + /// PDF 书籍模块接口(对应 PC 页面 HSSE/PDFDOC/PdfBookView.aspx 的完整功能:多级章节目录 + 富文本正文维护)。 + /// 数据表:Sys_PdfBook / Sys_PdfChapter(目录层级 ParentChapterId+Level,正文为 UMeditor 富文本 HTML)。 + /// 路由:api/PdfBook/{action},响应统一包装 Model.ResponeData(code:1正常 0异常)。 + /// 鉴权:只读接口(getBooks/getChapterTree/getChapter/searchChapter)已加入权限过滤白名单,免登录; + /// 维护接口(add*/edit*/delete*/save*)需登录(请求头 token=用户/人员Id 或 FormsAuth 会话)。 + /// + public class PdfBookController : ApiController + { + #region 只读接口 + + /// 获取书籍列表(含章节数,按登记时间升序)。 + public Model.ResponeData getBooks() + { + var responeData = new Model.ResponeData(); + try + { + responeData.data = APIPdfBookService.GetBooks(); + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + return responeData; + } + + /// 获取某本书的多级章节目录树(嵌套 Children)。 + /// 书籍主键,必填。 + public Model.ResponeData getChapterTree(string bookId) + { + var responeData = new Model.ResponeData(); + try + { + responeData.data = APIPdfBookService.GetChapterTree(bookId); + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + return responeData; + } + + /// 获取章节正文详情(含富文本 HTML 与纯文本)。 + /// 章节主键,必填。 + public Model.ResponeData getChapter(string chapterId) + { + var responeData = new Model.ResponeData(); + try + { + var detail = APIPdfBookService.GetChapterDetail(chapterId); + if (detail == null) + { + responeData.code = 0; + responeData.message = "章节不存在或已被删除"; + } + else + { + responeData.data = detail; + } + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + return responeData; + } + + /// 章节关键词检索(正文 HTML 先转纯文本再匹配,返回命中片段)。 + [HttpPost] + public Model.ResponeData searchChapter([FromBody] SearchRequest request) + { + var responeData = new Model.ResponeData(); + try + { + if (request == null) + throw new Exception("请求参数不能为空"); + responeData.data = APIPdfBookService.SearchChapter(request.keyword, request.bookId); + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + return responeData; + } + #endregion + + #region 维护接口(需登录) + + /// 新增书籍,返回新书籍 BookId。 + [HttpPost] + public Model.ResponeData addBook([FromBody] AddBookRequest request) + { + var responeData = new Model.ResponeData(); + try + { + if (request == null) + throw new Exception("请求参数不能为空"); + responeData.data = new { bookId = APIPdfBookService.AddBook(request.title, request.createUser) }; + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + return responeData; + } + + /// 新增章节(parentChapterId 为空=顶级章节),返回新章节 ChapterId。 + [HttpPost] + public Model.ResponeData addChapter([FromBody] AddChapterRequest request) + { + var responeData = new Model.ResponeData(); + try + { + if (request == null) + throw new Exception("请求参数不能为空"); + responeData.data = new + { + chapterId = APIPdfBookService.AddChapter(request.bookId, request.parentChapterId, request.chapterTitle, request.createUser) + }; + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + return responeData; + } + + /// 编辑章节名称。 + [HttpPost] + public Model.ResponeData editChapter([FromBody] EditChapterRequest request) + { + var responeData = new Model.ResponeData(); + try + { + if (request == null) + throw new Exception("请求参数不能为空"); + APIPdfBookService.EditChapter(request.chapterId, request.chapterTitle); + responeData.data = true; + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + return responeData; + } + + /// 删除章节及其全部子章节,data 返回删除的章节总数。 + [HttpPost] + public Model.ResponeData deleteChapter([FromBody] DeleteChapterRequest request) + { + var responeData = new Model.ResponeData(); + try + { + if (request == null) + throw new Exception("请求参数不能为空"); + responeData.data = new { deletedCount = APIPdfBookService.DeleteChapter(request.chapterId) }; + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + return responeData; + } + + /// 保存章节正文(富文本 HTML,同页面"保存内容")。 + [HttpPost] + public Model.ResponeData saveContent([FromBody] SaveContentRequest request) + { + var responeData = new Model.ResponeData(); + try + { + if (request == null) + throw new Exception("请求参数不能为空"); + APIPdfBookService.SaveContent(request.chapterId, request.content); + responeData.data = true; + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + return responeData; + } + #endregion + + #region 请求模型 + /// 章节关键词检索请求。 + public class SearchRequest + { + /// 检索关键词,必填。 + public string keyword { get; set; } + /// 书籍主键;不传/为空则全库检索。 + public string bookId { get; set; } + } + + /// 新增书籍请求。 + public class AddBookRequest + { + /// 书名,必填。 + public string title { get; set; } + /// 登记人(缺省 "api")。 + public string createUser { get; set; } + } + + /// 新增章节请求。 + public class AddChapterRequest + { + /// 所属书籍主键,必填。 + public string bookId { get; set; } + /// 父章节主键;为空=顶级章节。 + public string parentChapterId { get; set; } + /// 章节名称,必填。 + public string chapterTitle { get; set; } + /// 登记人(预留)。 + public string createUser { get; set; } + } + + /// 编辑章节请求。 + public class EditChapterRequest + { + /// 章节主键,必填。 + public string chapterId { get; set; } + /// 新章节名称,必填。 + public string chapterTitle { get; set; } + } + + /// 删除章节请求。 + public class DeleteChapterRequest + { + /// 章节主键,必填(连同全部子章节一并删除)。 + public string chapterId { get; set; } + } + + /// 保存章节正文请求。 + public class SaveContentRequest + { + /// 章节主键,必填。 + public string chapterId { get; set; } + /// 正文内容(UMeditor 富文本 HTML),可为空串。 + public string content { get; set; } + } + #endregion + } +} diff --git a/SGGL/WebAPI/Controllers/MaterialsBasicsController.cs b/SGGL/WebAPI/Controllers/MaterialsBasicsController.cs index dd0f90f..ba730dd 100644 --- a/SGGL/WebAPI/Controllers/MaterialsBasicsController.cs +++ b/SGGL/WebAPI/Controllers/MaterialsBasicsController.cs @@ -102,7 +102,7 @@ namespace WebAPI.Controllers try { string strSql = "SELECT cp.ProjectId,cp.InstallationId,zz.Installationname AS InstallationName,ghfs AS Ghfs,cp.MaterialID,MaterialName,specificationtype AS Specificationtype,MaterialQuality,standardspecification ,unit AS Unit," + - "technicalconditions AS TechnicalConditions,SystemCode,rtrim( ltrim( TAreaMaterialMID ) ) AS AreaCode,0.000 AS bcckl,SUM ( Aquantity ) AS Aquantity,SUM ( Pquantity ) AS jh_quantity,SUM ( SQuantity ) AS dj_quantity,SUM ( HQuantity ) AS hj_quantity,SUM ( Pquantity ) - SUM ( OQuantity ) AS ck_quantity,SUM ( RQuantity ) AS tk_quantity,(SELECT SUM( SQuantity ) - SUM ( OQuantity ) + SUM ( RQuantity ) - SUM ( HQuantity ) FROM cl_w_comp WHERE cl_w_comp.MaterialID= cp.MaterialID AND cl_w_comp.InstallationId= cp.InstallationId AND cl_w_comp.ghfs= cp.ghfs ) AS kc_quantity,ROW_NUMBER ( ) OVER ( ORDER BY zz.InstallationCode,SystemCode ASC ) AS RowNum,0 AS xz,0 AS xh FROM cl_w_comp cp LEFT JOIN CL_B_Material mt ON mt.MaterialID= cp.MaterialID LEFT JOIN cl_b_Installation zz ON zz.InstallationId= cp.InstallationId GROUP BY cp.ProjectId,cp.InstallationId,zz.InstallationCode,zz.Installationname,ghfs,cp.MaterialID,MaterialName,specificationtype,MaterialQuality,standardspecification,unit,technicalconditions,SystemCode,TAreaMaterialMID HAVING "; + "technicalconditions AS TechnicalConditions,SystemCode,rtrim( ltrim( TAreaMaterialMID ) ) AS AreaCode,0.000 AS bcckl,SUM ( Aquantity ) AS Aquantity,SUM ( Pquantity ) AS jh_quantity,SUM ( SQuantity ) AS dj_quantity,SUM ( HQuantity ) AS hj_quantity,(SUM ( Pquantity ) - SUM ( OQuantity ) + SUM(RQuantity))AS ck_quantity,SUM ( RQuantity ) AS tk_quantity,(SELECT SUM( SQuantity ) - SUM ( OQuantity ) + SUM ( RQuantity ) - SUM ( HQuantity ) FROM cl_w_comp WHERE cl_w_comp.MaterialID= cp.MaterialID AND cl_w_comp.InstallationId= cp.InstallationId AND cl_w_comp.ghfs= cp.ghfs ) AS kc_quantity,ROW_NUMBER ( ) OVER ( ORDER BY zz.InstallationCode,SystemCode ASC ) AS RowNum,0 AS xz,0 AS xh FROM cl_w_comp cp LEFT JOIN CL_B_Material mt ON mt.MaterialID= cp.MaterialID LEFT JOIN cl_b_Installation zz ON zz.InstallationId= cp.InstallationId GROUP BY cp.ProjectId,cp.InstallationId,zz.InstallationCode,zz.Installationname,ghfs,cp.MaterialID,MaterialName,specificationtype,MaterialQuality,standardspecification,unit,technicalconditions,SystemCode,TAreaMaterialMID HAVING "; List listStr = new List(); strSql += "cp.ProjectId= @ProjectId AND cp.installationid= @InstallationId AND TAreaMaterialMID = @area AND ghfs = @ghfs AND SystemCode = @code"; listStr.Add(new SqlParameter("@ProjectId", ProjectId)); diff --git a/SGGL/WebAPI/Filter/TestPermissionAttribute.cs b/SGGL/WebAPI/Filter/TestPermissionAttribute.cs index d824ed9..1f47187 100644 --- a/SGGL/WebAPI/Filter/TestPermissionAttribute.cs +++ b/SGGL/WebAPI/Filter/TestPermissionAttribute.cs @@ -179,6 +179,11 @@ namespace WebAPI.Filter "Rectify*getRectifyList", "ImageRecognition*getImageContent", "QuantityManagement*dayInputList", + // PDF 书籍模块只读接口(阅读/检索免登录,与 ProtectionStandards 等规范类只读接口一致;维护类接口不在白名单,需 token 登录) + "PdfBook*getBooks", + "PdfBook*getChapterTree", + "PdfBook*getChapter", + "PdfBook*searchChapter", }; /// @@ -215,4 +220,4 @@ namespace WebAPI.Filter public static List listeds = new List {"Person*getPersonByProjectIdIdentityCard", "Person*getPersonAllData", "Person*getPersonInOutList", "Person*addToBlack", "Person*getPersonData", "SY*SaveRisk", "Person*SaveSitePerson", "Person*SaveAndUpdateSitePerson", "Unit*AddUnit", "SY*SaveEnvironmentProtection","Person*getAllPersonDataExchange","SY*SaveLicence", "SY*SavePromise", "SY*SaveDataBase", "SY*SaveMajorHazard", "SY*SaveHiddenDangers", "HazardRealTime*SaveHazardRealTime", "upload*attendance", "upload*person", "Person*getPersonDataExchange", "Person*getPersonInOut", "Person*getUpdatePersonExchangeTime", "CommenInfo*FileUpload" }; } -} \ No newline at end of file +} \ No newline at end of file diff --git a/SGGL/WebAPI/WebAPI.csproj b/SGGL/WebAPI/WebAPI.csproj index 97078ba..1686b08 100644 --- a/SGGL/WebAPI/WebAPI.csproj +++ b/SGGL/WebAPI/WebAPI.csproj @@ -170,6 +170,7 @@ + @@ -376,4 +377,4 @@ --> - \ No newline at end of file +