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 |