public HrsLeaveResult Insert(BizAppFlowEntity bizapp) { IDbSession session = SessionFactory.CreateSession(); try { var result = Repository.Insert <BizAppFlowEntity>(session.Connection, bizapp); if (result > 0) { HrsLeaveResult.ResultIdentity = result; return(HrsLeaveResult.Success); } else { return(HrsLeaveResult.Failed("")); } } catch (System.Exception exception) { return(HrsLeaveResult.Failed(exception.Message)); } finally { session.Dispose(); } }
/// <summary> /// 得到一个对象实体 /// </summary> private static BizAppFlowEntity GetBizAppFlowModel(DataTable dt) { if (dt != null && dt.Rows != null && dt.Rows.Count > 0) { BizAppFlowEntity model = new BizAppFlowEntity(); if (dt.Rows[0]["ID"].ToString() != "") { model.ID = int.Parse(dt.Rows[0]["ID"].ToString()); } model.AppName = dt.Rows[0]["AppName"].ToString(); model.AppInstanceID = dt.Rows[0]["AppInstanceID"].ToString(); model.ActivityName = dt.Rows[0]["ActivityName"].ToString(); model.Remark = dt.Rows[0]["Remark"].ToString(); if (dt.Rows[0]["ChangedTime"].ToString() != "") { model.ChangedTime = DateTime.Parse(dt.Rows[0]["ChangedTime"].ToString()); } if (dt.Rows[0]["ChangedUserID"].ToString() != "") { model.ChangedUserID = dt.Rows[0]["ChangedUserID"].ToString(); } model.ChangedUserName = dt.Rows[0]["ChangedUserName"].ToString(); return(model); } else { return(null); } }
/// <summary> /// 新增一条业务流程数据 /// </summary> /// <param name="model"></param> /// <returns></returns> public static int AddBizAppFlow(BizAppFlowEntity model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into BizAppFlow("); strSql.Append("AppName,AppInstanceID,ActivityName,Remark,ChangedTime,ChangedUserID,ChangedUserName"); strSql.Append(") values ("); strSql.Append("@AppName,@AppInstanceID,@ActivityName,@Remark,@ChangedTime,@ChangedUserID,@ChangedUserName"); strSql.Append(") "); strSql.Append(";select @@IDENTITY"); SqlParameter[] parameters = { new SqlParameter("@AppName", SqlDbType.NVarChar, 50), new SqlParameter("@AppInstanceID", SqlDbType.VarChar, 50), new SqlParameter("@ActivityName", SqlDbType.NVarChar, 50), new SqlParameter("@Remark", SqlDbType.NVarChar, 1000), new SqlParameter("@ChangedTime", SqlDbType.DateTime), new SqlParameter("@ChangedUserID", SqlDbType.Int, 4), new SqlParameter("@ChangedUserName", SqlDbType.NVarChar, 50) }; int idx = 0; parameters[idx++].Value = model.AppName; parameters[idx++].Value = model.AppInstanceID; parameters[idx++].Value = model.ActivityName; parameters[idx++].Value = model.Remark; parameters[idx++].Value = model.ChangedTime; parameters[idx++].Value = model.ChangedUserID; parameters[idx++].Value = model.ChangedUserName; object obj = SQLHelper.ExecuteScalar(strSql.ToString(), parameters); if (obj == null) { return(0); } else { return(Convert.ToInt32(obj)); } }
/// <summary> /// 新增一条业务流程数据 /// </summary> /// <param name="model"></param> /// <returns></returns> public static int AddBizAppFlow(BizAppFlowEntity model) { return(WorkFlowManager.AddBizAppFlow(model)); }
public async Task <ActionResult> Add(LeaveViewModel leave) { string processGUID = leave.ProcessGUID; //验证不通过,重新填写表单 if (!ModelState.IsValid) { return(View()); } IWorkflowService service = new WorkflowService(); //流程开始第一步 ActivityEntity firstActivity = service.GetFirstActivity(leave.ProcessGUID); //该处较上一版本有变化,上一版本为GUID类型 string firstActivityGUID = firstActivity.ActivityGUID; IList <NodeView> nextActivity = service.GetNextActivity(leave.ProcessGUID, firstActivityGUID, GetCondition("days-" + leave.Days)); //表示有下一位审批者 if (nextActivity.Count() > 0) { //下一步角色ID审批者 string outerId = nextActivity[0].Roles[0].ID.ToString(); //这里只取第一个审批者,WebDemo 是弹窗形式选择 //审批用户id IEnumerable <int> userId = RoleManager.FindById(Convert.ToInt32(outerId)).Users.Select(t => t.UserId); ApplicationUser user = await UserManager.FindByIdAsync(Convert.ToInt32(userId.ToList()[0])); //提交请假信息 LeaveEntity leaveE = new LeaveEntity() { FromDate = leave.BeginTime, ToDate = leave.EndTime, Days = leave.Days, LeaveType = leave.LeaveType, CurrentActivityText = "", Status = 0, CreatedUserID = Convert.ToInt32(User.Identity.GetUserId()), CreatedUserName = User.Identity.Name, CreatedDate = DateTime.Now }; HrsLeaveResult result = new WorkFlowManager().Insert(leaveE); if (result.Successed) { WfAppRunner initiator = new WfAppRunner(); initiator.AppName = "请假流程"; initiator.AppInstanceID = result.ResultIdentities.ToString(); initiator.ProcessGUID = processGUID; initiator.UserID = User.Identity.GetUserId(); initiator.UserName = User.Identity.Name; initiator.Conditions = GetCondition(string.Format("days-{0}", leave.Days)); WfExecutedResult startedResult = service.StartProcess(initiator); if (startedResult.Status != WfExecutedStatus.Success) { //给出提示 } //送往下一步 PerformerList pList = new PerformerList(); //这里使用真实姓名代替 pList.Add(new Performer(user.Id.ToString(), user.RealName)); initiator.NextActivityPerformers = new Dictionary <String, PerformerList>(); initiator.NextActivityPerformers.Add(nextActivity[0].ActivityGUID, pList); WfExecutedResult runAppResult = service.RunProcessApp(initiator); if (runAppResult.Status != WfExecutedStatus.Success) { this.Content("<script>alert('" + runAppResult.Message + "');</script>"); } //保存业务数据 BizAppFlowEntity AppFlowEntity = new BizAppFlowEntity(); AppFlowEntity.AppName = "流程发起"; AppFlowEntity.AppInstanceID = result.ResultIdentities.ToString(); AppFlowEntity.ActivityName = "流程发起"; AppFlowEntity.Remark = string.Format("申请人:{0}-{1}", User.Identity.GetUserId(), User.Identity.Name); AppFlowEntity.ChangedTime = DateTime.Now; AppFlowEntity.ChangedUserID = User.Identity.GetUserId(); AppFlowEntity.ChangedUserName = User.Identity.Name; HrsLeaveResult resultBiz = new WorkFlowManager().Insert(AppFlowEntity); if (resultBiz.Successed) { //给出前台提示 this.Content("", "<script>alert('流程发起成功');</script>"); } } } else { //显示前台错误,人事人员审批失败 ModelState.AddModelError("Human", "该用户暂时不可提交审批,未查询到该用户的下一位审批者"); return(View()); } return(RedirectToAction("MySlickflow", "Slickflow")); }