需求:
1、业务数据要保存在我们自己的数据库里
2、CCFlow有保存草稿的功能,但是领导要求每个业务都要有草稿箱,流程从草稿箱发起,每个业务单独查询,而不要在CCFlow的统一界面查询,所以每个业务的列表页面以及增删改查都要有的
3、工作流的消息和我们应用系统的消息要整合到一起,放在一起排序、提示
4、我们项目用的框架是第三方的我记录MVC框架,框架根据Web.config配置的路径按照MVC的模式解析路由,配置的路径之外的,还是按照ASP.NET WebForm的方式处理,所以我把CCFlow的ClientBin、DataUser、WF文件夹直接放到Web下,然后引用所需的dll。VS就是强大,两个不同的解决方案,打上断点照样可以调试,所以同时运行CCFlow的源码后,可以从我们项目的代码处运行到CCFlow的源码的断点处。
5、审核通过,则发送到下一步,审核不通过,则直接结束流程
6、支持分公司,同一个业务,各分公司的流程可能是不一样的
实现:
一、CCFlow的数据库与应用系统的数据库耦合
部门: SELECT TOP (100) PERCENT dept.Id AS No, dept.Name + '(' + comp.Name + ')' AS Name, CAST(dept.Pid AS varchar(20)) AS ParentNo, '' AS NameOfPath, '' AS TreeNo, '' AS Leader, '' AS Tel, 0 AS Idx, 0 AS IsDir, '' AS FK_DeptType FROM CQSD_Dev.dbo.IMP_Dept AS dept INNER JOIN CQSD_Dev.dbo.IMP_Dept AS comp ON comp.Id = dept.Cid WHERE (dept.DelFlg = 0) ORDER BY comp.Pid, comp.Id 岗位: SELECT TOP (100) PERCENT job.Id AS No, job.Name + '(' + comp.Name + ')' AS Name, 3 AS StaGrade, '' AS DutyReq, '' AS Makings, '' AS FK_StationType FROM CQSD_Dev.dbo.IMP_Job AS job INNER JOIN CQSD_Dev.dbo.IMP_Dept AS dept ON dept.Id = job.DeptId INNER JOIN CQSD_Dev.dbo.IMP_Dept AS comp ON comp.Id = dept.Cid WHERE (job.DelFlg = 0) ORDER BY comp.Id 人员: SELECT u.Username AS No, e.Name, 'pub' AS Pass, e.DeptId AS FK_Dept, '' AS EmpNo, '' AS FK_Duty, '' AS Leader, '123' AS SID, '' AS Tel, '' AS Email, '' AS NumOfDept FROM CQSD_Dev.dbo.IMP_Employee AS e INNER JOIN CQSD_Dev.dbo.Sys_User AS u ON u.RelationId = e.Id WHERE (e.DelFlg = 0) 部门人员: SELECT u.Username AS FK_Emp, e.DeptId AS FK_Dept FROM CQSD_Dev.dbo.IMP_Employee AS e INNER JOIN CQSD_Dev.dbo.Sys_User AS u ON u.RelationId = e.Id WHERE (e.DelFlg = 0) AND (e.Code IS NOT NULL) AND (e.Code <> '') 岗位人员: SELECT u.Username AS FK_Emp, e.JobId AS FK_Station FROM CQSD_Dev.dbo.IMP_Employee AS e INNER JOIN CQSD_Dev.dbo.Sys_User AS u ON u.RelationId = e.Id WHERE (e.DelFlg = 0) AND (e.Code IS NOT NULL) AND (e.Code <> '')