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 |