聚金客智能365滚球手_b t365滚球盘_滚球水位跟365一样实验室

手机版
专享特惠酒店
实验室qq群:

548425117

简易OA漫谈之工作流设计之二(DB实现)转 [复制链接] qrcode

查看: 1486 | 回复: 2

admin
发表于: 2019-4-9 11:39:07 | 只看该作者 |倒序浏览

简易OA漫谈之工作流设计(DB实现)
好久没写博客,上一篇 没想到大家讨论还挻热烈,非常感谢大家关注和提出的一些建议和意见。
大家关注的还是两点:
1、现实流程会复杂得多;
2、流程平台需要复杂的设计(作图)工具。
我想说的是我这里不是做一个“大而全”的工作流平台,只是从最基本的地方入手,通过这样一些测试,让初学者发现工作流的一些原理。
了解这些原理后,你使用各种平台(如K2)开发就会清楚一些。
上篇算是一个概要设计,这篇简单的做一个数据库实现,本实现暂不包括“规则处理”,即由调用端决定下一手步骤和处理人。
兄弟刚离职,现在正找工作,关乎一家人是否有饭吃,所以时间不多,写得很粗糙,大家还请原谅则个!
用的sql server.
1、先建一个数据库MyData
2、执行一下结构脚本

View Code

3、执行一下数据脚本

View Code

4、发起一个流程
exec usp_FlowStart 1,1,1,2,'2,3',null
参数解释:
@FlowID int,--流程模板编号
@UserID int,--流程用户
@ApplyUserID int,--流程申请用户
@NextStepID int,--下一步骤
@OwnerUserIDStr varchar(500),--多个下手审批人,以‘,’分隔
@Data nvarchar(max) --表单数据,xml格式

5、读一下任务信息
查看应该可以看到FlowInstance一条数据,这是流程实例主表。
查看应该可以看到FlowActionTrace三条数据,即申请已办一条,待办两条,为什么待会是两条,因为上面的参数
'2,3'就表示下一步处理人是两个。
select * from dbo.FlowInstance
select * from dbo.FlowActionTrace

6、执行一个待办提交
exec usp_FlowSubmit 3,3,3,0,'3/2,3',null
参数解释:
@TraceID int,--flowactiontrace的id,选择一个submittime 为null的记录的id
@AcionID int,--操作编号,就是做的是哪种操作,一般1代表同意提交
@SubmitUserID int,--提交人编号
@IsEnd int,--是否结束步骤
@NextStr varchar(2000),--'1/3,4;3/5,6'这个结构表示“下一步骤编号/处理人编号串;下一步骤编号/处理人编号串”
@Data nvarchar(max)--表单数据,xml格式

大家会觉得组装下一步骤和下一步操作人很麻烦,我们做了组件后会使用更好结构的属性。
下和篇如果有兴趣就做一个简单dll和website demo,以便跑跑看。


跳转到指定楼层
admin
发表于: 2019-4-9 11:43:03 | 只看该作者

USE [MyData]
GO
/****** Object:??Table [dbo].[BaseUser]? ? Script Date: 08/24/2012 11:50:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BaseUser](
? ? [ID] [int] IDENTITY(1,1) NOT NULL,
? ? [UserName] [varchar](50) NOT NULL,
? ? [PassWord] [varchar](50) NULL,
? ? [UserDesc] [nvarchar](200) NULL,
? ? [UnitID] [int] NULL,
? ? [PostID] [int] NULL,
? ? [LocationID] [int] NULL,
? ? [Phone] [varchar](50) NULL,
? ? [Email] [varchar](100) NULL,
? ? [EnableFlag] [bit] NOT NULL,
CONSTRAINT [PK_MyUser] 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]
GO
SET ANSI_PADDING OFF
GO
/****** Object:??Table [dbo].[FlowStep]? ? Script Date: 08/24/2012 11:50:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[FlowStep](
? ? [ID] [int] IDENTITY(1,1) NOT NULL,
? ? [StepID] [int] NOT NULL,
? ? [FlowID] [int] NOT NULL,
? ? [StepCode] [varchar](50) NOT NULL,
? ? [StepName] [nvarchar](50) NOT NULL,
? ? [IsJoin] [bit] NULL,
? ? [Params] [xml] NULL,
? ? [EnabeFlag] [bit] NOT NULL,
CONSTRAINT [PK_FlowStep] 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]
GO
SET ANSI_PADDING OFF
GO
/****** Object:??Table [dbo].[FlowInstance]? ? Script Date: 08/24/2012 11:50:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[FlowInstance](
? ? [ID] [int] IDENTITY(1,1) NOT NULL,
? ? [FlowID] [int] NOT NULL,
? ? [FlowName] [varchar](50) NOT NULL,
? ? [UserID] [int] NOT NULL,
? ? [UserName] [varchar](50) NOT NULL,
? ? [ApplyUserName] [varchar](50) NULL,
? ? [ApplyDateTime] [datetime] NULL,
? ? [EndUserName] [varchar](50) NULL,
? ? [EndDateTime] [datetime] NULL,
? ? [StatusID] [int] NULL,
? ? [StatusName] [varchar](50) NULL,
? ? [ApplyStatus] [nvarchar](500) NULL,
CONSTRAINT [PK_FlowMain] 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]
GO
SET ANSI_PADDING OFF
GO
/****** Object:??Table [dbo].[FlowActionTraceData]? ? Script Date: 08/24/2012 11:50:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[FlowActionTraceData](
? ? [TraceID] [int] NOT NULL,
? ? [Data] [xml] NULL,
CONSTRAINT [PK_FlowActionTraceData] PRIMARY KEY CLUSTERED
(
? ? [TraceID] ASC
)WITH (PAD_INDEX??= OFF, STATISTICS_NORECOMPUTE??= OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS??= ON, ALLOW_PAGE_LOCKS??= ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:??Table [dbo].[FlowActionTrace]? ? Script Date: 08/24/2012 11:50:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[FlowActionTrace](
? ? [ID] [int] IDENTITY(1,1) NOT NULL,
? ? [InstanceID] [int] NOT NULL,
? ? [FlowID] [int] NOT NULL,
? ? [FlowName] [nvarchar](50) NOT NULL,
? ? [FlowCode] [varchar](50) NOT NULL,
? ? [StepID] [int] NOT NULL,
? ? [StepName] [nvarchar](50) NOT NULL,
? ? [StepCode] [varchar](50) NOT NULL,
? ? [ActionID] [int] NULL,
? ? [ActionName] [nvarchar](50) NULL,
? ? [ActionCode] [varchar](50) NULL,
? ? [OwnerUserID] [int] NOT NULL,
? ? [OwnerUserName] [varchar](50) NOT NULL,
? ? [OwnerUserDesc] [nvarchar](50) NOT NULL,
? ? [SubmitUserID] [int] NULL,
? ? [SubmitUserName] [varchar](50) NULL,
? ? [SubmitUserDesc] [nvarchar](50) NULL,
? ? [ArriveTime] [datetime] NOT NULL,
? ? [ReadTime] [datetime] NULL,
? ? [SubmitTime] [datetime] NULL,
? ? [PreID] [int] NOT NULL,
? ? [SubmitMemo] [nvarchar](500) NULL,
CONSTRAINT [PK_FlowActionTrace] 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]
GO
SET ANSI_PADDING OFF
GO
/****** Object:??Table [dbo].[FlowAction]? ? Script Date: 08/24/2012 11:50:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[FlowAction](
? ? [ID] [int] IDENTITY(1,1) NOT NULL,
? ? [ActionID] [int] NOT NULL,
? ? [StepID] [int] NOT NULL,
? ? [FlowID] [int] NOT NULL,
? ? [ActionCode] [varchar](50) NOT NULL,
? ? [ActionName] [nvarchar](50) NOT NULL,
? ? [Params] [xml] NULL,
? ? [EnableFlag] [bit] NOT NULL,
CONSTRAINT [PK_FlowAction] 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]
GO
SET ANSI_PADDING OFF
GO
/****** Object:??Table [dbo].[Flow]? ? Script Date: 08/24/2012 11:50:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Flow](
? ? [ID] [int] NOT NULL,
? ? [FlowCode] [varchar](50) NOT NULL,
? ? [FlowName] [nvarchar](50) NULL,
? ? [FlowVersion] [varchar](50) NOT NULL,
? ? [Params] [xml] NULL,
? ? [EnableFlag] [bit] NOT NULL,
CONSTRAINT [PK_Flow_1] 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]
GO
SET ANSI_PADDING OFF
GO
/****** Object:??UserDefinedFunction [dbo].[f_splitstr]? ? Script Date: 08/24/2012 11:50:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE function [dbo].[f_splitstr](@SourceSql varchar(8000),@StrSeprate varchar(100))
returns @temp table(F1 varchar(100))
as
begin
declare @ch as varchar(100)
set @SourceSql=@SourceSql+@StrSeprate
while(@SourceSql<>'')
begin
set @ch=left(@SourceSql,charindex(@StrSeprate,@SourceSql,1)-1)
insert @temp values(@ch)
set @SourceSql=stuff(@SourceSql,1,charindex(@StrSeprate,@SourceSql,1),'')
end
return
end
GO
/****** Object:??UserDefinedFunction [dbo].[f_getstartstatus]? ? Script Date: 08/24/2012 11:50:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:? ?? ???
-- Create date:
-- Description:? ?
-- =============================================
CREATE FUNCTION [dbo].[f_getstartstatus]
(
? ? @OwnerUserIDStr varchar(500),
? ? @StepName nvarchar(50)
)
RETURNS nvarchar(500)
AS
BEGIN
? ? declare @ret nvarchar(500)
? ? set @ret=''
? ?
? ? select @ret=@ret+e.UserDesc +'('+@StepName+');'
? ? from f_splitstr(@OwnerUserIDStr,',') d
? ? join dbo.BaseUser e on d.f1=e.ID
? ?
? ? return @ret

END
GO
/****** Object:??UserDefinedFunction [dbo].[f_getflowstatus]? ? Script Date: 08/24/2012 11:50:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:? ?? ???
-- Create date:
-- Description:? ?
-- =============================================
create FUNCTION [dbo].[f_getflowstatus]
(
? ? @instanceid int? ?
)
RETURNS nvarchar(500)
AS
BEGIN
? ? declare @ret nvarchar(500)
? ? set @ret=''
? ?
? ? select @ret=@ret+OwnerUserDesc+'('+StepName+');'
? ? from dbo.flowactiontrace
? ? where InstanceID=@instanceid
? ? and SubmitTime is null
? ?
? ? return @ret

END
GO
/****** Object:??StoredProcedure [dbo].[usp_FlowSubmit]? ? Script Date: 08/24/2012 11:50:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:? ?? ???
-- Create date:
-- Description:? ?
-- exec usp_FlowSubmit 10,3,3,0,'4/2,3',null
-- =============================================
CREATE PROCEDURE [dbo].[usp_FlowSubmit]
(
? ? @TraceID int,--flowactiontrace的id
? ? @AcionID int,--操作编号
? ? @SubmitUserID int,--提交人编号
? ? @IsEnd int,--是否结束步骤
? ? @NextStr varchar(2000),--'1/3,4;3/5,6'
? ? @Data nvarchar(max)
)
AS
BEGIN
? ? SET NOCOUNT ON;
? ?
? ? declare @flowid int
? ? declare @stepid int
? ? declare @actioncode varchar(50)
? ? declare @actionname nvarchar(50)
? ? declare @instanceid int
? ? declare @submitusername varchar(50)
? ? declare @submituserdesc nvarchar(50)
? ? declare @isjoin bit
? ?
? ? select @submitusername=username,
? ?? ?? ???@submituserdesc=userdesc
? ? from dbo.BaseUser
? ? where ID=@SubmitUserID
? ?? ?? ???
? ? select @instanceid=instanceid,
? ?? ?? ???@flowid=flowid,
? ?? ?? ???@stepid=stepid
? ? from dbo.FlowActionTrace
? ? where ID=@TraceID
? ?? ?? ???
? ? select @actioncode=actioncode,
? ?? ?? ???@actionname=actionname
? ? from dbo.FlowAction
? ? where ActionID=@AcionID and StepID=@stepid and FlowID=@flowid? ?
? ?
? ? select @isjoin =isjoin
? ? from dbo.FlowStep
? ? where StepID=@stepid and FlowID=@flowid
? ?
? ?
? ? begin tran
? ?? ???
? ?? ???--提交当前待办
? ?? ???update dbo.FlowActionTrace
? ?? ???set ActionID=@AcionID,
? ?? ?? ?? ?? ? ActionCode=@actioncode,
? ?? ?? ?? ?? ? ActionName=@actionname,
? ?? ?? ?? ?? ? SubmitUserID=@SubmitUserID,
? ?? ?? ?? ?? ? SubmitUserName=@submitusername,
? ?? ?? ?? ?? ? SubmitUserDesc=@submituserdesc,
? ?? ?? ?? ?? ? SubmitTime=GETDATE()
? ?? ???where ID=@TraceID? ?
? ?? ?? ?
? ?? ???if(@Data is not null)
? ?? ???begin
? ?? ?? ?? ?insert into dbo.FlowActionTraceData(TraceID,Data)
? ?? ?? ?? ?values(@TraceID,@Data)
? ?? ???end
? ?? ???
? ?? ???
? ?? ???--如果不是会审,删除其他待办
? ?? ???if(@isjoin=0)
? ?? ???begin
? ?? ?? ?? ?delete??dbo.FlowActionTrace
? ?? ?? ?? ?where??StepID=@stepid and FlowID=@flowid and ID<>@TraceID? ?? ???
? ?? ???end
? ?? ???
? ?? ???
? ?? ???--更新主表状态
? ?? ???if(@IsEnd=1??
? ?? ?? ?? ?and (select COUNT(*) from dbo.FlowActionTrace where FlowID=@flowid and SubmitTime is null)=0
? ?? ?? ???)
? ?? ???begin? ?? ???
? ?? ?? ?? ?update dbo.FlowInstance? ???
? ?? ?? ?? ?set EndUserName=@submitusername,? ?? ???
? ?? ?? ?? ?? ? EndDateTime=GETDATE(),
? ?? ?? ?? ?? ? StatusID=100,
? ?? ?? ?? ?? ? StatusName='正常结束',
? ?? ?? ?? ?? ? ApplyStatus=''
? ?? ?? ?? ?? ? where ID=@instanceid? ?? ?
? ?? ???end? ?
? ?? ???else --不是结束时插入待办,可能多个路线,一个路线可能多人
? ?? ???begin? ?
? ?? ?? ?? ?declare @next varchar(500)? ?
? ?? ?? ?? ?DECLARE db_cursor CURSOR FOR
? ?? ?? ?? ?select * FROM dbo.f_splitstr(@NextStr,';')

? ?? ?? ?? ?OPEN db_cursor
? ?? ?? ?? ?FETCH NEXT FROM db_cursor INTO @next
? ?? ?? ?? ?WHILE @@FETCH_STATUS=0
? ?? ?? ?? ?BEGIN
? ?? ?? ?? ?? ? declare @nextstepid??int --下一步骤
? ?? ?? ?? ?? ? declare @OwnerUserIDStr varchar(500) --下一步骤处理人
? ?? ?? ?? ?? ? set @nextstepid=convert(int,left(@next,charindex('/',@next,1)-1))
? ?? ?? ?? ?? ? set @OwnerUserIDStr=right(@next,len(@next)-charindex('/',@next,1))
? ?? ?? ?? ?? ? declare @nextstepcode varchar(50)
? ?? ?? ?? ?? ? declare @nextstepname nvarchar(50)
? ?? ?? ?? ?? ? select @nextstepcode=stepcode,
? ?? ?? ?? ?? ?? ???@nextstepname =stepname
? ?? ?? ?? ?? ? from FlowStep??where FlowID=@flowid and StepID=@nextstepid??

? ?? ?? ?? ?? ? --插入待办
? ?? ?? ?? ?? ? INSERT INTO [FlowActionTrace]
? ?? ?? ?? ?? ? ([InstanceID]
? ?? ?? ?? ?? ? ,[FlowID]
? ?? ?? ?? ?? ? ,[FlowName]
? ?? ?? ?? ?? ? ,[FlowCode]
? ?? ?? ?? ?? ? ,[StepID]
? ?? ?? ?? ?? ? ,[StepName]
? ?? ?? ?? ?? ? ,[StepCode]
? ?? ?? ?? ?? ? ,[OwnerUserID]
? ?? ?? ?? ?? ? ,[OwnerUserName]
? ?? ?? ?? ?? ? ,[OwnerUserDesc]? ?? ?? ???
? ?? ?? ?? ?? ? ,[ArriveTime],[PreID]
? ?? ?? ?? ?? ? )? ?? ?? ?? ?? ?
? ?? ?? ?? ?? ? SELECT @instanceid,@FlowID,a.FlowName,a.FlowCode,
? ?? ?? ?? ?? ? @nextstepid,@nextstepcode,@nextstepname,
? ?? ?? ?? ?? ? b.ID,b.UserName,b.UserDesc,
? ?? ?? ?? ?? ? getdate(),@TraceID
? ?? ?? ?? ?? ? FROM dbo.Flow a,
? ?? ?? ?? ?? ? (
? ?? ?? ?? ?? ? select e.ID,e.UserName,e.UserDesc
? ?? ?? ?? ?? ? from dbo.f_splitstr(@OwnerUserIDStr,',') d
? ?? ?? ?? ?? ? join dbo.BaseUser e on d.f1=e.ID
? ?? ?? ?? ?? ? )b WHERE??a.id=@flowid

? ?? ?? ?? ?FETCH NEXT FROM db_cursor INTO @next
? ?? ?? ?? ?END
? ?? ?? ?? ?CLOSE db_cursor
? ?? ?? ?? ?DEALLOCATE db_cursor? ?? ?? ?

? ?? ?? ?? ?--更新主表状态? ?? ?
? ?? ?? ?? ?update dbo.FlowInstance? ???
? ?? ?? ?? ?set ApplyStatus=dbo.f_getflowstatus(@instanceid)
? ?? ?? ?? ?where ID=@instanceid? ?? ?? ?
? ?? ???
? ?? ???end
? ?? ???
? ? commit tran? ?

END
GO
/****** Object:??StoredProcedure [dbo].[usp_FlowStart]? ? Script Date: 08/24/2012 11:50:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:? ?? ???
-- Create date:
-- Description:? ?
-- exec usp_FlowStart 1,1,1,2,'2,3'
-- =============================================
CREATE PROCEDURE [dbo].[usp_FlowStart]
(
? ? @FlowID int,--流程模板编号
? ? @UserID int,--流程用户
? ? @ApplyUserID int,--流程申请用户
? ? @NextStepID int,--下一步骤
? ? @OwnerUserIDStr varchar(500),--多个下手审批人,以‘,’分隔
? ? @Data nvarchar(max)
)
AS
BEGIN
? ? SET NOCOUNT ON;
? ?
? ? declare @stepid int
? ? declare @stepcode varchar(50)
? ? declare @stepname nvarchar(50)
? ? declare @actionid int
? ? declare @actioncode varchar(50)
? ? declare @actionname nvarchar(50)
? ?
? ? select @stepid=stepid,
? ?? ?? ???@stepcode=stepcode,
? ?? ?? ???@stepname=stepname
? ?? ?? ???from FlowStep where FlowID=@FlowID and StepID=1
? ? select @actionid=actionid,
? ?? ?? ???@actioncode=actioncode,
? ?? ?? ???@actionname=actionname
? ?? ?? ???from FlowAction where FlowID=@FlowID and StepID=1 and ActionID=1? ?? ?
? ?
? ? declare @nextstepcode varchar(50)
? ? declare @nextstepname nvarchar(50)
? ?
? ? select @nextstepcode=stepcode,
? ?? ?? ???@nextstepname=stepname
? ?? ?? ???from FlowStep where FlowID=@FlowID and StepID=@NextStepID? ?? ?
? ?
? ? begin tran
? ?? ???
? ?? ???declare @instanceid int
? ?? ???--插入主表
? ?? ???INSERT INTO [FlowInstance]
? ?? ?? ?? ?? ?? ? ([FlowID]
? ?? ?? ?? ?? ?? ? ,[FlowName]
? ?? ?? ?? ?? ?? ? ,[UserID]
? ?? ?? ?? ?? ?? ? ,[UserName]
? ?? ?? ?? ?? ?? ? ,[ApplyUserName]
? ?? ?? ?? ?? ?? ? ,[ApplyDateTime]
? ?? ?? ?? ?? ?? ? ,[StatusID]
? ?? ?? ?? ?? ?? ? ,[StatusName]
? ?? ?? ?? ?? ?? ? ,[ApplyStatus])--待办状态
? ?? ???SELECT @FlowID,a.FlowName,
? ?? ???@UserID,b.UserName,c.UserName,
? ?? ???GETDATE(),1,'流程中',dbo.f_getstartstatus(@OwnerUserIDStr,@nextstepname)??
? ?? ???FROM dbo.Flow a,dbo.BaseUser b,dbo.BaseUser c
? ?? ???WHERE??a.id=@FlowID and b.ID=@UserID and c.ID=@ApplyUserID? ?
? ?? ???
? ?? ???set @instanceid=@@identity
? ?? ???
? ?? ???--插入申请日志
? ?? ???INSERT INTO [MyData].[dbo].[FlowActionTrace]
? ?? ?? ???([InstanceID]
? ?? ?? ???,[FlowID]
? ?? ?? ???,[FlowName]
? ?? ?? ???,[FlowCode]
? ?? ?? ???,[StepID]
? ?? ?? ???,[StepName]
? ?? ?? ???,[StepCode]
? ?? ?? ???,[ActionID]
? ?? ?? ???,[ActionName]
? ?? ?? ???,[ActionCode]
? ?? ?? ???,[OwnerUserID]
? ?? ?? ???,[OwnerUserName]
? ?? ?? ???,[OwnerUserDesc]
? ?? ?? ???,[SubmitUserID]
? ?? ?? ???,[SubmitUserName]
? ?? ?? ???,[SubmitUserDesc]
? ?? ?? ???,[ArriveTime]
? ?? ?? ???,[ReadTime]
? ?? ?? ???,[SubmitTime])
? ?? ???SELECT @instanceid,@FlowID,a.FlowName,a.FlowCode,
? ?? ?? ?? ?? ? @stepid,@stepcode,@stepname,
? ?? ?? ?? ?? ? @actionid,@actioncode,@actionname,
? ?? ?? ?? ?? ? b.ID,b.UserName,b.UserDesc,
? ?? ?? ?? ?? ? b.ID,b.UserName,b.UserDesc,
? ?? ?? ?? ?? ? getdate(),getdate(),getdate()
? ?? ???FROM dbo.Flow a,dbo.BaseUser b
? ?? ???where a.ID=@FlowID and b.ID=@ApplyUserID
? ?? ???
? ?? ???declare @preid int
? ?? ???set @preid=@@IDENTITY
? ?? ???
? ?? ???if(@Data is not null)
? ?? ???begin
? ?? ?? ?? ?insert into dbo.FlowActionTraceData(TraceID,Data)
? ?? ?? ?? ?values(@preid,@Data)
? ?? ???end
? ?? ???
? ?? ???--插入待办
? ?? ???INSERT INTO [FlowActionTrace]
? ?? ?? ?? ?? ?([InstanceID]
? ?? ?? ?? ?? ?,[FlowID]
? ?? ?? ?? ?? ?,[FlowName]
? ?? ?? ?? ?? ?,[FlowCode]
? ?? ?? ?? ?? ?,[StepID]
? ?? ?? ?? ?? ?,[StepName]
? ?? ?? ?? ?? ?,[StepCode]
? ?? ?? ?? ?? ?,[OwnerUserID]
? ?? ?? ?? ?? ?,[OwnerUserName]
? ?? ?? ?? ?? ?,[OwnerUserDesc]? ?? ?? ???
? ?? ?? ?? ?? ?,[ArriveTime],[PreID]
? ?? ?? ?? ?? ?)? ?? ?? ?? ?? ?
? ?? ???SELECT @instanceid,@FlowID,a.FlowName,a.FlowCode,
? ?? ?? ?? ?? ? @nextstepid,@nextstepcode,@nextstepname,
? ?? ?? ?? ?? ? b.ID,b.UserName,b.UserDesc,
? ?? ?? ?? ?? ? getdate(),@preid
? ?? ???FROM dbo.Flow a,
? ?? ?? ?? ?(
? ?? ?? ?? ?? ?select e.ID,e.UserName,e.UserDesc
? ?? ?? ?? ?? ?from dbo.f_splitstr(@OwnerUserIDStr,',') d
? ?? ?? ?? ?? ?join dbo.BaseUser e on d.f1=e.ID
? ?? ?? ?? ?) b
? ?? ???WHERE??a.id=@FlowID? ?? ?? ?? ?? ?? ?? ?
? ?
? ? commit tran
END
GO
/****** Object:??Default [DF_MyUser_EnableFlag]? ? Script Date: 08/24/2012 11:50:20 ******/
ALTER TABLE [dbo].[BaseUser] ADD??CONSTRAINT [DF_MyUser_EnableFlag]??DEFAULT ((1)) FOR [EnableFlag]
GO
/****** Object:??Default [DF_FlowActionTrace_PreID]? ? Script Date: 08/24/2012 11:50:20 ******/
ALTER TABLE [dbo].[FlowActionTrace] ADD??CONSTRAINT [DF_FlowActionTrace_PreID]??DEFAULT ((0)) FOR [PreID]
GO
admin
发表于: 2019-4-9 11:43:53 | 只看该作者

--插入用户
insert BaseUser(ID,UserName,PassWord,UserDesc,UnitID,PostID,LocationID,Phone,Email,EnableFlag) values(? ? 1? ? ,? ? 'aaa'? ? ,? ? '123'? ? ,? ? N'王小二'? ? ,? ? NULL? ? ,? ? NULL? ? ,? ? NULL? ? ,? ? NULL? ? ,? ? NULL? ? ,? ? 1? ? )
insert BaseUser(ID,UserName,PassWord,UserDesc,UnitID,PostID,LocationID,Phone,Email,EnableFlag) values(? ? 2? ? ,? ? 'bbb'? ? ,? ? '234'? ? ,? ? N'张老三'? ? ,? ? NULL? ? ,? ? NULL? ? ,? ? NULL? ? ,? ? NULL? ? ,? ? NULL? ? ,? ? 1? ? )
insert BaseUser(ID,UserName,PassWord,UserDesc,UnitID,PostID,LocationID,Phone,Email,EnableFlag) values(? ? 3? ? ,? ? 'ccc'? ? ,? ? '345'? ? ,? ? N'李家四'? ? ,? ? NULL? ? ,? ? NULL? ? ,? ? NULL? ? ,? ? NULL? ? ,? ? NULL? ? ,? ? 1? ? )
insert BaseUser(ID,UserName,PassWord,UserDesc,UnitID,PostID,LocationID,Phone,Email,EnableFlag) values(? ? 4? ? ,? ? 'ddd'? ? ,? ? '456'? ? ,? ? N'刘大五'? ? ,? ? NULL? ? ,? ? NULL? ? ,? ? NULL? ? ,? ? NULL? ? ,? ? NULL? ? ,? ? 1? ? )

--插入流程模板表
insert Flow(ID,FlowCode,FlowName,FlowVersion,Params,EnableFlag) values(? ? 1? ? ,? ? 'qinjia'? ? ,? ? N'请假'? ? ,? ? '1'? ? ,? ? NULL? ? ,? ? 1? ? )

insert FlowStep(ID,StepID,FlowID,StepCode,StepName,IsJoin,Params,EnabeFlag) values(? ? 1? ? ,? ? 1? ? ,? ? 1? ? ,? ? 'apply'? ? ,? ? N'请假申请'? ? ,? ? 0? ? ,? ? NULL? ? ,? ? 1? ? )
insert FlowStep(ID,StepID,FlowID,StepCode,StepName,IsJoin,Params,EnabeFlag) values(? ? 2? ? ,? ? 2? ? ,? ? 1? ? ,? ? 'parent'? ? ,? ? N'上级审批'? ? ,? ? 0? ? ,? ? NULL? ? ,? ? 1? ? )
insert FlowStep(ID,StepID,FlowID,StepCode,StepName,IsJoin,Params,EnabeFlag) values(? ? 4? ? ,? ? 3? ? ,? ? 1? ? ,? ? 'manager'? ? ,? ? N'经理审批'? ? ,? ? 1? ? ,? ? NULL? ? ,? ? 1? ? )
insert FlowStep(ID,StepID,FlowID,StepCode,StepName,IsJoin,Params,EnabeFlag) values(? ? 5? ? ,? ? 4? ? ,? ? 1? ? ,? ? 'hrconfirm'? ? ,? ? N'HR确认'? ? ,? ? 0? ? ,? ? NULL? ? ,? ? 1? ? )

insert FlowAction(ID,ActionID,StepID,FlowID,ActionCode,ActionName,Params,EnableFlag) values(? ? 1? ? ,? ? 1? ? ,? ? 1? ? ,? ? 1? ? ,? ? 'applysubmit'? ? ,? ? N'申请提交'? ? ,? ? NULL? ? ,? ? 1? ? )
insert FlowAction(ID,ActionID,StepID,FlowID,ActionCode,ActionName,Params,EnableFlag) values(? ? 2? ? ,? ? 2? ? ,? ? 1? ? ,? ? 1? ? ,? ? 'applycancel'? ? ,? ? N'申请取消'? ? ,? ? NULL? ? ,? ? 1? ? )
insert FlowAction(ID,ActionID,StepID,FlowID,ActionCode,ActionName,Params,EnableFlag) values(? ? 3? ? ,? ? 3? ? ,? ? 2? ? ,? ? 1? ? ,? ? 'parentsubmit'? ? ,? ? N'上级提交'? ? ,? ? NULL? ? ,? ? 1? ? )
insert FlowAction(ID,ActionID,StepID,FlowID,ActionCode,ActionName,Params,EnableFlag) values(? ? 4? ? ,? ? 4? ? ,? ? 2? ? ,? ? 1? ? ,? ? 'parentreject'? ? ,? ? N'上级驳回'? ? ,? ? NULL? ? ,? ? 1? ? )
insert FlowAction(ID,ActionID,StepID,FlowID,ActionCode,ActionName,Params,EnableFlag) values(? ? 5? ? ,? ? 5? ? ,? ? 2? ? ,? ? 1? ? ,? ? 'parentcancel'? ? ,? ? N'上级取消'? ? ,? ? NULL? ? ,? ? 1? ? )
insert FlowAction(ID,ActionID,StepID,FlowID,ActionCode,ActionName,Params,EnableFlag) values(? ? 6? ? ,? ? 6? ? ,? ? 3? ? ,? ? 1? ? ,? ? 'managersubmit'? ? ,? ? N'经理提交'? ? ,? ? NULL? ? ,? ? 1? ? )
insert FlowAction(ID,ActionID,StepID,FlowID,ActionCode,ActionName,Params,EnableFlag) values(? ? 7? ? ,? ? 7? ? ,? ? 3? ? ,? ? 1? ? ,? ? 'managercancel'? ? ,? ? N'经理取消'? ? ,? ? NULL? ? ,? ? 1? ? )
insert FlowAction(ID,ActionID,StepID,FlowID,ActionCode,ActionName,Params,EnableFlag) values(? ? 10? ? ,? ? 8? ? ,? ? 4? ? ,? ? 1? ? ,? ? 'hrconfirmsubmit'? ? ,? ? N'HR确认提交'? ? ,? ? NULL? ? ,? ? 1? ? )
insert FlowAction(ID,ActionID,StepID,FlowID,ActionCode,ActionName,Params,EnableFlag) values(? ? 11? ? ,? ? 9? ? ,? ? 4? ? ,? ? 1? ? ,? ? 'hrconfirmcancel'? ? ,? ? N'HR确认取消'? ? ,? ? NULL? ? ,? ? 1? ? )
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表