public static bool applyItem(String itemid,String username,int actorUserId) { try { using (DataClassesEduDataContext dc = new DataClassesEduDataContext()) { t_GZL_Item item = dc.t_GZL_Item.Where(i => i.ItemId == Convert.ToInt32(itemid)).Single(); t_GZL_TaskList task = dc.t_GZL_TaskList.Where(t => t.itemGuid == item.itemGuid).Single(); t_GZL_Actor actor = dc.t_GZL_Actor.Where(a => a.actorId == task.actorId).Single(); int sortNo = (int)actor.sortNo; var actor_next = dc.t_GZL_Actor.Where(a => a.routId == actor.routId && a.sortNo == sortNo + 1); if (actor_next.Count() != 0)//还有下一步流程 { task.actorId = actor_next.Single().actorId; item.State = "待审批"; //修改任务状态 t_GZL_TaskHistory history = new t_GZL_TaskHistory();//插入历史记录 history.actorId = actor.actorId; history.createDate = System.DateTime.Now; history.itemGuid = item.itemGuid; history.itemId = item.ItemId; history.operatorName = username; history.operatorUserId = item.ApplyUserId; history.action = "送审"; dc.t_GZL_TaskHistory.InsertOnSubmit(history); var has_actuser = dc.t_GZL_actorUser.Where(u => u.actorId == task.actorId && u.itemGuid == item.itemGuid && u.operateUserId == actorUserId && u.taskId == task.taskId); if (has_actuser != null && has_actuser.Count() > 0) { } else//第一次申请则插入执行人,否则用原有 { t_GZL_actorUser actUser = new t_GZL_actorUser();//插入下一步执行的人 actUser.actorId = task.actorId; actUser.itemGuid = item.itemGuid; actUser.itemId = item.ItemId; actUser.operateUserId = actorUserId; actUser.taskId = task.taskId; dc.t_GZL_actorUser.InsertOnSubmit(actUser); } t_User_Task userTask = new t_User_Task();//插入下一步执行人的任务,用于提醒 userTask.description = "您有一个待审批的采购项目"; userTask.isClick = false; userTask.url = "/Application/GZL/CG/ApplyApprove.aspx"; userTask.createtime = DateTime.Now; userTask.userid = actorUserId; dc.t_User_Task.InsertOnSubmit(userTask); dc.SubmitChanges(); return true; } else return false; } }catch (Exception ex) { throw new Exception("送审错误:"+ ex.Message); } }
public static bool insertActorUser(t_GZL_actorUser actorUser) { using (DataClassesEduDataContext dc = new DataClassesEduDataContext()) { dc.t_GZL_actorUser.InsertOnSubmit(actorUser); dc.SubmitChanges(); return true; } }
protected void btAdd_Click(object sender, EventArgs e) { try { t_GZL_Item item = new t_GZL_Item(); item.ApplyDate = DateTime.Now; item.ApplyUserId = (int)Session["userid"]; item.deptId = Convert.ToInt32(ddlDept.SelectedValue); item.ItemName = tbItemName.Text; item.ItemType = "采购单"; item.RoutId = 1; item.State = "待发布"; Guid guid = Guid.NewGuid(); item.itemGuid = guid; BLL.Application.GZL.GzlManagement.createItem(item); t_GZL_TaskList task = new t_GZL_TaskList(); t_GZL_Actor actor = BLL.Application.GZL.Setting.ActorManagement.getActorForNextSortByRoutId(1, 0); if (actor != null) task.actorId = actor.actorId; task.itemGuid = guid; task.state = "待检出"; task.version = 1; BLL.Application.GZL.GzlManagement.insertTask(task); t_GZL_actorUser au = new t_GZL_actorUser(); au.actorId = actor.actorId; au.itemGuid = guid; au.operateUserId = (int)Session["userid"]; BLL.Application.GZL.GzlManagement.insertActorUser(au); t_GZL_TaskHistory history = new t_GZL_TaskHistory(); history.actorId = actor.actorId; history.createDate = System.DateTime.Now; history.itemGuid = guid; history.operatorName = Session["username"].ToString(); history.action = "创建"; BLL.Application.GZL.GzlManagement.insertTaskHistory(history); lbMessage.Text = "添加成功"; databind(); } catch (Exception ex) { lbMessage.Text = "添加失败:" + ex.Message; } }
//送审下一步执行用户的操作 public static bool applyItem(Guid itemguid, String opinion, String operatorname, int operatorUserId,int nextOperatorId,String actorname) { try { using (DataClassesEduDataContext dc = new DataClassesEduDataContext()) { t_GZL_Item item = dc.t_GZL_Item.Where(i => i.itemGuid == itemguid).Single(); t_GZL_TaskList task = dc.t_GZL_TaskList.Where(t => t.itemGuid == item.itemGuid).Single(); t_GZL_Actor actor = dc.t_GZL_Actor.Where(a => a.actorId == task.actorId).Single(); int sortNo = (int)actor.sortNo; var actor_next = dc.t_GZL_Actor.Where(a => a.routId == actor.routId && a.sortNo == sortNo + 1); if (actor_next.Count() != 0)//还有下一步流程 { task.actorId = actor_next.Single().actorId; item.State = "审批中"; //修改任务状态 t_GZL_TaskHistory history = new t_GZL_TaskHistory();//插入历史记录 history.actorId = actor.actorId; history.createDate = System.DateTime.Now; history.itemGuid = item.itemGuid; history.itemId = item.ItemId; history.operatorName = operatorname; history.operatorUserId = operatorUserId; history.memo = opinion; history.action = "同意"; dc.t_GZL_TaskHistory.InsertOnSubmit(history); var has_actuser = dc.t_GZL_actorUser.Where(u => u.actorId == task.actorId && u.itemGuid == item.itemGuid && u.operateUserId == operatorUserId && u.taskId == task.taskId); if ( has_actuser.Count() > 0) { } else//第一次申请则插入执行人,否则用原有 { t_GZL_actorUser actUser = new t_GZL_actorUser();//插入下一步执行的人 actUser.actorId = task.actorId; actUser.itemGuid = item.itemGuid; actUser.itemId = item.ItemId; actUser.operateUserId = nextOperatorId; actUser.taskId = task.taskId; dc.t_GZL_actorUser.InsertOnSubmit(actUser); } t_User_Task userTask = new t_User_Task();//插入下一步执行人的任务,用于提醒 userTask.description = "您有一个待审批的采购项目"; userTask.isClick = false; userTask.url = "/Application/GZL/CG/ApplyApprove.aspx"; userTask.createtime = DateTime.Now; userTask.userid = nextOperatorId; dc.t_User_Task.InsertOnSubmit(userTask); t_Form_Purchase form = dc.t_Form_Purchase.Where(f => f.itemGuid == item.itemGuid).Single();//更新表单 switch(actorname) { case "主管校长审批": form.FenGuanYiJian = opinion + " " + operatorname; break; case "财务校长审批": form.XiaoZhangYiJian = opinion + " "+operatorname; break; } dc.SubmitChanges(); return true; } else return false; } } catch (Exception ex) { throw new Exception("送审错误:" + ex.Message); } }