--在自定义属性字段增加“十二五重金属规划企业”新选项。
ALTER TABLE 业务_废气监测点信息 ALTER COLUMN 执行标准代码 varchar(50)  NULL 
ALTER TABLE 业务_废气监测点信息 ALTER COLUMN 执行标准条件编码 varchar(50)  NULL
ALTER TABLE 业务_废水排口信息 ALTER COLUMN 执行标准代码 varchar(50)  NULL 
ALTER TABLE 业务_废水排口信息 ALTER COLUMN 执行标准条件代码 varchar(50)  NULL

delete from 系统_代码 where 代码类型编码='30'
if not exists(select * from 系统_代码 where 代码类型编码='30' and 代码名称='关停')
begin
	insert 系统_代码 values(30,1,'关停','6',null)
end
if not exists(select * from 系统_代码 where 代码类型编码='30' and 代码名称='沿江沿河化工企业')
begin
	insert 系统_代码 values(30,2,'沿江沿河化工企业','7',null)
end
if not exists(select * from 系统_代码 where 代码类型编码='30' and 代码名称='排入城市下水道')
begin
	insert 系统_代码 values(30,3,'排入城市下水道','8',null)
end
if not exists(select * from 系统_代码 where 代码类型编码='30' and 代码名称='闭路循环')
begin
	insert 系统_代码 values(30,4,'闭路循环','5',null)
end
if not exists(select * from 系统_代码 where 代码类型编码='30' and 代码名称='重金属企业')
begin
	insert 系统_代码 values(30,5,'重金属企业','1',null)
end
if not exists(select * from 系统_代码 where 代码类型编码='30' and 代码名称='重金属国控企业')
begin
	insert 系统_代码 values(30,6,'重金属国控企业','2',null)
end
if not exists(select * from 系统_代码 where 代码类型编码='30' and 代码名称='十二五重金属规划企业')
begin
	insert 系统_代码 values(30,7,'十二五重金属规划企业','3',null)
end
if not exists(select * from 系统_代码 where 代码类型编码='30' and 代码名称='三十万千瓦以上火电厂')
begin
	insert 系统_代码 values(30,8,'三十万千瓦以上火电厂','4',null)
end
if not exists(select * from 系统_代码 where 代码类型编码='30' and 代码名称='无')
begin
	insert 系统_代码 values(30,9,'无','9',null)
end
go
--为表 业务_废水排口信息 增加列

if NOT exists(select * from syscolumns where id=object_id('业务_废水排口信息') and name='是否参与评价')
begin
	alter table 业务_废水排口信息
	add 是否参与评价 bit null
end 

go
--创建业务_废水单位产品基本信息表
if not exists (select 1
            from  sysobjects
           where  id = object_id('业务_废水单位产品基本信息')
            and   type = 'U')
begin
/*==============================================================*/
/* Table: 业务_废水单位产品基本信息                                         */
/*==============================================================*/
create table 业务_废水单位产品基本信息 (
   监测年					int					 not null,
   企业代码                 varchar(50)          not null,
   填报日期                 datetime             not null,
   季度                   varchar(50)          not null,
   监测点代码                varchar(50)          not null,
   监测点名称                varchar(50)          null,
   产品编码                 varchar(50)          not null,
   产品名称                 varchar(50)          null,
   [实际产品产量（t/d）]        numeric(15,1)        null,
   [排水量（t/d）]          numeric(15,1)        null,
   [单位产品基准排水量]    numeric(15,1)        null,
   年内时间起				  smalldatetime		   null,
   年内时间止				  smalldatetime		   null,
   执行标准名称				  nvarchar(100)          null,
   constraint PK_业务_废水单位产品基本信息 primary key (监测年,企业代码,填报日期, 季度, 监测点代码, 产品编码)
)
end 
go

--创建业务_废气单位产品基本信息表
if not exists (select 1
            from  sysobjects
           where  id = object_id('业务_废气单位产品基本信息')
            and   type = 'U')
begin
/*==============================================================*/
/* Table: 业务_废气单位产品基本信息                                         */
/*==============================================================*/
create table 业务_废气单位产品基本信息 (
   监测年					int					 not null,
   企业代码                 varchar(50)          not null,
   填报日期                 datetime             not null,
   季度                   varchar(50)          not null,
   监测点代码                varchar(50)          not null,
   监测点名称                varchar(50)          null,
   产品编码                 varchar(50)          not null,
   产品名称                 varchar(50)          null,
   [实际产品产量（t/d）]        numeric(15,1)        null,
   [排气量（m3/d）]          numeric(15,1)        null,
   [单位产品基准排气量]    numeric(15,1)        null,
    年内时间起				  smalldatetime		   null,
    年内时间止				  smalldatetime		   null,
    执行标准名称				  nvarchar(100)          null,
   constraint PK_业务_废气单位产品基本信息 primary key (监测年,填报日期, 企业代码, 季度, 监测点代码, 产品编码)
)
end


--增加   系统_单位产品基准排放明细 表 
if not exists (select 1
            from  sysobjects
           where  id = object_id('系统_单位产品基准排放明细')
            and   type = 'U')
begin
	/*==============================================================*/
	/* Table: 系统_单位产品基准排放明细                                         */
	/*==============================================================*/
	create table 系统_单位产品基准排放明细 (
	   ID						int	identity(1,1)	not null,	
	   标准代码                 varchar(50)          not null,
	   条件编码                 varchar(50)          not null,
	   产品编码               varchar(50)          not null,
	   排放单位                 varchar(20)          null,
	   单位产品基准排放量       numeric(18,6)        null,
	   备注                   varchar(500)         null,
	   constraint PK_系统_单位产品基准排放明细 primary key (标准代码,条件编码, 产品编码)
	)
end
go

--创建 业务_企业监测点执行标准 表



--修改 业务_企业监测点污染物信息 表结构

--增加执行标准代码
if NOT exists(select * from syscolumns where id=object_id('业务_企业监测点污染物信息') and name='执行标准代码')
begin
	alter table 业务_企业监测点污染物信息
	add 执行标准代码 varchar(50)
	
end
go
--增加执行标准条件代码
if NOT exists(select * from syscolumns where id=object_id('业务_企业监测点污染物信息') and name='执行标准条件代码')
begin
	alter table 业务_企业监测点污染物信息
	add 执行标准条件代码 varchar(50)
	
end
go
--创建监测产品表
if not exists(select 1 from sysobjects
where id = object_id('业务_企业监测产品信息')
 and type='U'
)
begin
	create table 业务_企业监测产品信息
	(
	id int identity(1,1) not null,
	监测年 int not null,
	企业代码 varchar(50) not null,
	企业类型 char(1) not null,
	监测点代码 varchar(50) not null, 
	起始日期 smalldatetime default getdate() not null,
	结止日期 smalldatetime default getdate() not null,
	产品编码 varchar(50) not null,
	执行标准代码 varchar(50) null,
	执行标准条件代码 varchar(50) null,
	constraint PK_企业监测产品信息 primary key(监测年,企业代码,企业类型,监测点代码,起始日期,结止日期,产品编码)
	)
end
go
--[GetFormatedNumber]方法

if exists(select * from sysobjects where name='GetFormatedNumber')
drop function GetFormatedNumber
go
CREATE FUNCTION [dbo].[GetFormatedNumber] 
                                    (
	                                    @val numeric(18,6)
                                    )
                                    RETURNS varchar(30)
                                    AS
                                    BEGIN
                                    -- Declare the return variable here
                                    declare @rlst varchar(30)
                                    select @rlst=convert(varchar,@val)
                                    if(Charindex('.',@rlst,0)>0)
                                    begin
	                                    while(Right(@rlst,1)='0')
	                                    begin
		                                    select @rlst=Substring(@rlst,1,len(@rlst)-1)
	                                    end
	                                    if(Right(@rlst,1)='.')
	                                    begin
		                                    select @rlst=Substring(@rlst,1,len(@rlst)-1)
	                                    end
                                    end

                                    -- Return the result of the function
                                    RETURN @rlst
                                    END
go
--if exists(select * from syscolumns where id=object_id('业务_废气监测点信息') and name='执行标准代码')
--begin
--	alter table 业务_废气监测点信息 
--	drop column 执行标准代码
--end
--if exists(select * from syscolumns where id=object_id('业务_废气监测点信息') and name='执行标准条件编码')
--begin
--	alter table 业务_废气监测点信息
--	drop column 执行标准条件编码
--end
--
--
--if exists(select * from syscolumns where id=object_id('业务_废水排口信息') and name='执行标准代码')
--begin
--	alter table 业务_废水排口信息
--	drop column 执行标准代码
--end
--if exists(select * from syscolumns where id=object_id('业务_废水排口信息') and name='执行标准条件编码')
--begin
--	alter table 业务_废水排口信息
--	drop column 执行标准条件编码
--end
--go



--创建 业务_在线监测系统
if not exists(select 1 from sysobjects
where id = object_id('业务_在线监测系统')
 and type='U'
)
begin
	create table 业务_在线监测系统
	(
	id nvarchar(200) default newid() not null,
	监测年 int not null,
	企业类型 char(1) not null,
	企业代码 varchar(50) not null,
	监测点代码 varchar(50) not null,
	监测系统名称 nvarchar(100) not null,
	集成厂家 nvarchar(100) null,
	安装位置 varchar(50) null,
	进口作用代码 varchar(10) null,
	是否连网 bit default 0,
	是否验收 bit default 0,
	流速仪名称 nvarchar(50) null,
	流速仪厂家 nvarchar(50) null,
	流速仪型号 nvarchar(50) null,
	流速仪类型代码 varchar(50) null,
	最近检验日期 smalldatetime default getdate(),
	constraint PK_业务_在线监测系统 primary key(监测年,企业代码,企业类型,监测点代码,监测系统名称)
	)
end
go

--增加“监测系统型号”字段
if NOT exists(select * from syscolumns where id=object_id('业务_在线监测系统') and name='监测系统型号')
begin
	alter table 业务_在线监测系统 add 监测系统型号 nvarchar(50) null
end 
go

--创建 业务_在线监测系统_项目
if not exists(select 1 from sysobjects
where id = object_id('业务_在线监测系统_项目')
 and type='U'
)
begin
	create table 业务_在线监测系统_项目
	(
		id nvarchar(200) default newid() not null,
		监测系统ID号 nvarchar(200) null,
		监测项目编号 nvarchar(50),
		监测原理 nvarchar(200),
		监测设备型号 nvarchar(200),
		设备生产厂家 nvarchar(200),
		constraint PK_业务_在线监测系统_项目 primary key(id)
	)
end
go

--创建 业务_在线监测系统设备
if not exists(select 1 from sysobjects
where id = object_id('业务_在线监测系统设备')
 and type='U'
)
begin
	create table 业务_在线监测系统设备
	(
	id nvarchar(200) default newid() not null,
	监测系统ID号 nvarchar(200) null,
	监测设备名称 nvarchar(50),
	监测设备型号 nvarchar(50),
	设备生产厂家 varchar(50),
	constraint PK_业务_在线监测系统设备 primary key(id)
	)
end
go

--修改 业务_在线监测系统设备 字段 "设备生产厂家"
if exists(select * from syscolumns where id=object_id('业务_在线监测系统设备') and name='设备生产厂家')
begin
	alter table 业务_在线监测系统设备 alter column 设备生产厂家 varchar(100)
end
go

--创建 业务_在线监测设备项目
if not exists(select 1 from sysobjects
where id = object_id('业务_在线监测设备项目')
 and type='U'
)
begin
	create table 业务_在线监测设备项目
	(
	id nvarchar(200) default newid() not null,
	监测系统ID号 nvarchar(200) null,
	监测设备ID号 nvarchar(200) null,
	监测项目代码 nvarchar(50),
	constraint PK_业务_在线监测设备项目 primary key(id)
	)	
end
go

--创建 V_监测系统项目
if exists (select name
            from  sys.views 
           where  name = 'V_监测系统项目')
   drop view [V_监测系统项目]
GO
CREATE VIEW [dbo].[V_监测系统项目]
AS
SELECT     dbo.业务_在线监测系统.监测年, dbo.业务_在线监测系统.企业类型, dbo.业务_在线监测系统.企业代码, dbo.业务_在线监测系统.监测点代码, 
                      dbo.业务_在线监测系统.监测系统名称, dbo.业务_在线监测系统.集成厂家, dbo.业务_在线监测系统.安装位置, dbo.业务_在线监测系统.进口作用代码, 
                      dbo.业务_在线监测系统.是否连网, dbo.业务_在线监测系统.是否验收, dbo.业务_在线监测系统.流速仪名称, dbo.业务_在线监测系统.流速仪厂家, 
                      dbo.业务_在线监测系统.流速仪型号, dbo.业务_在线监测系统.流速仪类型代码, dbo.业务_在线监测系统.最近检验日期, 
                      dbo.业务_在线监测系统.监测系统型号, dbo.业务_在线监测系统_项目.id, dbo.业务_在线监测系统_项目.监测系统ID号, 
                      dbo.业务_在线监测系统_项目.监测项目编号, dbo.业务_在线监测系统_项目.监测原理, dbo.业务_在线监测系统_项目.监测设备型号, 
                      dbo.业务_在线监测系统_项目.设备生产厂家
FROM         dbo.业务_在线监测系统 INNER JOIN
                      dbo.业务_在线监测系统_项目 ON dbo.业务_在线监测系统.id = dbo.业务_在线监测系统_项目.监测系统ID号

GO

--增加流速仪类型到 系统_代码类型 表

if not exists(select * from 系统_代码类型 where 类型编码='34' and 代码类型='流速仪类型')
begin
	insert into 系统_代码类型 values('34','流速仪类型',0) 
end
go
--流速仪类型选项到 系统_代码 表
if not exists(select * from 系统_代码 where 代码类型编码='34' and 代码编码='1' and 代码名称='皮托管法')
begin
	insert into 系统_代码 values('34','1','皮托管法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='34' and 代码编码='2' and 代码名称='热平衡法')
begin
	insert into 系统_代码 values('34','2','热平衡法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='34' and 代码编码='3' and 代码名称='超声波法')
begin
	insert into 系统_代码 values('34','3','超声波法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='34' and 代码编码='4' and 代码名称='声波法')
begin
	insert into 系统_代码 values('34','4','声波法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='34' and 代码编码='5' and 代码名称='靶式流量计法')
begin
	insert into 系统_代码 values('34','5','靶式流量计法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='34' and 代码编码='6' and 代码名称='光闪烁法')
begin
	insert into 系统_代码 values('34','6','光闪烁法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='34' and 代码编码='7' and 代码名称='红外线法')
begin
	insert into 系统_代码 values('34','7','红外线法','','')
end
go
--流量计类型
if not exists(select * from 系统_代码类型 where 类型编码='38' and 代码类型='流量计类型')
begin
	insert into 系统_代码类型 values('38','流量计类型',0) 
end
go
if not exists(select * from 系统_代码 where 代码类型编码='38' and 代码编码='1' and 代码名称='流速计法')
begin
	insert into 系统_代码 values('38','1','流速计法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='38' and 代码编码='2' and 代码名称='浮标法')
begin
	insert into 系统_代码 values('38','2','浮标法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='38' and 代码编码='3' and 代码名称='容积法')
begin
	insert into 系统_代码 values('38','3','容积法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='38' and 代码编码='4' and 代码名称='溢流堰法')
begin
	insert into 系统_代码 values('38','4','溢流堰法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='38' and 代码编码='5' and 代码名称='水平衡法')
begin
	insert into 系统_代码 values('38','5','水平衡法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='38' and 代码编码='6' and 代码名称='排水系数法')
begin
	insert into 系统_代码 values('38','6','排水系数法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='38' and 代码编码='7' and 代码名称='巴氏槽法')
begin
	insert into 系统_代码 values('38','7','巴氏槽法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='38' and 代码编码='8' and 代码名称='浓度法')
begin
	insert into 系统_代码 values('38','8','浓度法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='38' and 代码编码='9' and 代码名称='皮托管测速计法')
begin
	insert into 系统_代码 values('38','9','皮托管测速计法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='38' and 代码编码='10' and 代码名称='文丘里测速计法')
begin
	insert into 系统_代码 values('38','10','文丘里测速计法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='38' and 代码编码='11' and 代码名称='孔板流量计法')
begin
	insert into 系统_代码 values('38','11','孔板流量计法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='38' and 代码编码='12' and 代码名称='管道量水角尺法')
begin
	insert into 系统_代码 values('38','12','管道量水角尺法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='38' and 代码编码='13' and 代码名称='无压管道及明渠流量的测算')
begin
	insert into 系统_代码 values('38','13','无压管道及明渠流量的测算','','')
end
go
--增加在线 监测系统进口作用

if not exists(select * from 系统_代码类型 where 类型编码='35' and 代码类型='进口作用')
begin
	insert into 系统_代码类型 values('35','进口作用',0) 
end
go
if not exists(select * from 系统_代码 where 代码类型编码='35' and 代码编码='1' and 代码名称='脱硫')
begin
	insert into 系统_代码 values('35','1','脱硫','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='35' and 代码编码='2' and 代码名称='脱硝')
begin
	insert into 系统_代码 values('35','2','脱硝','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='35' and 代码编码='3' and 代码名称='除尘嚣')
begin
	insert into 系统_代码 values('35','3','除尘嚣','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='35' and 代码编码='4' and 代码名称='其它')
begin
	insert into 系统_代码 values('35','4','其它','','')
end

go

------------------------------------------------------------------------------
--增加 燃煤种类 类型到 系统_代码类型 表

if not exists(select * from 系统_代码类型 where 类型编码='36' and 代码类型='燃煤种类')
begin
	insert into 系统_代码类型 values('36','燃煤种类',0) 
end
go
--增加 燃煤种类 数据
if not exists(select * from 系统_代码 where 代码类型编码='36' and 代码编码='1' and 代码名称='烟煤')
begin
	insert into 系统_代码 values('36','1','烟煤','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='36' and 代码编码='2' and 代码名称='无烟煤')
begin
	insert into 系统_代码 values('36','2','无烟煤','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='36' and 代码编码='3' and 代码名称='褐煤')
begin
	insert into 系统_代码 values('36','3','褐煤','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='36' and 代码编码='4' and 代码名称='其他')
begin
	insert into 系统_代码 values('36','4','其他','','')
end
go

--为 业务_煤含硫率 表 增加字段 燃煤种类
if NOT exists(select * from syscolumns where id=object_id('业务_煤含硫率') and name='燃煤种类代码')
begin
	alter table 业务_煤含硫率
	add 燃煤种类代码 varchar(50)
end

go

if not exists (select 1
            from  sysobjects
           where  id = object_id('业务_废水在线比对')
            and   type = 'U')
begin
	CREATE TABLE [dbo].[业务_废水在线比对](
	[企业类型] [char](1) NOT NULL,
	[企业代码] [varchar](20) NOT NULL,
	[次数] [numeric](4, 0) NOT NULL,
	[监测点名称] [varchar](50) NOT NULL,
	[监测年] [numeric](4, 0) NOT NULL,
	[监测月] [numeric](2, 0) NOT NULL,
	[监测日] [numeric](2, 0) NOT NULL,
	[监测时] [numeric](2, 0) NOT NULL,
	[监测分] [numeric](2, 0) NOT NULL,
	[手工监测数据] [numeric](15, 5) NOT NULL,
	[自动监测数据] [numeric](12, 5) NOT NULL,
	[监测点代码] [nvarchar](50) NOT NULL,
	[监测项目编号] [nvarchar](50) NOT NULL,
	[数据类型编码] [varchar](10) NULL,
	[是否达标] [bit] NULL,
	[监测设备ID] [nvarchar](50) NULL,
	[监测系统ID] [nvarchar](50) NULL,
	[季度] [int] NULL,
	[评价标准] [varchar](50) NULL,
	[单位] [varchar](50) NULL,
	 CONSTRAINT [PK_业务_废水在线比对] PRIMARY KEY CLUSTERED 
	(
		[企业代码] ASC,
		[次数] ASC,
		[监测年] ASC,
		[监测月] ASC,
		[监测日] ASC,
		[监测时] ASC,
		[监测分] ASC,
		[监测点代码] ASC,
		[监测项目编号] ASC
	)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
	) ON [PRIMARY]
end
go
--为 业务_废水在线比对 表增加 是否达标 字段
if not exists (select * from syscolumns where id=object_id('业务_废水在线比对') and name='数据类型编码')
begin
	alter table 业务_废水在线比对
	add 数据类型编码 varchar(10)
end
go
if not exists (select * from syscolumns where id=object_id('业务_废水在线比对') and name='是否达标')
begin
	alter table 业务_废水在线比对
	add 是否达标 bit null
end
go

if not exists (select * from syscolumns where id=object_id('业务_废水在线比对') and name='比对结果')
begin
	alter table 业务_废水在线比对 add 比对结果 numeric(38,6) null
end
go

if not exists (select 1
            from  sysobjects
           where  id = object_id('业务_废气在线比对')
            and   type = 'U')
begin
	CREATE TABLE [dbo].[业务_废气在线比对](
	[企业类型] [char](1) NOT NULL,
	[企业代码] [varchar](20) NOT NULL,
	[次数] [numeric](4, 0) NOT NULL,
	[监测点名称] [varchar](50) NOT NULL,
	[监测年] [numeric](4, 0) NOT NULL,
	[监测月] [numeric](2, 0) NOT NULL,
	[监测日] [numeric](2, 0) NOT NULL,
	[监测时] [numeric](2, 0) NOT NULL,
	[监测分] [numeric](2, 0) NOT NULL,
	[手工监测数据] [numeric](15, 5) NOT NULL,
	[自动监测数据] [numeric](12, 5) NOT NULL,
	[监测点代码] [nvarchar](50) NOT NULL,
	[监测项目编号] [nvarchar](50) NOT NULL,
	[数据类型编码] [varchar](10) NULL,
	[是否达标] [bit] NULL,
	[监测设备ID] [nvarchar](200) NULL,
	[监测系统ID] [nvarchar](200) NULL,
	[季度] [int] NULL,
	 CONSTRAINT [PK_业务_废气在线比对] PRIMARY KEY CLUSTERED 
	(
		[企业代码] ASC,
		[次数] ASC,
		[监测年] ASC,
		[监测月] ASC,
		[监测日] ASC,
		[监测时] ASC,
		[监测分] ASC,
		[监测点代码] ASC,
		[监测项目编号] ASC
	)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
	) ON [PRIMARY]
end
go
--为 业务_废气在线比对 表增加 是否达标 字段
if not exists (select * from syscolumns where id=object_id('业务_废气在线比对') and name='数据类型编码')
begin
	alter table 业务_废气在线比对
	add 数据类型编码 varchar(10)
end
go
if not exists (select * from syscolumns where id=object_id('业务_废气在线比对') and name='是否达标')
begin
	alter table 业务_废气在线比对
	add 是否达标 bit null
end
go
--增加 数据类型
if not exists(select * from 系统_代码类型 where 类型编码='37' and 代码类型='数据类型')
begin
	insert into 系统_代码类型 values('37','数据类型',0) 
end
go
if not exists(select * from 系统_代码 where 代码类型编码='37' and 代码编码='1' and 代码名称='实际样品')
begin
	insert into 系统_代码 values('37','1','实际样品','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='37' and 代码编码='2' and 代码名称='质控样')
begin
	insert into 系统_代码 values('37','2','质控样','','')
end
go


--污水处理厂增加 控制级别代码

if not exists (select * from syscolumns where id=object_id('业务_污水处理厂信息') and name='控制级别代码')
begin
	alter table 业务_污水处理厂信息
	add 控制级别代码 varchar(10)
end
go
--污水处理厂增加 控制级别代码

if not exists (select * from syscolumns where id=object_id('业务_固废处理厂信息') and name='控制级别代码')
begin
	alter table 业务_固废处理厂信息
	add 控制级别代码 varchar(10)
end
go

--修改 系统_污染物标准排放明细 表，增加无组织排放上限字段
if not exists(select * from syscolumns where id=object_id('系统_污染物标准排放明细') and name='无组织排放上限')
begin
	alter table 系统_污染物标准排放明细
	add 无组织排放上限 numeric(18,6)
end
go
--增加 系统_标准产品 表--
if not exists (select 1
            from  sysobjects
           where  id = object_id('系统_标准产品')
            and   type = 'U')
begin
	create table 系统_标准产品
	(
	id int identity(1,1) not null primary key,
	产品编码 varchar(50) not null,
	产品名称 varchar(50) not null
	)
end 
go

if not exists (select * from syscolumns where id=object_id('系统_标准库条件') and name='是否无组织条件')
begin
	alter table 系统_标准库条件 add 是否无组织条件 bit default 0 not null
end
go


--创建监测产品表
if not exists(select * from sysobjects
where id = object_id('业务_企业监测项目时间段')
 and type='U'
)
begin
	create table 业务_企业监测项目时间段
	(
	id int identity(1,1) not null,
	监测年 int not null,
	企业代码 varchar(50) not null,
	企业类型 char(1) not null,
	监测点代码 varchar(50) not null, 
	监测点名称 varchar(50) not null, 
	监测项目编号 varchar(50) not null,
	起始日期 smalldatetime default getdate() not null,
	结止日期 smalldatetime default getdate() not null,
	执行标准代码 varchar(50) null,
	执行标准条件代码 varchar(50) null,
	constraint PK_业务_企业监测项目时间段 primary key(监测年,企业代码,企业类型,监测点代码,监测点名称,起始日期,结止日期,监测项目编号)
	)
end
go

if not exists (select 1
            from  sysobjects
           where  id = object_id('业务_企业监测点执行标准')
            and   type = 'U')
begin
	create table 业务_企业监测点执行标准
	(
	ID int identity(1,1) not null,
	监测年 int not null,
	企业代码 varchar(50) not null,
	企业类型 char(1) not null,
	监测点代码 varchar(50) not null,
	监测点名称 varchar(50) not null,
	起始日期 smalldatetime default getdate() not null,
	结止日期 smalldatetime default getdate() not null,
	执行标准名称 varchar(200) null,
	执行标准代码 varchar(50) null,
	执行标准条件代码 varchar(50) null,
	constraint PK_业务_企业监测点执行标准 PRIMARY KEY (监测年,企业代码,企业类型,监测点代码,监测点名称,起始日期,结止日期)
	) 
end
go

--初始化前水表清空这两个表的数据
--delete from 业务_企业监测项目时间段
--delete from 业务_企业监测点执行标准
--go
--企业和固废 监测点监测项目--
--insert into 业务_企业监测项目时间段(监测年,企业代码,企业类型,监测点代码,监测项目编号,起始日期,结止日期,执行标准代码,执行标准条件代码)
--select a.* from (select distinct 监测年,企业代码,企业类型,监测点代码,监测项目编号,convert(varchar(20),监测年)+'-01'+'-01' as 起始日期,convert(varchar(20),监测年)+'-12'+'-31' as 结止日期,执行标准代码,执行标准条件代码 from 业务_企业监测点污染物信息) as a
--left  join 业务_企业监测项目时间段 as b on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=b.企业类型
--and a.监测点代码=b.监测点代码 and a.监测项目编号=b.监测项目编号 and convert(datetime,a.起始日期)=b.起始日期
--and convert(datetime,a.结止日期)=b.结止日期 where b.id is null
--go
----污水处理厂--
--insert into 业务_企业监测项目时间段(监测年,企业代码,企业类型,监测点代码,监测项目编号,起始日期,结止日期,执行标准代码,执行标准条件代码)
--select a.* from (select distinct 监测年,企业代码,'2' as 企业类型,企业代码 as 监测点代码,监测项目编号,convert(varchar(20),监测年)+'-01'+'-01' as 起始日期,convert(varchar(20),监测年)+'-12'+'-31' as 结止日期,标准代码 as 执行标准代码,标准条件编码 as 执行标准条件代码 from 业务_污水处理厂污染物信息) as a
--left  join 业务_企业监测项目时间段 as b on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=b.企业类型
--and a.监测点代码=b.监测点代码 and a.监测项目编号=b.监测项目编号 and convert(datetime,a.起始日期)=b.起始日期
--and convert(datetime,a.结止日期)=b.结止日期 where b.id is null
--go
-----废气监测点--
--insert into 业务_企业监测点执行标准(监测年,企业代码,企业类型,监测点代码,监测点名称,起始日期,结止日期,执行标准名称,执行标准代码,执行标准条件代码)
--select a.* from (select distinct 监测年,企业代码,企业类型,监测点代码,监测点名称,convert(varchar(20),监测年)+'-01'+'-01' as 起始日期,convert(varchar(20),监测年)+'-12'+'-31' as 结止日期,b.标准名称 as 执行标准名称,执行标准代码,执行标准条件编码  as 执行标准条件代码 
--from 业务_废气监测点信息 a
--join 系统_标准库 b on a.执行标准代码=b.标准代码
--) as a 
--left  join 业务_企业监测点执行标准 as b on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=b.企业类型
--and a.监测点代码=b.监测点代码 and a.监测点名称=b.监测点名称 and convert(datetime,a.起始日期)=b.起始日期
--and convert(datetime,a.结止日期)=b.结止日期 where b.id is null
--go
----废水监测点--
--insert into 业务_企业监测点执行标准(监测年,企业代码,企业类型,监测点代码,监测点名称,起始日期,结止日期,执行标准名称,执行标准代码,执行标准条件代码)
--select a.* from (select distinct 监测年,企业代码,企业类型,监测点代码,监测点名称,convert(varchar(20),监测年)+'-01'+'-01' as 起始日期,convert(varchar(20),监测年)+'-12'+'-31' as 结止日期,b.标准名称 as 执行标准名称,执行标准代码,执行标准条件代码 
--from 业务_废水排口信息 a
--join 系统_标准库 b on a.执行标准代码=b.标准代码
--) as a
--left  join 业务_企业监测点执行标准 as b on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=b.企业类型
--and a.监测点代码=b.监测点代码 and a.监测点名称=b.监测点名称 and convert(datetime,a.起始日期)=b.起始日期
--and convert(datetime,a.结止日期)=b.结止日期 where b.id is null
--go

--=======================================
-- Author:      hanfei modify
-- Date:	    2011-10-24
-- Description: 计算监测项目的超标倍数
-- 超标倍数计算方法如下：
-- 一、如果监测项目为PH值，则超标倍数为空
-- 二、以排放上限为条件，如果排放上限为0(这种情况只针对烷基汞)，并且排放量大于排放上限则未达标，超标倍数为空
-- 三、以排放下限为条件，如果排放下限大于0，并且排放量大于排放上限则未达标，超标倍数：(排放量-排放上限)/排放上限
-- 四、以排放下限为条件，如果排放下限大于0，并且排放量小于排放下限则未达标，超标倍数：(排放下限-排放量)/排放下限
-- 五、以排放下限为条件，如果排放下限小于0，并且排放量大于排放上限则未达标，超标倍数：(排放量-排放上限)/排放上限
--=======================================
if exists(select * from sysobjects where name='GetOverStarndardNum')
drop function GetOverStarndardNum
go
Create function [dbo].[GetOverStarndardNum] 
(
    @排放量 numeric(18,6),		--废水/废气污染物浓度
    @排放下限 numeric(18,6),	--废水/废气排放下限
    @排放上限 numeric(18,6),	--废水/废气排放上限
    @监测项目编号 varchar(50)	--废水/废气监测项目编号
)
returns varchar(10) 
as
begin
    --定义返回值
    declare @returnvalue varchar(10)
    -- 一、如果监测项目为PH值，则超标倍数为空
    if(upper(rtrim(@监测项目编号))='W_1')
		begin
			set @returnvalue=''
			return @returnvalue
		end
	-- 二、以排放上限为条件，如果排放上限为0(这种情况只针对烷基汞)，并且排放量大于排放上限则未达标，超标倍数为空
	if(@排放上限=0 and @排放量>@排放上限)
		begin
			set @returnvalue=''
			return @returnvalue
		end

	declare @rlst numeric(18,6)
	set @rlst=0
	-- 三、以排放下限为条件，如果排放下限大于0，并且排放量大于排放上限则未达标，超标倍数：(排放量-排放上限)/排放上限
	if(@排放下限>0 and @排放量>@排放上限)
		begin			
			set @rlst=(@排放量-@排放上限)/(case when @排放上限=0 then 1 else @排放上限 end)
		end
	-- 四、以排放下限为条件，如果排放下限大于0，并且排放量小于排放下限则未达标，超标倍数：(排放下限-排放量)/排放下限
	if(@排放下限>0 and @排放量<@排放下限)
		begin
			set @rlst=(@排放下限-@排放量)/@排放下限
		end
	-- 五、以排放下限为条件，如果排放下限小于等于0，并且排放量大于排放上限则未达标，超标倍数：(排放量-排放上限)/排放上限
	if(isnull(@排放下限,0)<=0 and @排放量>@排放上限)
		begin
			set @rlst=(@排放量-@排放上限)/(case when @排放上限=0 then 1 else @排放上限 end)
		end
    --格式化超标倍数
	if(@rlst=0)
		begin
			set @returnvalue=''
		end
    else
		begin
        set @returnvalue=case when @rlst>10 then cast(cast(Round(@rlst,0) as float) as varchar)
							  when @rlst>0.1 then cast(cast(Round(@rlst,1) as float) as varchar)
							  when @rlst>0.01 then cast(cast(Round(@rlst,2) as float) as varchar)
							  else '0' end
		end
    return @returnvalue
end
go

--增加 锅炉燃烧方式 系统_代码类型 表
if not exists(select * from 系统_代码类型 where 类型编码='50' and 代码类型='锅炉燃烧方式')
begin
	insert into 系统_代码类型 values('50','锅炉燃烧方式',0) 
end
go
--增加 锅炉燃烧方式选项到 系统_代码 表
if not exists(select * from 系统_代码 where 代码类型编码='50' and 代码编码='1' and 代码名称='W型火焰')
begin
	insert into 系统_代码 values('50','1','W型火焰','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='50' and 代码编码='2' and 代码名称='前后墙对冲')
begin
	insert into 系统_代码 values('50','2','前后墙对冲','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='50' and 代码编码='3' and 代码名称='四角切圆')
begin
	insert into 系统_代码 values('50','3','四角切圆','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='50' and 代码编码='4' and 代码名称='双四角切圆')
begin
	insert into 系统_代码 values('50','4','双四角切圆','','')
end

--增加 低氮燃烧技术 系统_代码类型 表
if not exists(select * from 系统_代码类型 where 类型编码='51' and 代码类型='低氮燃烧技术')
begin
	insert into 系统_代码类型 values('51','低氮燃烧技术',0) 
end
go
--增加 低氮燃烧技术选项 系统_代码 表
if not exists(select * from 系统_代码 where 代码类型编码='51' and 代码编码='1' and 代码名称='低氮燃烧器')
begin
	insert into 系统_代码 values('51','1','低氮燃烧器','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='51' and 代码编码='2' and 代码名称='空气分级燃烧技术')
begin
	insert into 系统_代码 values('51','2','空气分级燃烧技术','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='51' and 代码编码='3' and 代码名称='燃料分级燃烧技术')
begin
	insert into 系统_代码 values('51','3','燃料分级燃烧技术','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='51' and 代码编码='4' and 代码名称='无')
begin
	insert into 系统_代码 values('51','4','无','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='51'and 代码编码='5' and 代码名称='其他')
begin
	insert into 系统_代码 values('51','5','其他','','')
end


--增加 除尘处理工艺 系统_代码类型 表
if not exists(select * from 系统_代码类型 where 类型编码='52' and 代码类型='除尘处理工艺')
begin
	insert into 系统_代码类型 values('52','除尘处理工艺',0) 
end
go
--增加 除尘处理工艺 系统_代码 表
if not exists(select * from 系统_代码 where 代码类型编码='52'and 代码编码='1' and 代码名称='静电除尘')
begin
	insert into 系统_代码 values('52','1','静电除尘','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='52'and 代码编码='2' and 代码名称='袋式除尘')
begin
	insert into 系统_代码 values('52','2','袋式除尘','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='52'and 代码编码='3' and 代码名称='湿式除尘')
begin
	insert into 系统_代码 values('52','3','湿式除尘','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='52'and 代码编码='4' and 代码名称='过滤层除尘')
begin
	insert into 系统_代码 values('52','4','过滤层除尘','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='52'and 代码编码='5' and 代码名称='旋风除尘')
begin
	insert into 系统_代码 values('52','5','旋风除尘','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='52'and 代码编码='6' and 代码名称='重力与惯性除尘')
begin
	insert into 系统_代码 values('52','6','重力与惯性除尘','','')
end

go
--增加 脱硫处理工艺 到 系统_代码类型 表
if not exists(select * from 系统_代码类型 where 类型编码='53' and 代码类型='脱硫处理工艺')
begin
	insert into 系统_代码类型 values('53','脱硫处理工艺',0) 
end
go
--增加 脱硫处理工艺选项 到 系统_代码 表
if not exists(select * from 系统_代码 where 代码类型编码='53'and 代码编码='1' and 代码名称='石灰石-石膏湿法')
begin
	insert into 系统_代码 values('53','1','石灰石-石膏湿法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='53'and 代码编码='2' and 代码名称='氨法')
begin
	insert into 系统_代码 values('53','2','氨法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='53'and 代码编码='3' and 代码名称='烟气循环流化床')
begin
	insert into 系统_代码 values('53','3','烟气循环流化床','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='53'and 代码编码='4' and 代码名称='海水脱硫')
begin
	insert into 系统_代码 values('53','4','海水脱硫','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='53'and 代码编码='5' and 代码名称='电子束法')
begin
	insert into 系统_代码 values('53','5','电子束法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='53'and 代码编码='6' and 代码名称='喷雾干燥法')
begin
	insert into 系统_代码 values('53','6','喷雾干燥法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='53'and 代码编码='6' and 代码名称='喷雾干燥法')
begin
	insert into 系统_代码 values('53','6','喷雾干燥法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='53'and 代码编码='7' and 代码名称='炉内干法喷钙')
begin
	insert into 系统_代码 values('53','7','炉内干法喷钙','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='53'and 代码编码='8' and 代码名称='炉内喷钙后增湿活化脱硫')
begin
	insert into 系统_代码 values('53','8','炉内喷钙后增湿活化脱硫','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='53'and 代码编码='9' and 代码名称='活性炭法')
begin
	insert into 系统_代码 values('53','9','活性炭法','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='53'and 代码编码='10' and 代码名称='脉冲电晕法')
begin
	insert into 系统_代码 values('53','10','脉冲电晕法','','')
end

go
--增加 脱硝处理工艺 到 系统_代码类型 表
if not exists(select * from 系统_代码类型 where 类型编码='54' and 代码类型='脱硝处理工艺')
begin
	insert into 系统_代码类型 values('54','脱硝处理工艺',0) 
end
go
if not exists(select * from 系统_代码 where 代码类型编码='54'and 代码编码='1' and 代码名称='选择性催化还原法SCR')
begin
	insert into 系统_代码 values('54','1','选择性催化还原法SCR','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='54'and 代码编码='2' and 代码名称='选择性非催化还原法SNCR')
begin
	insert into 系统_代码 values('54','2','选择性非催化还原法SNCR','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='54'and 代码编码='3' and 代码名称='SNCR+SCR')
begin
	insert into 系统_代码 values('54','3','SNCR+SCR','','')
end
go
--更改排放设备类型 火电厂锅炉 改为 火电锅炉
update 系统_代码 set 代码名称='火电锅炉' where 代码类型编码='25' and 代码名称='火电厂锅炉'
go
--为 业务_企业废气排放设备 增加字段
if NOT exists(select * from syscolumns where id=object_id('业务_企业废气排放设备') and name='是否循环流化床锅炉')
begin
	alter table 业务_企业废气排放设备
	add
	是否循环流化床锅炉 bit null
end 
go
if NOT exists(select * from syscolumns where id=object_id('业务_企业废气排放设备') and name='锅炉燃烧方式')
begin
	alter table 业务_企业废气排放设备
	add
	锅炉燃烧方式 varchar(10)
end 
go
if NOT exists(select * from syscolumns where id=object_id('业务_企业废气排放设备') and name='低炭燃烧技术')
begin
	alter table 业务_企业废气排放设备
	add
	低炭燃烧技术 varchar(10)
end 
go
if NOT exists(select * from syscolumns where id=object_id('业务_企业废气排放设备') and name='排放设备类型值')
begin
	alter table 业务_企业废气排放设备
	add
	排放设备类型值 nvarchar(50)
end 
go
if NOT exists(select * from syscolumns where id=object_id('业务_企业废气排放设备') and name='采用何种处理设施')
begin
	alter table 业务_企业废气排放设备
	add
	采用何种处理设施 nvarchar(50)
end 
go
if NOT exists(select * from syscolumns where id=object_id('业务_企业废气排放设备') and name='投产日期')
begin
	alter table 业务_企业废气排放设备
	add
	投产日期 smalldatetime
end 
go
if NOT exists(select * from syscolumns where id=object_id('业务_企业废气处理设施信息') and name='处理工艺代码')
begin
	alter table 业务_企业废气处理设施信息
	add
	处理工艺代码 nvarchar(50)
end 
go

--增加 燃料类型
--更新以前的废气排放设置 燃料类型 为 其它

if exists(select * from 系统_代码 where 代码类型编码='9'and 代码编码='4' and 代码名称='其它')
Begin
	update 业务_企业废气排放设备 set 燃料类型='8' where 燃料类型='4'
End
go
if exists(select * from 系统_代码 where 代码类型编码='9'and 代码编码='4' and 代码名称='其它')
begin
	update 系统_代码 set 代码名称='煤矸石' where 代码类型编码='9' and 代码编码='4'
end
go
if not exists(select * from 系统_代码 where 代码类型编码='9'and 代码编码='5' and 代码名称='生物质燃料')
begin
	insert into 系统_代码 values('9','5','生物质燃料','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='9'and 代码编码='6' and 代码名称='垃圾')
begin
	insert into 系统_代码 values('9','6','垃圾','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='9'and 代码编码='7' and 代码名称='危废')
begin
	insert into 系统_代码 values('9','7','危废','','')
end
go
if not exists(select * from 系统_代码 where 代码类型编码='9'and 代码编码='8' and 代码名称='其它')
begin
	insert into 系统_代码 values('9','8','其它','','')
end
go
ALTER VIEW [dbo].[V_企业代码]
AS
SELECT     企业代码, 监测年,'2' as 企业类型
FROM         dbo.业务_污水处理厂信息
UNION
SELECT     企业代码, 监测年,'1' as 企业类型
FROM         dbo.业务_企业基本信息
UNION
SELECT     企业代码, 监测年,'3' as 企业类型
FROM         dbo.业务_固废处理厂信息

GO

ALTER VIEW [dbo].[V_企业法人代码]
AS
SELECT     监测年, 法人代码,行政区代码
FROM         dbo.业务_污水处理厂信息
UNION
SELECT     监测年, 法人代码,行政区代码
FROM         dbo.业务_企业基本信息
UNION
SELECT     监测年, 法人代码,行政区代码
FROM         dbo.业务_固废处理厂信息
go
ALTER VIEW [dbo].[V_企业代码]
AS
SELECT     企业代码, 监测年,'2' as 企业类型
FROM         dbo.业务_污水处理厂信息
UNION
SELECT     企业代码, 监测年,'1' as 企业类型
FROM         dbo.业务_企业基本信息
UNION
SELECT     企业代码, 监测年,'3' as 企业类型
FROM         dbo.业务_固废处理厂信息

GO
IF  not EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[业务_更新标准企业]') AND type in (N'U'))
begin
CREATE TABLE [dbo].[业务_更新标准企业](
	[ID] [varchar](50) NOT NULL,
	[导入年] [int] NULL,
	[导出年] [int] NULL,
	[企业类型] [char](1) NULL,
	[行政区代码] [varchar](50) NULL,
	[行政区名称] [nvarchar](100) NULL,
	[企业代码] [varchar](50) NULL,
	[企业名称] [nvarchar](100) NULL,
	[废气监测点] [varchar](50) NULL,
	[无组织监测点] [varchar](50) NULL,
	[废水监测点] [varchar](50) NULL,
 CONSTRAINT [PK_更新标准企业] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
end 