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 |