diff --git a/DataBase/版本日志/SGGLDB_WH_2023-06-27.sql b/DataBase/版本日志/SGGLDB_WH_2023-06-27.sql
new file mode 100644
index 00000000..2198f30a
--- /dev/null
+++ b/DataBase/版本日志/SGGLDB_WH_2023-06-27.sql
@@ -0,0 +1,239 @@
+--cd C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools
+--SqlMetal /views /server:WQ /database:SGGLDB_WH /code:C:\Model.cs /namespace:Model
+
+--菜单新增
+delete Sys_Menu where MenuId='5C07E135-C3AB-4CE4-97A2-C79970640272'
+delete Sys_Menu where MenuId='B4702BFB-8CEB-46AD-BDC0-751D146FE228'
+delete Sys_Menu where MenuId='34719347-E5EE-4491-9E92-B1270C187C7F'
+delete Sys_Menu where MenuId='F0E06491-B1DA-4510-ABCA-D09F4B24EE50'
+INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('5C07E135-C3AB-4CE4-97A2-C79970640272','系统划分',null,'TestRun/BeforeTestRun/DeviceRun.aspx',1,'AD6E08B6-5571-4FFB-BDBE-9E6811770BD6','Menu_TestRun',0,1,1)
+INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('B4702BFB-8CEB-46AD-BDC0-751D146FE228','工作包设置',null,'TestRun/BeforeTestRun/SetWorkPackage.aspx',2,'AD6E08B6-5571-4FFB-BDBE-9E6811770BD6','Menu_TestRun',0,1,1)
+INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('34719347-E5EE-4491-9E92-B1270C187C7F','工作包裁剪',null,'TestRun/BeforeTestRun/SubSysWorkPackage.aspx',3,'AD6E08B6-5571-4FFB-BDBE-9E6811770BD6','Menu_TestRun',0,1,1)
+INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('F0E06491-B1DA-4510-ABCA-D09F4B24EE50','子系统资产导入',null,'TestRun/BeforeTestRun/SysPipingDeviceImport.aspx',4,'AD6E08B6-5571-4FFB-BDBE-9E6811770BD6','Menu_TestRun',0,1,1)
+go
+
+--==试车装置信息删除
+if object_id(N'PreRun_SysDevice',N'U') is not null
+drop table dbo.PreRun_SysDevice
+--==工作包设置删除
+if object_id(N'Work_Package',N'U') is not null
+drop table dbo.Work_Package
+--==子系统工作包管理删除
+if object_id(N'SubSys_WorkPackage',N'U') is not null
+drop table dbo.SubSys_WorkPackage
+--==管道一览表删除
+if object_id(N'Property_SysPiping',N'U') is not null
+drop table dbo.Property_SysPiping
+--==工艺设备一览表删除
+if object_id(N'Technology_SysPiping',N'U') is not null
+drop table dbo.Technology_SysPiping
+--==子系统选择管道信息删除
+if object_id(N'SubProperty_Select',N'U') is not null
+drop table dbo.SubProperty_Select
+--==子系统选择工艺设备信息删除
+if object_id(N'SubTechnology_Select',N'U') is not null
+drop table dbo.SubTechnology_Select
+
+--==试车装置信息
+if object_id(N'PreRun_SysDevice',N'U') is not null
+drop table dbo.PreRun_SysDevice
+CREATE TABLE dbo.PreRun_SysDevice(
+ PreRunId varchar(50) NOT NULL,--主键
+ PreRunCode varchar(50) NULL,--编码
+ PreRunName varchar(50) NULL,--名称
+ ProjectId varchar(50) NULL,--项目主键
+ PreRunLevel int NULL,--类型1:装置 2:工序 3:系统 4:子系统
+ InstallationId varchar(50) NULL,--装置主键(冗余字段,方便后期关联适用)
+ ProcessesId varchar(50) NULL,--工序主键(冗余字段,方便后期关联适用)
+ SystemId varchar(50) NULL,--系统主键(冗余字段,方便后期关联适用)
+ SubsystemId varchar(50) NULL,--子系统主键(冗余字段,方便后期关联适用)
+ ParentId varchar (50) NULL,--上级主键
+ Remark nvarchar(150) NULL,--描述
+ AddUser varchar(50) NULL,--添加人
+ OperateTime datetime NULL,--操作日期
+ Sort int NULL,--排序
+ CONSTRAINT PK_PreRun_SysDevice PRIMARY KEY CLUSTERED
+(
+ PreRunId ASC
+)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
+) ON [PRIMARY]
+GO
+
+--==工作包设置
+if object_id(N'PreRun_WorkPackage',N'U') is not null
+drop table dbo.PreRun_WorkPackage
+CREATE TABLE dbo.PreRun_WorkPackage(
+ WorkPackId varchar(50) NOT NULL,--主键
+ WorkPackCode varchar(50) NULL,--编码
+ WorkPackName varchar(50) NULL,--名称
+ Remark nvarchar(150) NULL,--备注
+ AddUser varchar(50) NULL,--添加人
+ AddTime datetime NULL,--添加日期
+ Sort int NULL,--排序
+ CONSTRAINT PK_PreRun_WorkPackage PRIMARY KEY CLUSTERED
+(
+ WorkPackId ASC
+)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
+) ON [PRIMARY]
+GO
+
+--预添加数据
+delete PreRun_WorkPackage where WorkPackId='1C01150C-977E-499A-9173-95F319BEEF87'
+delete PreRun_WorkPackage where WorkPackId='641DA0F4-42A7-4DE3-9A57-95A606016655'
+delete PreRun_WorkPackage where WorkPackId='BEB24AE8-F66D-458B-ADFD-3810405B5EB8'
+delete PreRun_WorkPackage where WorkPackId='02BC1E1E-E531-4738-B6EC-5CE5BDC47B43'
+delete PreRun_WorkPackage where WorkPackId='474F94B6-E927-4E9A-A544-F8E1AE63F6FF'
+delete PreRun_WorkPackage where WorkPackId='3289A3D2-0691-4AD1-BDF3-1FD784564E71'
+delete PreRun_WorkPackage where WorkPackId='445B915B-3E6D-47BE-BFF4-8762695ADB20'
+delete PreRun_WorkPackage where WorkPackId='73C7D1D7-6DA3-44DD-A88B-7DF0FF15AA4F'
+delete PreRun_WorkPackage where WorkPackId='8845C52D-4C56-442E-9237-CE33E8FC66AA'
+delete PreRun_WorkPackage where WorkPackId='B0D040D4-5867-4335-9258-75504E73987E'
+delete PreRun_WorkPackage where WorkPackId='84C6DAD6-3ED8-4869-ADB4-2EDA3512DB16'
+delete PreRun_WorkPackage where WorkPackId='963E658B-CB53-4FEA-BA7D-723C538B2BD5'
+delete PreRun_WorkPackage where WorkPackId='598A028A-5812-40E3-9D9D-5180A36F4453'
+delete PreRun_WorkPackage where WorkPackId='6D827784-6ABD-4327-ABB7-FDABAC99853F'
+INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackCode,WorkPackName,Remark,AddUser,AddTime,Sort)
+VALUES('1C01150C-977E-499A-9173-95F319BEEF87','WP01','单机试车','','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),1)
+INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackCode,WorkPackName,Remark,AddUser,AddTime,Sort)
+VALUES('641DA0F4-42A7-4DE3-9A57-95A606016655','WP02','管道冲洗','','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),2)
+INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackCode,WorkPackName,Remark,AddUser,AddTime,Sort)
+VALUES('BEB24AE8-F66D-458B-ADFD-3810405B5EB8','WP03','管道吹扫','','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),3)
+INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackCode,WorkPackName,Remark,AddUser,AddTime,Sort)
+VALUES('02BC1E1E-E531-4738-B6EC-5CE5BDC47B43','WP04','蒸汽吹扫','','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),4)
+INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackCode,WorkPackName,Remark,AddUser,AddTime,Sort)
+VALUES('474F94B6-E927-4E9A-A544-F8E1AE63F6FF','WP05','化学清洗','','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),5)
+INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackCode,WorkPackName,Remark,AddUser,AddTime,Sort)
+VALUES('3289A3D2-0691-4AD1-BDF3-1FD784564E71','WP06','烘炉','','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),6)
+INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackCode,WorkPackName,Remark,AddUser,AddTime,Sort)
+VALUES('445B915B-3E6D-47BE-BFF4-8762695ADB20','WP07','催化剂装填','','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),7)
+INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackCode,WorkPackName,Remark,AddUser,AddTime,Sort)
+VALUES('73C7D1D7-6DA3-44DD-A88B-7DF0FF15AA4F','WP08','分子筛装填','','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),8)
+INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackCode,WorkPackName,Remark,AddUser,AddTime,Sort)
+VALUES('8845C52D-4C56-442E-9237-CE33E8FC66AA','WP09','电气调试','','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),9)
+INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackCode,WorkPackName,Remark,AddUser,AddTime,Sort)
+VALUES('B0D040D4-5867-4335-9258-75504E73987E','WP10','仪表调试','','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),10)
+INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackCode,WorkPackName,Remark,AddUser,AddTime,Sort)
+VALUES('84C6DAD6-3ED8-4869-ADB4-2EDA3512DB16','WP11','汽轮机试车','','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),11)
+INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackCode,WorkPackName,Remark,AddUser,AddTime,Sort)
+VALUES('963E658B-CB53-4FEA-BA7D-723C538B2BD5','WP12','大机组试车','','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),12)
+INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackCode,WorkPackName,Remark,AddUser,AddTime,Sort)
+VALUES('598A028A-5812-40E3-9D9D-5180A36F4453','WP13','气密','','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),13)
+INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackCode,WorkPackName,Remark,AddUser,AddTime,Sort)
+VALUES('6D827784-6ABD-4327-ABB7-FDABAC99853F','WP14','清洁度检查','','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),14)
+go
+
+--==子系统工作包管理
+if object_id(N'PreRun_SubSysWorkPackage',N'U') is not null
+drop table dbo.PreRun_SubSysWorkPackage
+CREATE TABLE dbo.PreRun_SubSysWorkPackage(
+ SubSysId varchar(50) NOT NULL,--主键
+ SubSystemId varchar(50) NULL,--子系统主键
+ WorkPackId varchar(50) NULL,--工作包主键
+ WorkPackCode varchar(50) NULL,--工作包Code
+ Remark nvarchar(150) NULL,--备注
+ AddUser varchar(50) NULL,--添加人
+ AddTime datetime NULL,--添加日期
+ Sort int NULL,--排序
+ CONSTRAINT PK_PreRun_SubSysWorkPackage PRIMARY KEY CLUSTERED
+(
+ SubSysId ASC
+)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
+) ON [PRIMARY]
+GO
+
+--==管道一览表
+if object_id(N'PreRun_PropertySysPiping',N'U') is not null
+drop table dbo.PreRun_PropertySysPiping
+CREATE TABLE dbo.PreRun_PropertySysPiping(
+ PropertyId varchar(50) NOT NULL,--主键
+ SystemId varchar(50) NULL,--系统主键
+ ProjectId varchar(50) NULL,--项目主键
+ PipingCode varchar(50) NULL,--管道号
+ Diameter varchar(50) NULL,--直径
+ MaterialLevel varchar(50) NULL,--管道材料等级
+ AdiabatType varchar(50) NULL,--绝热伴热类型
+ AdiabatThickness varchar(50) NULL,--绝热伴热厚度
+ MediumState varchar(50) NULL,--介质相态
+ DrawingNo varchar(50) NULL,--P&ID图号
+ PipingStart varchar(50) NULL,--管道起点
+ PipingEnd varchar(50) NULL,--管道止点
+ PipingLevel varchar(50) NULL,--压力管道级别
+ NormalTemperature varchar(50) NULL,--正常条件温度
+ NormalPressure varchar(50) NULL,--正常条件压力
+ DesignTemperature varchar(50) NULL,--设计条件温度
+ DesignPressure varchar(50) NULL,--设计条件压力
+ PaintLevel varchar(50) NULL,--涂漆等级
+ Remark nvarchar(150) NULL,--备注
+ AddUser varchar(50) NULL,--添加人
+ AddTime datetime NULL,--添加日期
+ Sort int NULL,--排序
+ CONSTRAINT PK_PreRun_PropertySysPiping PRIMARY KEY CLUSTERED
+(
+ PropertyId ASC
+)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
+) ON [PRIMARY]
+GO
+
+--==工艺设备一览表
+if object_id(N'PreRun_TechnologySysPiping',N'U') is not null
+drop table dbo.PreRun_TechnologySysPiping
+CREATE TABLE dbo.PreRun_TechnologySysPiping(
+ TechnologyId varchar(50) NOT NULL,--主键
+ SystemId varchar(50) NULL,--系统主键
+ ProjectId varchar(50) NULL,--项目主键
+ TagNumber varchar(50) NULL,--设备位号
+ NameSpecifications varchar(max) NULL,--设备名称和规格
+ DrawingNo varchar(50) NULL,--图号或型号
+ Materials varchar(50) NULL,--制造材料
+ NumOperate varchar(50) NULL,--数量操作
+ NumStandby varchar(50) NULL,--数量备用
+ WeightSingle varchar(50) NULL,--重量单重
+ WeightTotal varchar(50) NULL,--重量总重
+ Remark nvarchar(150) NULL,--备注
+ AddUser varchar(50) NULL,--添加人
+ AddTime datetime NULL,--添加日期
+ Sort int NULL,--排序
+ CONSTRAINT PK_PreRun_TechnologySysPiping PRIMARY KEY CLUSTERED
+(
+ TechnologyId ASC
+)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
+) ON [PRIMARY]
+GO
+
+--==子系统选择管道信息
+if object_id(N'PreRun_SubPropertySelect',N'U') is not null
+drop table dbo.PreRun_SubPropertySelect
+CREATE TABLE dbo.PreRun_SubPropertySelect(
+ SubPropertyId varchar(50) NOT NULL,--主键
+ ProjectId varchar(50) NULL,--项目主键
+ SubSystemId varchar(50) NULL,--子系统主键
+ PropertyId varchar(50) NOT NULL,--管道主键
+ Remark nvarchar(150) NULL,--备注
+ AddUser varchar(50) NULL,--添加人
+ AddTime datetime NULL,--添加日期
+ Sort int NULL,--排序
+ CONSTRAINT PK_PreRun_SubPropertySelect PRIMARY KEY CLUSTERED
+(
+ SubPropertyId ASC
+)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
+) ON [PRIMARY]
+GO
+
+--==子系统选择工艺设备信息
+if object_id(N'PreRun_SubTechnologySelect',N'U') is not null
+drop table dbo.PreRun_SubTechnologySelect
+CREATE TABLE dbo.PreRun_SubTechnologySelect(
+ SubTechnologyId varchar(50) NOT NULL,--主键
+ ProjectId varchar(50) NULL,--项目主键
+ SubSystemId varchar(50) NULL,--子系统主键
+ TechnologyId varchar(50) NULL,--主键
+ Remark nvarchar(150) NULL,--备注
+ AddUser varchar(50) NULL,--添加人
+ AddTime datetime NULL,--添加日期
+ Sort int NULL,--排序
+ CONSTRAINT PK_PreRun_SubTechnologySelect PRIMARY KEY CLUSTERED
+(
+ SubTechnologyId ASC
+)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
+) ON [PRIMARY]
+GO
\ No newline at end of file
diff --git a/SGGL/BLL/BLL.csproj b/SGGL/BLL/BLL.csproj
index f4f68133..1772261c 100644
--- a/SGGL/BLL/BLL.csproj
+++ b/SGGL/BLL/BLL.csproj
@@ -193,6 +193,7 @@
+
diff --git a/SGGL/BLL/Common/Const.cs b/SGGL/BLL/Common/Const.cs
index 2918270d..e3a2ef11 100644
--- a/SGGL/BLL/Common/Const.cs
+++ b/SGGL/BLL/Common/Const.cs
@@ -3074,6 +3074,18 @@ namespace BLL
///
public const string DesignDrawingsDataInUrl = "File\\Excel\\DataIn\\图纸收发记录导入模板.xls";
///
+ /// 试车装置信息
+ ///
+ public const string PreRunUrl = "File\\Excel\\TestRun\\系统划分.xlsx";
+ ///
+ /// 管道一览表
+ ///
+ public const string PropertyUrl = "File\\Excel\\TestRun\\管道一览表.xlsx";
+ ///
+ /// 设备一览表
+ ///
+ public const string TechnologyUrl = "File\\Excel\\TestRun\\设备一览表.xlsx";
+ ///
/// NCR管理导入模版文件原始的虚拟路径
///
public const string NCRManagementDataInUrl = "File\\Excel\\DataIn\\NCR管理导入模板.xls";
diff --git a/SGGL/BLL/Common/NPOIHelper.cs b/SGGL/BLL/Common/NPOIHelper.cs
new file mode 100644
index 00000000..505431e9
--- /dev/null
+++ b/SGGL/BLL/Common/NPOIHelper.cs
@@ -0,0 +1,630 @@
+using NPOI.HSSF.UserModel;
+using NPOI.SS.UserModel;
+using NPOI.XSSF.UserModel;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BLL
+{
+ public class NPOIHelper
+ {
+ #region 导入
+
+ ///
+ /// Excel转换成DataTable(.xls)
+ ///
+ /// Excel文件路径
+ ///
+ public static DataTable ExcelToDataTable(string filePath)
+ {
+ var dt = new DataTable();
+ using (var file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
+ {
+ var hssfworkbook = new HSSFWorkbook(file);
+ var sheet = hssfworkbook.GetSheetAt(0);
+ for (var j = 0; j < 5; j++)
+ {
+ dt.Columns.Add(Convert.ToChar(((int)'A') + j).ToString());
+ }
+ var rows = sheet.GetRowEnumerator();
+ while (rows.MoveNext())
+ {
+ var row = (HSSFRow)rows.Current;
+ var dr = dt.NewRow();
+ for (var i = 0; i < row.LastCellNum; i++)
+ {
+ var cell = row.GetCell(i);
+ if (cell == null)
+ {
+ dr[i] = null;
+ }
+ else
+ {
+ switch (cell.CellType)
+ {
+ case CellType.Blank:
+ dr[i] = "[null]";
+ break;
+ case CellType.Boolean:
+ dr[i] = cell.BooleanCellValue;
+ break;
+ case CellType.Numeric:
+ dr[i] = cell.ToString();
+ break;
+ case CellType.String:
+ dr[i] = cell.StringCellValue;
+ break;
+ case CellType.Error:
+ dr[i] = cell.ErrorCellValue;
+ break;
+ case CellType.Formula:
+ try
+ {
+ dr[i] = cell.NumericCellValue;
+ }
+ catch
+ {
+ dr[i] = cell.StringCellValue;
+ }
+ break;
+ default:
+ dr[i] = "=" + cell.CellFormula;
+ break;
+ }
+ }
+ }
+ dt.Rows.Add(dr);
+ }
+ }
+ return dt;
+ }
+
+ ///
+ /// Excel转换成DataSet(.xlsx/.xls)
+ ///
+ /// Excel文件路径
+ ///
+ /// 第一行是否为表头
+ ///
+ public static DataSet ExcelToDataSet(string filePath, out string strMsg, bool firstTitle = false)
+ {
+ strMsg = "";
+ DataSet ds = new DataSet();
+ DataTable dt = new DataTable();
+ string fileType = Path.GetExtension(filePath).ToLower();
+ string fileName = Path.GetFileName(filePath).ToLower();
+ try
+ {
+ ISheet sheet = null;
+ int sheetNumber = 0;
+ FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
+ if (fileType == ".xlsx")
+ {
+ // 2007版本
+ fs.Position = 0;
+ XSSFWorkbook workbook = new XSSFWorkbook(fs);
+ sheetNumber = workbook.NumberOfSheets;
+ for (int i = 0; i < sheetNumber; i++)
+ {
+ string sheetName = workbook.GetSheetName(i);
+ sheet = workbook.GetSheet(sheetName);
+ if (sheet != null)
+ {
+ dt = firstTitle ? GetFirstSheetDataTable(sheet, out strMsg) : GetSheetDataTable(sheet, out strMsg);
+ if (dt != null)
+ {
+ dt.TableName = sheetName.Trim();
+ ds.Tables.Add(dt);
+ }
+ else
+ {
+ strMsg = "Sheet数据获取失败,原因:" + strMsg;
+ }
+ }
+ }
+ }
+ else if (fileType == ".xls")
+ {
+ // 2003版本
+ HSSFWorkbook workbook = new HSSFWorkbook(fs);
+ sheetNumber = workbook.NumberOfSheets;
+ for (int i = 0; i < sheetNumber; i++)
+ {
+ string sheetName = workbook.GetSheetName(i);
+ sheet = workbook.GetSheet(sheetName);
+ if (sheet != null)
+ {
+ //dt = GetSheetDataTable(sheet, out strMsg);
+ dt = firstTitle ? GetFirstSheetDataTable(sheet, out strMsg) : GetSheetDataTable(sheet, out strMsg);
+ if (dt != null)
+ {
+ dt.TableName = sheetName.Trim();
+ ds.Tables.Add(dt);
+ }
+ else
+ {
+ strMsg = "Sheet数据获取失败,原因:" + strMsg;
+ }
+ }
+ }
+ }
+ return ds;
+ }
+ catch (Exception ex)
+ {
+ strMsg = ex.Message;
+ return null;
+ }
+ }
+ ///
+ /// 获取sheet表对应的DataTable
+ ///
+ /// Excel工作表
+ ///
+ ///
+ private static DataTable GetSheetDataTable(ISheet sheet, out string strMsg)
+ {
+ strMsg = "";
+ DataTable dt = new DataTable();
+ string sheetName = sheet.SheetName;
+ int startIndex = 0;// sheet.FirstRowNum;
+ int lastIndex = sheet.LastRowNum;
+ //最大列数
+ int cellCount = 0;
+ IRow maxRow = sheet.GetRow(0);
+ for (int i = startIndex; i <= lastIndex; i++)
+ {
+ IRow row = sheet.GetRow(i);
+ if (row != null && cellCount < row.LastCellNum)
+ {
+ cellCount = row.LastCellNum;
+ maxRow = row;
+ }
+ }
+ //列名设置
+ try
+ {
+ for (int i = 0; i < maxRow.LastCellNum; i++)
+ {
+ dt.Columns.Add(Convert.ToChar(((int)'A') + i).ToString());
+ }
+ }
+ catch
+ {
+ strMsg = "工作表" + sheetName + "中无数据";
+ return null;
+ }
+ //数据填充
+ for (int i = startIndex; i <= lastIndex; i++)
+ {
+ IRow row = sheet.GetRow(i);
+ DataRow drNew = dt.NewRow();
+ if (row != null)
+ {
+ for (int j = row.FirstCellNum; j < row.LastCellNum; ++j)
+ {
+ if (row.GetCell(j) != null)
+ {
+ ICell cell = row.GetCell(j);
+ switch (cell.CellType)
+ {
+ case CellType.Blank:
+ drNew[j] = "";
+ break;
+ case CellType.Numeric:
+ short format = cell.CellStyle.DataFormat;
+ //对时间格式(2015.12.5、2015/12/5、2015-12-5等)的处理
+ if (format == 14 || format == 31 || format == 57 || format == 58)
+ drNew[j] = cell.DateCellValue;
+ else
+ drNew[j] = cell.NumericCellValue;
+ if (cell.CellStyle.DataFormat == 177 || cell.CellStyle.DataFormat == 178 || cell.CellStyle.DataFormat == 188)
+ drNew[j] = cell.NumericCellValue.ToString("#0.00");
+ break;
+ case CellType.String:
+ drNew[j] = cell.StringCellValue;
+ break;
+ case CellType.Formula:
+ try
+ {
+ drNew[j] = cell.NumericCellValue;
+ if (cell.CellStyle.DataFormat == 177 || cell.CellStyle.DataFormat == 178 || cell.CellStyle.DataFormat == 188)
+ drNew[j] = cell.NumericCellValue.ToString("#0.00");
+ }
+ catch
+ {
+ try
+ {
+ drNew[j] = cell.StringCellValue;
+ }
+ catch { }
+ }
+ break;
+ default:
+ drNew[j] = cell.StringCellValue;
+ break;
+ }
+ }
+ }
+ }
+ dt.Rows.Add(drNew);
+ }
+ return dt;
+ }
+
+ ///
+ /// 默认第一行为表头,获取sheet表对应的DataTable
+ ///
+ /// Excel工作表
+ ///
+ ///
+ private static DataTable GetFirstSheetDataTable(ISheet sheet, out string strMsg)
+ {
+ strMsg = string.Empty;
+ DataTable dt = new DataTable();
+ FileStream file = null;
+ try
+ {
+
+ //ISheet sheet = Workbook.GetSheetAt(0);//读取第一个sheet
+ System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
+ //得到Excel工作表的行
+ IRow headerRow = sheet.GetRow(0);
+ //得到Excel工作表的总列数
+ int cellCount = headerRow.LastCellNum;
+
+ for (int j = 0; j < cellCount; j++)
+ {
+ //得到Excel工作表指定行的单元格
+ ICell cell = headerRow.GetCell(j);
+ if (cell != null)
+ {
+ dt.Columns.Add(cell.ToString().Trim());
+ }
+ else
+ {
+ dt.Columns.Add(j.ToString());
+ }
+ }
+
+ for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
+ {
+ IRow row = sheet.GetRow(i);
+ DataRow dataRow = dt.NewRow();
+
+ for (int j = row.FirstCellNum; j < cellCount; j++)
+ {
+ if (row.PhysicalNumberOfCells != 0 && row.GetCell(j) != null)
+ {
+ try
+ {
+ if (row.GetCell(j).CellType == CellType.Numeric && DateUtil.IsCellDateFormatted(row.GetCell(j)))
+ {
+ //dataRow[j] = row.GetCell(j).DateCellValue;
+ var cell = row.GetCell(j);
+ short format = cell.CellStyle.DataFormat;
+ //对时间格式(2015.12.5、2015/12/5、2015-12-5等)的处理
+ if (HSSFDateUtil.IsCellDateFormatted(cell))
+ {
+ dataRow[j] = DateTime.FromOADate(cell.NumericCellValue);//cell.DateCellValue;
+ }
+ else
+ {
+ dataRow[j] = cell.NumericCellValue;
+ }
+ if (cell.CellStyle.DataFormat == 177 || cell.CellStyle.DataFormat == 178 || cell.CellStyle.DataFormat == 188)
+ {
+ dataRow[j] = cell.NumericCellValue.ToString("#0.00");
+ }
+ }
+ else
+ {
+ dataRow[j] = row.GetCell(j).ToString().Trim();
+ }
+ }
+ catch (Exception ex)
+ {
+ dataRow[j] = "";
+ }
+ }
+ }
+ dt.Rows.Add(dataRow);
+ }
+
+ return dt;
+
+ }
+ catch (Exception ex)
+ {
+ strMsg = ex.Message;
+ if (file != null)
+ {
+ file.Close();//关闭当前流并释放资源
+ }
+ return null;
+ }
+ }
+
+ /// 读取excel 到datatable
+ /// 默认第一行为表头,导入第一个工作表
+ ///
+ /// excel文档路径
+ ///
+ public static DataTable FirstTitleExcelToDataTable(string strFileName)
+ {
+ DataTable dt = new DataTable();
+ FileStream file = null;
+ IWorkbook Workbook = null;
+ try
+ {
+
+ using (file = new FileStream(strFileName, FileMode.Open, FileAccess.Read))//C#文件流读取文件
+ {
+ if (strFileName.IndexOf(".xlsx") > 0)
+ //把xlsx文件中的数据写入Workbook中
+ Workbook = new XSSFWorkbook(file);
+
+ else if (strFileName.IndexOf(".xls") > 0)
+ //把xls文件中的数据写入Workbook中
+ Workbook = new HSSFWorkbook(file);
+
+ if (Workbook != null)
+ {
+ ISheet sheet = Workbook.GetSheetAt(0);//读取第一个sheet
+ System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
+ //得到Excel工作表的行
+ IRow headerRow = sheet.GetRow(0);
+ //得到Excel工作表的总列数
+ int cellCount = headerRow.LastCellNum;
+
+ for (int j = 0; j < cellCount; j++)
+ {
+ //得到Excel工作表指定行的单元格
+ ICell cell = headerRow.GetCell(j);
+ dt.Columns.Add(cell.ToString());
+ }
+
+ for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
+ {
+ IRow row = sheet.GetRow(i);
+ DataRow dataRow = dt.NewRow();
+
+ for (int j = row.FirstCellNum; j < cellCount; j++)
+ {
+ if (row.GetCell(j) != null)
+ dataRow[j] = row.GetCell(j).ToString();
+ }
+ dt.Rows.Add(dataRow);
+ }
+ }
+ return dt;
+ }
+ }
+ catch (Exception)
+ {
+ if (file != null)
+ {
+ file.Close();//关闭当前流并释放资源
+ }
+ return null;
+ }
+
+ }
+
+ #endregion
+
+ #region 导出
+ ///
+ /// DataSet导出excel,多个sheet
+ ///
+ ///
+ ///
+ ///
+ public static string DataSetToExcel(DataSet ds, string Path)
+ {
+ var result = string.Empty;
+ FileStream fs = null;
+ XSSFWorkbook workbook = new XSSFWorkbook();
+ for (int i = 0; i < ds.Tables.Count; i++)
+ {
+ XSSFSheet sheet = (XSSFSheet)workbook.CreateSheet(ds.Tables[i].TableName);
+
+ XSSFCellStyle dateStyle = (XSSFCellStyle)workbook.CreateCellStyle();
+ XSSFDataFormat format = (XSSFDataFormat)workbook.CreateDataFormat();
+ dateStyle.DataFormat = format.GetFormat("yyyy-mm-dd");
+
+ int rowIndex = 0;
+
+ #region 新建表,填充表头,填充列头,样式
+ if (rowIndex == 0)
+ {
+ //#region 列头及样式
+ //{
+ // XSSFRow headerRow = (XSSFRow)sheet.CreateRow(0);
+ // XSSFCellStyle headStyle = (XSSFCellStyle)workbook.CreateCellStyle();
+ // //headStyle.Alignment = CellHorizontalAlignment.CENTER;
+ // XSSFFont font = (XSSFFont)workbook.CreateFont();
+ // font.FontHeightInPoints = 10;
+ // font.Boldweight = 700;
+ // headStyle.SetFont(font);
+ //}
+ //#endregion
+ //填充表头
+ XSSFRow dataRow = (XSSFRow)sheet.CreateRow(rowIndex);
+ foreach (DataColumn column in ds.Tables[i].Columns)
+ {
+ dataRow.CreateCell(column.Ordinal).SetCellValue(column.ColumnName);
+ }
+
+ rowIndex = 1;
+ }
+ #endregion
+
+ foreach (DataRow row in ds.Tables[i].Rows)
+ {
+ XSSFRow dataRow = (XSSFRow)sheet.CreateRow(rowIndex);
+
+ #region 填充内容
+ foreach (DataColumn column in ds.Tables[i].Columns)
+ {
+ XSSFCell newCell = (XSSFCell)dataRow.CreateCell(column.Ordinal);
+ string type = row[column].GetType().FullName.ToString();
+ newCell.SetCellValue(GetValue(row[column].ToString(), type));
+ }
+ #endregion
+
+ rowIndex++;
+ }
+ }
+
+ using (fs = File.OpenWrite(Path))
+ {
+ workbook.Write(fs);//向打开的这个xls文件中写入数据
+ result = Path;
+ }
+ return result;
+ }
+
+ private static string GetValue(string cellValue, string type)
+ {
+ object value = string.Empty;
+ switch (type)
+ {
+ case "System.String"://字符串类型
+ value = cellValue;
+ break;
+ case "System.DateTime"://日期类型
+ System.DateTime dateV;
+ System.DateTime.TryParse(cellValue, out dateV);
+ value = dateV;
+ break;
+ case "System.Boolean"://布尔型
+ bool boolV = false;
+ bool.TryParse(cellValue, out boolV);
+ value = boolV;
+ break;
+ case "System.Int16"://整型
+ case "System.Int32":
+ case "System.Int64":
+ case "System.Byte":
+ int intV = 0;
+ int.TryParse(cellValue, out intV);
+ value = intV;
+ break;
+ case "System.Decimal"://浮点型
+ case "System.Double":
+ double doubV = 0;
+ double.TryParse(cellValue, out doubV);
+ value = doubV;
+ break;
+ case "System.DBNull"://空值处理
+ value = string.Empty;
+ break;
+ default:
+ value = string.Empty;
+ break;
+ }
+ return value.ToString();
+ }
+
+ #endregion
+
+ #region List转DataTable
+ ///
+ /// 方法一
+ ///
+ public static DataTable ToDataTable(List items)
+ {
+ var tb = new DataTable(typeof(T).Name);
+
+ PropertyInfo[] props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
+
+ foreach (PropertyInfo prop in props)
+ {
+ Type t = GetCoreType(prop.PropertyType);
+ tb.Columns.Add(prop.Name, t);
+ }
+
+ foreach (T item in items)
+ {
+ var values = new object[props.Length];
+
+ for (int i = 0; i < props.Length; i++)
+ {
+ values[i] = props[i].GetValue(item, null);
+ }
+
+ tb.Rows.Add(values);
+ }
+
+ return tb;
+ }
+
+ ///
+ /// 字段类型
+ ///
+ public static bool IsNullable(Type t)
+ {
+ return !t.IsValueType || (t.IsGenericType && t.GetGenericTypeDefinition() == typeof(Nullable<>));
+ }
+
+ ///
+ /// 返回字段值
+ ///
+ public static Type GetCoreType(Type t)
+ {
+ if (t != null && IsNullable(t))
+ {
+ if (!t.IsValueType)
+ {
+ return t;
+ }
+ else
+ {
+ return Nullable.GetUnderlyingType(t);
+ }
+ }
+ else
+ {
+ return t;
+ }
+ }
+
+ ///
+ /// 方法二
+ ///
+ ///
+ ///
+ ///
+ public static DataTable ToDataTable(IEnumerable collection)
+ {
+ var props = typeof(T).GetProperties();
+ var dt = new DataTable();
+ dt.Columns.AddRange(props.Select(p => new DataColumn(p.Name, p.PropertyType)).ToArray());
+ if (collection.Count() > 0)
+ {
+ for (int i = 0; i < collection.Count(); i++)
+ {
+ ArrayList tempList = new ArrayList();
+ foreach (PropertyInfo pi in props)
+ {
+ object obj = pi.GetValue(collection.ElementAt(i), null);
+ tempList.Add(obj);
+ }
+ object[] array = tempList.ToArray();
+ dt.LoadDataRow(array, true);
+ }
+ }
+ return dt;
+ }
+
+ #endregion
+ }
+}
diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx.cs
index 0cca4fab..d4b8fa5b 100644
--- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx.cs
+++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx.cs
@@ -105,22 +105,26 @@ namespace FineUIPro.Web.Comprehensive
DataRowView row = e.DataItem as DataRowView;
string IsVerification = row["IsVerification"].ToString();
string NextTestDate = row["NextTestDate"].ToString();
- if (IsVerification=="是" && !string.IsNullOrEmpty(NextTestDate)) //在校验期内
+ string InspectionType= row["InspectionType"].ToString();
+ if (InspectionType == "计量")
{
- if (DateTime.Compare(DateTime.Parse(NextTestDate).AddDays(-15), DateTime.Now) < 0)
+ if (IsVerification == "是" && !string.IsNullOrEmpty(NextTestDate)) //在校验期内
{
- // Grid1.Rows[e.RowIndex].RowCssClass = "Red";
- //过期为红色
- e.RowCssClass = "Red";
+ if (DateTime.Compare(DateTime.Parse(NextTestDate).AddDays(-15), DateTime.Now) < 0)
+ {
+ // Grid1.Rows[e.RowIndex].RowCssClass = "Red";
+ //过期为红色
+ e.RowCssClass = "Red";
+
+ }
+ }
+ else
+ {
+ e.RowCssClass = "Yellow";
+
}
}
- else
- {
- e.RowCssClass = "Yellow";
-
-
- }
}
#region 查询
diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPersonEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPersonEdit.aspx.cs
index 7348c717..ff8d9a65 100644
--- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPersonEdit.aspx.cs
+++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPersonEdit.aspx.cs
@@ -215,14 +215,14 @@ namespace FineUIPro.Web.CQMS.Comprehensive
Alert.ShowInTop("请选择报验单位!", MessageBoxIcon.Warning);
return;
}
- if (this.drpPostId.SelectedText == "焊工")
- {
- if (string.IsNullOrEmpty(txtWelderCode.Text.Trim()))
- {
- Alert.ShowInTop("焊工编号必填!", MessageBoxIcon.Warning);
- return;
- }
- }
+ //if (this.drpPostId.SelectedText == "焊工")
+ //{
+ //if (string.IsNullOrEmpty(txtWelderCode.Text.Trim()))
+ //{
+ // Alert.ShowInTop("焊工编号必填!", MessageBoxIcon.Warning);
+ // return;
+ //}
+ //}
// 焊工部分
Model.BS_Welder welder = new Model.BS_Welder();
if (this.drpUnitId.SelectedValue != BLL.Const._Null)
diff --git a/SGGL/FineUIPro.Web/ErrLog.txt b/SGGL/FineUIPro.Web/ErrLog.txt
index 02a6c9bc..068129e6 100644
--- a/SGGL/FineUIPro.Web/ErrLog.txt
+++ b/SGGL/FineUIPro.Web/ErrLog.txt
@@ -414,3 +414,107 @@ IP地址:::1
出错时间:06/26/2023 11:10:07
+
+错误信息开始=====>
+错误类型:ArgumentException
+错误信息:提供的 URI 方案“http”无效,应为“https”。
+参数名: via
+错误堆栈:
+ 在 System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via)
+ 在 System.ServiceModel.Channels.HttpChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via)
+ 在 System.ServiceModel.Channels.HttpsChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via)
+ 在 System.ServiceModel.Channels.HttpsChannelFactory`1.OnCreateChannelCore(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.Channels.HttpChannelFactory`1.OnCreateChannel(EndpointAddress remoteAddress, Uri via)
+ 在 System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.Channels.ChannelFactoryBase`1.CreateChannel(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOverRequest.CreateInnerChannelBinder(EndpointAddress to, Uri via)
+ 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type channelType, EndpointAddress address, Uri via)
+ 在 System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.ChannelFactory`1.CreateChannel()
+ 在 System.ServiceModel.ClientBase`1.CreateChannel()
+ 在 System.ServiceModel.ClientBase`1.CreateChannelInternal()
+ 在 System.ServiceModel.ClientBase`1.get_Channel()
+ 在 BLL.CNCECHSSEService.HSSEServiceClient.GetSupervise_SubUnitReportListToSUB() 位置 E:\工作\五环施工平台\SGGL_CWCEC\SGGL\BLL\Service References\CNCECHSSEService\Reference.cs:行号 14204
+ 在 BLL.CNCECHSSEWebService.getSupervise_SubUnitReport() 位置 E:\工作\五环施工平台\SGGL_CWCEC\SGGL\BLL\WebService\CNCECHSSEWebService.cs:行号 2158
+出错时间:06/26/2023 13:13:47
+出错时间:06/26/2023 13:13:47
+
+
+错误信息开始=====>
+错误类型:ArgumentException
+错误信息:提供的 URI 方案“http”无效,应为“https”。
+参数名: via
+错误堆栈:
+ 在 System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via)
+ 在 System.ServiceModel.Channels.HttpChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via)
+ 在 System.ServiceModel.Channels.HttpsChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via)
+ 在 System.ServiceModel.Channels.HttpsChannelFactory`1.OnCreateChannelCore(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.Channels.HttpChannelFactory`1.OnCreateChannel(EndpointAddress remoteAddress, Uri via)
+ 在 System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.Channels.ChannelFactoryBase`1.CreateChannel(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOverRequest.CreateInnerChannelBinder(EndpointAddress to, Uri via)
+ 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type channelType, EndpointAddress address, Uri via)
+ 在 System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.ChannelFactory`1.CreateChannel()
+ 在 System.ServiceModel.ClientBase`1.CreateChannel()
+ 在 System.ServiceModel.ClientBase`1.CreateChannelInternal()
+ 在 System.ServiceModel.ClientBase`1.get_Channel()
+ 在 BLL.CNCECHSSEService.HSSEServiceClient.GetCheck_CheckInfo_Table8ItemListToSUB(String unitId) 位置 E:\工作\五环施工平台\SGGL_CWCEC\SGGL\BLL\Service References\CNCECHSSEService\Reference.cs:行号 14228
+ 在 BLL.CNCECHSSEWebService.getCheck_CheckInfo_Table8Item() 位置 E:\工作\五环施工平台\SGGL_CWCEC\SGGL\BLL\WebService\CNCECHSSEWebService.cs:行号 2023
+出错时间:06/26/2023 13:13:47
+出错时间:06/26/2023 13:13:47
+
+
+错误信息开始=====>
+错误类型:ArgumentException
+错误信息:提供的 URI 方案“http”无效,应为“https”。
+参数名: via
+错误堆栈:
+ 在 System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via)
+ 在 System.ServiceModel.Channels.HttpChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via)
+ 在 System.ServiceModel.Channels.HttpsChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via)
+ 在 System.ServiceModel.Channels.HttpsChannelFactory`1.OnCreateChannelCore(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.Channels.HttpChannelFactory`1.OnCreateChannel(EndpointAddress remoteAddress, Uri via)
+ 在 System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.Channels.ChannelFactoryBase`1.CreateChannel(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOverRequest.CreateInnerChannelBinder(EndpointAddress to, Uri via)
+ 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type channelType, EndpointAddress address, Uri via)
+ 在 System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.ChannelFactory`1.CreateChannel()
+ 在 System.ServiceModel.ClientBase`1.CreateChannel()
+ 在 System.ServiceModel.ClientBase`1.CreateChannelInternal()
+ 在 System.ServiceModel.ClientBase`1.get_Channel()
+ 在 BLL.CNCECHSSEService.HSSEServiceClient.GetCheck_CheckRectifyListToSUB(String unitId) 位置 E:\工作\五环施工平台\SGGL_CWCEC\SGGL\BLL\Service References\CNCECHSSEService\Reference.cs:行号 14220
+ 在 BLL.CNCECHSSEWebService.getCheck_CheckRectify() 位置 E:\工作\五环施工平台\SGGL_CWCEC\SGGL\BLL\WebService\CNCECHSSEWebService.cs:行号 1919
+出错时间:06/26/2023 13:13:47
+出错时间:06/26/2023 13:13:47
+
+
+错误信息开始=====>
+错误类型:ArgumentException
+错误信息:提供的 URI 方案“http”无效,应为“https”。
+参数名: via
+错误堆栈:
+ 在 System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via)
+ 在 System.ServiceModel.Channels.HttpChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via)
+ 在 System.ServiceModel.Channels.HttpsChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via)
+ 在 System.ServiceModel.Channels.HttpsChannelFactory`1.OnCreateChannelCore(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.Channels.HttpChannelFactory`1.OnCreateChannel(EndpointAddress remoteAddress, Uri via)
+ 在 System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.Channels.ChannelFactoryBase`1.CreateChannel(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOverRequest.CreateInnerChannelBinder(EndpointAddress to, Uri via)
+ 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type channelType, EndpointAddress address, Uri via)
+ 在 System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via)
+ 在 System.ServiceModel.ChannelFactory`1.CreateChannel()
+ 在 System.ServiceModel.ClientBase`1.CreateChannel()
+ 在 System.ServiceModel.ClientBase`1.CreateChannelInternal()
+ 在 System.ServiceModel.ClientBase`1.get_Channel()
+ 在 BLL.CNCECHSSEService.HSSEServiceClient.GetInformation_UrgeReportToSUB(String unitId) 位置 E:\工作\五环施工平台\SGGL_CWCEC\SGGL\BLL\Service References\CNCECHSSEService\Reference.cs:行号 14020
+ 在 BLL.CNCECHSSEWebService.getInformation_UrgeReport() 位置 E:\工作\五环施工平台\SGGL_CWCEC\SGGL\BLL\WebService\CNCECHSSEWebService.cs:行号 1861
+出错时间:06/26/2023 13:13:47
+出错时间:06/26/2023 13:13:47
+
diff --git a/SGGL/FineUIPro.Web/File/Excel/TestRun/管道一览表.xlsx b/SGGL/FineUIPro.Web/File/Excel/TestRun/管道一览表.xlsx
new file mode 100644
index 00000000..2c1f4f69
Binary files /dev/null and b/SGGL/FineUIPro.Web/File/Excel/TestRun/管道一览表.xlsx differ
diff --git a/SGGL/FineUIPro.Web/File/Excel/TestRun/系统划分.xlsx b/SGGL/FineUIPro.Web/File/Excel/TestRun/系统划分.xlsx
new file mode 100644
index 00000000..25bfd477
Binary files /dev/null and b/SGGL/FineUIPro.Web/File/Excel/TestRun/系统划分.xlsx differ
diff --git a/SGGL/FineUIPro.Web/File/Excel/TestRun/设备一览表.xlsx b/SGGL/FineUIPro.Web/File/Excel/TestRun/设备一览表.xlsx
new file mode 100644
index 00000000..c6be63f1
Binary files /dev/null and b/SGGL/FineUIPro.Web/File/Excel/TestRun/设备一览表.xlsx differ
diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
index ed2b276f..9a33d0f3 100644
--- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
+++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
@@ -1592,8 +1592,11 @@
+
+
+
@@ -14794,6 +14797,20 @@
DeviceRunEdit.aspx
+
+ SelectProperty.aspx
+ ASPXCodeBehind
+
+
+ SelectProperty.aspx
+
+
+ SelectTechnology.aspx
+ ASPXCodeBehind
+
+
+ SelectTechnology.aspx
+
SetWorkPackage.aspx
ASPXCodeBehind
@@ -14808,6 +14825,13 @@
SubSysWorkPackage.aspx
+
+ SysPipingDeviceImport.aspx
+ ASPXCodeBehind
+
+
+ SysPipingDeviceImport.aspx
+
GoodsBuy.aspx
ASPXCodeBehind
diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/DeviceRun.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/DeviceRun.aspx
index f74fd6a5..bad3b6db 100644
--- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/DeviceRun.aspx
+++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/DeviceRun.aspx
@@ -8,7 +8,7 @@