diff --git a/DataBase/版本日志/SGGLDB_V2023-10-27.sql b/DataBase/版本日志/SGGLDB_V2023-10-27.sql
new file mode 100644
index 00000000..5356b3f7
--- /dev/null
+++ b/DataBase/版本日志/SGGLDB_V2023-10-27.sql
@@ -0,0 +1,57 @@
+
+Alter VIEW [dbo].[View_HJGL_Batch_PointBatchItem]
+AS
+/*************点口明细表*************/
+SELECT PointBatchItem.PointBatchItemId,
+PointBatchItem.PointBatchId,
+PointBatch.ProjectId,
+PointBatch.UnitId,
+PointBatch.DetectionTypeId,
+PointBatch.PointBatchCode,
+Pipeline.UnitWorkId,
+PointBatchItem.WeldJointId,
+(CASE PointBatchItem.PointState WHEN '1' THEN '点口' WHEN '2' THEN '扩透' END) AS PointState,
+(CASE PointBatchItem.IsBuildTrust WHEN 1 THEN '是' ELSE '' END) AS IsBuildTrust,
+(CASE WHEN PointBatchItem.IsAudit=1 THEN '是'
+ WHEN (PointBatchItem.IsAudit IS NULL OR PointBatchItem.IsAudit=0) AND PointBatchItem.PointState IS NOT NULL THEN '否'
+ WHEN (PointBatchItem.IsAudit IS NULL OR PointBatchItem.IsAudit=0) AND PointBatchItem.PointState IS NULL THEN '' END) AS PointIsAudit,
+PointBatchItem.PointDate,--点口日期
+(CASE PointBatchItem.IsWelderFirst WHEN 1 THEN '是' ELSE '' END) AS IsWelderFirst,
+PointBatchItem.RepairDate,--返修日期
+PointBatchItem.RepairRecordId,
+PointBatchItem.CutDate,--切除日期
+PointBatchItem.PBackingWelderId,--返修打底焊工
+PointBatchItem.PCoverWelderId,--返修盖面焊工
+UnitWork.UnitWorkCode,--工区号
+WeldJoint.WeldJointCode,--焊口号
+WeldJoint.BackingWelderId AS WelderId, --焊工ID
+BackingWelder.WelderCode AS BackingWelderCode,
+CoverWelder.WelderCode AS CoverWelderCode,
+WeldType.WeldTypeCode,
+WeldJoint.JointAttribute,
+WeldJoint.JointArea,--焊接区域
+WeldJoint.Size,--实际寸径
+WeldingDaily.WeldingDate,--焊接日期
+WeldJoint.PipelineId, --管线ID
+WeldJoint.Material1Id AS Mat, --材质
+WeldJoint.Specification, --规格
+Pipeline.PipelineCode, --管线号
+PipingClass.PipingClassName , --管道等级
+WeldJoint.BackingWelderId,
+WeldJoint.CoverWelderId
+FROM dbo.HJGL_Batch_PointBatchItem AS PointBatchItem
+LEFT JOIN dbo.HJGL_Batch_PointBatch AS PointBatch ON PointBatch.PointBatchId=PointBatchItem.PointBatchId
+LEFT JOIN dbo.HJGL_WeldJoint AS WeldJoint ON WeldJoint.WeldJointId=PointBatchItem.WeldJointId
+LEFT JOIN dbo.HJGL_Pipeline AS Pipeline ON Pipeline.PipelineId=WeldJoint.PipelineId
+LEFT JOIN dbo.WBS_UnitWork AS UnitWork ON UnitWork.UnitWorkId=Pipeline.UnitWorkId
+LEFT JOIN dbo.HJGL_WeldingDaily AS WeldingDaily ON WeldingDaily.WeldingDailyId=WeldJoint.WeldingDailyId
+LEFT JOIN dbo.Base_PipingClass AS PipingClass ON PipingClass.PipingClassId=Pipeline.PipingClassId
+LEFT JOIN SitePerson_Person AS BackingWelder ON BackingWelder.PersonId=WeldJoint.BackingWelderId
+LEFT JOIN SitePerson_Person AS CoverWelder ON CoverWelder.PersonId=WeldJoint.CoverWelderId
+LEFT JOIN Base_WeldType AS WeldType ON WeldType.WeldTypeId=WeldJoint.WeldTypeId
+LEFT JOIN HJGL_Hard_TrustItem HardTrustItem ON HardTrustItem.WeldJointId=PointBatchItem.WeldJointId
+where (WeldJoint.IsHotProess!=1 or (WeldJoint.IsHotProess=1 and HardTrustItem.IsPass=1))
+and BackingWelder.ProjectId=Pipeline.ProjectId and CoverWelder.ProjectId=Pipeline.ProjectId
+
+go
+
diff --git a/DataBase/版本日志/SGGLDB_V2023-10-30.sql b/DataBase/版本日志/SGGLDB_V2023-10-30.sql
new file mode 100644
index 00000000..3bd6ab95
--- /dev/null
+++ b/DataBase/版本日志/SGGLDB_V2023-10-30.sql
@@ -0,0 +1,45 @@
+ALTER TABLE [dbo].[Base_Project] ADD IsCNCECShow BIT NULL
+GO
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ƿչʾ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_Project', @level2type=N'COLUMN',@level2name=N'IsCNCECShow'
+GO
+UPDATE Base_Project SET IsCNCECShow= 1 WHERE ProjectState=1
+GO
+UPDATE Base_Project SET IsCNCECShow= 0 WHERE IsCNCECShow IS NULL
+GO
+
+ALTER VIEW [dbo].[View_License_LicenseManager]
+AS
+/*ֳȫ֤*/
+SELECT LicenseManager.LicenseManagerId,
+ LicenseManager.ProjectId,
+ LicenseManager.LicenseTypeId,
+ LicenseManager.LicenseManagerCode,
+ LicenseManager.LicenseManageName,
+ LicenseManager.UnitId,
+ LicenseManager.LicenseManageContents,
+ LicenseManager.CompileMan,
+ LicenseManager.CompileDate,
+ LicenseManager.States,
+ Project.ProjectCode,
+ Project.ProjectName,
+ Project.IsCNCECShow,
+ LicenseType.LicenseTypeName,
+ Unit.UnitName,
+ Users.PersonName,
+ LicenseManager.WorkAreaId,
+ --WorkArea.WorkAreaName,
+ LicenseManager.StartDate,
+ LicenseManager.EndDate,
+ LicenseManager.ApplicantMan,
+ WorkAreaName = STUFF(( SELECT ',' + UnitWorkName FROM WBS_UnitWork
+ where PATINDEX('%,' + RTRIM(WBS_UnitWork.UnitWorkId) + ',%',',' + LicenseManager.WorkAreaId + ',')>0
+ ORDER BY PATINDEX('%,' + RTRIM(LicenseManager.WorkAreaId) + ',%',',' + LicenseManager.WorkAreaId + ',')
+ FOR XML PATH('')), 1, 1,'')
+FROM dbo.License_LicenseManager AS LicenseManager
+LEFT JOIN dbo.Base_Project AS Project ON Project.ProjectId = LicenseManager.ProjectId
+LEFT JOIN dbo.Base_LicenseType AS LicenseType ON LicenseType.LicenseTypeId = LicenseManager.LicenseTypeId
+LEFT JOIN dbo.Base_Unit AS Unit ON Unit.UnitId = LicenseManager.UnitId
+LEFT JOIN dbo.Person_Persons AS Users ON Users.PersonId = LicenseManager.CompileMan
+LEFT JOIN dbo.WBS_UnitWork AS WorkArea ON WorkArea.UnitWorkId = LicenseManager.WorkAreaId
+
+GO
\ No newline at end of file
diff --git a/DataBase/菜单初始化脚本/1-6合同管理(Menu_PHTGL).sql b/DataBase/菜单初始化脚本/1-6合同管理(Menu_PHTGL).sql
index c792a835..38fea7e0 100644
--- a/DataBase/菜单初始化脚本/1-6合同管理(Menu_PHTGL).sql
+++ b/DataBase/菜单初始化脚本/1-6合同管理(Menu_PHTGL).sql
@@ -170,25 +170,26 @@ INSERT [Sys_Menu] ([MenuId],[MenuName],[SortIndex],[SuperMenu],[MenuType],[IsOff
VALUES ( N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'۸ϵ',30,N'0',N'Menu_PHTGL',0,0,1)
GO
INSERT [Sys_Menu] ([MenuId],[MenuName],[SortIndex],[SuperMenu],[MenuType],[IsOffice],[IsEnd],[IsUsed])
- VALUES ( N'C8C719BC-450F-43AB-B17F-AB5DECD83E17',N'',10,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
+ VALUES ( N'C8C719BC-450F-43AB-B17F-AB5DECD83E17',N'',10,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
INSERT [Sys_Menu] ([MenuId],[MenuName],[SortIndex],[SuperMenu],[MenuType],[IsOffice],[IsEnd],[IsUsed])
- VALUES ( N'BBA09E69-5017-411C-A516-64D0140AF70E',N'',20,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
+ VALUES ( N'BBA09E69-5017-411C-A516-64D0140AF70E',N'ֽṹԤƹ',20,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
INSERT [Sys_Menu] ([MenuId],[MenuName],[SortIndex],[SuperMenu],[MenuType],[IsOffice],[IsEnd],[IsUsed])
- VALUES ( N'999FCA97-E28A-46FA-9293-0399D1172AC9',N'',30,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
+ VALUES ( N'999FCA97-E28A-46FA-9293-0399D1172AC9',N'չܵװ',30,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
INSERT [Sys_Menu] ([MenuId],[MenuName],[SortIndex],[SuperMenu],[MenuType],[IsOffice],[IsEnd],[IsUsed])
- VALUES ( N'838ED633-B375-4937-A4E1-F95FCCF640A0',N'DZ',40,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
+ VALUES ( N'838ED633-B375-4937-A4E1-F95FCCF640A0',N'豸װ',40,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
INSERT [Sys_Menu] ([MenuId],[MenuName],[SortIndex],[SuperMenu],[MenuType],[IsOffice],[IsEnd],[IsUsed])
- VALUES ( N'AD5C7CBB-310D-4D15-9AFF-530BF765F460',N'ˮ',50,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
+ VALUES ( N'AD5C7CBB-310D-4D15-9AFF-530BF765F460',N'DZ豸ֳװ',50,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
INSERT [Sys_Menu] ([MenuId],[MenuName],[SortIndex],[SuperMenu],[MenuType],[IsOffice],[IsEnd],[IsUsed])
- VALUES ( N'0141B1F4-970A-4C23-B58A-BDF0785CA96E',N'ůͨ',60,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
+ VALUES ( N'0141B1F4-970A-4C23-B58A-BDF0785CA96E',N'ǰװ',60,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
INSERT [Sys_Menu] ([MenuId],[MenuName],[SortIndex],[SuperMenu],[MenuType],[IsOffice],[IsEnd],[IsUsed])
- VALUES ( N'8A1D2885-2584-44AD-A4DD-ED3F98198C8A',N'',70,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
+ VALUES ( N'8A1D2885-2584-44AD-A4DD-ED3F98198C8A',N'ˮůװ',70,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
INSERT [Sys_Menu] ([MenuId],[MenuName],[SortIndex],[SuperMenu],[MenuType],[IsOffice],[IsEnd],[IsUsed])
- VALUES ( N'48216E20-7103-48AB-A12F-237E28605952',N'',80,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
+ VALUES ( N'48216E20-7103-48AB-A12F-237E28605952',N'ȹ',80,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
INSERT [Sys_Menu] ([MenuId],[MenuName],[SortIndex],[SuperMenu],[MenuType],[IsOffice],[IsEnd],[IsUsed])
- VALUES ( N'5EB73242-63F0-402C-A42B-2BCDC0AC2229',N'ٽʩ',90,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
+ VALUES ( N'5EB73242-63F0-402C-A42B-2BCDC0AC2229',N'',90,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
+ INSERT [Sys_Menu] ([MenuId],[MenuName],[SortIndex],[SuperMenu],[MenuType],[IsOffice],[IsEnd],[IsUsed])
+ VALUES ( N'2A5A325E-C3C2-4412-9F5D-FB9185E9EB9B',N'',100,N'7D8CF5B4-B945-4254-B134-4ABF55255497',N'Menu_PHTGL',0,1,1)
GO
-
INSERT [Sys_Menu] ([MenuId],[MenuName],[SortIndex],[SuperMenu],[MenuType],[IsOffice],[IsEnd],[IsUsed])
VALUES ( N'73B84D49-940A-42DF-AC14-F4C75E10EC39',N'ִͬи',40,N'0',N'Menu_PHTGL',0,0,1)
GO
diff --git a/SGGL/BLL/BLL.csproj b/SGGL/BLL/BLL.csproj
index ea01de06..b8bfa829 100644
--- a/SGGL/BLL/BLL.csproj
+++ b/SGGL/BLL/BLL.csproj
@@ -271,6 +271,7 @@
+
diff --git a/SGGL/BLL/Common/Const.cs b/SGGL/BLL/Common/Const.cs
index b5f1c295..80b375dc 100644
--- a/SGGL/BLL/Common/Const.cs
+++ b/SGGL/BLL/Common/Const.cs
@@ -3424,9 +3424,9 @@ namespace BLL
///
public const string TemQuantityTemplateUrl = "File\\Excel\\DataIn\\工程量清单模板.xlsx";
///
- /// 合同执行跟踪导入模板
+ /// 合同价格信息导入模板
///
- public const string TemContractTrackTemplateUrl = "File\\Excel\\DataIn\\合同执行跟踪导入模板.xlsx";
+ public const string TemContractTrackTemplateUrl = "File\\Excel\\DataIn\\合同价格信息导入模板.xlsx";
#endregion
diff --git a/SGGL/BLL/Common/MultiHeaderTable.cs b/SGGL/BLL/Common/MultiHeaderTable.cs
new file mode 100644
index 00000000..1e99cd70
--- /dev/null
+++ b/SGGL/BLL/Common/MultiHeaderTable.cs
@@ -0,0 +1,142 @@
+using FineUIPro;
+using System.Collections.Generic;
+using System;
+///
+/// 处理多表头的类
+///
+public class MultiHeaderTable
+{
+ // 包含 rowspan,colspan 的多表头,方便生成 HTML 的 table 标签
+ public List> MultiTable = new List>();
+ // 最终渲染的列数组
+ public List Columns = new List();
+
+
+ public void ResolveMultiHeaderTable(GridColumnCollection columns)
+ {
+ List