116 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
--主表增加出差天数
 | 
						||
alter table CQMS_Performance add OutDay int  null;
 | 
						||
GO
 | 
						||
--主表增加工作负荷
 | 
						||
alter table CQMS_Performance add Workloads decimal(18, 2)  null;
 | 
						||
GO
 | 
						||
--主表增加工作范围
 | 
						||
alter table CQMS_Performance add WorkRange nvarchar(200)  null;
 | 
						||
GO
 | 
						||
--主表增加打分人
 | 
						||
alter table CQMS_Performance add ScorMan nvarchar(50)  null;
 | 
						||
GO
 | 
						||
--添加菜单施工管理绩效数据
 | 
						||
insert into sys_menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)
 | 
						||
values('F2133BD6-C786-407A-AD6F-3EEF613229A8','施工管理绩效数据','ZHGL/Performance/PerformanceAllData.aspx',150,
 | 
						||
'0','Menu_ZHGL','1','1','1')
 | 
						||
GO
 | 
						||
 | 
						||
 | 
						||
ALTER PROCEDURE [dbo].[Proc_CallWebApi]
 | 
						||
	-- Add the parameters for the stored procedure here
 | 
						||
	@userId NVARCHAR(2000),--需要发送订阅者的userid(逗号分隔)
 | 
						||
	@thing2 nvarchar(2000),--发送的消息内容
 | 
						||
	@name1 nvarchar(50),--发起人
 | 
						||
	@date3 datetime,--发送的日期
 | 
						||
	@projectName nvarchar(200),
 | 
						||
	@ResponseText NVARCHAR(4000) OUTPUT
 | 
						||
AS
 | 
						||
BEGIN
 | 
						||
	-- SET NOCOUNT ON added to prevent extra result sets from
 | 
						||
	-- interfering with SELECT statements.
 | 
						||
	SET NOCOUNT ON;
 | 
						||
 | 
						||
    -- Insert statements for procedure here
 | 
						||
	DECLARE @data varchar(8000);
 | 
						||
	DECLARE @ApiUrl VARCHAR(200);
 | 
						||
	DECLARE @RequestType VARCHAR(5);--请求类型:POST,GET
 | 
						||
	DECLARE @date2 varchar(100);
 | 
						||
	set @date2 = CONVERT(varchar(100), @date3, 23)
 | 
						||
	--API地址
 | 
						||
	set @ApiUrl='http://localhost:7040/api/Common/postSubscribeMessage';
 | 
						||
	--set @ApiUrl='https://zhgd.cwcec.com/sgglapi_wx/api/Common/postSubscribeMessage';
 | 
						||
	set @RequestType='POST';
 | 
						||
 | 
						||
	--发送数据
 | 
						||
	set @data='{
 | 
						||
	"touser":"'+@userId+'",
 | 
						||
	"template_id":"1gT0FfTc2LwnnqUCU8h_nXDyv8VGtne1Iolo47gPA0c",
 | 
						||
	"page":"pages/index/index",
 | 
						||
	"data":{
 | 
						||
		"thing3":{"value":"您今日的施工绩效尚未填写"},
 | 
						||
		"thing13":{"value":"系统管理员"},
 | 
						||
		"time5":{"value":"'+@date2+'"}
 | 
						||
		}
 | 
						||
	}';   --入参
 | 
						||
 | 
						||
	Declare @Object as Int
 | 
						||
	Exec sp_OACreate 'Msxml2.ServerXMLHTTP.3.0', @Object OUT
 | 
						||
	Exec sp_OAMethod @Object, 'open', NULL, @RequestType,@ApiUrl,'false'
 | 
						||
	IF @RequestType='POST'
 | 
						||
	BEGIN
 | 
						||
		Exec sp_OAMethod @Object, 'setRequestHeader', NULL, 'Content-Type','application/json'
 | 
						||
		
 | 
						||
	END
 | 
						||
	Exec sp_OAMethod @Object, 'setRequestHeader', NULL, 'token','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0'
 | 
						||
	Exec sp_OAMethod @Object, 'send', NULL, @data --发送数据
 | 
						||
	Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
 | 
						||
	--EXEC sp_OAGetErrorInfo @Object --异常输出
 | 
						||
	--Select  @ResponseText as ResponseText
 | 
						||
	--Select * from [dbo].[ParseJSON](@ResponseText)
 | 
						||
	Exec sp_OADestroy @Object
 | 
						||
 | 
						||
END
 | 
						||
 | 
						||
SET ANSI_NULLS ON
 | 
						||
GO
 | 
						||
SET QUOTED_IDENTIFIER ON
 | 
						||
GO
 | 
						||
 | 
						||
--每天下午4点定时执行,查询所有施工绩效表,当天没有填写数据的人,然后推送
 | 
						||
ALTER PROCEDURE [dbo].[Sp_APP_PerformanceByTime]     
 | 
						||
	
 | 
						||
AS         
 | 
						||
BEGIN
 | 
						||
	declare @ResponseText NVARCHAR(4000);
 | 
						||
	DECLARE @PostUserid nvarchar(2000);
 | 
						||
	declare @UserOpenid nvarchar(50);
 | 
						||
	declare @Projectname nvarchar(200);
 | 
						||
    --定义游标查询
 | 
						||
	DECLARE @Userid nvarchar(50);--用户id
 | 
						||
	DECLARE @ProjectId nvarchar(50);--
 | 
						||
	DECLARE My_Cursor CURSOR --定义游标
 | 
						||
	FOR ( select Top 1 Child3.CreateMan,Perfor.ProjectId from CQMS_Performance_Child3 Child3
 | 
						||
		  LEFT JOIN CQMS_Performance as Perfor ON Perfor.PerformanceGid=Child3.PerformanceGid
 | 
						||
 | 
						||
			where Child3.WorkPlan='' 
 | 
						||
			and  CONVERT(varchar(100), Child3.CurrentDate, 23)=CONVERT(varchar(100), GETDATE(), 23) ) 
 | 
						||
	OPEN My_Cursor;--打开游标 
 | 
						||
	FETCH NEXT  FROM My_Cursor INTO @Userid,@ProjectId;--读取第一行数据
 | 
						||
	WHILE @@FETCH_STATUS=0
 | 
						||
	 --这里对游标的状态进行判断,如果为0,证明游标中有值
 | 
						||
			BEGIN
 | 
						||
			    declare @dateNow datetime;
 | 
						||
				set @dateNow=getdate();
 | 
						||
				select @UserOpenid=openid from sys_user where userid=@Userid;
 | 
						||
				select @Projectname=ShortName from Base_Project where projectid=@ProjectId;
 | 
						||
				--执行推送api存储过程
 | 
						||
				exec Proc_CallWebApi @UserOpenid,'您今日的施工绩效尚未填写','系统管理员',@dateNow,@Projectname,@ResponseText output;
 | 
						||
			FETCH NEXT 
 | 
						||
			FROM
 | 
						||
				My_Cursor INTO @Userid,@ProjectId;
 | 
						||
		
 | 
						||
		END CLOSE My_Cursor;--关闭游标
 | 
						||
	DEALLOCATE My_Cursor;--释放游标
 | 
						||
END
 | 
						||
GO |