This commit is contained in:
潘鸿锋 2024-03-11 09:49:11 +08:00
commit 2b0b4718ef
30 changed files with 5368 additions and 417 deletions

View File

@ -0,0 +1,918 @@
CREATE TABLE [dbo].[Base_TestRunPerformanceStandard](
[TestRunPerformanceStandardId] [nvarchar](50) NOT NULL,
[Code] [nvarchar](10) NULL,
[Code1] [int] NULL,
[Code2] [int] NULL,
[Code3] [int] NULL,
[Type] [nvarchar](50) NULL,
[Item] [nvarchar](50) NULL,
[Unit] [nvarchar](50) NULL,
[Days] [int] NULL,
CONSTRAINT [PK_Base_TestRunPerformanceStandard] PRIMARY KEY CLUSTERED
(
[TestRunPerformanceStandardId] 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
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'主键' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_TestRunPerformanceStandard', @level2type=N'COLUMN',@level2name=N'TestRunPerformanceStandardId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_TestRunPerformanceStandard', @level2type=N'COLUMN',@level2name=N'Code'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'编号1' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_TestRunPerformanceStandard', @level2type=N'COLUMN',@level2name=N'Code1'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'编号2' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_TestRunPerformanceStandard', @level2type=N'COLUMN',@level2name=N'Code2'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'编号3' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_TestRunPerformanceStandard', @level2type=N'COLUMN',@level2name=N'Code3'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'工作大类' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_TestRunPerformanceStandard', @level2type=N'COLUMN',@level2name=N'Type'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'工作项' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_TestRunPerformanceStandard', @level2type=N'COLUMN',@level2name=N'Item'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'计量单位' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_TestRunPerformanceStandard', @level2type=N'COLUMN',@level2name=N'Unit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'标准工作日' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_TestRunPerformanceStandard', @level2type=N'COLUMN',@level2name=N'Days'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'试车绩效评价标准表' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_TestRunPerformanceStandard'
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.1',1,1,1,'部门基础工作','专业培训','准备',10)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.1',1,1,2,'部门基础工作','专业培训','授课',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.1',1,1,3,'部门基础工作','专业培训','报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.1',1,1,4,'部门基础工作','专业培训','参培',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.1',1,1,5,'部门基础工作','专业培训','总结',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.2',1,2,1,'部门基础工作','体系文件','修编',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.2',1,2,2,'部门基础工作','体系文件','新编',7)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.2',1,2,3,'部门基础工作','体系文件','审修',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.2',1,2,4,'部门基础工作','体系文件','审新',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.2',1,2,5,'部门基础工作','体系文件','会审',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.2',1,2,6,'部门基础工作','体系文件','组织',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.3',1,3,1,'部门基础工作','作业方法','修编',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.3',1,3,2,'部门基础工作','作业方法','新编',7)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.3',1,3,3,'部门基础工作','作业方法','审修',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.3',1,3,4,'部门基础工作','作业方法','审新',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.3',1,3,5,'部门基础工作','作业方法','会审',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.3',1,3,6,'部门基础工作','作业方法','组织',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.4',1,4,1,'部门基础工作','其他文件','修编',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.4',1,4,2,'部门基础工作','其他文件','新编',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.4',1,4,3,'部门基础工作','其他文件','审修',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.4',1,4,4,'部门基础工作','其他文件','审新',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.4',1,4,5,'部门基础工作','其他文件','会审',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.4',1,4,6,'部门基础工作','其他文件','组织',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.5',1,5,1,'部门基础工作','案例或总结','新编',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.5',1,5,2,'部门基础工作','案例或总结','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.5',1,5,3,'部门基础工作','案例或总结','批准',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.6',1,6,1,'部门基础工作','创新或专利','组织',30)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.6',1,6,2,'部门基础工作','创新或专利','参加',10)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.7',1,7,1,'部门基础工作','合作名录','考察',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.7',1,7,2,'部门基础工作','合作名录','收集',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.7',1,7,3,'部门基础工作','合作名录','归档',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'1.8',1,8,1,'部门基础工作','部门其他','参加(手动输入)',0)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'2.1',2,1,1,'公司培训','外培','参加',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'2.1',2,1,2,'公司培训','外培','授课',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'2.1',2,1,3,'公司培训','外培','总结',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'2.2',2,2,1,'公司培训','内培','准备',10)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'2.2',2,2,2,'公司培训','内培','授课',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'2.2',2,2,3,'公司培训','内培','参加',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'2.2',2,2,4,'公司培训','内培','总结',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.1',3,1,1,'项目投标','投标准备','会议',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.1',3,1,2,'项目投标','投标准备','熟悉标书',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.1',3,1,3,'项目投标','投标准备','澄清',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.1',3,1,4,'项目投标','投标准备','考察',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.1',3,1,5,'项目投标','投标准备','组织',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.2',3,2,1,'项目投标','培训程序','编制',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.2',3,2,2,'项目投标','培训程序','校核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.2',3,2,3,'项目投标','培训程序','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.2',3,2,4,'项目投标','培训程序','会审',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.3',3,3,1,'项目投标','预试车、试车程序','编制',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.3',3,3,2,'项目投标','预试车、试车程序','校核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.3',3,3,3,'项目投标','预试车、试车程序','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.3',3,3,4,'项目投标','预试车、试车程序','会审',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.4',3,4,1,'项目投标','考核程序','编制',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.4',3,4,2,'项目投标','考核程序','校核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.4',3,4,3,'项目投标','考核程序','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.4',3,4,4,'项目投标','考核程序','会审',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.5',3,5,1,'项目投标','费用估算','编制',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.5',3,5,2,'项目投标','费用估算','校核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.5',3,5,3,'项目投标','费用估算','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.5',3,5,4,'项目投标','费用估算','会审',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.6',3,6,1,'项目投标','开车计划','编制',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.6',3,6,2,'项目投标','开车计划','校核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.6',3,6,3,'项目投标','开车计划','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'3.6',3,6,4,'项目投标','开车计划','会审',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.1',4,1,1,'开车策划','前期准备','会议',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.1',4,1,2,'开车策划','前期准备','熟悉文件',15)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.1',4,1,3,'开车策划','前期准备','考察',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.1',4,1,4,'开车策划','前期准备','组织',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.2',4,2,1,'开车策划','管理实施计划','编制',7)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.3',4,3,1,'开车策划','人员需求计划','编制',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.3',4,3,2,'开车策划','人员需求计划','校核',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.3',4,3,3,'开车策划','人员需求计划','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.4',4,4,1,'开车策划','责任分工表','编制',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.4',4,4,2,'开车策划','责任分工表','校核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.4',4,4,3,'开车策划','责任分工表','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.5',4,5,1,'开车策划','文件编制计划','编制',4)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.5',4,5,2,'开车策划','文件编制计划','校核',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.5',4,5,3,'开车策划','文件编制计划','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.6',4,6,1,'开车策划','分包计划','编制',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.6',4,6,2,'开车策划','分包计划','校核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.6',4,6,3,'开车策划','分包计划','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.7',4,7,1,'开车策划','物资需求计划','编制',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.7',4,7,2,'开车策划','物资需求计划','校核',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.7',4,7,3,'开车策划','物资需求计划','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.8',4,8,1,'开车策划','费用需求计划','编制',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.8',4,8,2,'开车策划','费用需求计划','校核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.8',4,8,3,'开车策划','费用需求计划','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.9',4,9,1,'开车策划','进度计划','编制',4)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.9',4,9,2,'开车策划','进度计划','校核',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.9',4,9,3,'开车策划','进度计划','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.10',4,10,1,'开车策划','其他策划','编制',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.10',4,10,2,'开车策划','其他策划','校核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'4.10',4,10,3,'开车策划','其他策划','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.1',5,1,1,'开车培训','业主人员培训计划','编制',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.1',5,1,2,'开车培训','业主人员培训计划','校核',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.1',5,1,3,'开车培训','业主人员培训计划','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.2',5,2,1,'开车培训','办公室理论','准备',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.2',5,2,2,'开车培训','办公室理论','组织',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.2',5,2,3,'开车培训','办公室理论','授课',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.2',5,2,4,'开车培训','办公室理论','考核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.2',5,2,5,'开车培训','办公室理论','报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.3',5,3,1,'开车培训','关键设备制造厂','准备',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.3',5,3,2,'开车培训','关键设备制造厂','组织',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.3',5,3,3,'开车培训','关键设备制造厂','参加(手动输入)',0)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.3',5,3,4,'开车培训','关键设备制造厂','授课',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.3',5,3,5,'开车培训','关键设备制造厂','考核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.3',5,3,6,'开车培训','关键设备制造厂','报告',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.4',5,4,1,'开车培训','类似装置操作','准备',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.4',5,4,2,'开车培训','类似装置操作','组织',10)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.4',5,4,3,'开车培训','类似装置操作','参加(手动输入)',0)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.4',5,4,4,'开车培训','类似装置操作','授课',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.4',5,4,5,'开车培训','类似装置操作','考核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.4',5,4,6,'开车培训','类似装置操作','报告',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.5',5,5,1,'开车培训','合同装置现场','准备',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.5',5,5,2,'开车培训','合同装置现场','组织',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.5',5,5,3,'开车培训','合同装置现场','授课',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.5',5,5,4,'开车培训','合同装置现场','考核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'5.5',5,5,5,'开车培训','合同装置现场','报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.1',6,1,1,'合同管理','分包商考察','组织',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.1',6,1,2,'合同管理','分包商考察','参加',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.1',6,1,3,'合同管理','分包商考察','报告',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.2',6,2,1,'合同管理','开车队合同','编制',10)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.2',6,2,2,'合同管理','开车队合同','会审',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.2',6,2,3,'合同管理','开车队合同','谈判',10)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.2',6,2,4,'合同管理','开车队合同','评审',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.2',6,2,5,'合同管理','开车队合同','签订',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.3',6,3,1,'合同管理','其他合同','编制',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.3',6,3,2,'合同管理','其他合同','会审',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.3',6,3,3,'合同管理','其他合同','谈判',10)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.3',6,3,4,'合同管理','其他合同','评审',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.3',6,3,5,'合同管理','其他合同','签订',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.4',6,4,1,'合同管理','合同付款','核算',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.4',6,4,2,'合同管理','合同付款','申请',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.4',6,4,3,'合同管理','合同付款','批准',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.5',6,5,1,'合同管理','合同履约评价','组织',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.5',6,5,2,'合同管理','合同履约评价','参加',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'6.5',6,5,3,'合同管理','合同履约评价','报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.1',7,1,1,'预试车','循环水系统冲洗','编制',7)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.1',7,1,2,'预试车','循环水系统冲洗','审核',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.1',7,1,3,'预试车','循环水系统冲洗','组织',10)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.1',7,1,4,'预试车','循环水系统冲洗','参加',8)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.1',7,1,5,'预试车','循环水系统冲洗','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.2',7,2,1,'预试车','其他管道水冲洗_回路','编制',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.2',7,2,2,'预试车','其他管道水冲洗_回路','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.2',7,2,3,'预试车','其他管道水冲洗_回路','组织',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.2',7,2,4,'预试车','其他管道水冲洗_回路','参加',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.2',7,2,5,'预试车','其他管道水冲洗_回路','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.3',7,3,1,'预试车','管道空气吹扫_回路','编制',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.3',7,3,2,'预试车','管道空气吹扫_回路','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.3',7,3,3,'预试车','管道空气吹扫_回路','组织',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.3',7,3,4,'预试车','管道空气吹扫_回路','参加',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.3',7,3,5,'预试车','管道空气吹扫_回路','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.4',7,4,1,'预试车','简单蒸汽管道吹扫','编制',15)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.4',7,4,2,'预试车','简单蒸汽管道吹扫','审核',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.4',7,4,3,'预试车','简单蒸汽管道吹扫','组织',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.4',7,4,4,'预试车','简单蒸汽管道吹扫','参加(手动输入)',0)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.4',7,4,5,'预试车','简单蒸汽管道吹扫','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.5',7,5,1,'预试车','复杂蒸汽管道吹扫','编制',30)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.5',7,5,2,'预试车','复杂蒸汽管道吹扫','审核',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.5',7,5,3,'预试车','复杂蒸汽管道吹扫','组织',10)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.5',7,5,4,'预试车','复杂蒸汽管道吹扫','参加(手动输入)',0)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.5',7,5,5,'预试车','复杂蒸汽管道吹扫','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.6',7,6,1,'预试车','化学清洗','编制',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.6',7,6,2,'预试车','化学清洗','审核',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.6',7,6,3,'预试车','化学清洗','组织',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.6',7,6,4,'预试车','化学清洗','参加(手动输入)',0)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.6',7,6,5,'预试车','化学清洗','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.7',7,7,1,'预试车','催化剂、分子筛装填_台','编制',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.7',7,7,2,'预试车','催化剂、分子筛装填_台','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.7',7,7,3,'预试车','催化剂、分子筛装填_台','组织',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.7',7,7,4,'预试车','催化剂、分子筛装填_台','参加',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.7',7,7,5,'预试车','催化剂、分子筛装填_台','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.8',7,8,1,'预试车','设备耐火材料干燥、烘炉_台','编制',7)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.8',7,8,2,'预试车','设备耐火材料干燥、烘炉_台','审核',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.8',7,8,3,'预试车','设备耐火材料干燥、烘炉_台','组织',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.8',7,8,4,'预试车','设备耐火材料干燥、烘炉_台','参加',7)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.8',7,8,5,'预试车','设备耐火材料干燥、烘炉_台','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.9',7,9,1,'预试车','电仪系统调试_回路','编制',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.9',7,9,2,'预试车','电仪系统调试_回路','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.9',7,9,3,'预试车','电仪系统调试_回路','组织',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.9',7,9,4,'预试车','电仪系统调试_回路','参加',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.9',7,9,5,'预试车','电仪系统调试_回路','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.10',7,10,1,'预试车','一般设备单机试车_台','编制',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.10',7,10,2,'预试车','一般设备单机试车_台','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.10',7,10,3,'预试车','一般设备单机试车_台','组织',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.10',7,10,4,'预试车','一般设备单机试车_台','参加',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.10',7,10,5,'预试车','一般设备单机试车_台','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.11',7,11,1,'预试车','机组油循环_台','编制',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.11',7,11,2,'预试车','机组油循环_台','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.11',7,11,3,'预试车','机组油循环_台','组织',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.11',7,11,4,'预试车','机组油循环_台','参加',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.11',7,11,5,'预试车','机组油循环_台','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.12',7,12,1,'预试车','汽轮机试车_台','编制',7)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.12',7,12,2,'预试车','汽轮机试车_台','审核',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.12',7,12,3,'预试车','汽轮机试车_台','组织',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.12',7,12,4,'预试车','汽轮机试车_台','参加',8)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.12',7,12,5,'预试车','汽轮机试车_台','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.13',7,13,1,'预试车','机组试车','编制',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.13',7,13,2,'预试车','机组试车','审核',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.13',7,13,3,'预试车','机组试车','组织',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.13',7,13,4,'预试车','机组试车','参加',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'7.13',7,13,5,'预试车','机组试车','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.1',8,1,1,'试车','系统联锁、报警检查、整定_回路','编制',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.1',8,1,2,'试车','系统联锁、报警检查、整定_回路','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.1',8,1,3,'试车','系统联锁、报警检查、整定_回路','组织',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.1',8,1,4,'试车','系统联锁、报警检查、整定_回路','参加',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.1',8,1,5,'试车','系统联锁、报警检查、整定_回路','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.2',8,2,1,'试车','系统预膜钝化','编制',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.2',8,2,2,'试车','系统预膜钝化','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.2',8,2,3,'试车','系统预膜钝化','组织',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.2',8,2,4,'试车','系统预膜钝化','参加',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.2',8,2,5,'试车','系统预膜钝化','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.3',8,3,1,'试车','锅炉、废锅煮炉','编制',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.3',8,3,2,'试车','锅炉、废锅煮炉','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.3',8,3,3,'试车','锅炉、废锅煮炉','组织',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.3',8,3,4,'试车','锅炉、废锅煮炉','参加',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.3',8,3,5,'试车','锅炉、废锅煮炉','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.4',8,4,1,'试车','联动试车_系统','编制',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.4',8,4,2,'试车','联动试车_系统','审核',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.4',8,4,3,'试车','联动试车_系统','组织',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.4',8,4,4,'试车','联动试车_系统','参加',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.4',8,4,5,'试车','联动试车_系统','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.5',8,5,1,'试车','工艺系统气密性试验_系统','编制',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.5',8,5,2,'试车','工艺系统气密性试验_系统','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.5',8,5,3,'试车','工艺系统气密性试验_系统','组织',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.5',8,5,4,'试车','工艺系统气密性试验_系统','参加',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.5',8,5,5,'试车','工艺系统气密性试验_系统','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.6',8,6,1,'试车','干燥、置换_系统','编制',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.6',8,6,2,'试车','干燥、置换_系统','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.6',8,6,3,'试车','干燥、置换_系统','组织',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.6',8,6,4,'试车','干燥、置换_系统','参加',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.6',8,6,5,'试车','干燥、置换_系统','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.7',8,7,1,'试车','催化剂升温还原_台','编制',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.7',8,7,2,'试车','催化剂升温还原_台','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.7',8,7,3,'试车','催化剂升温还原_台','组织',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.7',8,7,4,'试车','催化剂升温还原_台','参加',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.7',8,7,5,'试车','催化剂升温还原_台','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.8',8,8,1,'试车','系统预热、预冷','编制',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.8',8,8,2,'试车','系统预热、预冷','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.8',8,8,3,'试车','系统预热、预冷','组织',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.8',8,8,4,'试车','系统预热、预冷','参加',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.8',8,8,5,'试车','系统预热、预冷','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.9',8,9,1,'试车','投料试车_单元','编制',8)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.9',8,9,2,'试车','投料试车_单元','审核',4)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.9',8,9,3,'试车','投料试车_单元','组织',4)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.9',8,9,4,'试车','投料试车_单元','参加',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'8.9',8,9,5,'试车','投料试车_单元','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'9.1',9,1,1,'试运行及考核','试运行规章制度_个','编制',3)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'9.1',9,1,2,'试运行及考核','试运行规章制度_个','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'9.1',9,1,3,'试运行及考核','试运行规章制度_个','会审',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'9.2',9,2,1,'试运行及考核','试运行实施','参加(手动输入)',0)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'9.2',9,2,2,'试运行及考核','试运行实施','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'9.3',9,3,1,'试运行及考核','性能考核','参加(手动输入)',0)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'9.3',9,3,2,'试运行及考核','性能考核','记录报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'10.1',10,1,1,'开车收尾','开车月报告','编制',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'10.1',10,1,2,'开车收尾','开车月报告','审核',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'10.1',10,1,3,'开车收尾','开车月报告','会审',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'10.2',10,2,1,'开车收尾','开车完工报告','编制',5)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'10.2',10,2,2,'开车收尾','开车完工报告','审核',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'10.2',10,2,3,'开车收尾','开车完工报告','会审',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'10.3',10,3,1,'开车收尾','开车文件和资料','收集',4)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'10.3',10,3,2,'开车收尾','开车文件和资料','整理',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'10.3',10,3,3,'开车收尾','开车文件和资料','归档',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'10.4',10,4,1,'开车收尾','开车工作总结','编制',4)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'10.5',10,5,1,'开车收尾','现场质保','参加(手动输入)',0)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'10.6',10,6,1,'开车收尾','工程师执行情况考核','组织',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'10.6',10,6,2,'开车收尾','工程师执行情况考核','参加',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'10.6',10,6,3,'开车收尾','工程师执行情况考核','报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'10.7',10,7,1,'开车收尾','开车队履约情况评价','组织',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'10.7',10,7,2,'开车收尾','开车队履约情况评价','参加',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'10.7',10,7,3,'开车收尾','开车队履约情况评价','报告',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'11.1',11,1,1,'项目协调','设计','参加',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'11.1',11,1,2,'项目协调','设计','审查准备',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'11.1',11,1,3,'项目协调','设计','审查会',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'11.2',11,2,1,'项目协调','施工管理','参加',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'11.2',11,2,2,'项目协调','施工管理','审查准备',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'11.2',11,2,3,'项目协调','施工管理','审查会',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'11.3',11,3,1,'项目协调','采购管理','参加',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'11.3',11,3,2,'项目协调','采购管理','审查准备',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'11.3',11,3,3,'项目协调','采购管理','审查会',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'11.4',11,4,1,'项目协调','项目会议','组织',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'11.4',11,4,2,'项目协调','项目会议','参加',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'11.5',11,5,1,'项目协调','问题处理','组织',2)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'11.5',11,5,2,'项目协调','问题处理','参加',1)
GO
insert into [dbo].[Base_TestRunPerformanceStandard] values
(NEWID(),'12.1',12,1,1,'其他','其他工作','参加(手动输入)',0)
GO

View File

@ -0,0 +1,32 @@
delete Sys_Menu where MenuId='EE7E37CA-384F-41B3-BAEE-89CBD9954AB3'
delete Sys_Menu where MenuId='E9EF7C6D-7F0A-4FBA-8A79-474D4E61AF27'
delete Sys_Menu where MenuId='9ACDF513-BD63-48F5-BFA3-B9B1B7FA19E1'
delete Sys_Menu where MenuId='3D554109-D95F-4051-8A6C-5616A7A95C94'
INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('EE7E37CA-384F-41B3-BAEE-89CBD9954AB3','预试车进度',null,'TestRun/Report/PreRunSchedule.aspx',1,'2BF9C16D-536F-4F89-AA59-49ED1A1A164C','Menu_TestRun',0,1,1)
INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('E9EF7C6D-7F0A-4FBA-8A79-474D4E61AF27','三查四定进度',null,'TestRun/Report/FourDecisionSchedule.aspx',2,'2BF9C16D-536F-4F89-AA59-49ED1A1A164C','Menu_TestRun',0,1,1)
INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('9ACDF513-BD63-48F5-BFA3-B9B1B7FA19E1','试车进度',null,'TestRun/Report/TestRunSchedule.aspx',3,'2BF9C16D-536F-4F89-AA59-49ED1A1A164C','Menu_TestRun',0,1,1)
INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('3D554109-D95F-4051-8A6C-5616A7A95C94','首页进度设置',null,'TestRun/Report/ScheduleSetUp.aspx',4,'2BF9C16D-536F-4F89-AA59-49ED1A1A164C','Menu_TestRun',0,1,1)
go
--==//
if object_id(N'Run_ScheduleSetUp',N'U') is not null
drop table dbo.Run_ScheduleSetUp
CREATE TABLE dbo.Run_ScheduleSetUp(
ScheduleId varchar(50) NOT NULL,--
WorkPackId varchar(50) NULL,--
LevelName varchar(50) NULL,--
ProjectId varchar(50) NULL,--
States int null,--1:2:3:
AllNum int null,--
ProgressNum int NULL,--
CompleteNum int NULL,--
CompleteRate decimal(18,2) NULL,--
AddUser varchar(50) NULL,--
AddTime datetime NULL,--
Sort int NULL,--
CONSTRAINT PK_Run_ScheduleSetUp PRIMARY KEY CLUSTERED
(
ScheduleId 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

View File

@ -510,4 +510,23 @@ GO
VALUES('7C866795-2E56-47CD-B937-C468C46DB007','172F25E0-F5E2-42E3-AD67-AC824D4E0FBB','删除',3)
INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
VALUES('27E0EE6E-D96F-4300-9574-423F378D79C4','172F25E0-F5E2-42E3-AD67-AC824D4E0FBB','保存',4)
GO
GO
INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)
VALUES('53D8CED2-9AA7-43EA-B27D-EA10A06DF713','开车人员绩效管理','',160,'0','Menu_ZHGL',0,0,1)
GO
INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)
VALUES('383290E0-60AE-4D16-8B5E-3899B85EC2ED','开车绩效评分标准','ZHGL/TestRunPerformance/TestRunPerformanceStandard.aspx',10,'53D8CED2-9AA7-43EA-B27D-EA10A06DF713','Menu_ZHGL',0,1,1)
GO
INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
VALUES('988B984C-8B74-4D15-B0A7-3A00776984FB','383290E0-60AE-4D16-8B5E-3899B85EC2ED','增加',1)
INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
VALUES('B4923645-FCBE-4670-8F27-C85B8FE4C48F','383290E0-60AE-4D16-8B5E-3899B85EC2ED','修改',2)
INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
VALUES('5D005176-CE4C-4CDF-8720-505A8BB273F7','383290E0-60AE-4D16-8B5E-3899B85EC2ED','删除',3)
INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
VALUES('A14DE61A-2E1B-4F4D-84E8-D87DBB2C5F4D','383290E0-60AE-4D16-8B5E-3899B85EC2ED','保存',4)
GO

View File

@ -167,6 +167,7 @@
<Compile Include="BaseInfo\SpecialSchemeTypeService.cs" />
<Compile Include="BaseInfo\SteelService.cs" />
<Compile Include="BaseInfo\TestRunLicenseTypeService.cs" />
<Compile Include="BaseInfo\TestRunPerformanceStandardService.cs" />
<Compile Include="BaseInfo\TrainLevelService.cs" />
<Compile Include="BaseInfo\TrainTypeService.cs" />
<Compile Include="BaseInfo\TransferMajorService.cs" />

View File

@ -0,0 +1,106 @@
using System.Collections.Generic;
using System.Linq;
namespace BLL
{
/// <summary>
/// 开车绩效计算标准
/// </summary>
public class TestRunPerformanceStandardService
{
/// <summary>
/// 根据主键获取开车绩效计算标准
/// </summary>
/// <param name="TestRunPerformanceStandardId"></param>
/// <returns></returns>
public static Model.Base_TestRunPerformanceStandard GetPerformanceStandardById(string TestRunPerformanceStandardId)
{
return Funs.DB.Base_TestRunPerformanceStandard.FirstOrDefault(e => e.TestRunPerformanceStandardId == TestRunPerformanceStandardId);
}
/// <summary>
/// 添加开车绩效计算标准
/// </summary>
/// <param name="testRunPerformanceStandard"></param>
public static void AddTestRunPerformanceStandard(Model.Base_TestRunPerformanceStandard testRunPerformanceStandard)
{
Model.Base_TestRunPerformanceStandard newTestRunPerformanceStandard = new Model.Base_TestRunPerformanceStandard
{
TestRunPerformanceStandardId = testRunPerformanceStandard.TestRunPerformanceStandardId,
Code = testRunPerformanceStandard.Code,
Code1 = testRunPerformanceStandard.Code1,
Code2 = testRunPerformanceStandard.Code2,
Code3 = testRunPerformanceStandard.Code3,
Type = testRunPerformanceStandard.Type,
Item = testRunPerformanceStandard.Item,
Unit = testRunPerformanceStandard.Unit,
Days = testRunPerformanceStandard.Days
};
Funs.DB.Base_TestRunPerformanceStandard.InsertOnSubmit(newTestRunPerformanceStandard);
Funs.DB.SubmitChanges();
}
/// <summary>
/// 修改开车绩效计算标准
/// </summary>
/// <param name="testRunPerformanceStandard"></param>
public static void UpdateTestRunPerformanceStandard(Model.Base_TestRunPerformanceStandard testRunPerformanceStandard)
{
Model.Base_TestRunPerformanceStandard newTestRunPerformanceStandard = Funs.DB.Base_TestRunPerformanceStandard.FirstOrDefault(e => e.TestRunPerformanceStandardId == testRunPerformanceStandard.TestRunPerformanceStandardId);
if (newTestRunPerformanceStandard != null)
{
newTestRunPerformanceStandard.Code = testRunPerformanceStandard.Code;
newTestRunPerformanceStandard.Code1 = testRunPerformanceStandard.Code1;
newTestRunPerformanceStandard.Code2 = testRunPerformanceStandard.Code2;
newTestRunPerformanceStandard.Code3 = testRunPerformanceStandard.Code3;
newTestRunPerformanceStandard.Type = testRunPerformanceStandard.Type;
newTestRunPerformanceStandard.Item = testRunPerformanceStandard.Item;
newTestRunPerformanceStandard.Unit = testRunPerformanceStandard.Unit;
newTestRunPerformanceStandard.Days = testRunPerformanceStandard.Days;
Funs.DB.SubmitChanges();
}
}
/// <summary>
/// 根据主键删除开车绩效计算标准
/// </summary>
/// <param name="TestRunPerformanceStandardId"></param>
public static void DeleteTestRunPerformanceStandardById(string TestRunPerformanceStandardId)
{
Model.Base_TestRunPerformanceStandard newTestRunPerformanceStandard = Funs.DB.Base_TestRunPerformanceStandard.FirstOrDefault(e => e.TestRunPerformanceStandardId == TestRunPerformanceStandardId);
if (newTestRunPerformanceStandard != null)
{
CommonService.DeleteAttachFileById(TestRunPerformanceStandardId);//删除附件
Funs.DB.Base_TestRunPerformanceStandard.DeleteOnSubmit(newTestRunPerformanceStandard);
Funs.DB.SubmitChanges();
}
}
/// <summary>
/// 获取开车绩效计算标准下拉列表项
/// </summary>
/// <returns></returns>
public static List<Model.Base_TestRunPerformanceStandard> GetTestRunPerformanceStandardList()
{
return (from x in Funs.DB.Base_TestRunPerformanceStandard orderby x.Code1, x.Code2 select x).ToList();
}
/// <summary>
/// 开车绩效计算标准下拉框
/// </summary>
/// <param name="dropName">下拉框名字</param>
/// <param name="projectId">项目id</param>
/// <param name="isShowPlease">是否显示请选择</param>
public static void InitPerformanceStandardDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease)
{
dropName.DataValueField = "TestRunPerformanceStandardId";
dropName.DataTextField = "PerformanceStandardName";
dropName.DataSource = GetTestRunPerformanceStandardList();
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
}
}

View File

@ -4871,6 +4871,11 @@ namespace BLL
/// 项目应急物资管理
/// </summary>
public const string ServerEmergencySupplyMenuId = "3EA741CE-66A6-4CF8-8620-0C5906AC7D94";
/// <summary>
/// 开车绩效评分标准
/// </summary>
public const string TestRunPerformanceStandardMenuId = "383290E0-60AE-4D16-8B5E-3899B85EC2ED";
#endregion
#region

View File

@ -1824,6 +1824,7 @@
<Content Include="TestRun\ProduceTestRun\TestRunRecordEdit.aspx" />
<Content Include="TestRun\ProduceTestRun\TestRunReport.aspx" />
<Content Include="TestRun\ProduceTestRun\TestRunReportEdit.aspx" />
<Content Include="TestRun\Report\FourDecisionSchedule.aspx" />
<Content Include="TestRun\Report\PreRunSchedule.aspx" />
<Content Include="TestRun\Report\ScheduleSetUp.aspx" />
<Content Include="TestRun\Report\TestRunSchedule.aspx" />
@ -2052,6 +2053,8 @@
<Content Include="ZHGL\Supervise\SuperviseCheckReport.aspx" />
<Content Include="ZHGL\Supervise\SuperviseCheckReportEdit.aspx" />
<Content Include="common\font\DIN-Medium.otf" />
<Content Include="ZHGL\TestRunPerformance\TestRunPerformanceStandard.aspx" />
<Content Include="ZHGL\TestRunPerformance\TestRunPerformanceStandardEdit.aspx" />
<None Include="Doc\help1.doc" />
<None Include="Doc\危险源因素辨识及评价方法说明.doc" />
<None Include="Doc\危险源清单导入说明.doc" />
@ -16305,6 +16308,13 @@
<Compile Include="TestRun\ProduceTestRun\TestRunReportEdit.aspx.designer.cs">
<DependentUpon>TestRunReportEdit.aspx</DependentUpon>
</Compile>
<Compile Include="TestRun\Report\FourDecisionSchedule.aspx.cs">
<DependentUpon>FourDecisionSchedule.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="TestRun\Report\FourDecisionSchedule.aspx.designer.cs">
<DependentUpon>FourDecisionSchedule.aspx</DependentUpon>
</Compile>
<Compile Include="TestRun\Report\PreRunSchedule.aspx.cs">
<DependentUpon>PreRunSchedule.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@ -17894,6 +17904,20 @@
<Compile Include="ZHGL\Supervise\SuperviseCheckReportEdit.aspx.designer.cs">
<DependentUpon>SuperviseCheckReportEdit.aspx</DependentUpon>
</Compile>
<Compile Include="ZHGL\TestRunPerformance\TestRunPerformanceStandard.aspx.cs">
<DependentUpon>TestRunPerformanceStandard.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ZHGL\TestRunPerformance\TestRunPerformanceStandard.aspx.designer.cs">
<DependentUpon>TestRunPerformanceStandard.aspx</DependentUpon>
</Compile>
<Compile Include="ZHGL\TestRunPerformance\TestRunPerformanceStandardEdit.aspx.cs">
<DependentUpon>TestRunPerformanceStandardEdit.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ZHGL\TestRunPerformance\TestRunPerformanceStandardEdit.aspx.designer.cs">
<DependentUpon>TestRunPerformanceStandardEdit.aspx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<Content Include="App_Themes\Web.config" />

View File

@ -335,10 +335,10 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
model.PipingLevel = itemTb.Rows[j][41].ToString();
model.NormalTemperature = itemTb.Rows[j][43].ToString();
model.NormalPressure = itemTb.Rows[j][45].ToString();
model.DesignTemperature = itemTb.Rows[j][46].ToString();
model.DesignPressure = itemTb.Rows[j][48].ToString();
model.PaintLevel = itemTb.Rows[j][50].ToString();
model.Remark = itemTb.Rows[j][53].ToString();
model.DesignTemperature = itemTb.Rows[j][47].ToString();
model.DesignPressure = itemTb.Rows[j][49].ToString();
model.PaintLevel = itemTb.Rows[j][51].ToString();
model.Remark = itemTb.Rows[j][54].ToString();
model.AddUser = this.CurrUser.UserId;
model.AddTime = DateTime.Now;
model.Sort = sortnum;

View File

@ -0,0 +1,99 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FourDecisionSchedule.aspx.cs" Inherits="FineUIPro.Web.TestRun.Report.FourDecisionSchedule" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>子系统工作包管理</title>
<style>
.f-grid-row .f-grid-cell-inner {
white-space: normal;
word-break: break-all;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" ShowBorder="false" ShowHeader="false" Layout="Region">
<Items>
<f:Panel runat="server" ID="panelLeftRegion" RegionPosition="Left" RegionSplit="true"
EnableCollapse="true" Width="320px" Title="子系统工作包管理" ShowBorder="true" Layout="VBox"
ShowHeader="false" AutoScroll="true" BodyPadding="5px" IconFont="ArrowCircleLeft">
<Items>
<f:Tree ID="tvControlItem" ShowHeader="false" Title="子系统工作包管理节点树" OnNodeCommand="tvControlItem_NodeCommand"
Height="1000px" runat="server" ShowBorder="false" EnableCollapse="true" EnableSingleClickExpand="true"
AutoLeafIdentification="true" EnableSingleExpand="false" EnableTextSelection="true" OnNodeExpand="tvControlItem_NodeExpand">
</f:Tree>
</Items>
</f:Panel>
<f:Panel runat="server" ID="panelCenterRegion" RegionPosition="Center" ShowBorder="true"
Layout="VBox" ShowHeader="false" BodyPadding="5px" IconFont="PlusCircle" Title="子系统工作包管理"
TitleToolTip="子系统工作包管理" AutoScroll="true">
<Toolbars>
<f:Toolbar ID="Toolbar2" Position="Top" runat="server" ToolbarAlign="Right">
<Items>
<f:HiddenField runat="server" ID="hdTrustID"></f:HiddenField>
</Items>
</f:Toolbar>
</Toolbars>
<Items>
<f:Form ID="SimpleForm1" ShowBorder="true" ShowHeader="false" AutoScroll="true" BodyPadding="10px"
runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Rows>
<f:FormRow runat="server" ID="zxtsc">
<Items>
<f:Grid Height="550px" ID="GridFourDecision" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="Level" DataKeyNames="Level" AllowSorting="false" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" AllowPaging="false" IsDatabasePaging="true" EnableSummary="true" SummaryPosition="Flow">
<Toolbars>
<f:Toolbar ID="Toolbar3" runat="server">
<Items>
<f:ToolbarFill ID="ToolbarFill1" runat="server"></f:ToolbarFill>
<f:Button ID="btnScsdExport" runat="server" Icon="ApplicationGo" Text="导出" ToolTip="导出" OnClick="btnScsdExport_Click" DisableControlBeforePostBack="false" EnableAjax="false"></f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:RowNumberField EnablePagingNumber="true" Width="50px" HeaderTextAlign="Center" TextAlign="Center" />
<f:RenderField HeaderText="级别" ColumnID="Level" DataField="Level" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="装置名称" ColumnID="InstallationName" DataField="InstallationName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="工序名称" ColumnID="ProcessesName" DataField="ProcessesName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="系统名称" ColumnID="SystemName" DataField="SystemName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="子系统名称" ColumnID="SubsystemName" DataField="SubsystemName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="尾项数量" ColumnID="AllNum" DataField="AllNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="未关闭尾项数量" ColumnID="NoCloseNum" DataField="NoCloseNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="已关闭尾项数量" ColumnID="CloseNum" DataField="CloseNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
</Listeners>
</f:Grid>
</Items>
</f:FormRow>
</Rows>
</f:Form>
</Items>
</f:Panel>
</Items>
</f:Panel>
</form>
<script type="text/javascript">
// 返回false来阻止浏览器右键菜单
function onRowContextMenu(event, rowId) {
return false;
}
function reloadGrid() {
__doPostBack(null, 'reloadGrid');
}
</script>
</body>
</html>

View File

@ -0,0 +1,460 @@
using BLL;
using Model;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Reflection;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
using System.IO;
using Newtonsoft.Json.Linq;
namespace FineUIPro.Web.TestRun.Report
{
public partial class FourDecisionSchedule : PageBase
{
/// <summary>
/// 点击树状主键
/// </summary>
public string TreePreRunId { get { return (string)ViewState["TreePreRunId"]; } set { ViewState["TreePreRunId"] = value; } }
/// <summary>
/// 子系统主键
/// </summary>
public List<string> SubSystemIds { get { return (List<string>)ViewState["SubSystemIds"]; } set { ViewState["SubSystemIds"] = value; } }
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (SubSystemIds == null) SubSystemIds = new List<string>();
this.InitTreeMenu();//加载树
}
}
#region
/// <summary>
/// 加载树
/// </summary>
private void InitTreeMenu()
{
this.tvControlItem.Nodes.Clear();
TreeNode rootNode = new TreeNode();
rootNode.Text = "系统划分";
rootNode.NodeID = "0";
rootNode.Expanded = true;
rootNode.ToolTip = "";
rootNode.EnableClickEvent = true;
this.tvControlItem.Nodes.Add(rootNode);
var allPreRunLs = Funs.DB.PreRun_SysDevice.Where(p => p.ProjectId == this.CurrUser.LoginProjectId).ToList();
var onePreRunLs = allPreRunLs.Where(p => p.PreRunLevel == 1).OrderBy(x => x.Sort);
foreach (var item in onePreRunLs)
{
TreeNode rootUnitNode = new TreeNode();//定义根节点
rootUnitNode.NodeID = item.PreRunId;
rootUnitNode.Text = item.PreRunName;
rootUnitNode.ToolTip = item.PreRunName;
rootUnitNode.CommandName = "";
rootUnitNode.EnableClickEvent = true;
rootUnitNode.EnableExpandEvent = true;
rootNode.Nodes.Add(rootUnitNode);
rootUnitNode.Expanded = true;
var otherPreRunls = allPreRunLs.Where(p => p.PreRunLevel != 1).ToList();
this.BindNodes(rootUnitNode, otherPreRunls, item.PreRunId);
}
}
/// <summary>
/// 绑定树节点
/// </summary>
private void BindNodes(TreeNode node, List<PreRun_SysDevice> list, string parentId)
{
var itemList = list.Where(p => p.ParentId == parentId).OrderBy(x => x.Sort).ToList();
if (itemList.Count > 0)
{
foreach (var item in itemList)
{
TreeNode newNode = new TreeNode();
newNode.Text = item.PreRunName;
newNode.NodeID = item.PreRunId;
newNode.ToolTip = item.PreRunName;
newNode.CommandName = "";
newNode.EnableClickEvent = true;
node.Nodes.Add(newNode);
BindNodes(newNode, list, item.PreRunId);
}
}
}
/// <summary>
/// 数加载
/// </summary>
protected void tvControlItem_NodeExpand(object sender, TreeNodeEventArgs e)
{
if (e.Node.Nodes != null)
{
e.Node.Nodes.Clear();
}
var allPreRunLs = Funs.DB.PreRun_SysDevice.Where(p => p.ProjectId == this.CurrUser.LoginProjectId).ToList();
this.BindNodes(e.Node, allPreRunLs, e.NodeID);
}
/// <summary>
/// 点击TreeView
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
{
var devices = new List<PreRun_SysDevice>();
this.TreePreRunId = tvControlItem.SelectedNodeID != "0" ? tvControlItem.SelectedNodeID : string.Empty;
if (!string.IsNullOrWhiteSpace(this.TreePreRunId))
{
var model = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == this.TreePreRunId);
if (model.PreRunLevel == 4)
{
this.SubSystemIds = new List<string>() { model.PreRunId };
}
else if (model.PreRunLevel == 3)
{
devices = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 4 && x.SystemId == model.PreRunId).ToList();
if (devices.Count > 0)
{
this.SubSystemIds = devices.ConvertAll(x => x.PreRunId);
}
}
else if (model.PreRunLevel == 2)
{
devices = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 4 && x.ProcessesId == model.PreRunId).ToList();
if (devices.Count > 0)
{
this.SubSystemIds = devices.ConvertAll(x => x.PreRunId);
}
}
else if (model.PreRunLevel == 1)
{
devices = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 4 && x.InstallationId == model.PreRunId).ToList();
if (devices.Count > 0)
{
this.SubSystemIds = devices.ConvertAll(x => x.PreRunId);
}
}
}
else
{
devices = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 4).ToList();
if (devices.Count > 0)
{
this.SubSystemIds = devices.ConvertAll(x => x.PreRunId);
}
}
FourDecisionBrid();
}
#endregion
#region /
/// <summary>
/// 三查四定绑定
/// </summary>
public void FourDecisionBrid()
{
var result = new List<FourDecisionScheduleBridDto>();
if (this.SubSystemIds.Count > 0)
{
result = GetFourDecisionSchedules();
}
GridFourDecision.DataSource = result;
GridFourDecision.DataBind();
JObject summary = new JObject();
summary.Add("AllNum", result.Sum(x => x.AllNum));
summary.Add("NoCloseNum", result.Sum(x => x.NoCloseNum));
summary.Add("CloseNum", result.Sum(x => x.CloseNum));
GridFourDecision.SummaryData = summary;
}
/// <summary>
/// 导出
/// </summary>
protected void btnScsdExport_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
//导出文件
string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
string ReportFileName = filePath + "三查四定进度.xlsx";
var result = GetFourDecisionSchedules();
if (result.Count > 0)
{
XSSFWorkbook hssfworkbook = new XSSFWorkbook();
XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("三查四定进度");
#region
ws.SetColumnWidth(0, (30 * 256));
ws.SetColumnWidth(1, (20 * 256));
ws.SetColumnWidth(2, (20 * 256));
ws.SetColumnWidth(3, (20 * 256));
ws.SetColumnWidth(4, (20 * 256));
ws.SetColumnWidth(5, (20 * 256));
ws.SetColumnWidth(6, (20 * 256));
ws.SetColumnWidth(7, (20 * 256));
#endregion
#region
//公共样式
ICellStyle style = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true);
//公共样式加粗
ICellStyle styleBold = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true, true);
#endregion
#region
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, 0, 0, 0, 7);
//行1
ws.GetRow(0).GetCell(0).CellStyle = styleBold;
ws.GetRow(0).GetCell(0).SetCellValue("级别");
ws.GetRow(0).GetCell(1).CellStyle = styleBold;
ws.GetRow(0).GetCell(1).SetCellValue("装置名称");
ws.GetRow(0).GetCell(2).CellStyle = styleBold;
ws.GetRow(0).GetCell(2).SetCellValue("工序名称");
ws.GetRow(0).GetCell(3).CellStyle = styleBold;
ws.GetRow(0).GetCell(3).SetCellValue("系统名称");
ws.GetRow(0).GetCell(4).CellStyle = styleBold;
ws.GetRow(0).GetCell(4).SetCellValue("子系统名称");
ws.GetRow(0).GetCell(5).CellStyle = styleBold;
ws.GetRow(0).GetCell(5).SetCellValue("尾项数量");
ws.GetRow(0).GetCell(6).CellStyle = styleBold;
ws.GetRow(0).GetCell(6).SetCellValue("未关闭尾项数量");
ws.GetRow(0).GetCell(7).CellStyle = styleBold;
ws.GetRow(0).GetCell(7).SetCellValue("已关闭尾项数量");
#endregion
#region
var start = 1;
var end = result.Count;
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 7);
//数据
var dataIndex = 1;
foreach (var item in result)
{
ws.GetRow(dataIndex).GetCell(0).SetCellValue(item.Level);
ws.GetRow(dataIndex).GetCell(1).SetCellValue(item.InstallationName);
ws.GetRow(dataIndex).GetCell(2).SetCellValue(item.ProcessesName);
ws.GetRow(dataIndex).GetCell(3).SetCellValue(item.SystemName);
ws.GetRow(dataIndex).GetCell(4).SetCellValue(item.SubsystemName);
ws.GetRow(dataIndex).GetCell(5).SetCellValue(item.AllNum);
ws.GetRow(dataIndex).GetCell(6).SetCellValue(item.NoCloseNum);
ws.GetRow(dataIndex).GetCell(7).SetCellValue(item.CloseNum);
dataIndex++;
}
#endregion
#region
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, end + 1, end + 1, 0, 7);
var region = new CellRangeAddress(end + 1, end + 1, 0, 4);
ws.AddMergedRegion(region);
ws.GetRow(end + 1).GetCell(0).SetCellValue("合计");
ws.GetRow(end + 1).GetCell(5).SetCellValue(result.Count > 0 ? result.Sum(x => x.AllNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(6).SetCellValue(result.Count > 0 ? result.Sum(x => x.NoCloseNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(7).SetCellValue(result.Count > 0 ? result.Sum(x => x.CloseNum).ToString() : "0");
#endregion
ws.PrintSetup.Landscape = false;
ws.PrintSetup.PaperSize = 9;
ws.ForceFormulaRecalculation = true;
using (FileStream filess = File.OpenWrite(ReportFileName))
{
hssfworkbook.Write(filess);
}
FileInfo filet = new FileInfo(ReportFileName);
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("三查四定进度.xlsx"));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", filet.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
Response.WriteFile(filet.FullName);
// 停止页面的执行
Response.End();
}
}
#endregion
#region
/// <summary>
/// 创建头部
/// </summary>
/// <returns></returns>
private XSSFSheet ExcelCreateRowTitle(XSSFSheet ws, XSSFWorkbook hssfworkbook, ICellStyle style, int sRows, int eRows, int cStart, int cEnd, float height = 21)
{
for (int i = sRows; i <= eRows; i++)
{
ws.CreateRow(i);
ws.GetRow(i).HeightInPoints = height;
for (int j = cStart; j <= cEnd; j++)
{
ws.GetRow(i).CreateCell(j);
ws.GetRow(i).CreateCell(j).CellStyle = style;
}
}
return ws;
}
/// <summary>
/// 创建样式
/// </summary>
/// <returns></returns>
public static ICellStyle SetExcelStyle(XSSFWorkbook wb, BorderStyle Bottom, BorderStyle Left, BorderStyle Right, BorderStyle Top, VerticalAlignment VerAig, HorizontalAlignment HorAig, double FontSize, bool WrapText = true, bool Bold = false, string FontName = "宋体")
{
ICellStyle style = wb.CreateCellStyle();
style.BorderBottom = Bottom;
style.BorderLeft = Left;
style.BorderRight = Right;
style.BorderTop = Top;
style.VerticalAlignment = VerAig;
style.Alignment = HorAig;
IFont font = wb.CreateFont();
font.FontHeightInPoints = FontSize;
font.IsBold = Bold;
font.FontName = FontName;
style.SetFont(font);
style.WrapText = WrapText;
return style;
}
/// <summary>
/// 获取三查四定统计
/// </summary>
/// <returns></returns>
private List<FourDecisionScheduleBridDto> GetFourDecisionSchedules()
{
var list = new List<FourDecisionScheduleBridDto>();
string allStr = $"select Level,COUNT(1) as AllNum,SUM(case ISNULL(a.DecisionIsClose,0) when 0 then 1 else 0 end) as NoCloseNum,SUM(case ISNULL(a.DecisionIsClose,0) when 1 then 1 else 0 end) as CloseNum from PreRun_SubThreeChecksFourDecision as a where a.SubSystemId in ('{string.Join("','", this.SubSystemIds)}') and a.ProjectId='{this.CurrUser.LoginProjectId}' group by a.Level order by a.Level asc";
var dt = SQLHelper.GetDataTableRunText(allStr);
if (dt.Rows.Count > 0)
{
string deviceStr = $"select b.PreRunName as InstallationName,c.PreRunName as ProcessesName,d.PreRunName as SystemName,e.PreRunName as SubsystemName from PreRun_SysDevice as a left join PreRun_SysDevice as b on b.PreRunId=ISNULL(a.InstallationId,a.PreRunId) left join PreRun_SysDevice as c on c.PreRunId=a.ProcessesId left join PreRun_SysDevice as d on d.PreRunId=a.SystemId left join PreRun_SysDevice as e on e.PreRunId=a.SubsystemId where a.PreRunId='{this.TreePreRunId}'";
var driveDt = SQLHelper.GetDataTableRunText(deviceStr);
list = DataTableToList<FourDecisionScheduleBridDto>(dt);
foreach (var item in list)
{
if (driveDt.Rows.Count > 0)
{
item.InstallationName = driveDt.Rows[0]["InstallationName"].ToString();
item.ProcessesName = driveDt.Rows[0]["ProcessesName"].ToString();
item.SystemName = driveDt.Rows[0]["SystemName"].ToString();
item.SubsystemName = driveDt.Rows[0]["SubsystemName"].ToString();
}
}
}
return list;
}
/// <summary>
/// 三查四定统计实体
/// </summary>
public class FourDecisionScheduleBridDto
{
/// <summary>
/// 级别
/// </summary>
public string Level { get; set; }
/// <summary>
/// 装置名称
/// </summary>
public string InstallationName { get; set; }
/// <summary>
/// 工序名称
/// </summary>
public string ProcessesName { get; set; }
/// <summary>
/// 系统名称
/// </summary>
public string SystemName { get; set; }
/// <summary>
/// 子系统名称
/// </summary>
public string SubsystemName { get; set; }
/// <summary>
/// 尾项数量
/// </summary>
public int AllNum { get; set; }
/// <summary>
/// 未关闭尾项数量
/// </summary>
public int NoCloseNum { get; set; }
/// <summary>
/// 已关闭尾项数量
/// </summary>
public int CloseNum { get; set; }
}
#endregion
#region
/// <summary>
/// DataTable转换List
/// </summary>
/// <returns></returns>
public List<T> DataTableToList<T>(DataTable table)
{
List<T> list = new List<T>();
T t = default(T);
PropertyInfo[] propertypes = null;
string tempName = string.Empty;
foreach (DataRow row in table.Rows)
{
t = Activator.CreateInstance<T>();
propertypes = t.GetType().GetProperties();
foreach (PropertyInfo pro in propertypes)
{
tempName = pro.Name;
if (table.Columns.Contains(tempName))
{
object value = row[tempName];
if (!value.ToString().Equals(""))
{
pro.SetValue(t, value, null);
}
}
}
list.Add(t);
}
return list.Count == 0 ? new List<T>() : list;
}
#endregion
}
}

View File

@ -0,0 +1,143 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.TestRun.Report
{
public partial class FourDecisionSchedule
{
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// panelLeftRegion 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel panelLeftRegion;
/// <summary>
/// tvControlItem 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Tree tvControlItem;
/// <summary>
/// panelCenterRegion 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel panelCenterRegion;
/// <summary>
/// Toolbar2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar2;
/// <summary>
/// hdTrustID 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.HiddenField hdTrustID;
/// <summary>
/// SimpleForm1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Form SimpleForm1;
/// <summary>
/// zxtsc 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.FormRow zxtsc;
/// <summary>
/// GridFourDecision 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid GridFourDecision;
/// <summary>
/// Toolbar3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar3;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1;
/// <summary>
/// btnScsdExport 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnScsdExport;
}
}

View File

@ -44,84 +44,46 @@
<Rows>
<f:FormRow runat="server" ID="zxtsc">
<Items>
<f:TabStrip ID="TabStrip1" IsFluid="true"
AutoPostBack="true" OnTabIndexChanged="TabStrip1_TabIndexChanged"
ShowBorder="true" ActiveTabIndex="1" runat="server">
<Tabs>
<f:Tab Title="预试车进度" BodyPadding="10px" Layout="Fit" runat="server">
<f:Grid Height="550px" ID="GridPreRun" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="WorkPackId" DataKeyNames="WorkPackId" AllowSorting="false" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" AllowPaging="false" IsDatabasePaging="true" EnableSummary="true" SummaryPosition="Flow">
<Toolbars>
<f:Toolbar ID="Toolbar1" runat="server">
<Items>
<f:Grid Height="550px" ID="GridPreRun" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="WorkPackId" DataKeyNames="WorkPackId" AllowSorting="false" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" AllowPaging="false" IsDatabasePaging="true">
<Toolbars>
<f:Toolbar ID="Toolbar1" runat="server">
<Items>
<f:ToolbarFill ID="ToolbarFill" runat="server"></f:ToolbarFill>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:RowNumberField EnablePagingNumber="true" Width="50px" HeaderTextAlign="Center" TextAlign="Center" />
<f:RenderField HeaderText="工作包名称" ColumnID="WorkName" DataField="WorkName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="装置名称" ColumnID="InstallationName" DataField="InstallationName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="工序名称" ColumnID="ProcessesName" DataField="ProcessesName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="系统名称" ColumnID="SystemName" DataField="SystemName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="子系统名称" ColumnID="SubsystemName" DataField="SubsystemName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="工作包数量" ColumnID="AllNum" DataField="AllNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="未关闭任务单数量" ColumnID="NoCloseNum" DataField="NoCloseNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="已关闭任务单数量" ColumnID="CloseNum" DataField="CloseNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
</Listeners>
</f:Grid>
<f:ToolbarFill ID="ToolbarFill" runat="server"></f:ToolbarFill>
<f:Button ID="btnYscExport" runat="server" Icon="ApplicationGo" Text="导出" ToolTip="导出" OnClick="btnYscExport_Click" DisableControlBeforePostBack="false" EnableAjax="false"></f:Button>
</Items>
</f:Tab>
<f:Tab Title="三查四定进度" BodyPadding="10px" Layout="Fit" runat="server">
<Items>
<f:Grid Height="550px" ID="GridFourDecision" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="PreRunId" DataKeyNames="PreRunId" AllowSorting="false" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" AllowPaging="false" IsDatabasePaging="true">
<Toolbars>
<f:Toolbar ID="Toolbar3" runat="server">
<Items>
<f:ToolbarFill ID="ToolbarFill1" runat="server"></f:ToolbarFill>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:RowNumberField EnablePagingNumber="true" Width="50px" HeaderTextAlign="Center" TextAlign="Center" />
<f:RenderField HeaderText="装置名称" ColumnID="InstallationName" DataField="InstallationName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="工序名称" ColumnID="ProcessesName" DataField="ProcessesName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="系统名称" ColumnID="SystemName" DataField="SystemName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="子系统名称" ColumnID="SubsystemName" DataField="SubsystemName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="工作包数量" ColumnID="AllNum" DataField="AllNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="未关闭任务单数量" ColumnID="NoCloseNum" DataField="NoCloseNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="已关闭任务单数量" ColumnID="CloseNum" DataField="CloseNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
</Listeners>
</f:Grid>
</Items>
</f:Tab>
</Tabs>
</f:TabStrip>
</f:Toolbar>
</Toolbars>
<Columns>
<f:RowNumberField EnablePagingNumber="true" Width="50px" HeaderTextAlign="Center" TextAlign="Center" />
<f:RenderField HeaderText="工作包名称" ColumnID="WorkPackName" DataField="WorkPackName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="装置名称" ColumnID="InstallationName" DataField="InstallationName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="工序名称" ColumnID="ProcessesName" DataField="ProcessesName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="系统名称" ColumnID="SystemName" DataField="SystemName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="子系统名称" ColumnID="SubsystemName" DataField="SubsystemName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="工作包数量" ColumnID="WorkPackNum" DataField="WorkPackNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="工作包未关闭数量" ColumnID="WorkPackNoCloseNum" DataField="WorkPackNoCloseNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="工作包已关闭数量" ColumnID="WorkPackCloseNum" DataField="WorkPackCloseNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="检查表数量" ColumnID="InspectNum" DataField="InspectNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="检查表未关闭数量" ColumnID="InspectNoCloseNum" DataField="InspectNoCloseNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="检查表已关闭数量" ColumnID="InspectCloseNum" DataField="InspectCloseNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
</Listeners>
</f:Grid>
</Items>
</f:FormRow>
</Rows>
</f:Form>
</Items>

View File

@ -1,14 +1,23 @@
using Aspose.Words.Lists;
using BLL;
using FineUIPro.Web.DataShow;
using Model;
using System;
using System.ArrayExtensions;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WIA;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
using System.Drawing;
using Newtonsoft.Json.Linq;
namespace FineUIPro.Web.TestRun.Report
{
@ -21,14 +30,14 @@ namespace FineUIPro.Web.TestRun.Report
/// <summary>
/// 子系统主键
/// </summary>
public string SsubSystemId { get { return (string)ViewState["SsubSystemId"]; } set { ViewState["SsubSystemId"] = value; } }
public List<string> SubSystemIds { get { return (List<string>)ViewState["SubSystemIds"]; } set { ViewState["SubSystemIds"] = value; } }
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (SubSystemIds == null) SubSystemIds = new List<string>();
this.InitTreeMenu();//加载树
TabStrip1.ActiveTabIndex = 0;
}
}
@ -108,146 +117,214 @@ namespace FineUIPro.Web.TestRun.Report
/// <param name="e"></param>
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
{
var devices = new List<PreRun_SysDevice>();
this.TreePreRunId = tvControlItem.SelectedNodeID != "0" ? tvControlItem.SelectedNodeID : string.Empty;
if (TabStrip1.ActiveTabIndex == 0)
if (!string.IsNullOrWhiteSpace(this.TreePreRunId))
{
PreRunBrid();
var model = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == this.TreePreRunId);
if (model.PreRunLevel == 4)
{
this.SubSystemIds = new List<string>() { model.PreRunId };
}
else if (model.PreRunLevel == 3)
{
devices = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 4 && x.SystemId == model.PreRunId).ToList();
if (devices.Count > 0)
{
this.SubSystemIds = devices.ConvertAll(x => x.PreRunId);
}
}
else if (model.PreRunLevel == 2)
{
devices = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 4 && x.ProcessesId == model.PreRunId).ToList();
if (devices.Count > 0)
{
this.SubSystemIds = devices.ConvertAll(x => x.PreRunId);
}
}
else if (model.PreRunLevel == 1)
{
devices = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 4 && x.InstallationId == model.PreRunId).ToList();
if (devices.Count > 0)
{
this.SubSystemIds = devices.ConvertAll(x => x.PreRunId);
}
}
}
else if (TabStrip1.ActiveTabIndex == 1)
else
{
FourDecisionBrid();
devices = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 4).ToList();
if (devices.Count > 0)
{
this.SubSystemIds = devices.ConvertAll(x => x.PreRunId);
}
}
PreRunBrid();
}
#endregion
#region
#region /
/// <summary>
/// 预试车绑定
/// </summary>
public void PreRunBrid()
{
var result = new List<ScheduleBridDto>();
string strSql = "select a.WorkPackId,b.WorkPackName,b.Sort,SUM(case ISNULL(a.InspectIsClose,0) when 1 then 1 else 0 end) as ygbnum,SUM(case ISNULL(a.InspectIsClose,0) when 0 then 1 else 0 end) as wgbnum,COUNT(1) as allnum from PreRun_SubInspectTerm as a inner join PreRun_WorkPackage as b on a.WorkPackId=b.WorkPackId where 1=1 and a.ProjectId=@ProjectId ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
string installationName = "-";
string processesName = "-";
string systemName = "-";
string subsystemName = "-";
string columnames = string.Empty;
if (!string.IsNullOrWhiteSpace(this.TreePreRunId))
var result = new List<PreRunScheduleDto>();
if (this.SubSystemIds.Count > 0)
{
var model = Funs.DB.PreRun_SysDevice.FirstOrDefault(p => p.PreRunId == this.TreePreRunId);
if (model.PreRunLevel == 1)
{
installationName = model.PreRunName;
columnames = "a.InstallationId";
}
else if (model.PreRunLevel == 2)
{
processesName = model.PreRunName;
columnames = "a.ProcessesId";
}
else if (model.PreRunLevel == 3)
{
systemName = model.PreRunName;
columnames = "a.SystemId";
}
else if (model.PreRunLevel == 4)
{
subsystemName = model.PreRunName;
columnames = "a.SubsystemId";
}
strSql += $"and {columnames}='{model.PreRunId}'";
}
strSql += "group by a.WorkPackId,b.WorkPackName,b.Sort order by b.Sort asc";
SqlParameter[] parameter = listStr.ToArray();
var dt = SQLHelper.GetDataTableRunText(strSql, parameter);
if (dt != null)
{
foreach (DataRow item in dt.Rows)
{
result.Add(new ScheduleBridDto()
{
WorkPackId = item["WorkPackId"].ToString(),
WorkName = item["WorkPackName"].ToString(),
InstallationName = installationName,
ProcessesName = processesName,
SystemName = systemName,
SubsystemName = subsystemName,
AllNum = item["allnum"].ToString(),
NoCloseNum = item["wgbnum"].ToString(),
CloseNum = item["ygbnum"].ToString()
});
}
result = GetPreRunSchedules();
}
GridPreRun.DataSource = result;
GridPreRun.DataBind();
JObject summary = new JObject();
summary.Add("WorkPackNum", result.Sum(x => x.WorkPackNum));
summary.Add("WorkPackNoCloseNum", result.Sum(x => x.WorkPackNoCloseNum));
summary.Add("WorkPackCloseNum", result.Sum(x => x.WorkPackCloseNum));
summary.Add("InspectNum", result.Sum(x => x.InspectNum));
summary.Add("InspectNoCloseNum", result.Sum(x => x.InspectNoCloseNum));
summary.Add("InspectCloseNum", result.Sum(x => x.InspectCloseNum));
GridPreRun.SummaryData = summary;
}
/// <summary>
/// 三查四定绑定
/// 导出
/// </summary>
public void FourDecisionBrid()
protected void btnYscExport_Click(object sender, EventArgs e)
{
var result = new List<ScheduleBridDto>();
string strSql = "select b.PreRunId,b.InstallationId,b.ProcessesId,b.SystemId,b.SubsystemId,b.Sort,SUM(case ISNULL(a.DecisionIsClose,0) when 1 then 1 else 0 end) as ygbnum,SUM(case ISNULL(a.DecisionIsClose,0) when 0 then 1 else 0 end) as wgbnum,COUNT(1) as allnum from PreRun_SubThreeChecksFourDecision as a inner join PreRun_SysDevice as b on a.SubSystemId=b.PreRunId where 1=1 and a.ProjectId=@ProjectId ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
string installationName = "-";
string processesName = "-";
string systemName = "-";
string subsystemName = "-";
string columnames = string.Empty;
if (!string.IsNullOrWhiteSpace(this.TreePreRunId))
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
//导出文件
string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
if (!Directory.Exists(filePath))
{
var model = Funs.DB.PreRun_SysDevice.FirstOrDefault(p => p.PreRunId == this.TreePreRunId);
if (model.PreRunLevel == 1)
{
installationName = model.PreRunName;
columnames = "b.InstallationId";
}
else if (model.PreRunLevel == 2)
{
processesName = model.PreRunName;
columnames = "b.ProcessesId";
}
else if (model.PreRunLevel == 3)
{
systemName = model.PreRunName;
columnames = "b.SystemId";
}
else if (model.PreRunLevel == 4)
{
subsystemName = model.PreRunName;
columnames = "b.SubsystemId";
}
strSql += $"and {columnames}='{model.PreRunId}'";
Directory.CreateDirectory(filePath);
}
strSql += "group by b.PreRunId,b.InstallationId,b.ProcessesId,b.SystemId,b.SubsystemId,b.Sort order by b.Sort asc";
SqlParameter[] parameter = listStr.ToArray();
var dt = SQLHelper.GetDataTableRunText(strSql, parameter);
if (dt != null)
string ReportFileName = filePath + "预试车进度.xlsx";
var result = GetPreRunSchedules();
if (result.Count > 0)
{
foreach (DataRow item in dt.Rows)
XSSFWorkbook hssfworkbook = new XSSFWorkbook();
XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("预试车进度");
#region
ws.SetColumnWidth(0, (30 * 256));
ws.SetColumnWidth(1, (20 * 256));
ws.SetColumnWidth(2, (20 * 256));
ws.SetColumnWidth(3, (20 * 256));
ws.SetColumnWidth(4, (20 * 256));
ws.SetColumnWidth(5, (20 * 256));
ws.SetColumnWidth(6, (20 * 256));
ws.SetColumnWidth(7, (20 * 256));
ws.SetColumnWidth(8, (20 * 256));
ws.SetColumnWidth(9, (20 * 256));
ws.SetColumnWidth(10, (20 * 256));
#endregion
#region
//公共样式
ICellStyle style = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true);
//公共样式加粗
ICellStyle styleBold = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true, true);
#endregion
#region
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, 0, 0, 0, 10);
//行1
ws.GetRow(0).GetCell(0).CellStyle = styleBold;
ws.GetRow(0).GetCell(0).SetCellValue("工作包名称");
ws.GetRow(0).GetCell(1).CellStyle = styleBold;
ws.GetRow(0).GetCell(1).SetCellValue("装置名称");
ws.GetRow(0).GetCell(2).CellStyle = styleBold;
ws.GetRow(0).GetCell(2).SetCellValue("工序名称");
ws.GetRow(0).GetCell(3).CellStyle = styleBold;
ws.GetRow(0).GetCell(3).SetCellValue("系统名称");
ws.GetRow(0).GetCell(4).CellStyle = styleBold;
ws.GetRow(0).GetCell(4).SetCellValue("子系统名称");
ws.GetRow(0).GetCell(5).CellStyle = styleBold;
ws.GetRow(0).GetCell(5).SetCellValue("工作包数量");
ws.GetRow(0).GetCell(6).CellStyle = styleBold;
ws.GetRow(0).GetCell(6).SetCellValue("工作包未关闭数量");
ws.GetRow(0).GetCell(7).CellStyle = styleBold;
ws.GetRow(0).GetCell(7).SetCellValue("工作包已关闭数量");
ws.GetRow(0).GetCell(8).CellStyle = styleBold;
ws.GetRow(0).GetCell(8).SetCellValue("检查表数量");
ws.GetRow(0).GetCell(9).CellStyle = styleBold;
ws.GetRow(0).GetCell(9).SetCellValue("检查表未关闭数量");
ws.GetRow(0).GetCell(10).CellStyle = styleBold;
ws.GetRow(0).GetCell(10).SetCellValue("检查表已关闭数量");
#endregion
#region
var start = 1;
var end = result.Count;
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 10);
//数据
var dataIndex = 1;
foreach (var item in result)
{
result.Add(new ScheduleBridDto()
{
PreRunId = item["PreRunId"].ToString(),
InstallationName = installationName,
ProcessesName = processesName,
SystemName = systemName,
SubsystemName = subsystemName,
AllNum = item["allnum"].ToString(),
NoCloseNum = item["wgbnum"].ToString(),
CloseNum = item["ygbnum"].ToString()
});
ws.GetRow(dataIndex).GetCell(0).SetCellValue(item.WorkPackName);
ws.GetRow(dataIndex).GetCell(1).SetCellValue(item.InstallationName);
ws.GetRow(dataIndex).GetCell(2).SetCellValue(item.ProcessesName);
ws.GetRow(dataIndex).GetCell(3).SetCellValue(item.SystemName);
ws.GetRow(dataIndex).GetCell(4).SetCellValue(item.SubsystemName);
ws.GetRow(dataIndex).GetCell(5).SetCellValue(item.WorkPackNum);
ws.GetRow(dataIndex).GetCell(6).SetCellValue(item.WorkPackNoCloseNum);
ws.GetRow(dataIndex).GetCell(7).SetCellValue(item.WorkPackCloseNum);
ws.GetRow(dataIndex).GetCell(8).SetCellValue(item.InspectNum);
ws.GetRow(dataIndex).GetCell(9).SetCellValue(item.InspectNoCloseNum);
ws.GetRow(dataIndex).GetCell(10).SetCellValue(item.InspectCloseNum);
dataIndex++;
}
#endregion
#region
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, end + 1, end + 1, 0, 10);
var region = new CellRangeAddress(end + 1, end + 1, 0, 4);
ws.AddMergedRegion(region);
ws.GetRow(end + 1).GetCell(0).SetCellValue("合计");
ws.GetRow(end + 1).GetCell(5).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(6).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackNoCloseNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(7).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackCloseNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(8).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(9).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectNoCloseNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(10).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectCloseNum).ToString() : "0");
#endregion
ws.PrintSetup.Landscape = false;
ws.PrintSetup.PaperSize = 9;
ws.ForceFormulaRecalculation = true;
using (FileStream filess = File.OpenWrite(ReportFileName))
{
hssfworkbook.Write(filess);
}
FileInfo filet = new FileInfo(ReportFileName);
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("预试车进度.xlsx"));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", filet.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
Response.WriteFile(filet.FullName);
// 停止页面的执行
Response.End();
}
GridFourDecision.DataSource = result;
GridFourDecision.DataBind();
}
#endregion
@ -255,18 +332,146 @@ namespace FineUIPro.Web.TestRun.Report
#region
/// <summary>
/// 点击tab
/// 创建头部
/// </summary>
protected void TabStrip1_TabIndexChanged(object sender, EventArgs e)
/// <returns></returns>
private XSSFSheet ExcelCreateRowTitle(XSSFSheet ws, XSSFWorkbook hssfworkbook, ICellStyle style, int sRows, int eRows, int cStart, int cEnd, float height = 21)
{
if (TabStrip1.ActiveTabIndex == 0)
for (int i = sRows; i <= eRows; i++)
{
PreRunBrid();
ws.CreateRow(i);
ws.GetRow(i).HeightInPoints = height;
for (int j = cStart; j <= cEnd; j++)
{
ws.GetRow(i).CreateCell(j);
ws.GetRow(i).CreateCell(j).CellStyle = style;
}
}
else if (TabStrip1.ActiveTabIndex == 1)
return ws;
}
/// <summary>
/// 创建样式
/// </summary>
/// <returns></returns>
public static ICellStyle SetExcelStyle(XSSFWorkbook wb, BorderStyle Bottom, BorderStyle Left, BorderStyle Right, BorderStyle Top, VerticalAlignment VerAig, HorizontalAlignment HorAig, double FontSize, bool WrapText = true, bool Bold = false, string FontName = "宋体")
{
ICellStyle style = wb.CreateCellStyle();
style.BorderBottom = Bottom;
style.BorderLeft = Left;
style.BorderRight = Right;
style.BorderTop = Top;
style.VerticalAlignment = VerAig;
style.Alignment = HorAig;
IFont font = wb.CreateFont();
font.FontHeightInPoints = FontSize;
font.IsBold = Bold;
font.FontName = FontName;
style.SetFont(font);
style.WrapText = WrapText;
return style;
}
/// <summary>
/// 获取预试车统计
/// </summary>
/// <returns></returns>
private List<PreRunScheduleDto> GetPreRunSchedules()
{
string allStr = $"select a.SubSystemId,a.SystemId,b.WorkPackId,b.WorkPackName,b.WorkPackType,(select count(1) from PreRun_SubPropertySelect as gd where gd.SubSystemId = a.SubSystemId) as GdallNum,(select count(1) from PreRun_SubTechnologySelect as sb where sb.SubSystemId = a.SubSystemId) as SballNum,(select count(1) from PreRun_SubInstrumentSelect as sy where sy.SubSystemId = a.SubSystemId) as SyallNum from PreRun_SubSysWorkPackage as a inner join PreRun_WorkPackage as b on a.WorkPackId = b.WorkPackId where a.SubSystemId in ('{string.Join("','", this.SubSystemIds)}') order by a.WorkPackCode asc";
var dt = SQLHelper.GetDataTableRunText(allStr);
var list = new List<PreRunScheduleDto>();
string deviceStr = $"select b.PreRunName as InstallationName,c.PreRunName as ProcessesName,d.PreRunName as SystemName,e.PreRunName as SubsystemName from PreRun_SysDevice as a left join PreRun_SysDevice as b on b.PreRunId=ISNULL(a.InstallationId,a.PreRunId) left join PreRun_SysDevice as c on c.PreRunId=a.ProcessesId left join PreRun_SysDevice as d on d.PreRunId=a.SystemId left join PreRun_SysDevice as e on e.PreRunId=a.SubsystemId where a.PreRunId='{this.TreePreRunId}'";
var driveDt = SQLHelper.GetDataTableRunText(deviceStr);
string inspectStr = $"select a.WorkPackId,b.WorkPackName,b.Sort,SUM(case ISNULL(a.InspectIsClose, 0) when 1 then 1 else 0 end) as CloseNum,SUM(case ISNULL(a.InspectIsClose, 0) when 0 then 1 else 0 end) as NoCloseNum,COUNT(1) as AllNum from PreRun_SubInspectTerm as a inner join PreRun_WorkPackage as b on a.WorkPackId = b.WorkPackId where 1=1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' and a.SubSystemId in ('{string.Join("','", this.SubSystemIds)}') group by a.WorkPackId,b.WorkPackName,b.Sort order by b.Sort asc";
var inspectDt = SQLHelper.GetDataTableRunText(inspectStr);
var inspectlist = DataTableToList<WorkPackageInspectDto>(inspectDt);
if (dt.Rows.Count > 0)
{
FourDecisionBrid();
//获取所有子系统数量
var inspects = Funs.DB.PreRun_SubInspectTerm.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && this.SubSystemIds.Contains(x.SubSystemId));
var querylist = DataTableToList<QuerySubSysWorkPackage>(dt);
var queryGroup = querylist.GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackType }).Select(p => new
{
p.Key.WorkPackId,
p.Key.WorkPackName,
p.Key.WorkPackType,
GdallNum = p.Sum(i => i.GdallNum),
SballNum = p.Sum(i => i.SballNum),
SyallNum = p.Sum(i => i.SyallNum)
});
foreach (var itemPack in queryGroup)
{
var itemQueryList = querylist.Where(x => x.WorkPackId == itemPack.WorkPackId).ToList();
var model = new PreRunScheduleDto();
model.WorkPackId = itemPack.WorkPackId;
model.WorkPackName = itemPack.WorkPackName;
model.WorkPackType = itemPack.WorkPackType;
if (driveDt.Rows.Count > 0)
{
model.InstallationName = driveDt.Rows[0]["InstallationName"].ToString();
model.ProcessesName = driveDt.Rows[0]["ProcessesName"].ToString();
model.SystemName = driveDt.Rows[0]["SystemName"].ToString();
model.SubsystemName = driveDt.Rows[0]["SubsystemName"].ToString();
}
model.GdallNum = itemPack.GdallNum;
model.SballNum = itemPack.SballNum;
model.SyallNum = itemPack.SyallNum;
model.AllGdSbYbNum = (itemPack.GdallNum + itemPack.SballNum + itemPack.SyallNum);
model.WorkPackNum = itemQueryList.Count(x => x.WorkPackId == itemPack.WorkPackId);
if (inspectlist.Count(a => a.WorkPackId == itemPack.WorkPackId) > 0)
{
var itemInspect = inspectlist.FirstOrDefault(a => a.WorkPackId == itemPack.WorkPackId);
model.InspectNum = itemInspect.AllNum;
model.InspectNoCloseNum = itemInspect.NoCloseNum;
model.InspectCloseNum = itemInspect.CloseNum;
}
else
{
model.WorkPackCloseNum = 0;
model.WorkPackNoCloseNum = model.WorkPackNum;
model.InspectNum = 0;
model.InspectNoCloseNum = 0;
model.InspectCloseNum = 0;
}
model.WorkPackCloseNum = 0;
model.WorkPackNoCloseNum = 0;
var subsystemids = itemQueryList.ConvertAll(a => a.SubSystemId).Distinct();
foreach (var itemsubid in subsystemids)
{
if (inspects.Count(x => x.SubSystemId == itemsubid) > 0)
{
var itemQuerylist = itemQueryList.FirstOrDefault(x => x.SubSystemId == itemsubid && x.WorkPackId == itemPack.WorkPackId);
var allNum = itemQuerylist.GdallNum + itemQuerylist.SballNum + itemQuerylist.SyallNum;
if (inspects.Count(x => x.SubInspectId == itemsubid && x.InspectIsClose != 1) > 0)
{
model.WorkPackNoCloseNum += 1;
}
else
{
var closeInspect = inspects.Where(x => x.SubInspectId == itemsubid && x.InspectIsClose == 1);
var closeNums = closeInspect.Count() > 0 ? closeInspect.Select(x => x.PropertyTechnologyId.Split(',').Count()).Sum(x => x) : 0;
if (allNum > closeNums)
{
model.WorkPackNoCloseNum += 1;
}
else
{
model.WorkPackCloseNum += 1;
}
}
}
else
{
model.WorkPackNoCloseNum += 1;
}
}
list.Add(model);
}
}
return list;
}
/// <summary>
@ -316,6 +521,186 @@ namespace FineUIPro.Web.TestRun.Report
public string CloseNum { get; set; }
}
/// <summary>
/// 预试车统计实体
/// </summary>
public class PreRunScheduleDto
{
/// <summary>
/// 工作包主键
/// </summary>
public string WorkPackId { get; set; }
/// <summary>
/// 工作包名称
/// </summary>
public string WorkPackName { get; set; }
/// <summary>
/// 工作包类型
/// </summary>
public int WorkPackType { get; set; }
/// <summary>
/// 装置名称
/// </summary>
public string InstallationName { get; set; }
/// <summary>
/// 工序名称
/// </summary>
public string ProcessesName { get; set; }
/// <summary>
/// 系统名称
/// </summary>
public string SystemName { get; set; }
/// <summary>
/// 子系统名称
/// </summary>
public string SubsystemName { get; set; }
/// <summary>
/// 所有管道,设备,仪表索引数量
/// </summary>
public int AllGdSbYbNum { get; set; }
/// <summary>
/// 工作包所有管道数量
/// </summary>
public int GdallNum { get; set; }
/// <summary>
/// 工作包所有设备数量
/// </summary>
public int SballNum { get; set; }
/// <summary>
/// 工作包所有仪表索引数量
/// </summary>
public int SyallNum { get; set; }
/// <summary>
/// 工作包数量
/// </summary>
public int WorkPackNum { get; set; }
/// <summary>
/// 工作包未关闭数量
/// </summary>
public int WorkPackNoCloseNum { get; set; }
/// <summary>
/// 工作包已关闭数量
/// </summary>
public int WorkPackCloseNum { get; set; }
/// <summary>
/// 检查表数量
/// </summary>
public int InspectNum { get; set; }
/// <summary>
/// 检查表未关闭数量
/// </summary>
public int InspectNoCloseNum { get; set; }
/// <summary>
/// 检查表已关闭数量
/// </summary>
public int InspectCloseNum { get; set; }
}
/// <summary>
/// 预试车检查表实体
/// </summary>
public class WorkPackageInspectDto
{
/// <summary>
/// 子系统主键
/// </summary>
public string SubSystemId { get; set; }
/// <summary>
/// 工作包主键
/// </summary>
public string WorkPackId { get; set; }
/// <summary>
/// 工作包名称
/// </summary>
public string WorkPackName { get; set; }
/// <summary>
/// 检查表数量
/// </summary>
public int AllNum { get; set; }
/// <summary>
/// 未关闭任务单数量
/// </summary>
public int NoCloseNum { get; set; }
/// <summary>
/// 已关闭任务单数量
/// </summary>
public int CloseNum { get; set; }
}
/// <summary>
/// 子系统工作包和总设备/管道/仪表数量
/// </summary>
public class QuerySubSysWorkPackage
{
/// <summary>
/// 子系统主键
/// </summary>
public string SubSystemId { get; set; }
/// <summary>
/// 系统主键
/// </summary>
public string SystemId { get; set; }
/// <summary>
/// 工作包主键
/// </summary>
public string WorkPackId { get; set; }
/// <summary>
/// 工作包名称
/// </summary>
public string WorkPackName { get; set; }
/// <summary>
/// 工作包类型
/// </summary>
public int WorkPackType { get; set; }
/// <summary>
/// 管道总数量
/// </summary>
public int GdallNum { get; set; }
/// <summary>
/// 设备总数量
/// </summary>
public int SballNum { get; set; }
/// <summary>
/// 仪表索引总数量
/// </summary>
public int SyallNum { get; set; }
}
#endregion
#region
/// <summary>
/// DataTable转换List
/// </summary>
/// <returns></returns>
public List<T> DataTableToList<T>(DataTable table)
{
List<T> list = new List<T>();
T t = default(T);
PropertyInfo[] propertypes = null;
string tempName = string.Empty;
foreach (DataRow row in table.Rows)
{
t = Activator.CreateInstance<T>();
propertypes = t.GetType().GetProperties();
foreach (PropertyInfo pro in propertypes)
{
tempName = pro.Name;
if (table.Columns.Contains(tempName))
{
object value = row[tempName];
if (!value.ToString().Equals(""))
{
pro.SetValue(t, value, null);
}
}
}
list.Add(t);
}
return list.Count == 0 ? new List<T>() : list;
}
#endregion
}

View File

@ -104,15 +104,6 @@ namespace FineUIPro.Web.TestRun.Report
/// </remarks>
protected global::FineUIPro.FormRow zxtsc;
/// <summary>
/// TabStrip1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TabStrip TabStrip1;
/// <summary>
/// GridPreRun 控件。
/// </summary>
@ -141,30 +132,12 @@ namespace FineUIPro.Web.TestRun.Report
protected global::FineUIPro.ToolbarFill ToolbarFill;
/// <summary>
/// GridFourDecision 控件。
/// btnYscExport 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid GridFourDecision;
/// <summary>
/// Toolbar3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar3;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1;
protected global::FineUIPro.Button btnYscExport;
}
}

View File

@ -38,12 +38,14 @@
<Tabs>
<f:Tab Title="预试车数据设置" BodyPadding="10px" Layout="Fit" runat="server">
<Items>
<f:Grid Height="550px" ID="GridYsc" ShowBorder="true" ClicksToEdit="1" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="ScheduleId" DataKeyNames="ScheduleId,WorkPackId" AllowSorting="true" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" AllowPaging="true" IsDatabasePaging="true" PageSize="10" AllowFilters="true">
<f:Grid Height="550px" ID="GridYsc" ShowBorder="true" ClicksToEdit="1" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="ScheduleId" DataKeyNames="ScheduleId,WorkPackId" AllowSorting="true" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" AllowPaging="true" IsDatabasePaging="true" PageSize="10" AllowFilters="true" EnableSummary="true" SummaryPosition="Flow">
<Toolbars>
<f:Toolbar ID="Toolbar1" runat="server">
<Items>
<f:Button ID="btnYscReset" Text="重置" ToolTip="重置" ConfirmText="重置后数据会全部被清空,是否确认?" Icon="Reload" runat="server" OnClick="btnYscReset_Click"></f:Button>
<f:Button ID="btnYscSave" Text="保存" ToolTip="保存" Icon="FilmSave" runat="server" OnClick="btnYscSave_Click"></f:Button>
<f:Button ID="btnYscSave" Text="保存" ToolTip="保存" Icon="FilmSave" runat="server" OnClientClick="if(!isYscValid()){return false;}" OnClick="btnYscSave_Click"></f:Button>
<f:ToolbarFill ID="ToolbarFill" runat="server"></f:ToolbarFill>
<f:Button ID="btnYscExport" runat="server" Icon="ApplicationGo" Text="导出" ToolTip="导出" OnClick="btnYscExport_Click" DisableControlBeforePostBack="false" EnableAjax="false"></f:Button>
</Items>
</f:Toolbar>
</Toolbars>
@ -51,24 +53,25 @@
<f:RowNumberField EnablePagingNumber="true" HeaderTextAlign="Center" TextAlign="Center" />
<f:RenderField HeaderText="工作包名称" ColumnID="WorkPackName" DataField="WorkPackName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField HeaderText="全部数量" ColumnID="AllNum" DataField="AllNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="100px">
<f:RenderField HeaderText="全部数量" ColumnID="AllNum" DataField="AllNum" FieldType="Int" HeaderTextAlign="Center" TextAlign="Center" Width="100px">
<Editor>
<f:NumberBox NoNegative="true" runat="server" ID="txtAllNum"></f:NumberBox>
<f:NumberBox NoNegative="true" runat="server" ID="txtAllNum" Required="true"></f:NumberBox>
</Editor>
</f:RenderField>
<f:RenderField HeaderText="进行中数量" ColumnID="ProgressNum" DataField="ProgressNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
<f:RenderField HeaderText="进行中数量" ColumnID="ProgressNum" DataField="ProgressNum" FieldType="Int" HeaderTextAlign="Center" TextAlign="Center">
<Editor>
<f:NumberBox NoNegative="true" runat="server" ID="txtProgressNum"></f:NumberBox>
<f:NumberBox NoNegative="true" runat="server" ID="txtProgressNum" Required="true"></f:NumberBox>
</Editor>
</f:RenderField>
<f:RenderField HeaderText="已完成数量" ColumnID="CompleteNum" DataField="CompleteNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
<f:RenderField HeaderText="已完成数量" ColumnID="CompleteNum" DataField="CompleteNum" FieldType="Int" HeaderTextAlign="Center" TextAlign="Center">
<Editor>
<f:NumberBox NoNegative="true" runat="server" ID="txtCompleteNum"></f:NumberBox>
<f:NumberBox NoNegative="true" runat="server" ID="txtCompleteNum" Required="true"></f:NumberBox>
</Editor>
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
<f:Listener Event="afteredit" Handler="onGridYscAfterEdit" />
</Listeners>
</f:Grid>
</Items>
@ -76,12 +79,14 @@
<f:Tab Title="试车数据设置" BodyPadding="10px" runat="server">
<Items>
<f:Grid Height="550px" ID="GridSc" ClicksToEdit="1" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="ScheduleId" DataKeyNames="ScheduleId,WorkPackId" AllowSorting="true" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" AllowPaging="true" IsDatabasePaging="true" PageSize="10" AllowFilters="true">
<f:Grid Height="550px" ID="GridSc" ClicksToEdit="1" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="ScheduleId" DataKeyNames="ScheduleId,WorkPackId" AllowSorting="true" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" AllowPaging="true" IsDatabasePaging="true" PageSize="10" AllowFilters="true" EnableSummary="true" SummaryPosition="Flow">
<Toolbars>
<f:Toolbar ID="Toolbar3" runat="server">
<Items>
<f:Button ID="btnScReset" Text="重置" ToolTip="重置" ConfirmText="重置后数据会全部被清空,是否确认?" Icon="Reload" runat="server" OnClick="btnScReset_Click"></f:Button>
<f:Button ID="btnScSave" Text="保存" ToolTip="保存" Icon="FilmSave" runat="server" OnClick="btnScSave_Click"></f:Button>
<f:Button ID="btnScSave" Text="保存" ToolTip="保存" Icon="FilmSave" runat="server" OnClientClick="if(!isScValid()){return false;}" OnClick="btnScSave_Click"></f:Button>
<f:ToolbarFill ID="ToolbarFill1" runat="server"></f:ToolbarFill>
<f:Button ID="btnScExport" runat="server" Icon="ApplicationGo" Text="导出" ToolTip="导出" OnClick="btnScExport_Click" DisableControlBeforePostBack="false" EnableAjax="false"></f:Button>
</Items>
</f:Toolbar>
</Toolbars>
@ -89,17 +94,17 @@
<f:RowNumberField EnablePagingNumber="true" Width="100px" HeaderTextAlign="Center" TextAlign="Center" />
<f:RenderField HeaderText="工作包名称" ColumnID="WorkPackName" DataField="WorkPackName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="全部数量" ColumnID="AllNum" DataField="AllNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="100px">
<f:RenderField HeaderText="全部数量" ColumnID="AllNum" DataField="AllNum" FieldType="Int" HeaderTextAlign="Center" TextAlign="Center" Width="100px">
<Editor>
<f:NumberBox NoNegative="true" runat="server" ID="txtAllNum1"></f:NumberBox>
</Editor>
</f:RenderField>
<f:RenderField HeaderText="进行中数量" ColumnID="ProgressNum" DataField="ProgressNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="100px">
<f:RenderField HeaderText="进行中数量" ColumnID="ProgressNum" DataField="ProgressNum" FieldType="Int" HeaderTextAlign="Center" TextAlign="Center" Width="100px">
<Editor>
<f:NumberBox NoNegative="true" runat="server" ID="txtProgressNum1"></f:NumberBox>
</Editor>
</f:RenderField>
<f:RenderField HeaderText="已完成数量" ColumnID="CompleteNum" DataField="CompleteNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="100px">
<f:RenderField HeaderText="已完成数量" ColumnID="CompleteNum" DataField="CompleteNum" FieldType="Int" HeaderTextAlign="Center" TextAlign="Center" Width="100px">
<Editor>
<f:NumberBox NoNegative="true" runat="server" ID="txtCompleteNum1"></f:NumberBox>
</Editor>
@ -107,11 +112,55 @@
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
<f:Listener Event="afteredit" Handler="onGridScAfterEdit" />
</Listeners>
</f:Grid>
</Items>
</f:Tab>
<f:Tab Title="三查四定进度" BodyPadding="10px" runat="server">
<Items>
<f:Grid Height="550px" ID="GridScsd" ClicksToEdit="1" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="ScheduleId" DataKeyNames="ScheduleId,LevelName" AllowSorting="true" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" AllowPaging="true" IsDatabasePaging="true" PageSize="10" AllowFilters="true" EnableSummary="true" SummaryPosition="Flow">
<Toolbars>
<f:Toolbar ID="Toolbar4" runat="server">
<Items>
<f:Button ID="btnScsdReset" Text="重置" ToolTip="重置" ConfirmText="重置后数据会全部被清空,是否确认?" Icon="Reload" runat="server" OnClick="btnScsdReset_Click"></f:Button>
<f:Button ID="btnScsdSave" Text="保存" ToolTip="保存" Icon="FilmSave" runat="server" OnClientClick="if(!isScsdValid()){return false;}" OnClick="btnScsdSave_Click"></f:Button>
<f:ToolbarFill ID="ToolbarFill2" runat="server"></f:ToolbarFill>
<f:Button ID="btnScsdExport" runat="server" Icon="ApplicationGo" Text="导出" ToolTip="导出" OnClick="btnScsdExport_Click" DisableControlBeforePostBack="false" EnableAjax="false"></f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:RowNumberField EnablePagingNumber="true" Width="100px" HeaderTextAlign="Center" TextAlign="Center" />
<f:RenderField HeaderText="类别名称" ColumnID="LevelName" DataField="LevelName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="全部数量" ColumnID="AllNum" DataField="AllNum" FieldType="Int" HeaderTextAlign="Center" TextAlign="Center" Width="100px">
<Editor>
<f:NumberBox NoNegative="true" runat="server" ID="NumberBox1"></f:NumberBox>
</Editor>
</f:RenderField>
<f:RenderField HeaderText="进行中数量" ColumnID="ProgressNum" DataField="ProgressNum" FieldType="Int" HeaderTextAlign="Center" TextAlign="Center" Width="100px">
<Editor>
<f:NumberBox NoNegative="true" runat="server" ID="NumberBox2"></f:NumberBox>
</Editor>
</f:RenderField>
<f:RenderField HeaderText="已完成数量" ColumnID="CompleteNum" DataField="CompleteNum" FieldType="Int" HeaderTextAlign="Center" TextAlign="Center" Width="100px">
<Editor>
<f:NumberBox NoNegative="true" runat="server" ID="NumberBox3"></f:NumberBox>
</Editor>
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
<f:Listener Event="afteredit" Handler="onGridScsdAfterEdit" />
</Listeners>
</f:Grid>
</Items>
</f:Tab>
</Tabs>
</f:TabStrip>
</Items>
@ -131,6 +180,138 @@
function reloadGrid() {
__doPostBack(null, 'reloadGrid');
}
//预试车验证
function isYscValid() {
var gridysc = F('<%= GridYsc.ClientID %>');
var valid = true, modifiedData = gridysc.getMergedData();//gridysc.getModifiedData();
$.each(modifiedData, function (index, rowData) {
var allNum = parseInt(rowData.values['AllNum']);
var progressNum = parseInt(rowData.values['ProgressNum']);
var completeNum = parseInt(rowData.values['CompleteNum']);
var workPackName = rowData.values['WorkPackName'];
if (allNum != (progressNum + completeNum)) {
F.alert({
message: '工作包(' + workPackName + ')全部数量不等于进行中数量加已完成数量!',
ok: function () {
grid1.startEdit(rowData.id, 'AllNum');
}
});
valid = false;
return false; // break
}
});
return valid;
}
//预试车合计
function onGridYscAfterEdit(event, value, params) {
var me = F('<%= GridYsc.ClientID %>');
var allNumTotal = 0;
var progressNumTotal = 0;
var completeNumTotal = 0;
me.getRowEls().each(function (index, tr) {
debugger;
allNumTotal += me.getCellValue(tr, 'AllNum');
progressNumTotal += me.getCellValue(tr, 'ProgressNum');
completeNumTotal += me.getCellValue(tr, 'CompleteNum');
});
// 第三个参数 true强制更新不显示左上角的更改标识
me.updateSummaryCellValue('AllNum', allNumTotal, true);
me.updateSummaryCellValue('ProgressNum', progressNumTotal, true);
me.updateSummaryCellValue('CompleteNum', completeNumTotal, true);
}
//试车验证
function isScValid() {
var gridSc = F('<%= GridSc.ClientID %>');
var valid = true, modifiedData = gridSc.getMergedData();
$.each(modifiedData, function (index, rowData) {
var allNum = parseInt(rowData.values['AllNum']);
var progressNum = parseInt(rowData.values['ProgressNum']);
var completeNum = parseInt(rowData.values['CompleteNum']);
var workPackName = rowData.values['WorkPackName'];
if (allNum != (progressNum + completeNum)) {
F.alert({
message: '工作包(' + workPackName + ')全部数量不等于进行中数量加已完成数量!',
ok: function () {
grid1.startEdit(rowData.id, 'AllNum');
}
});
valid = false;
return false; // break
}
});
return valid;
}
//试车合计
function onGridScAfterEdit(event, value, params) {
var me = F('<%= GridSc.ClientID %>');
var allNumTotal = 0;
var progressNumTotal = 0;
var completeNumTotal = 0;
me.getRowEls().each(function (index, tr) {
debugger;
allNumTotal += me.getCellValue(tr, 'AllNum');
progressNumTotal += me.getCellValue(tr, 'ProgressNum');
completeNumTotal += me.getCellValue(tr, 'CompleteNum');
});
// 第三个参数 true强制更新不显示左上角的更改标识
me.updateSummaryCellValue('AllNum', allNumTotal, true);
me.updateSummaryCellValue('ProgressNum', progressNumTotal, true);
me.updateSummaryCellValue('CompleteNum', completeNumTotal, true);
}
//三查四定验证
function isScsdValid() {
var gridyScsd = F('<%= GridScsd.ClientID %>');
var valid = true, modifiedData = gridyScsd.getMergedData();
$.each(modifiedData, function (index, rowData) {
var allNum = parseInt(rowData.values['AllNum']);
var progressNum = parseInt(rowData.values['ProgressNum']);
var completeNum = parseInt(rowData.values['CompleteNum']);
var levelName = rowData.values['LevelName'];
if (allNum != (progressNum + completeNum)) {
F.alert({
message: '类别(' + levelName + ')全部数量不等于进行中数量加已完成数量!',
ok: function () {
grid1.startEdit(rowData.id, 'AllNum');
}
});
valid = false;
return false; // break
}
});
return valid;
}
//三查四定合计
function onGridScsdAfterEdit(event, value, params) {
var me = F('<%= GridScsd.ClientID %>');
var allNumTotal = 0;
var progressNumTotal = 0;
var completeNumTotal = 0;
me.getRowEls().each(function (index, tr) {
debugger;
allNumTotal += me.getCellValue(tr, 'AllNum');
progressNumTotal += me.getCellValue(tr, 'ProgressNum');
completeNumTotal += me.getCellValue(tr, 'CompleteNum');
});
// 第三个参数 true强制更新不显示左上角的更改标识
me.updateSummaryCellValue('AllNum', allNumTotal, true);
me.updateSummaryCellValue('ProgressNum', progressNumTotal, true);
me.updateSummaryCellValue('CompleteNum', completeNumTotal, true);
}
</script>
</body>
</html>

View File

@ -6,7 +6,6 @@ using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Model;
using System.Collections;
using Apache.NMS.ActiveMQ.Threads;
@ -14,6 +13,14 @@ using FineUIPro.Web.DataShow;
using Newtonsoft.Json.Linq;
using Aspose.Words.Lists;
using System.Web.UI.DataVisualization.Charting;
using static FineUIPro.Web.TestRun.Report.PreRunSchedule;
using System.Reflection;
using static FineUIPro.Web.TestRun.Report.TestRunSchedule;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
using System.IO;
using NPOI.SS.Formula.Functions;
namespace FineUIPro.Web.TestRun.Report
{
@ -35,6 +42,25 @@ namespace FineUIPro.Web.TestRun.Report
/// </summary>
public void DataBridYsc()
{
var result = YscData();
GridYsc.DataSource = result;
TabStrip1.ActiveTabIndex = 0;
GridYsc.DataBind();
JObject summary = new JObject();
summary.Add("AllNum", result.Sum(x => x.AllNum));
summary.Add("ProgressNum", result.Sum(x => x.ProgressNum));
summary.Add("CompleteNum", result.Sum(x => x.CompleteNum));
GridYsc.SummaryData = summary;
}
/// <summary>
/// 预试车数据
/// </summary>
/// <returns></returns>
public List<Run_ScheduleSetUpDto> YscData()
{
var result = new List<Run_ScheduleSetUpDto>();
if (Funs.DB.Run_ScheduleSetUp.Count(x => x.ProjectId == this.CurrUser.LoginProjectId && x.States == 1) > 0)
{
var query = from a in Funs.DB.Run_ScheduleSetUp
@ -56,29 +82,75 @@ namespace FineUIPro.Web.TestRun.Report
AddTime = a.AddTime,
Sort = a.Sort
};
GridYsc.DataSource = query.ToList();
result = query.ToList();
}
else
{
var result = new List<Run_ScheduleSetUpDto>();
string strSql = @"select a.WorkPackId,a.WorkPackName,(select COUNT(1) from PreRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId) as AllNum,(select COUNT(1) from PreRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId and ISNULL(b.InspectIsClose,0)=0) as ProgressNum,(select COUNT(1) from PreRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId and ISNULL(b.InspectIsClose,0)=1) as CompleteNum from PreRun_WorkPackage as a order by a.Sort"; List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
if (tb.Rows.Count > 0)
List<string> SubSystemIds = new List<string>();
var devices = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 4).ToList();
if (devices.Count > 0)
{
int i = 1;
foreach (DataRow row in tb.Rows)
SubSystemIds = devices.ConvertAll(x => x.PreRunId);
}
string allStr = $"select a.SubSystemId,a.SystemId,b.WorkPackId,b.WorkPackName,b.WorkPackType,(select count(1) from PreRun_SubPropertySelect as gd where gd.SubSystemId = a.SubSystemId) as GdallNum,(select count(1) from PreRun_SubTechnologySelect as sb where sb.SubSystemId = a.SubSystemId) as SballNum,(select count(1) from PreRun_SubInstrumentSelect as sy where sy.SubSystemId = a.SubSystemId) as SyallNum from PreRun_SubSysWorkPackage as a inner join PreRun_WorkPackage as b on a.WorkPackId = b.WorkPackId where a.SubSystemId in ('{string.Join("','", SubSystemIds)}') order by a.WorkPackCode asc";
var dt = SQLHelper.GetDataTableRunText(allStr);
string inspectStr = $"select a.WorkPackId,b.WorkPackName,b.Sort,SUM(case ISNULL(a.InspectIsClose, 0) when 1 then 1 else 0 end) as CloseNum,SUM(case ISNULL(a.InspectIsClose, 0) when 0 then 1 else 0 end) as NoCloseNum,COUNT(1) as AllNum from PreRun_SubInspectTerm as a inner join PreRun_WorkPackage as b on a.WorkPackId = b.WorkPackId where 1=1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' and a.SubSystemId in ('{string.Join("','", SubSystemIds)}') group by a.WorkPackId,b.WorkPackName,b.Sort order by b.Sort asc";
var inspectDt = SQLHelper.GetDataTableRunText(inspectStr);
var inspectlist = DataTableToList<WorkPackageInspectDto>(inspectDt);
if (dt.Rows.Count > 0)
{
//获取所有子系统数量
var inspects = Funs.DB.PreRun_SubInspectTerm.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && SubSystemIds.Contains(x.SubSystemId));
var querylist = DataTableToList<QuerySubSysWorkPackage>(dt);
var queryGroup = querylist.GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackType }).Select(p => new
{
p.Key.WorkPackId,
p.Key.WorkPackName,
p.Key.WorkPackType
});
int i = 1;
foreach (var itemPack in queryGroup)
{
var itemQueryList = querylist.Where(x => x.WorkPackId == itemPack.WorkPackId).ToList();
var model = new Run_ScheduleSetUpDto();
model.ScheduleId = Guid.NewGuid().ToString();
model.WorkPackId = row["WorkPackId"].ToString();
model.WorkPackName = row["WorkPackName"].ToString();
model.WorkPackId = itemPack.WorkPackId;
model.WorkPackName = itemPack.WorkPackName;
model.ProjectId = this.CurrUser.LoginProjectId;
model.States = 1;
model.AllNum = int.Parse(row["AllNum"].ToString());
model.ProgressNum = int.Parse(row["ProgressNum"].ToString());
model.CompleteNum = int.Parse(row["CompleteNum"].ToString());
model.AllNum = itemQueryList.Count(x => x.WorkPackId == itemPack.WorkPackId);
model.ProgressNum = 0;
model.CompleteNum = 0;
var subsystemids = itemQueryList.ConvertAll(a => a.SubSystemId).Distinct();
foreach (var itemsubid in subsystemids)
{
if (inspects.Count(x => x.SubSystemId == itemsubid) > 0)
{
var itemQuerylist = itemQueryList.FirstOrDefault(x => x.SubSystemId == itemsubid && x.WorkPackId == itemPack.WorkPackId);
var allNum = itemQuerylist.GdallNum + itemQuerylist.SballNum + itemQuerylist.SyallNum;
if (inspects.Count(x => x.SubInspectId == itemsubid && x.InspectIsClose != 1) > 0)
{
model.ProgressNum += 1;
}
else
{
var closeInspect = inspects.Where(x => x.SubInspectId == itemsubid && x.InspectIsClose == 1);
var closeNums = closeInspect.Count() > 0 ? closeInspect.Select(x => x.PropertyTechnologyId.Split(',').Count()).Sum(x => x) : 0;
if (allNum > closeNums)
{
model.ProgressNum += 1;
}
else
{
model.CompleteNum += 1;
}
}
}
else
{
model.ProgressNum += 1;
}
}
var rate = model.CompleteNum > 0 ? (decimal)Math.Round((float)model.CompleteNum / (float)model.AllNum * 100, 2, MidpointRounding.AwayFromZero) : 0;
if (rate > 100) rate = 100;
model.CompleteRate = rate;
@ -89,10 +161,9 @@ namespace FineUIPro.Web.TestRun.Report
i++;
}
}
GridYsc.DataSource = result;
}
TabStrip1.ActiveTabIndex = 0;
GridYsc.DataBind();
return result;
}
/// <summary>
@ -155,6 +226,115 @@ namespace FineUIPro.Web.TestRun.Report
}
}
/// <summary>
/// 预试车导出
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnYscExport_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
//导出文件
string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
string ReportFileName = filePath + "预试车进度.xlsx";
var result = YscData();
if (result.Count > 0)
{
XSSFWorkbook hssfworkbook = new XSSFWorkbook();
XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("预试车进度");
#region
ws.SetColumnWidth(0, (30 * 256));
ws.SetColumnWidth(1, (20 * 256));
ws.SetColumnWidth(2, (20 * 256));
ws.SetColumnWidth(3, (20 * 256));
#endregion
#region
//公共样式
ICellStyle style = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true);
//公共样式加粗
ICellStyle styleBold = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true, true);
#endregion
#region
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, 0, 0, 0, 3);
//行1
ws.GetRow(0).GetCell(0).CellStyle = styleBold;
ws.GetRow(0).GetCell(0).SetCellValue("工作包名称");
ws.GetRow(0).GetCell(1).CellStyle = styleBold;
ws.GetRow(0).GetCell(1).SetCellValue("全部数量");
ws.GetRow(0).GetCell(2).CellStyle = styleBold;
ws.GetRow(0).GetCell(2).SetCellValue("进行中数量");
ws.GetRow(0).GetCell(3).CellStyle = styleBold;
ws.GetRow(0).GetCell(3).SetCellValue("已完成数量");
#endregion
#region
var start = 1;
var end = result.Count;
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 3);
//数据
var dataIndex = 1;
foreach (var item in result)
{
ws.GetRow(dataIndex).GetCell(0).SetCellValue(item.WorkPackName);
ws.GetRow(dataIndex).GetCell(1).SetCellValue(item.AllNum.ToString());
ws.GetRow(dataIndex).GetCell(2).SetCellValue(item.ProgressNum.ToString());
ws.GetRow(dataIndex).GetCell(3).SetCellValue(item.CompleteNum.ToString());
dataIndex++;
}
#endregion
#region
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, end + 1, end + 1, 0, 3);
ws.GetRow(end + 1).GetCell(0).SetCellValue("合计");
ws.GetRow(end + 1).GetCell(1).SetCellValue(result.Count > 0 ? result.Sum(x => x.AllNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(2).SetCellValue(result.Count > 0 ? result.Sum(x => x.ProgressNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(3).SetCellValue(result.Count > 0 ? result.Sum(x => x.CompleteNum).ToString() : "0");
#endregion
ws.PrintSetup.Landscape = false;
ws.PrintSetup.PaperSize = 9;
ws.ForceFormulaRecalculation = true;
using (FileStream filess = File.OpenWrite(ReportFileName))
{
hssfworkbook.Write(filess);
}
FileInfo filet = new FileInfo(ReportFileName);
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("预试车进度.xlsx"));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", filet.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
Response.WriteFile(filet.FullName);
// 停止页面的执行
Response.End();
}
}
#endregion
#region
@ -164,6 +344,26 @@ namespace FineUIPro.Web.TestRun.Report
/// </summary>
public void DataBridSc()
{
var result = ScData();
GridSc.DataSource = result;
TabStrip1.ActiveTabIndex = 1;
GridSc.DataBind();
JObject summary = new JObject();
summary.Add("AllNum", result.Sum(x => x.AllNum));
summary.Add("ProgressNum", result.Sum(x => x.ProgressNum));
summary.Add("CompleteNum", result.Sum(x => x.CompleteNum));
GridSc.SummaryData = summary;
}
/// <summary>
/// 试车数据
/// </summary>
/// <returns></returns>
public List<Run_ScheduleSetUpDto> ScData()
{
var result = new List<Run_ScheduleSetUpDto>();
if (Funs.DB.Run_ScheduleSetUp.Count(x => x.ProjectId == this.CurrUser.LoginProjectId && x.States == 2) > 0)
{
var query = from a in Funs.DB.Run_ScheduleSetUp
@ -185,29 +385,48 @@ namespace FineUIPro.Web.TestRun.Report
AddTime = a.AddTime,
Sort = a.Sort
};
GridSc.DataSource = query.ToList();
result = query.ToList();
}
else
{
var result = new List<Run_ScheduleSetUpDto>();
string strSql = @"select a.WorkPackId,a.WorkPackName,(select COUNT(1) from TestRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId) as AllNum,(select COUNT(1) from TestRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId and ISNULL(b.InspectIsClose,0)=0) as ProgressNum,(select COUNT(1) from TestRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId and ISNULL(b.InspectIsClose,0)=1) as CompleteNum from TestRun_WorkPackage as a order by a.Sort"; List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
if (tb.Rows.Count > 0)
List<string> SystemIds = new List<string>();
var devices = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 3).ToList();
if (devices.Count > 0)
{
SystemIds = devices.ConvertAll(x => x.PreRunId);
}
string allStr = $"select b.WorkPackId,b.WorkPackName,COUNT(a.SystemId) as WorkPackNum from TestRun_SubSysWorkPackage as a inner join TestRun_WorkPackage as b on a.WorkPackId = b.WorkPackId where a.SystemId in ('{string.Join("','", SystemIds)}') group by b.WorkPackId,b.WorkPackName";
var dt = SQLHelper.GetDataTableRunText(allStr);
if (dt.Rows.Count > 0)
{
string inspectStr = $"select a.WorkPackId,b.WorkPackName,b.Sort,SUM(case ISNULL(a.InspectIsClose, 0) when 1 then 1 else 0 end) as CloseNum,SUM(case ISNULL(a.InspectIsClose, 0) when 0 then 1 else 0 end) as NoCloseNum,COUNT(1) as AllNum from TestRun_SubInspectTerm as a inner join TestRun_WorkPackage as b on a.WorkPackId = b.WorkPackId where 1=1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' group by a.WorkPackId,b.WorkPackName,b.Sort order by b.Sort asc";
var inspectDt = SQLHelper.GetDataTableRunText(inspectStr);
var inspectlist = DataTableToList<WorkPackageInspectDto>(inspectDt);
int i = 1;
foreach (DataRow row in tb.Rows)
var list = DataTableToList<TestRunScheduleDto>(dt);
foreach (var item in list)
{
var model = new Run_ScheduleSetUpDto();
model.ScheduleId = Guid.NewGuid().ToString();
model.WorkPackId = row["WorkPackId"].ToString();
model.WorkPackName = row["WorkPackName"].ToString();
model.WorkPackId = item.WorkPackId;
model.WorkPackName = item.WorkPackName;
model.ProjectId = this.CurrUser.LoginProjectId;
model.States = 2;
model.AllNum = int.Parse(row["AllNum"].ToString());
model.ProgressNum = int.Parse(row["ProgressNum"].ToString());
model.CompleteNum = int.Parse(row["CompleteNum"].ToString());
if (inspectlist.Count(x => x.WorkPackId == item.WorkPackId) > 0)
{
var itemInspect = inspectlist.FirstOrDefault(x => x.WorkPackId == item.WorkPackId);
model.AllNum = itemInspect.AllNum;
model.ProgressNum = itemInspect.NoCloseNum;
model.CompleteNum = itemInspect.CloseNum;
}
else
{
model.AllNum = 0;
model.ProgressNum = 0;
model.CompleteNum = 0;
}
model.CompleteRate = model.CompleteNum > 0 ? (decimal)Math.Round((float)model.CompleteNum / (float)model.AllNum, 2, MidpointRounding.AwayFromZero) : 0;
model.AddUser = this.CurrUser.UserId;
model.AddTime = DateTime.Now;
@ -216,10 +435,9 @@ namespace FineUIPro.Web.TestRun.Report
i++;
}
}
GridSc.DataSource = result;
}
TabStrip1.ActiveTabIndex = 1;
GridSc.DataBind();
return result;
}
/// <summary>
@ -280,10 +498,389 @@ namespace FineUIPro.Web.TestRun.Report
}
}
/// <summary>
/// 试车导出
/// </summary>
protected void btnScExport_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
//导出文件
string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
string ReportFileName = filePath + "试车进度.xlsx";
var result = ScData();
if (result.Count > 0)
{
XSSFWorkbook hssfworkbook = new XSSFWorkbook();
XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("试车进度");
#region
ws.SetColumnWidth(0, (30 * 256));
ws.SetColumnWidth(1, (20 * 256));
ws.SetColumnWidth(2, (20 * 256));
ws.SetColumnWidth(3, (20 * 256));
#endregion
#region
//公共样式
ICellStyle style = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true);
//公共样式加粗
ICellStyle styleBold = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true, true);
#endregion
#region
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, 0, 0, 0, 3);
//行1
ws.GetRow(0).GetCell(0).CellStyle = styleBold;
ws.GetRow(0).GetCell(0).SetCellValue("工作包名称");
ws.GetRow(0).GetCell(1).CellStyle = styleBold;
ws.GetRow(0).GetCell(1).SetCellValue("全部数量");
ws.GetRow(0).GetCell(2).CellStyle = styleBold;
ws.GetRow(0).GetCell(2).SetCellValue("进行中数量");
ws.GetRow(0).GetCell(3).CellStyle = styleBold;
ws.GetRow(0).GetCell(3).SetCellValue("已完成数量");
#endregion
#region
var start = 1;
var end = result.Count;
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 3);
//数据
var dataIndex = 1;
foreach (var item in result)
{
ws.GetRow(dataIndex).GetCell(0).SetCellValue(item.WorkPackName);
ws.GetRow(dataIndex).GetCell(1).SetCellValue(item.AllNum.ToString());
ws.GetRow(dataIndex).GetCell(2).SetCellValue(item.ProgressNum.ToString());
ws.GetRow(dataIndex).GetCell(3).SetCellValue(item.CompleteNum.ToString());
dataIndex++;
}
#endregion
#region
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, end + 1, end + 1, 0, 3);
ws.GetRow(end + 1).GetCell(0).SetCellValue("合计");
ws.GetRow(end + 1).GetCell(1).SetCellValue(result.Count > 0 ? result.Sum(x => x.AllNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(2).SetCellValue(result.Count > 0 ? result.Sum(x => x.ProgressNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(3).SetCellValue(result.Count > 0 ? result.Sum(x => x.CompleteNum).ToString() : "0");
#endregion
ws.PrintSetup.Landscape = false;
ws.PrintSetup.PaperSize = 9;
ws.ForceFormulaRecalculation = true;
using (FileStream filess = File.OpenWrite(ReportFileName))
{
hssfworkbook.Write(filess);
}
FileInfo filet = new FileInfo(ReportFileName);
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("试车进度.xlsx"));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", filet.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
Response.WriteFile(filet.FullName);
// 停止页面的执行
Response.End();
}
}
#endregion
#region
/// <summary>
/// 三查四定绑定
/// </summary>
public void DataBridScsd()
{
var result = ScsdData();
GridScsd.DataSource = result;
TabStrip1.ActiveTabIndex = 2;
GridScsd.DataBind();
JObject summary = new JObject();
summary.Add("AllNum", result.Sum(x => x.AllNum));
summary.Add("ProgressNum", result.Sum(x => x.ProgressNum));
summary.Add("CompleteNum", result.Sum(x => x.CompleteNum));
GridScsd.SummaryData = summary;
}
/// <summary>
/// 三查四定数据
/// </summary>
/// <returns></returns>
public List<Run_ScheduleSetUp> ScsdData()
{
var result = new List<Run_ScheduleSetUp>();
if (Funs.DB.Run_ScheduleSetUp.Count(x => x.ProjectId == this.CurrUser.LoginProjectId && x.States == 3) > 0)
{
result = Funs.DB.Run_ScheduleSetUp.Where(a => a.States == 3 && a.ProjectId == this.CurrUser.LoginProjectId).OrderBy(o => o.LevelName).ToList();
}
else
{
var list = new List<FourDecisionScheduleBridDto>();
string allStr = $"select Level,COUNT(1) as AllNum,SUM(case ISNULL(a.DecisionIsClose,0) when 0 then 1 else 0 end) as NoCloseNum,SUM(case ISNULL(a.DecisionIsClose,0) when 1 then 1 else 0 end) as CloseNum from PreRun_SubThreeChecksFourDecision as a where a.ProjectId='{this.CurrUser.LoginProjectId}' group by a.Level order by a.Level asc";
var dt = SQLHelper.GetDataTableRunText(allStr);
if (dt.Rows.Count > 0)
{
int i = 1;
list = DataTableToList<FourDecisionScheduleBridDto>(dt);
foreach (var item in list)
{
var model = new Run_ScheduleSetUp();
model.ScheduleId = Guid.NewGuid().ToString();
model.ProjectId = this.CurrUser.LoginProjectId;
model.LevelName = item.Level;
model.States = 3;
model.AllNum = item.AllNum;
model.ProgressNum = item.NoCloseNum;
model.CompleteNum = item.CloseNum;
model.CompleteRate = model.CompleteNum > 0 ? (decimal)Math.Round((float)model.CompleteNum / (float)model.AllNum, 2, MidpointRounding.AwayFromZero) : 0;
model.AddUser = this.CurrUser.UserId;
model.AddTime = DateTime.Now;
model.Sort = i;
result.Add(model);
i++;
}
}
}
return result;
}
/// <summary>
/// 三查四定重置
/// </summary>
protected void btnScsdReset_Click(object sender, EventArgs e)
{
var list = Funs.DB.Run_ScheduleSetUp.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.States == 3);
if (list.Count() > 0)
{
Funs.DB.Run_ScheduleSetUp.DeleteAllOnSubmit(list);
Funs.DB.SubmitChanges();
}
DataBridScsd();
ShowNotify("重置成功!", MessageBoxIcon.Success);
}
/// <summary>
/// 三查四定保存
/// </summary>
protected void btnScsdSave_Click(object sender, EventArgs e)
{
try
{
var deletelist = Funs.DB.Run_ScheduleSetUp.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.States == 3);
Funs.DB.Run_ScheduleSetUp.DeleteAllOnSubmit(deletelist);
Funs.DB.SubmitChanges();
var addList = new List<Run_ScheduleSetUp>();
JArray mergedData = GridScsd.GetMergedData();
foreach (JObject mergedRow in mergedData)
{
string status = mergedRow.Value<string>("status");
JObject values = mergedRow.Value<JObject>("values");
int i = mergedRow.Value<int>("index");
var model = new Run_ScheduleSetUp();
model.ScheduleId = this.GridScsd.Rows[i].DataKeys[0].ToString();
model.LevelName = this.GridScsd.Rows[i].DataKeys[1].ToString();
model.ProjectId = this.CurrUser.LoginProjectId;
model.States = 3;
model.AllNum = !string.IsNullOrWhiteSpace(values.Value<string>("AllNum")) ? int.Parse(values.Value<string>("AllNum")) : 0;
model.ProgressNum = !string.IsNullOrWhiteSpace(values.Value<string>("ProgressNum")) ? int.Parse(values.Value<string>("ProgressNum")) : 0;
model.CompleteNum = !string.IsNullOrWhiteSpace(values.Value<string>("CompleteNum")) ? int.Parse(values.Value<string>("CompleteNum")) : 0;
model.CompleteRate = model.CompleteNum > 0 ? (decimal)Math.Round((float)model.CompleteNum / (float)model.AllNum, 2, MidpointRounding.AwayFromZero) : 0;
model.AddUser = this.CurrUser.UserId;
model.AddTime = DateTime.Now;
model.Sort = i;
addList.Add(model);
}
Funs.DB.Run_ScheduleSetUp.InsertAllOnSubmit(addList);
Funs.DB.SubmitChanges();
DataBridScsd();
ShowNotify("保存成功!");
}
catch (Exception ex)
{
ShowNotify(ex.Message, MessageBoxIcon.Error);
}
}
/// <summary>
/// 三查四定导出
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnScsdExport_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
//导出文件
string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
string ReportFileName = filePath + "三查四定进度.xlsx";
var result = ScsdData();
if (result.Count > 0)
{
XSSFWorkbook hssfworkbook = new XSSFWorkbook();
XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("三查四定进度");
#region
ws.SetColumnWidth(0, (30 * 256));
ws.SetColumnWidth(1, (20 * 256));
ws.SetColumnWidth(2, (20 * 256));
ws.SetColumnWidth(3, (20 * 256));
#endregion
#region
//公共样式
ICellStyle style = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true);
//公共样式加粗
ICellStyle styleBold = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true, true);
#endregion
#region
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, 0, 0, 0, 3);
//行1
ws.GetRow(0).GetCell(0).CellStyle = styleBold;
ws.GetRow(0).GetCell(0).SetCellValue("类别名称");
ws.GetRow(0).GetCell(1).CellStyle = styleBold;
ws.GetRow(0).GetCell(1).SetCellValue("全部数量");
ws.GetRow(0).GetCell(2).CellStyle = styleBold;
ws.GetRow(0).GetCell(2).SetCellValue("进行中数量");
ws.GetRow(0).GetCell(3).CellStyle = styleBold;
ws.GetRow(0).GetCell(3).SetCellValue("已完成数量");
#endregion
#region
var start = 1;
var end = result.Count;
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 3);
//数据
var dataIndex = 1;
foreach (var item in result)
{
ws.GetRow(dataIndex).GetCell(0).SetCellValue(item.LevelName);
ws.GetRow(dataIndex).GetCell(1).SetCellValue(item.AllNum.ToString());
ws.GetRow(dataIndex).GetCell(2).SetCellValue(item.ProgressNum.ToString());
ws.GetRow(dataIndex).GetCell(3).SetCellValue(item.CompleteNum.ToString());
dataIndex++;
}
#endregion
#region
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, end + 1, end + 1, 0, 3);
ws.GetRow(end + 1).GetCell(0).SetCellValue("合计");
ws.GetRow(end + 1).GetCell(1).SetCellValue(result.Count > 0 ? result.Sum(x => x.AllNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(2).SetCellValue(result.Count > 0 ? result.Sum(x => x.ProgressNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(3).SetCellValue(result.Count > 0 ? result.Sum(x => x.CompleteNum).ToString() : "0");
#endregion
ws.PrintSetup.Landscape = false;
ws.PrintSetup.PaperSize = 9;
ws.ForceFormulaRecalculation = true;
using (FileStream filess = File.OpenWrite(ReportFileName))
{
hssfworkbook.Write(filess);
}
FileInfo filet = new FileInfo(ReportFileName);
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("三查四定进度.xlsx"));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", filet.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
Response.WriteFile(filet.FullName);
// 停止页面的执行
Response.End();
}
}
#endregion
#region
/// <summary>
/// 创建头部
/// </summary>
/// <returns></returns>
private XSSFSheet ExcelCreateRowTitle(XSSFSheet ws, XSSFWorkbook hssfworkbook, ICellStyle style, int sRows, int eRows, int cStart, int cEnd, float height = 21)
{
for (int i = sRows; i <= eRows; i++)
{
ws.CreateRow(i);
ws.GetRow(i).HeightInPoints = height;
for (int j = cStart; j <= cEnd; j++)
{
ws.GetRow(i).CreateCell(j);
ws.GetRow(i).CreateCell(j).CellStyle = style;
}
}
return ws;
}
/// <summary>
/// 创建样式
/// </summary>
/// <returns></returns>
public static ICellStyle SetExcelStyle(XSSFWorkbook wb, BorderStyle Bottom, BorderStyle Left, BorderStyle Right, BorderStyle Top, VerticalAlignment VerAig, HorizontalAlignment HorAig, double FontSize, bool WrapText = true, bool Bold = false, string FontName = "宋体")
{
ICellStyle style = wb.CreateCellStyle();
style.BorderBottom = Bottom;
style.BorderLeft = Left;
style.BorderRight = Right;
style.BorderTop = Top;
style.VerticalAlignment = VerAig;
style.Alignment = HorAig;
IFont font = wb.CreateFont();
font.FontHeightInPoints = FontSize;
font.IsBold = Bold;
font.FontName = FontName;
style.SetFont(font);
style.WrapText = WrapText;
return style;
}
/// <summary>
/// 私有方法
/// </summary>
@ -299,6 +896,11 @@ namespace FineUIPro.Web.TestRun.Report
//试车
DataBridSc();
}
else if (TabStrip1.ActiveTabIndex == 2)
{
//三查四定
DataBridScsd();
}
}
public class Run_ScheduleSetUpDto : Run_ScheduleSetUp
@ -309,7 +911,92 @@ namespace FineUIPro.Web.TestRun.Report
public string WorkPackName { get; set; }
}
/// <summary>
/// 试车检查表实体
/// </summary>
public class WorkPackageInspectDto
{
/// <summary>
/// 工作包主键
/// </summary>
public string WorkPackId { get; set; }
/// <summary>
/// 工作包名称
/// </summary>
public string WorkPackName { get; set; }
/// <summary>
/// 检查表数量
/// </summary>
public int AllNum { get; set; }
/// <summary>
/// 未关闭任务单数量
/// </summary>
public int NoCloseNum { get; set; }
/// <summary>
/// 已关闭任务单数量
/// </summary>
public int CloseNum { get; set; }
}
/// <summary>
/// 三查四定统计实体
/// </summary>
public class FourDecisionScheduleBridDto
{
/// <summary>
/// 级别
/// </summary>
public string Level { get; set; }
/// <summary>
/// 尾项数量
/// </summary>
public int AllNum { get; set; }
/// <summary>
/// 未关闭尾项数量
/// </summary>
public int NoCloseNum { get; set; }
/// <summary>
/// 已关闭尾项数量
/// </summary>
public int CloseNum { get; set; }
}
#endregion
#region
/// <summary>
/// DataTable转换List
/// </summary>
/// <returns></returns>
public List<T> DataTableToList<T>(DataTable table)
{
List<T> list = new List<T>();
T t = default(T);
PropertyInfo[] propertypes = null;
string tempName = string.Empty;
foreach (DataRow row in table.Rows)
{
t = Activator.CreateInstance<T>();
propertypes = t.GetType().GetProperties();
foreach (PropertyInfo pro in propertypes)
{
tempName = pro.Name;
if (table.Columns.Contains(tempName))
{
object value = row[tempName];
if (!value.ToString().Equals(""))
{
pro.SetValue(t, value, null);
}
}
}
list.Add(t);
}
return list.Count == 0 ? new List<T>() : list;
}
#endregion
}
}

View File

@ -122,6 +122,24 @@ namespace FineUIPro.Web.TestRun.Report
/// </remarks>
protected global::FineUIPro.Button btnYscSave;
/// <summary>
/// ToolbarFill 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill;
/// <summary>
/// btnYscExport 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnYscExport;
/// <summary>
/// txtAllNum 控件。
/// </summary>
@ -185,6 +203,24 @@ namespace FineUIPro.Web.TestRun.Report
/// </remarks>
protected global::FineUIPro.Button btnScSave;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1;
/// <summary>
/// btnScExport 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnScExport;
/// <summary>
/// txtAllNum1 控件。
/// </summary>
@ -211,5 +247,86 @@ namespace FineUIPro.Web.TestRun.Report
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.NumberBox txtCompleteNum1;
/// <summary>
/// GridScsd 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid GridScsd;
/// <summary>
/// Toolbar4 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar4;
/// <summary>
/// btnScsdReset 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnScsdReset;
/// <summary>
/// btnScsdSave 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnScsdSave;
/// <summary>
/// ToolbarFill2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill2;
/// <summary>
/// btnScsdExport 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnScsdExport;
/// <summary>
/// NumberBox1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.NumberBox NumberBox1;
/// <summary>
/// NumberBox2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.NumberBox NumberBox2;
/// <summary>
/// NumberBox3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.NumberBox NumberBox3;
}
}

View File

@ -44,17 +44,18 @@
<Rows>
<f:FormRow runat="server" ID="zxtsc">
<Items>
<f:Grid Height="550px" ID="GridTestRun" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="WorkPackId" DataKeyNames="WorkPackId" AllowSorting="false" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" AllowPaging="false" IsDatabasePaging="true">
<f:Grid Height="550px" ID="GridTestRun" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="WorkPackId" DataKeyNames="WorkPackId" AllowSorting="false" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" AllowPaging="false" IsDatabasePaging="true" EnableSummary="true" SummaryPosition="Flow">
<Toolbars>
<f:Toolbar ID="Toolbar1" runat="server">
<Items>
<f:ToolbarFill ID="ToolbarFill" runat="server"></f:ToolbarFill>
<f:Button ID="btnScExport" runat="server" Icon="ApplicationGo" Text="导出" ToolTip="导出" OnClick="btnScExport_Click" DisableControlBeforePostBack="false" EnableAjax="false"></f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:RowNumberField EnablePagingNumber="true" Width="50px" HeaderTextAlign="Center" TextAlign="Center" />
<f:RenderField HeaderText="工作包名称" ColumnID="WorkName" DataField="WorkName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
<f:RenderField HeaderText="工作包名称" ColumnID="WorkPackName" DataField="WorkPackName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="装置名称" ColumnID="InstallationName" DataField="InstallationName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
@ -62,13 +63,17 @@
</f:RenderField>
<f:RenderField HeaderText="系统名称" ColumnID="SystemName" DataField="SystemName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="子系统名称" ColumnID="SubsystemName" DataField="SubsystemName" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
<f:RenderField HeaderText="工作包数量" ColumnID="WorkPackNum" DataField="WorkPackNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="工作包数量" ColumnID="AllNum" DataField="AllNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
<f:RenderField HeaderText="工作包未关闭数量" ColumnID="WorkPackNoCloseNum" DataField="WorkPackNoCloseNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="未关闭任务单数量" ColumnID="NoCloseNum" DataField="NoCloseNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
<f:RenderField HeaderText="工作包已关闭数量" ColumnID="WorkPackCloseNum" DataField="WorkPackCloseNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="已关闭任务单数量" ColumnID="CloseNum" DataField="CloseNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
<f:RenderField HeaderText="检查表数量" ColumnID="InspectNum" DataField="InspectNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="检查表未关闭数量" ColumnID="InspectNoCloseNum" DataField="InspectNoCloseNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="检查表已关闭数量" ColumnID="InspectCloseNum" DataField="InspectCloseNum" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="150px">
</f:RenderField>
</Columns>
<Listeners>

View File

@ -7,7 +7,13 @@ using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using static FineUIPro.Web.TestRun.Report.PreRunSchedule;
using System.Reflection;
using Newtonsoft.Json.Linq;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
using System.IO;
namespace FineUIPro.Web.TestRun.Report
{
@ -18,14 +24,15 @@ namespace FineUIPro.Web.TestRun.Report
/// </summary>
public string TreePreRunId { get { return (string)ViewState["TreePreRunId"]; } set { ViewState["TreePreRunId"] = value; } }
/// <summary>
/// 系统主键
/// 系统主键
/// </summary>
public string SsubSystemId { get { return (string)ViewState["SsubSystemId"]; } set { ViewState["SsubSystemId"] = value; } }
public List<string> SystemIds { get { return (List<string>)ViewState["SystemIds"]; } set { ViewState["SystemIds"] = value; } }
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (SystemIds == null) SystemIds = new List<string>();
this.InitTreeMenu();//加载树
}
}
@ -107,76 +114,203 @@ namespace FineUIPro.Web.TestRun.Report
/// <param name="e"></param>
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
{
var devices = new List<PreRun_SysDevice>();
this.TreePreRunId = tvControlItem.SelectedNodeID != "0" ? tvControlItem.SelectedNodeID : string.Empty;
if (!string.IsNullOrWhiteSpace(this.TreePreRunId))
{
var model = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == this.TreePreRunId);
if (model.PreRunLevel == 3)
{
this.SystemIds = new List<string>() { model.PreRunId };
}
else if (model.PreRunLevel == 2)
{
devices = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 3 && x.ProcessesId == model.PreRunId).ToList();
if (devices.Count > 0)
{
this.SystemIds = devices.ConvertAll(x => x.PreRunId);
}
}
else if (model.PreRunLevel == 1)
{
devices = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 3 && x.InstallationId == model.PreRunId).ToList();
if (devices.Count > 0)
{
this.SystemIds = devices.ConvertAll(x => x.PreRunId);
}
}
}
else
{
devices = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 3).ToList();
if (devices.Count > 0)
{
this.SystemIds = devices.ConvertAll(x => x.PreRunId);
}
}
TestRunBrid();
}
#endregion
#region
#region /
/// <summary>
/// 预试车绑定
/// </summary>
public void TestRunBrid()
{
var result = new List<ScheduleBridDto>();
string strSql = "select a.WorkPackId,b.WorkPackName,b.Sort,SUM(case ISNULL(a.InspectIsClose,0) when 1 then 1 else 0 end) as ygbnum,SUM(case ISNULL(a.InspectIsClose,0) when 0 then 1 else 0 end) as wgbnum,COUNT(1) as allnum from TestRun_SubInspectTerm as a inner join TestRun_WorkPackage as b on a.WorkPackId=b.WorkPackId where 1=1 and a.ProjectId=@ProjectId ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
string installationName = "-";
string processesName = "-";
string systemName = "-";
string subsystemName = "-";
string columnames = string.Empty;
if (!string.IsNullOrWhiteSpace(this.TreePreRunId))
var result = new List<TestRunScheduleDto>();
if (this.SystemIds.Count > 0)
{
var model = Funs.DB.PreRun_SysDevice.FirstOrDefault(p => p.PreRunId == this.TreePreRunId);
if (model.PreRunLevel == 1)
{
installationName = model.PreRunName;
columnames = "a.InstallationId";
}
else if (model.PreRunLevel == 2)
{
processesName = model.PreRunName;
columnames = "a.ProcessesId";
}
else if (model.PreRunLevel == 3)
{
systemName = model.PreRunName;
columnames = "a.SystemId";
}
else if (model.PreRunLevel == 4)
{
subsystemName = model.PreRunName;
columnames = "a.SubsystemId";
}
strSql += $"and {columnames}='{model.PreRunId}'";
}
strSql += "group by a.WorkPackId,b.WorkPackName,b.Sort order by b.Sort asc";
SqlParameter[] parameter = listStr.ToArray();
var dt = SQLHelper.GetDataTableRunText(strSql, parameter);
if (dt != null)
{
foreach (DataRow item in dt.Rows)
{
result.Add(new ScheduleBridDto()
{
WorkPackId = item["WorkPackId"].ToString(),
WorkName = item["WorkPackName"].ToString(),
InstallationName = installationName,
ProcessesName = processesName,
SystemName = systemName,
SubsystemName = subsystemName,
AllNum = item["allnum"].ToString(),
NoCloseNum = item["wgbnum"].ToString(),
CloseNum = item["ygbnum"].ToString()
});
}
result = GetTestRunSchedules();
}
GridTestRun.DataSource = result;
GridTestRun.DataBind();
JObject summary = new JObject();
summary.Add("WorkPackNum", result.Sum(x => x.WorkPackNum));
summary.Add("WorkPackNoCloseNum", result.Sum(x => x.WorkPackNoCloseNum));
summary.Add("WorkPackCloseNum", result.Sum(x => x.WorkPackCloseNum));
summary.Add("InspectNum", result.Sum(x => x.InspectNum));
summary.Add("InspectNoCloseNum", result.Sum(x => x.InspectNoCloseNum));
summary.Add("InspectCloseNum", result.Sum(x => x.InspectCloseNum));
GridTestRun.SummaryData = summary;
}
/// <summary>
/// 试车导出
/// </summary>
protected void btnScExport_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
//导出文件
string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
string ReportFileName = filePath + "试车进度.xlsx";
var result = GetTestRunSchedules();
if (result.Count > 0)
{
XSSFWorkbook hssfworkbook = new XSSFWorkbook();
XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("试车进度");
#region
ws.SetColumnWidth(0, (30 * 256));
ws.SetColumnWidth(1, (20 * 256));
ws.SetColumnWidth(2, (20 * 256));
ws.SetColumnWidth(3, (20 * 256));
ws.SetColumnWidth(4, (20 * 256));
ws.SetColumnWidth(5, (20 * 256));
ws.SetColumnWidth(6, (20 * 256));
ws.SetColumnWidth(7, (20 * 256));
ws.SetColumnWidth(8, (20 * 256));
ws.SetColumnWidth(9, (20 * 256));
#endregion
#region
//公共样式
ICellStyle style = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true);
//公共样式加粗
ICellStyle styleBold = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true, true);
#endregion
#region
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, 0, 0, 0, 9);
//行1
ws.GetRow(0).GetCell(0).CellStyle = styleBold;
ws.GetRow(0).GetCell(0).SetCellValue("工作包名称");
ws.GetRow(0).GetCell(1).CellStyle = styleBold;
ws.GetRow(0).GetCell(1).SetCellValue("装置名称");
ws.GetRow(0).GetCell(2).CellStyle = styleBold;
ws.GetRow(0).GetCell(2).SetCellValue("工序名称");
ws.GetRow(0).GetCell(3).CellStyle = styleBold;
ws.GetRow(0).GetCell(3).SetCellValue("系统名称");
ws.GetRow(0).GetCell(4).CellStyle = styleBold;
ws.GetRow(0).GetCell(4).SetCellValue("工作包数量");
ws.GetRow(0).GetCell(5).CellStyle = styleBold;
ws.GetRow(0).GetCell(5).SetCellValue("工作包未关闭数量");
ws.GetRow(0).GetCell(6).CellStyle = styleBold;
ws.GetRow(0).GetCell(6).SetCellValue("工作包已关闭数量");
ws.GetRow(0).GetCell(7).CellStyle = styleBold;
ws.GetRow(0).GetCell(7).SetCellValue("检查表数量");
ws.GetRow(0).GetCell(8).CellStyle = styleBold;
ws.GetRow(0).GetCell(8).SetCellValue("检查表未关闭数量");
ws.GetRow(0).GetCell(9).CellStyle = styleBold;
ws.GetRow(0).GetCell(9).SetCellValue("检查表已关闭数量");
#endregion
#region
var start = 1;
var end = result.Count;
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 9);
//数据
var dataIndex = 1;
foreach (var item in result)
{
ws.GetRow(dataIndex).GetCell(0).SetCellValue(item.WorkPackName);
ws.GetRow(dataIndex).GetCell(1).SetCellValue(item.InstallationName);
ws.GetRow(dataIndex).GetCell(2).SetCellValue(item.ProcessesName);
ws.GetRow(dataIndex).GetCell(3).SetCellValue(item.SystemName);
ws.GetRow(dataIndex).GetCell(4).SetCellValue(item.WorkPackNum);
ws.GetRow(dataIndex).GetCell(5).SetCellValue(item.WorkPackNoCloseNum);
ws.GetRow(dataIndex).GetCell(6).SetCellValue(item.WorkPackCloseNum);
ws.GetRow(dataIndex).GetCell(7).SetCellValue(item.InspectNum);
ws.GetRow(dataIndex).GetCell(8).SetCellValue(item.InspectNoCloseNum);
ws.GetRow(dataIndex).GetCell(9).SetCellValue(item.InspectCloseNum);
dataIndex++;
}
#endregion
#region
ws = ExcelCreateRowTitle(ws, hssfworkbook, style, end + 1, end + 1, 0, 9);
var region = new CellRangeAddress(end + 1, end + 1, 0, 3);
ws.AddMergedRegion(region);
ws.GetRow(end + 1).GetCell(0).SetCellValue("合计");
ws.GetRow(end + 1).GetCell(4).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(5).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackNoCloseNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(6).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackCloseNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(7).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(8).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectNoCloseNum).ToString() : "0");
ws.GetRow(end + 1).GetCell(9).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectCloseNum).ToString() : "0");
#endregion
ws.PrintSetup.Landscape = false;
ws.PrintSetup.PaperSize = 9;
ws.ForceFormulaRecalculation = true;
using (FileStream filess = File.OpenWrite(ReportFileName))
{
hssfworkbook.Write(filess);
}
FileInfo filet = new FileInfo(ReportFileName);
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("试车进度.xlsx"));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", filet.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
Response.WriteFile(filet.FullName);
// 停止页面的执行
Response.End();
}
}
#endregion
@ -184,7 +318,48 @@ namespace FineUIPro.Web.TestRun.Report
#region
/// <summary>
/// 试车统计实体
/// 创建头部
/// </summary>
/// <returns></returns>
private XSSFSheet ExcelCreateRowTitle(XSSFSheet ws, XSSFWorkbook hssfworkbook, ICellStyle style, int sRows, int eRows, int cStart, int cEnd, float height = 21)
{
for (int i = sRows; i <= eRows; i++)
{
ws.CreateRow(i);
ws.GetRow(i).HeightInPoints = height;
for (int j = cStart; j <= cEnd; j++)
{
ws.GetRow(i).CreateCell(j);
ws.GetRow(i).CreateCell(j).CellStyle = style;
}
}
return ws;
}
/// <summary>
/// 创建样式
/// </summary>
/// <returns></returns>
public static ICellStyle SetExcelStyle(XSSFWorkbook wb, BorderStyle Bottom, BorderStyle Left, BorderStyle Right, BorderStyle Top, VerticalAlignment VerAig, HorizontalAlignment HorAig, double FontSize, bool WrapText = true, bool Bold = false, string FontName = "宋体")
{
ICellStyle style = wb.CreateCellStyle();
style.BorderBottom = Bottom;
style.BorderLeft = Left;
style.BorderRight = Right;
style.BorderTop = Top;
style.VerticalAlignment = VerAig;
style.Alignment = HorAig;
IFont font = wb.CreateFont();
font.FontHeightInPoints = FontSize;
font.IsBold = Bold;
font.FontName = FontName;
style.SetFont(font);
style.WrapText = WrapText;
return style;
}
/// <summary>
/// 试车统计实体(老)
/// </summary>
public class ScheduleBridDto
{
@ -226,6 +401,171 @@ namespace FineUIPro.Web.TestRun.Report
public string CloseNum { get; set; }
}
/// <summary>
/// 获取试车统计
/// </summary>
/// <returns></returns>
private List<TestRunScheduleDto> GetTestRunSchedules()
{
var list = new List<TestRunScheduleDto>();
string allStr = $"select b.WorkPackId,b.WorkPackName,COUNT(a.SystemId) as WorkPackNum from TestRun_SubSysWorkPackage as a inner join TestRun_WorkPackage as b on a.WorkPackId = b.WorkPackId where a.SystemId in ('{string.Join("','", this.SystemIds)}') group by b.WorkPackId,b.WorkPackName";
var dt = SQLHelper.GetDataTableRunText(allStr);
string inspectStr = $"select a.WorkPackId,b.WorkPackName,b.Sort,SUM(case ISNULL(a.InspectIsClose, 0) when 1 then 1 else 0 end) as CloseNum,SUM(case ISNULL(a.InspectIsClose, 0) when 0 then 1 else 0 end) as NoCloseNum,COUNT(1) as AllNum from TestRun_SubInspectTerm as a inner join TestRun_WorkPackage as b on a.WorkPackId = b.WorkPackId where 1=1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' group by a.WorkPackId,b.WorkPackName,b.Sort order by b.Sort asc";
var inspectDt = SQLHelper.GetDataTableRunText(inspectStr);
var inspectlist = DataTableToList<WorkPackageInspectDto>(inspectDt);
string deviceStr = $"select b.PreRunName as InstallationName,c.PreRunName as ProcessesName,d.PreRunName as SystemName from PreRun_SysDevice as a left join PreRun_SysDevice as b on b.PreRunId=ISNULL(a.InstallationId,a.PreRunId) left join PreRun_SysDevice as c on c.PreRunId=a.ProcessesId left join PreRun_SysDevice as d on d.PreRunId=a.SystemId where a.PreRunId='{this.TreePreRunId}'";
var driveDt = SQLHelper.GetDataTableRunText(deviceStr);
if (dt.Rows.Count > 0)
{
list = DataTableToList<TestRunScheduleDto>(dt);
foreach (var item in list)
{
if (inspectlist.Count(x => x.WorkPackId == item.WorkPackId) > 0)
{
var itemInspect = inspectlist.FirstOrDefault(x => x.WorkPackId == item.WorkPackId);
item.InspectNum = itemInspect.AllNum;
item.InspectCloseNum = itemInspect.CloseNum;
item.InspectNoCloseNum = itemInspect.NoCloseNum;
item.WorkPackCloseNum = itemInspect.CloseNum;
item.WorkPackNoCloseNum = itemInspect.NoCloseNum;
}
else
{
item.InspectNum = 0;
item.InspectCloseNum = 0;
item.InspectNoCloseNum = 0;
item.WorkPackNoCloseNum = 0;
item.WorkPackCloseNum = 0;
}
if (driveDt.Rows.Count > 0)
{
item.InstallationName = driveDt.Rows[0]["InstallationName"].ToString();
item.ProcessesName = driveDt.Rows[0]["ProcessesName"].ToString();
item.SystemName = driveDt.Rows[0]["SystemName"].ToString();
}
}
}
return list;
}
/// <summary>
/// 试车统计实体
/// </summary>
public class TestRunScheduleDto
{
/// <summary>
/// 工作包主键
/// </summary>
public string WorkPackId { get; set; }
/// <summary>
/// 工作包名称
/// </summary>
public string WorkPackName { get; set; }
/// <summary>
/// 装置名称
/// </summary>
public string InstallationName { get; set; }
/// <summary>
/// 工序名称
/// </summary>
public string ProcessesName { get; set; }
/// <summary>
/// 系统名称
/// </summary>
public string SystemName { get; set; }
/// <summary>
/// 工作包数量
/// </summary>
public int WorkPackNum { get; set; }
/// <summary>
/// 工作包未关闭数量
/// </summary>
public int WorkPackNoCloseNum { get; set; }
/// <summary>
/// 工作包已关闭数量
/// </summary>
public int WorkPackCloseNum { get; set; }
/// <summary>
/// 检查表数量
/// </summary>
public int InspectNum { get; set; }
/// <summary>
/// 检查表未关闭数量
/// </summary>
public int InspectNoCloseNum { get; set; }
/// <summary>
/// 检查表已关闭数量
/// </summary>
public int InspectCloseNum { get; set; }
}
/// <summary>
/// 试车检查表实体
/// </summary>
public class WorkPackageInspectDto
{
/// <summary>
/// 工作包主键
/// </summary>
public string WorkPackId { get; set; }
/// <summary>
/// 工作包名称
/// </summary>
public string WorkPackName { get; set; }
/// <summary>
/// 检查表数量
/// </summary>
public int AllNum { get; set; }
/// <summary>
/// 未关闭任务单数量
/// </summary>
public int NoCloseNum { get; set; }
/// <summary>
/// 已关闭任务单数量
/// </summary>
public int CloseNum { get; set; }
}
#endregion
#region
/// <summary>
/// DataTable转换List
/// </summary>
/// <returns></returns>
public List<T> DataTableToList<T>(DataTable table)
{
List<T> list = new List<T>();
T t = default(T);
PropertyInfo[] propertypes = null;
string tempName = string.Empty;
foreach (DataRow row in table.Rows)
{
t = Activator.CreateInstance<T>();
propertypes = t.GetType().GetProperties();
foreach (PropertyInfo pro in propertypes)
{
tempName = pro.Name;
if (table.Columns.Contains(tempName))
{
object value = row[tempName];
if (!value.ToString().Equals(""))
{
pro.SetValue(t, value, null);
}
}
}
list.Add(t);
}
return list.Count == 0 ? new List<T>() : list;
}
#endregion
}

View File

@ -130,5 +130,14 @@ namespace FineUIPro.Web.TestRun.Report
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill;
/// <summary>
/// btnScExport 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnScExport;
}
}

View File

@ -0,0 +1,86 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestRunPerformanceStandard.aspx.cs" Inherits="FineUIPro.Web.ZHGL.TestRunPerformance.TestRunPerformanceStandard" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" AutoSizePanelID="Panel1" />
<f:Panel ID="Panel1" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch">
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="考核标准" EnableCollapse="false" runat="server" PageSize="1000"
BoxFlex="1" DataKeyNames="TestRunPerformanceStandardId" AllowCellEditing="true" EnableColumnLines="true" SortField="Code1,Code2,Code3" SortDirection="ASC"
ClicksToEdit="1" DataIDField="TestRunPerformanceStandardId" AllowSorting="true" EnableRowDoubleClickEvent="false " OnRowDoubleClick="Grid1_RowDoubleClick"
EnableTextSelection="True">
<Toolbars>
<f:Toolbar ID="Toolbar4" ToolbarAlign="Right" runat="server">
<Items>
<f:Button ID="btnNew" OnClick="btnNew_Click" Icon="Add" EnablePostBack="true" runat="server" ToolTip="新增开车绩效评分标准">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:RenderField HeaderText="编号" ColumnID="Code" DataField="Code" Width="80px"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField HeaderText="工作类别" ColumnID="Type" DataField="Type" Width="100px"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField HeaderText="工作项" ColumnID="Item" DataField="Item" Width="220px"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField HeaderText="计量单位" ColumnID="Unit" DataField="Unit" Width="140px"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField HeaderText="标准工作日" ColumnID="Days" DataField="Days" Width="100px"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
<f:Listener Event="dataload" Handler="onGridDataLoad" />
</Listeners>
</f:Grid>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="开车方案编制计划" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" OnClose="Window1_Close"
Width="600px" Height="350px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<Items>
<f:MenuButton ID="btnMenuModify" EnablePostBack="true" runat="server" Text="修改" Icon="Pencil" OnClick="btnMenuModify_Click" Hidden="true">
</f:MenuButton>
<f:MenuButton ID="btnMenuDel" EnablePostBack="true" runat="server" Icon="Delete" Text="删除" ConfirmText="确定删除当前数据?"
OnClick="btnMenuDel_Click">
</f:MenuButton>
</Items>
</f:Menu>
</form>
<script type="text/javascript">
var menuID = '<%= Menu1.ClientID %>';
// 返回false来阻止浏览器右键菜单
function onRowContextMenu(event, rowId) {
F(menuID).show(); //showAt(event.pageX, event.pageY);
return false;
}
function reloadGrid() {
__doPostBack(null, 'reloadGrid');
}
function onGridDataLoad(event) {
this.mergeColumns(['Type','Item'], {
depends: true
});
}
</script>
</body>
</html>

View File

@ -0,0 +1,137 @@
using BLL;
using Newtonsoft.Json.Linq;
using NPOI.SS.Util;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
namespace FineUIPro.Web.ZHGL.TestRunPerformance
{
public partial class TestRunPerformanceStandard : PageBase
{
#region
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetButtonPower();
BindGrid();
}
}
#endregion
#region
//加载列表
public void BindGrid()
{
string strSql = @"select * from Base_TestRunPerformanceStandard";
List<SqlParameter> listStr = new List<SqlParameter>();
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = tb.Rows.Count;
//tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
}
#endregion
#region
protected void btnMenuModify_Click(object sender, EventArgs e)
{
EditData();
}
/// <summary>
/// Grid行双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
EditData();
}
/// <summary>
/// 编辑
/// </summary>
private void EditData()
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录", MessageBoxIcon.Warning);
return;
}
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TestRunPerformanceStandardEdit.aspx?TestRunPerformanceStandardId={0}", Grid1.SelectedRowID, "编辑 - ")));
}
#endregion
#region
protected void btnMenuDel_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
BLL.TestRunPerformanceStandardService.DeleteTestRunPerformanceStandardById(Grid1.SelectedRowID);
}
BindGrid();
ShowNotify("删除数据成功!", MessageBoxIcon.Success);
}
}
#endregion
#region
/// <summary>
/// 权限设置
/// </summary>
private void GetButtonPower()
{
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.TestRunPerformanceStandardMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnAdd))
{
this.btnNew.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnModify))
{
this.btnMenuModify.Hidden = false;
this.Grid1.EnableRowDoubleClickEvent = true;
}
if (buttonList.Contains(BLL.Const.BtnDelete))
{
this.btnMenuDel.Hidden = false;
}
}
}
#endregion
#region
/// <summary>
/// 新增
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNew_Click(object sender, EventArgs e)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TestRunPerformanceStandardEdit.aspx", "新增 - ")));
}
#endregion
#region
/// <summary>
/// 关闭弹出窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
BindGrid();
}
#endregion
}
}

View File

@ -0,0 +1,105 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.ZHGL.TestRunPerformance {
public partial class TestRunPerformanceStandard {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Grid1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// Toolbar4 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar4;
/// <summary>
/// btnNew 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnNew;
/// <summary>
/// Window1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window1;
/// <summary>
/// Menu1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Menu Menu1;
/// <summary>
/// btnMenuModify 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuModify;
/// <summary>
/// btnMenuDel 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuDel;
}
}

View File

@ -0,0 +1,56 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestRunPerformanceStandardEdit.aspx.cs" Inherits="FineUIPro.Web.ZHGL.TestRunPerformance.TestRunPerformanceStandardEdit" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="SimpleForm1" runat="server" />
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Rows>
<f:FormRow>
<Items>
<f:TextBox ID="txtCode" runat="server" Label="编号" LabelWidth="100px" Required="true" ShowRedStar="true"></f:TextBox>
<f:NumberBox ID="txtCode3" runat="server" Label="排序" NoNegative="true" NoDecimal="true"></f:NumberBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtType" runat="server" Label="工作类别" LabelWidth="100px" Required="true" ShowRedStar="true"></f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtItem" runat="server" Label="工作项" LabelWidth="100px" Required="true" ShowRedStar="true"></f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtUnit" runat="server" Label="计量单位" LabelWidth="100px" Required="true" ShowRedStar="true"></f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:NumberBox ID="txtDays" runat="server" Label="标准工作日" NoNegative="true" NoDecimal="true"></f:NumberBox>
</Items>
</f:FormRow>
</Rows>
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
<Items>
<f:Button ID="btnSave" Icon="SystemSave" runat="server" Text="" ValidateForms="SimpleForm1"
OnClick="btnSave_Click">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
</f:Form>
</form>
</body>
</html>

View File

@ -0,0 +1,76 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
namespace FineUIPro.Web.ZHGL.TestRunPerformance
{
public partial class TestRunPerformanceStandardEdit : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string TestRunPerformanceStandardId = Request.Params["TestRunPerformanceStandardId"];
if (!string.IsNullOrEmpty(TestRunPerformanceStandardId))
{
Model.Base_TestRunPerformanceStandard item = TestRunPerformanceStandardService.GetPerformanceStandardById(TestRunPerformanceStandardId);
if (item != null)
{
this.txtCode.Text = item.Code;
if (item.Code3 != null)
{
this.txtCode3.Text = item.Code3.ToString();
}
this.txtType.Text = item.Type;
this.txtItem.Text = item.Item;
this.txtUnit.Text = item.Unit;
if (item.Days != null)
{
this.txtDays.Text = item.Days.ToString();
}
}
}
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
if (!this.txtCode.Text.Contains("."))
{
Alert.ShowInTop("编号格式不正确", MessageBoxIcon.Warning);
return;
}
string TestRunPerformanceStandardId = Request.Params["TestRunPerformanceStandardId"];
Model.Base_TestRunPerformanceStandard newItem = new Model.Base_TestRunPerformanceStandard();
newItem.Code = this.txtCode.Text.Trim();
var strs = this.txtCode.Text.Trim().Split(',');
if (strs.Length == 2)
{
newItem.Code1 = Funs.GetNewInt(strs[0]);
newItem.Code2 = Funs.GetNewInt(strs[1]);
}
newItem.Code3 = Funs.GetNewInt(this.txtCode3.Text.Trim());
newItem.Type = this.txtType.Text.Trim();
newItem.Item = this.txtItem.Text.Trim();
newItem.Unit = this.txtUnit.Text.Trim();
newItem.Days= Funs.GetNewInt(this.txtDays.Text.Trim());
if (string.IsNullOrEmpty(TestRunPerformanceStandardId))
{
newItem.TestRunPerformanceStandardId = SQLHelper.GetNewID();
BLL.TestRunPerformanceStandardService.AddTestRunPerformanceStandard(newItem);
BLL.LogService.AddSys_Log(this.CurrUser, newItem.Type, newItem.Item, BLL.Const.ControlItemInitSetMenuId, "增加试车绩效考核标准!");
}
else
{
newItem.TestRunPerformanceStandardId = TestRunPerformanceStandardId;
BLL.TestRunPerformanceStandardService.UpdateTestRunPerformanceStandard(newItem);
BLL.LogService.AddSys_Log(this.CurrUser, newItem.Type, newItem.Item, BLL.Const.ControlItemInitSetMenuId, "修改试车绩效考核标准!");
}
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
}
}

View File

@ -0,0 +1,114 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.ZHGL.TestRunPerformance {
public partial class TestRunPerformanceStandardEdit {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// SimpleForm1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Form SimpleForm1;
/// <summary>
/// txtCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtCode;
/// <summary>
/// txtCode3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.NumberBox txtCode3;
/// <summary>
/// txtType 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtType;
/// <summary>
/// txtItem 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtItem;
/// <summary>
/// txtUnit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtUnit;
/// <summary>
/// txtDays 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.NumberBox txtDays;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// btnSave 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSave;
}
}

View File

@ -83,4 +83,6 @@
</TreeNode>
<TreeNode id="EA413D2A-8D29-4DE2-932D-8511BB7F6CB2" Text="各项目巡查汇总" NavigateUrl="ZHGL/InspectionSummary/InspectionSummary.aspx"></TreeNode>
<TreeNode id="F2133BD6-C786-407A-AD6F-3EEF613229A8" Text="施工管理绩效数据" NavigateUrl="ZHGL/Performance/PerformanceAllData.aspx"></TreeNode>
<TreeNode id="53D8CED2-9AA7-43EA-B27D-EA10A06DF713" Text="开车人员绩效管理" NavigateUrl=""><TreeNode id="383290E0-60AE-4D16-8B5E-3899B85EC2ED" Text="开车绩效评分标准" NavigateUrl="ZHGL/TestRunPerformance/TestRunPerformanceStandard.aspx"></TreeNode>
</TreeNode>
</Tree>

View File

@ -95,6 +95,19 @@
</div>
</div>
</div>
<div class="bottom-wrap">
<div class="top">
<div class="item">
<div class="bw-b-bottom ptop6">
<div class="bw-b-bottom-up">
<div class="bw-item-content">
<div id='three' style="width: 100%; height: 100%;"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@ -204,7 +217,7 @@
var oneNameData = [];
var oneArr = JSON.parse(oneArrStr);
var oneData = JSON.parse(oneDataStr);
$.each(oneData, function (inxex, item) {
$.each(oneData, function (index, item) {
var obj = { name: item };
oneNameData.push(obj);
});
@ -224,15 +237,6 @@
tooltip: {
formatter: '{a}:{c}%'//a 是series中每条数据name值c 是data数值
},
//legend: {
// orient: 'vertical', // 'horizontal'
// data: oneData,
// textStyle: { // 图列内容样式
// color: '#fff', // 字体颜色
// },
// x: '70%',//图例位置设置right发现图例和文字位置反了设置一个数值就好了
// y: 'center'//延Y轴居中
//},
grid: {
left: '3%',
//right: '30%',
@ -253,7 +257,9 @@
},
axisLabel: {
interval: 0,
rotate: -90,
formatter: function (value) {
return value.split("").join("\n");
}
}
}
],
@ -271,16 +277,6 @@
}
}
],
//dataZoom: [
// {
// type: "slider",//slider表示有滑动块的
// show: true,
//// xAxisIndex: [0],//表示x轴折叠
// start: 1,//数据窗口范围的起始百分比,表示1%
// end: 70,//数据窗口范围的结束百分比,表示35%坐标
// bottom: "0",
// },
//],
series: [{
name: '进度率',
type: 'bar',
@ -288,9 +284,11 @@
data: oneArr,
label: {
show: true,
position: 'inside',
interval: 0,
rotate: -90,
position: 'top',
color: "#00D8FE",
fontWeight: "bold",
//interval: 0,
//rotate: -90,
formatter: function (params) {
if (params.value > 0) {
return params.value + '%';
@ -308,35 +306,10 @@
}
}
}]
//series: oneNameData
};
//for (var i = 0; i < option.series.length; i++) {
// var style = { //定义柱状图的样式
// type: 'bar',
// barWidth: 20,
// normal: {
// label: {
// show: true,
// position: 'inside', //柱子下显示 数值
// interval: 0,
// rotate: -90,
// formatter: function (params) {
// if (params.value > 0) {
// return params.value + '%';
// } else {
// return ' ';
// }
// },
// }
// }
// };
// option.series[i].type = 'bar'; //每条数据指定类型为'bar'
// option.series[i].itemStyle = style; // series中每条数据都加的样式
// option.series[i].data = [bar_data[i]]; //series 中 data赋值
//};
chart.setOption(option);
//图2
var twoDataStr = '<%=twoDataStr%>';
var towData = JSON.parse(twoDataStr);
var data = towData.map((item, index) => item.Rate);
@ -397,11 +370,12 @@
fontSize: 12,
},
itemStyle: {
borderRadius: 10,
borderRadius: [10, 10, 10, 10],
color: new echarts.graphic.LinearGradient(0, 1, 1, 1, [
{ offset: 0, color: '#395CFE' },
{ offset: 1, color: '#2EC7CF' },
]),
barBorderRadius: [10, 10, 10, 10]
},
},
{
@ -428,12 +402,406 @@
itemStyle: {
borderRadius: 10,
color: 'rgba(3,169,244, 0.5)',
barBorderRadius: [10, 10, 10, 10]
},
},
],
};
chart1.setOption(option);
//图3
var fourDecisionStr = '<%=fourDecisionStr%>';
var threeData = JSON.parse(fourDecisionStr);
var threewidth = Math.floor(100 / threeData.length);
$.each(threeData, function (index, item) {
$("#three").append("<div id='three" + index + "' style='width:" + threewidth + "%; height:100%; display:inline-block'></div>");
});
$(function () {
$.each(threeData, function (index, item) {
var chart = echarts.init(document.getElementById('three' + index));
var value = item.Rate;
option = {
backgroundColor: '000',
title: {
text: `${value}%`,
subtext: '三查四定' + item.Name + '类',
left: 'center',
top: '45%', //top待调整
textStyle: {
color: '#fff',
fontSize: 20,
fontFamily: 'DINAlternate-Bold',
},
subtextStyle: {
color: '#ff',
fontSize: 14,
fontFamily: 'PingFangSC-Regular',
top: 'center'
},
itemGap: 16 //主副标题间距
},
xAxis: {
splitLine: {
show: false
},
axisLabel: {
show: false
},
axisLine: {
show: false
}
},
yAxis: {
splitLine: {
show: false
},
axisLabel: {
show: false
},
axisLine: {
show: false
}
},
series: [
// 内圆
{
type: 'pie',
radius: ['0', '50%'],
center: ['50%', '50%'],
z: 0,
itemStyle: {
normal: {
color: new echarts.graphic.RadialGradient(0.5, 0.5, 0.5, [
{
offset: 0,
color: '#1a68c0'
},
{
offset: 0.44,
color: '#1a68c0'
},
{
offset: 0.73,
color: '#194c88'
},
{
offset: 1,
color: '#162c46'
}
]),
label: {
show: false
},
labelLine: {
show: false
}
},
},
label: {
normal: {
position: "center",
}
},
data: [100],
},
// 进度圈
{
type: 'pie',
clockWise: true,
radius: ["60%", "55%"],
data: [{
value: value,
itemStyle: {
normal: {
borderWidth: 2,
borderColor: {
colorStops: [{
offset: 0,
color: '#1d87ff' || '#00cefc' // 0% 处的颜色
}, {
offset: 1,
color: '#1d87ff' || '#367bec' // 100% 处的颜色
}]
},
color: { // 完成的圆环的颜色
colorStops: [{
offset: 0,
color: '#1d87ff' || '#00cefc' // 0% 处的颜色
}, {
offset: 1,
color: '#1d87ff' || '#367bec' // 100% 处的颜色
}]
},
label: {
show: false
},
labelLine: {
show: false
},
},
}
},
{
name: '',
value: 100 - value,
itemStyle: {
normal: {
label: {
show: false
},
labelLine: {
show: false
},
color: 'rgba(0, 0, 0, 0)',
borderColor: 'rgba(0, 0, 0, 0)',
borderWidth: 0,
}
},
}
]
},
//刻度尺
{
// name: "白色圈刻度",
type: "gauge",
radius: "77%",
startAngle: 225, //刻度起始
endAngle: -134.8, //刻度结束
z: 4,
axisTick: {
show: true,
lineStyle: {
width: 2,
color: '#354e6c'
}
},
splitLine: {
length: 16, //刻度节点线长度
lineStyle: {
width: 2,
color: '#354e6c'
} //刻度节点线
},
axisLabel: {
color: 'rgba(255,255,255,0)',
fontSize: 12,
}, //刻度节点文字颜色
pointer: {
show: false
},
axisLine: {
lineStyle: {
opacity: 0
}
},
detail: {
show: false
},
data: [{
value: 0,
name: ""
}]
},
]
};
chart.setOption(option);
});
});
//data = [
// {
// name: 'A类',
// value: 20,
// },
// {
// name: 'B类',
// value: 30,
// },
// {
// name: 'C类',
// value: 50,
// },
//];
//arrName = getArrayValue(data, 'name');
//arrValue = getArrayValue(data, 'value');
//sumValue = eval(arrValue.join('+'));
//objData = array2obj(data, 'name');
//optionData = getData(data);
//function getArrayValue(array, key) {
// var key = key || 'value';
// var res = [];
// if (array) {
// array.forEach(function (t) {
// res.push(t[key]);
// });
// }
// return res;
//}
//function array2obj(array, key) {
// var resObj = {};
// for (var i = 0; i < array.length; i++) {
// resObj[array[i][key]] = array[i];
// }
// return resObj;
//}
//function getData(data) {
// var res = {
// series: [],
// yAxis: [],
// };
// for (let i = 0; i < data.length; i++) {
// res.series.push({
// name: '',
// type: 'pie',
// clockWise: false, //顺时加载
// hoverAnimation: false, //鼠标移入变大
// radius: [73 - i * 15 + '%', 68 - i * 15 + '%'],
// center: ['40%', '55%'],
// label: {
// show: false,
// },
// itemStyle: {
// label: {
// show: false,
// },
// labelLine: {
// show: false,
// },
// borderWidth: 5,
// },
// data: [
// {
// value: data[i].value,
// name: data[i].name,
// },
// {
// value: sumValue - data[i].value,
// name: '',
// itemStyle: {
// color: 'rgba(0,0,0,0)',
// borderWidth: 0,
// },
// tooltip: {
// show: false,
// },
// hoverAnimation: false,
// },
// ],
// });
// res.series.push({
// name: '',
// type: 'pie',
// silent: true,
// z: 1,
// clockWise: false, //顺时加载
// hoverAnimation: false, //鼠标移入变大
// radius: [73 - i * 15 + '%', 68 - i * 15 + '%'],
// center: ['40%', '55%'],
// label: {
// show: false,
// },
// itemStyle: {
// label: {
// show: false,
// },
// labelLine: {
// show: false,
// },
// borderWidth: 5,
// },
// data: [
// {
// value: 7.5,
// itemStyle: {
// color: '#add2d2', //圆环背景色-全
// borderWidth: 0,
// },
// tooltip: {
// show: false,
// },
// hoverAnimation: false,
// },
// {
// value: 2.5,
// name: '',
// itemStyle: {
// color: 'rgba(0,0,0,0)',
// borderWidth: 0,
// },
// tooltip: {
// show: false,
// },
// hoverAnimation: false,
// },
// ],
// });
// res.yAxis.push(((data[i].value / sumValue) * 100).toFixed(2) + '%');
// }
// return res;
//}
//option = {
// //backgroundColor: '#ddd',
// legend: {
// show: true,
// icon: 'circle',
// top: 'center',
// top: '16%',
// bottom: '53%',
// left: '40%',
// data: arrName,
// width: 40,
// padding: [0, 16],
// itemGap: 25,
// //图例显示
// formatter: function (name) {
// return '{title|' + name + '}{value|' + ((objData[name].value / sumValue) * 100).toFixed(2) + '} {title|%}';
// },
// textStyle: {
// rich: {
// title: {
// fontSize: 20,
// lineHeight: 30,
// color: '#fff',
// },
// value: {
// fontSize: 18,
// lineHeight: 20,
// color: '#fff',
// },
// },
// },
// },
// title: {
// text: '', //图形标题配置在中间对应效果图的80%
// left: '20%',
// top: '50%',
// textStyle: {
// color: 'rgb(50,197,233)',
// fontSize: 16,
// align: 'left',
// },
// },
// tooltip: {
// show: true,
// trigger: 'item',
// formatter: '{a}<br>{b}:{c}({d}%)',
// },
// color: ['yellow', 'blue', 'green'],
// xAxis: [
// {
// show: false,
// },
// ],
// series: optionData.series,
//};
//chart2.setOption(option);
</script>
<%--<script type="text/javascript">

View File

@ -12,6 +12,11 @@ using static FineUIPro.Web.TestRun.Report.ScheduleSetUp;
using NPOI.SS.Formula.Functions;
using Model;
using Newtonsoft.Json.Linq;
using System.Reflection;
using static FineUIPro.Web.TestRun.Report.PreRunSchedule;
using Aspose.Words;
using static FineUIPro.Web.TestRun.Report.TestRunSchedule;
using System.Web.UI.DataVisualization.Charting;
namespace FineUIPro.Web
{
@ -20,6 +25,8 @@ namespace FineUIPro.Web
public string oneArrStr { get; set; }
public string oneDataStr { get; set; }
public string twoDataStr { get; set; }
public string fourDecisionStr { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
@ -32,6 +39,7 @@ namespace FineUIPro.Web
{
OneYsc();
TwoSc();
FourDecision();
}
/// <summary>
@ -63,27 +71,86 @@ namespace FineUIPro.Web
}
else
{
string strSql = @"select a.WorkPackId,a.WorkPackName,(select COUNT(1) from PreRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId) as AllNum,(select COUNT(1) from PreRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId and ISNULL(b.InspectIsClose,0)=0) as ProgressNum,(select COUNT(1) from PreRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId and ISNULL(b.InspectIsClose,0)=1) as CompleteNum from PreRun_WorkPackage as a order by a.Sort"; List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
if (tb.Rows.Count > 0)
List<string> SubSystemIds = new List<string>();
var devices = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 4).ToList();
if (devices.Count > 0)
{
var allCompleteNum = float.Parse(tb.Compute("sum(CompleteNum)", "").ToString());
var allSumNum = float.Parse(tb.Compute("sum(AllNum)", "").ToString());
var allrate = (float)Math.Round(allCompleteNum / allSumNum * 100, 2, MidpointRounding.AwayFromZero);
SubSystemIds = devices.ConvertAll(x => x.PreRunId);
}
var result = new List<Run_ScheduleSetUpDto>();
string allStr = $"select a.SubSystemId,a.SystemId,b.WorkPackId,b.WorkPackName,b.WorkPackType,(select count(1) from PreRun_SubPropertySelect as gd where gd.SubSystemId = a.SubSystemId) as GdallNum,(select count(1) from PreRun_SubTechnologySelect as sb where sb.SubSystemId = a.SubSystemId) as SballNum,(select count(1) from PreRun_SubInstrumentSelect as sy where sy.SubSystemId = a.SubSystemId) as SyallNum from PreRun_SubSysWorkPackage as a inner join PreRun_WorkPackage as b on a.WorkPackId = b.WorkPackId where a.SubSystemId in ('{string.Join("','", SubSystemIds)}') order by a.WorkPackCode asc";
var dt = SQLHelper.GetDataTableRunText(allStr);
string inspectStr = $"select a.WorkPackId,b.WorkPackName,b.Sort,SUM(case ISNULL(a.InspectIsClose, 0) when 1 then 1 else 0 end) as CloseNum,SUM(case ISNULL(a.InspectIsClose, 0) when 0 then 1 else 0 end) as NoCloseNum,COUNT(1) as AllNum from PreRun_SubInspectTerm as a inner join PreRun_WorkPackage as b on a.WorkPackId = b.WorkPackId where 1=1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' and a.SubSystemId in ('{string.Join("','", SubSystemIds)}') group by a.WorkPackId,b.WorkPackName,b.Sort order by b.Sort asc";
var inspectDt = SQLHelper.GetDataTableRunText(inspectStr);
var inspectlist = DataTableToList<WorkPackageInspectDto>(inspectDt);
if (dt.Rows.Count > 0)
{
//获取所有子系统数量
var inspects = Funs.DB.PreRun_SubInspectTerm.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && SubSystemIds.Contains(x.SubSystemId));
var querylist = DataTableToList<QuerySubSysWorkPackage>(dt);
var queryGroup = querylist.GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackType }).Select(p => new
{
p.Key.WorkPackId,
p.Key.WorkPackName,
p.Key.WorkPackType
});
int progressNum = 0;
int completeNum = 0;
float allCompleteNum = 0;
float allProgressNum = 0;
int allNum = 0;
int allSumNum = 0;
List<float> oneDataArr = new List<float>();
List<string> oneDataData = new List<string>();
foreach (var itemPack in queryGroup)
{
var itemQueryList = querylist.Where(x => x.WorkPackId == itemPack.WorkPackId).ToList();
var subsystemids = itemQueryList.ConvertAll(a => a.SubSystemId).Distinct();
allNum = itemQueryList.Count(x => x.WorkPackId == itemPack.WorkPackId);
foreach (var itemsubid in subsystemids)
{
if (inspects.Count(x => x.SubSystemId == itemsubid) > 0)
{
var itemQuerylist = itemQueryList.FirstOrDefault(x => x.SubSystemId == itemsubid && x.WorkPackId == itemPack.WorkPackId);
if (inspects.Count(x => x.SubInspectId == itemsubid && x.InspectIsClose != 1) > 0)
{
progressNum += 1;
}
else
{
var closeInspect = inspects.Where(x => x.SubInspectId == itemsubid && x.InspectIsClose == 1);
var closeNums = closeInspect.Count() > 0 ? closeInspect.Select(x => x.PropertyTechnologyId.Split(',').Count()).Sum(x => x) : 0;
if (allNum > closeNums)
{
progressNum += 1;
}
else
{
completeNum += 1;
}
}
}
else
{
progressNum += 1;
}
}
var rate = completeNum > 0 ? (float)Math.Round((float)completeNum / (float)allNum * 100, 2, MidpointRounding.AwayFromZero) : 0;
if (rate > 100) rate = 100;
allSumNum += allNum;
allCompleteNum += completeNum;
allProgressNum += progressNum;
oneDataArr.Add(rate);
oneDataData.Add(itemPack.WorkPackName);
}
var allrate = allCompleteNum > 0 ? (float)Math.Round(allCompleteNum / allSumNum * 100, 2, MidpointRounding.AwayFromZero) : 0;
if (allrate > 100) allrate = 100;
oneArr.Add(allrate);
oneData.Add("全部");
foreach (DataRow row in tb.Rows)
{
float allNum = float.Parse(row["AllNum"].ToString());
float completeNum = float.Parse(row["CompleteNum"].ToString());
var rate = completeNum > 0 ? (float)Math.Round((completeNum / allNum * 100), 2, MidpointRounding.AwayFromZero) : 0;
if (rate > 100) rate = 100;
oneArr.Add(rate);
oneData.Add(row["WorkPackName"].ToString());
}
oneArr.AddRange(oneDataArr);
oneData.AddRange(oneDataData);
}
}
oneArrStr = JsonConvert.SerializeObject(oneArr);
@ -117,21 +184,37 @@ namespace FineUIPro.Web
}
else
{
string strSql = @"select a.WorkPackId,a.WorkPackName,(select COUNT(1) from TestRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId) as AllNum,(select COUNT(1) from TestRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId and ISNULL(b.InspectIsClose,0)=0) as ProgressNum,(select COUNT(1) from TestRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId and ISNULL(b.InspectIsClose,0)=1) as CompleteNum from TestRun_WorkPackage as a order by a.Sort"; List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
if (tb.Rows.Count > 0)
List<string> SystemIds = new List<string>();
var devices = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 3).ToList();
if (devices.Count > 0)
{
foreach (DataRow row in tb.Rows)
SystemIds = devices.ConvertAll(x => x.PreRunId);
}
string allStr = $"select b.WorkPackId,b.WorkPackName,COUNT(a.SystemId) as WorkPackNum from TestRun_SubSysWorkPackage as a inner join TestRun_WorkPackage as b on a.WorkPackId = b.WorkPackId where a.SystemId in ('{string.Join("','", SystemIds)}') group by b.WorkPackId,b.WorkPackName";
var dt = SQLHelper.GetDataTableRunText(allStr);
var data = new List<TwoDto>();
if (dt.Rows.Count > 0)
{
string inspectStr = $"select a.WorkPackId,b.WorkPackName,b.Sort,SUM(case ISNULL(a.InspectIsClose, 0) when 1 then 1 else 0 end) as CloseNum,SUM(case ISNULL(a.InspectIsClose, 0) when 0 then 1 else 0 end) as NoCloseNum,COUNT(1) as AllNum from TestRun_SubInspectTerm as a inner join TestRun_WorkPackage as b on a.WorkPackId = b.WorkPackId where 1=1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' group by a.WorkPackId,b.WorkPackName,b.Sort order by b.Sort asc";
var inspectDt = SQLHelper.GetDataTableRunText(inspectStr);
var inspectlist = DataTableToList<WorkPackageInspectDto>(inspectDt);
int progressNum = 0;
int completeNum = 0;
int allNum = 0;
var testlist = DataTableToList<TestRunScheduleDto>(dt);
foreach (var item in testlist)
{
float allNum = float.Parse(row["AllNum"].ToString());
float completeNum = float.Parse(row["CompleteNum"].ToString());
var rate = completeNum > 0 ? (float)Math.Round((completeNum / allNum) * 100, 2, MidpointRounding.AwayFromZero) : 0;
if (rate > 100) rate = 100;
if (inspectlist.Count(x => x.WorkPackId == item.WorkPackId) > 0)
{
var itemInspect = inspectlist.FirstOrDefault(x => x.WorkPackId == item.WorkPackId);
allNum = itemInspect.AllNum;
progressNum = itemInspect.NoCloseNum;
completeNum = itemInspect.CloseNum;
}
var rate = completeNum > 0 ? (float)Math.Round((float)completeNum / (float)allNum, 2, MidpointRounding.AwayFromZero) : 0;
result.Add(new TwoDto()
{
Name = row["WorkPackName"].ToString(),
Name = item.WorkPackName,
Rate = rate
});
}
@ -140,11 +223,204 @@ namespace FineUIPro.Web
twoDataStr = JsonConvert.SerializeObject(result);
}
/// <summary>
/// 三查四定
/// </summary>
public void FourDecision()
{
var result = new List<ThreeDto>();
var list = Funs.DB.Run_ScheduleSetUp.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.States == 3).OrderBy(o => o.LevelName).ToList();
if (list.Count > 0)
{
foreach (var item in list)
{
var rate = item.CompleteNum > 0 ? (float)Math.Round((float)item.CompleteNum / (float)item.AllNum * 100, 2, MidpointRounding.AwayFromZero) : 0;
if (rate > 100) rate = 100;
result.Add(new ThreeDto()
{
Name = item.LevelName,
Rate = rate
});
}
}
else
{
var fourlist = new List<FourDecisionScheduleBridDto>();
string allStr = $"select Level,COUNT(1) as AllNum,SUM(case ISNULL(a.DecisionIsClose,0) when 0 then 1 else 0 end) as NoCloseNum,SUM(case ISNULL(a.DecisionIsClose,0) when 1 then 1 else 0 end) as CloseNum from PreRun_SubThreeChecksFourDecision as a where a.ProjectId='{this.CurrUser.LoginProjectId}' group by a.Level order by a.Level asc";
var dt = SQLHelper.GetDataTableRunText(allStr);
if (dt.Rows.Count > 0)
{
fourlist = DataTableToList<FourDecisionScheduleBridDto>(dt);
foreach (var item in fourlist)
{
float rate = item.CloseNum > 0 ? (float)Math.Round((float)item.CloseNum / (float)item.AllNum * 100, 2, MidpointRounding.AwayFromZero) : 0;
result.Add(new ThreeDto()
{
Name = item.Level,
Rate = rate
});
}
}
}
fourDecisionStr = JsonConvert.SerializeObject(result);
}
#region
/// <summary>
/// 图2
/// </summary>
public class TwoDto
{
public float Rate { get; set; }
public string Name { get; set; }
}
/// <summary>
/// 图3
/// </summary>
public class ThreeDto
{
public string Name { get; set; }
public float Rate { get; set; }
}
public class WorkPackageInspectDto
{
/// <summary>
/// 工作包主键
/// </summary>
public string WorkPackId { get; set; }
/// <summary>
/// 工作包名称
/// </summary>
public string WorkPackName { get; set; }
/// <summary>
/// 检查表数量
/// </summary>
public int AllNum { get; set; }
/// <summary>
/// 未关闭任务单数量
/// </summary>
public int NoCloseNum { get; set; }
/// <summary>
/// 已关闭任务单数量
/// </summary>
public int CloseNum { get; set; }
}
public class Run_ScheduleSetUpDto : Run_ScheduleSetUp
{
/// <summary>
/// 工作包名称
/// </summary>
public string WorkPackName { get; set; }
}
public class TestRunScheduleDto
{
/// <summary>
/// 工作包主键
/// </summary>
public string WorkPackId { get; set; }
/// <summary>
/// 工作包名称
/// </summary>
public string WorkPackName { get; set; }
/// <summary>
/// 装置名称
/// </summary>
public string InstallationName { get; set; }
/// <summary>
/// 工序名称
/// </summary>
public string ProcessesName { get; set; }
/// <summary>
/// 系统名称
/// </summary>
public string SystemName { get; set; }
/// <summary>
/// 工作包数量
/// </summary>
public int WorkPackNum { get; set; }
/// <summary>
/// 工作包未关闭数量
/// </summary>
public int WorkPackNoCloseNum { get; set; }
/// <summary>
/// 工作包已关闭数量
/// </summary>
public int WorkPackCloseNum { get; set; }
/// <summary>
/// 检查表数量
/// </summary>
public int InspectNum { get; set; }
/// <summary>
/// 检查表未关闭数量
/// </summary>
public int InspectNoCloseNum { get; set; }
/// <summary>
/// 检查表已关闭数量
/// </summary>
public int InspectCloseNum { get; set; }
}
public class FourDecisionScheduleBridDto
{
/// <summary>
/// 级别
/// </summary>
public string Level { get; set; }
/// <summary>
/// 尾项数量
/// </summary>
public int AllNum { get; set; }
/// <summary>
/// 未关闭尾项数量
/// </summary>
public int NoCloseNum { get; set; }
/// <summary>
/// 已关闭尾项数量
/// </summary>
public int CloseNum { get; set; }
}
#endregion
#region
/// <summary>
/// DataTable转换List
/// </summary>
/// <returns></returns>
public List<T> DataTableToList<T>(DataTable table)
{
List<T> list = new List<T>();
T t = default(T);
PropertyInfo[] propertypes = null;
string tempName = string.Empty;
foreach (DataRow row in table.Rows)
{
t = Activator.CreateInstance<T>();
propertypes = t.GetType().GetProperties();
foreach (PropertyInfo pro in propertypes)
{
tempName = pro.Name;
if (table.Columns.Contains(tempName))
{
object value = row[tempName];
if (!value.ToString().Equals(""))
{
pro.SetValue(t, value, null);
}
}
}
list.Add(t);
}
return list.Count == 0 ? new List<T>() : list;
}
#endregion
}
}

View File

@ -221,6 +221,9 @@ namespace Model
partial void InsertBase_TestRunLicenseType(Base_TestRunLicenseType instance);
partial void UpdateBase_TestRunLicenseType(Base_TestRunLicenseType instance);
partial void DeleteBase_TestRunLicenseType(Base_TestRunLicenseType instance);
partial void InsertBase_TestRunPerformanceStandard(Base_TestRunPerformanceStandard instance);
partial void UpdateBase_TestRunPerformanceStandard(Base_TestRunPerformanceStandard instance);
partial void DeleteBase_TestRunPerformanceStandard(Base_TestRunPerformanceStandard instance);
partial void InsertBase_TrainLevel(Base_TrainLevel instance);
partial void UpdateBase_TrainLevel(Base_TrainLevel instance);
partial void DeleteBase_TrainLevel(Base_TrainLevel instance);
@ -3090,6 +3093,14 @@ namespace Model
}
}
public System.Data.Linq.Table<Base_TestRunPerformanceStandard> Base_TestRunPerformanceStandard
{
get
{
return this.GetTable<Base_TestRunPerformanceStandard>();
}
}
public System.Data.Linq.Table<Base_TrainLevel> Base_TrainLevel
{
get
@ -37468,6 +37479,260 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Base_TestRunPerformanceStandard")]
public partial class Base_TestRunPerformanceStandard : INotifyPropertyChanging, INotifyPropertyChanged
{
private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
private string _TestRunPerformanceStandardId;
private string _Code;
private System.Nullable<int> _Code1;
private System.Nullable<int> _Code2;
private System.Nullable<int> _Code3;
private string _Type;
private string _Item;
private string _Unit;
private System.Nullable<int> _Days;
#region
partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action);
partial void OnCreated();
partial void OnTestRunPerformanceStandardIdChanging(string value);
partial void OnTestRunPerformanceStandardIdChanged();
partial void OnCodeChanging(string value);
partial void OnCodeChanged();
partial void OnCode1Changing(System.Nullable<int> value);
partial void OnCode1Changed();
partial void OnCode2Changing(System.Nullable<int> value);
partial void OnCode2Changed();
partial void OnCode3Changing(System.Nullable<int> value);
partial void OnCode3Changed();
partial void OnTypeChanging(string value);
partial void OnTypeChanged();
partial void OnItemChanging(string value);
partial void OnItemChanged();
partial void OnUnitChanging(string value);
partial void OnUnitChanged();
partial void OnDaysChanging(System.Nullable<int> value);
partial void OnDaysChanged();
#endregion
public Base_TestRunPerformanceStandard()
{
OnCreated();
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TestRunPerformanceStandardId", DbType="NVarChar(50) NOT NULL", CanBeNull=false, IsPrimaryKey=true)]
public string TestRunPerformanceStandardId
{
get
{
return this._TestRunPerformanceStandardId;
}
set
{
if ((this._TestRunPerformanceStandardId != value))
{
this.OnTestRunPerformanceStandardIdChanging(value);
this.SendPropertyChanging();
this._TestRunPerformanceStandardId = value;
this.SendPropertyChanged("TestRunPerformanceStandardId");
this.OnTestRunPerformanceStandardIdChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Code", DbType="NVarChar(10)")]
public string Code
{
get
{
return this._Code;
}
set
{
if ((this._Code != value))
{
this.OnCodeChanging(value);
this.SendPropertyChanging();
this._Code = value;
this.SendPropertyChanged("Code");
this.OnCodeChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Code1", DbType="Int")]
public System.Nullable<int> Code1
{
get
{
return this._Code1;
}
set
{
if ((this._Code1 != value))
{
this.OnCode1Changing(value);
this.SendPropertyChanging();
this._Code1 = value;
this.SendPropertyChanged("Code1");
this.OnCode1Changed();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Code2", DbType="Int")]
public System.Nullable<int> Code2
{
get
{
return this._Code2;
}
set
{
if ((this._Code2 != value))
{
this.OnCode2Changing(value);
this.SendPropertyChanging();
this._Code2 = value;
this.SendPropertyChanged("Code2");
this.OnCode2Changed();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Code3", DbType="Int")]
public System.Nullable<int> Code3
{
get
{
return this._Code3;
}
set
{
if ((this._Code3 != value))
{
this.OnCode3Changing(value);
this.SendPropertyChanging();
this._Code3 = value;
this.SendPropertyChanged("Code3");
this.OnCode3Changed();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Type", DbType="NVarChar(50)")]
public string Type
{
get
{
return this._Type;
}
set
{
if ((this._Type != value))
{
this.OnTypeChanging(value);
this.SendPropertyChanging();
this._Type = value;
this.SendPropertyChanged("Type");
this.OnTypeChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Item", DbType="NVarChar(50)")]
public string Item
{
get
{
return this._Item;
}
set
{
if ((this._Item != value))
{
this.OnItemChanging(value);
this.SendPropertyChanging();
this._Item = value;
this.SendPropertyChanged("Item");
this.OnItemChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Unit", DbType="NVarChar(50)")]
public string Unit
{
get
{
return this._Unit;
}
set
{
if ((this._Unit != value))
{
this.OnUnitChanging(value);
this.SendPropertyChanging();
this._Unit = value;
this.SendPropertyChanged("Unit");
this.OnUnitChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Days", DbType="Int")]
public System.Nullable<int> Days
{
get
{
return this._Days;
}
set
{
if ((this._Days != value))
{
this.OnDaysChanging(value);
this.SendPropertyChanging();
this._Days = value;
this.SendPropertyChanged("Days");
this.OnDaysChanged();
}
}
}
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.Base_TrainLevel")]
public partial class Base_TrainLevel : INotifyPropertyChanging, INotifyPropertyChanged
{