public IActionResult Put(Guid id, [FromBody] TaskWork taskWork) { try { if (id.Equals(Guid.Empty)) { return(BadRequest(new { Message = "Id is Empty" })); } if (taskWork.IsObjectNull()) { return(BadRequest(new { Message = "Task Object is Null" })); } if (!ModelState.IsValid) { return(BadRequest(new { Message = "Invalid model object" })); } bool secuence = this.taskWorkBR.UdpdateTask(id, taskWork); if (!secuence) { return(NotFound()); } return(Ok(taskWork)); } catch (Exception ex) { return(StatusCode(500, new { Message = $"Internal server error: {ex.Message}" })); } }
public IHttpActionResult GetTaskReminders() { TaskCountModel result = new TaskCountModel(); result.TaskCount = TaskWork.GetUseableTaskWork().Count(c => c.ReceiverAccount == ClientCookie.UserCode && c.Status == TaskWorkStatus.UnFinish); result.ReminderCount = Remind.Count(c => c.ReceiverAccount == ClientCookie.UserCode && !c.IsReaded); result.NoticeCount = Notification.Count(ClientCookie.UserCode); //获取PMT任务数量 string encryptUserCode = Cryptography.Encrypt(ClientCookie.UserCode, DateTime.Now.ToString("yyyyMMdd"), "oms"); string redirectUrl = string.Format(Constants.AM_To_PMT_RedirectUrl, "&eid=" + encryptUserCode); string callPMTTaskUrl = string.Format(Constants.Get_PMT_TaskUrl, encryptUserCode); if (Constants.GetPMTTask) { var pmtTaskResult = ApiProxy.Call <PMTTaskCountModel>(callPMTTaskUrl); if (pmtTaskResult != null) { result.PMT_ApproveCount = pmtTaskResult.ApproveCount; result.PMT_DealCount = pmtTaskResult.DealCount; result.PMT_NotifyCount = pmtTaskResult.NotifyCount; result.PMT_RemindCount = pmtTaskResult.RemindCount; result.PMT_Total = pmtTaskResult.Total; } } result.PMT_URL = redirectUrl; return(Ok(result)); }
private void lstEvent_Click(object sender, EventArgs e) { #region Hiển thị cho các control ở trên this.txtTieuDe.Text = this.lstEvent.SelectedItems[0].SubItems[1].Text.Trim(); this.dtpBatDau.Value = DateTime.Parse(this.lstEvent.SelectedItems[0].SubItems[2].Text.Trim()); this.dtpKetThuc.Value = DateTime.Parse(this.lstEvent.SelectedItems[0].SubItems[3].Text.Trim()); this.rtbMoTa.Text = this.lstEvent.SelectedItems[0].SubItems[4].Text.Trim(); #endregion #region Hiển thị ảnh theo ID ở hàng được chọn using (FileStream stream = new FileStream(String.Format("{0}.jpg", this.lstEvent.SelectedItems[0].SubItems[0].Text.Trim()), FileMode.Open, FileAccess.Read)) { ptbDraw.Image = Image.FromStream(stream); } #endregion #region Hiển thị danh sách người dùng trong lstUsers this.lstUsers.Items.Clear(); //string displayUsers = this.lstEvent.SelectedItems[0].SubItems[5].Text.Trim(); //string[] displayForList = displayUsers.Split(); //for (int i = 0; i < displayForList.Count(); i++) //{ // //var user = listUsers.FirstOrDefault(x => x.username == displayForList[i]); // this.lstUsers.Items.Add(user as User); //} List <TaskWork> taskWorks = TaskController.GetAllTasks(); TaskWork task = taskWorks.Where(x => x.ID == int.Parse(this.lstEvent.SelectedItems[0].SubItems[0].Text)).Single(); foreach (var user in task.listUser) { this.lstUsers.Items.Add(user as User); } #endregion }
private void btEdit_Click(object sender, EventArgs e) { if (lbID.Text == "ID") { return; } if (!CheckInput.CheckInputAddTask(tbTitle, tbPercentCompleted, dtpFDate, dtpTDate, cmbPriority, errorProvider1)) { return; } TaskWork task = new TaskWork(); task.ID = Convert.ToInt32(lbID.Text); task.description = tbDescription.Text; task.Url = rtbLink.Text; task.Priority = cmbPriority.Text; task.Title = tbTitle.Text; task.ToDate = dtpTDate.Value; task.FromDate = dtpFDate.Value; task.PercentCompleted = Convert.ToInt32(tbPercentCompleted.Text); task.Users = new List <User>(); foreach (object item in lsbUsers.Items) { task.Users.Add(UserController.GetUser(item.ToString())); } TaskController.EditTask(task); HienThi(TaskController.GetListTask()); }
public IHttpActionResult IsFinished(int procInstId, string typeCode) { var userCode = ClientCookie.UserCode; var result = TaskWork.IsK2Finished(procInstId, typeCode, userCode); return(Ok(result)); }
public IActionResult Post([FromBody] TaskWork taskWorkNew) { if (taskWorkNew.IsObjectNull()) { return(BadRequest(new { Message = "DeathDate object is null" })); } if (!ModelState.IsValid) { return(BadRequest(new { Message = "Invalid model object" })); } try { this.taskWorkBR.CreateTask(taskWorkNew); if (taskWorkNew.IsEmptyObject()) { return(BadRequest(new { Message = "Task Object is not Created" })); } return(CreatedAtRoute("TaskWorkById", new { id = taskWorkNew.Id }, taskWorkNew)); } catch (Exception ex) { return(StatusCode(500, new { Message = $"Internal server error: {ex.Message}" })); } }
public static void EditTask(TaskWork task) { using (var _context = new DbGantChartContext()) { var taskdb = (from t in _context.TaskWorks.Include(x => x.Users) where t.ID == task.ID select t).Single(); taskdb.Title = task.Title; taskdb.description = task.description; taskdb.FromDate = task.FromDate; taskdb.ToDate = task.ToDate; taskdb.PercentCompleted = task.PercentCompleted; taskdb.Priority = task.Priority; taskdb.Url = task.Url; taskdb.Users.Clear(); foreach (User user in task.Users) { var userdb = (from u in _context.Users.Include(u => u.Tasks) where u.UserName == user.UserName select u).Single(); taskdb.Users.Add(userdb); } _context.SaveChanges(); } }
public IHttpActionResult EditMultipleProjects(PostEditProjects postEditProjects) { if (postEditProjects.EditProjects.Count > 0) { using (TransactionScope tranScope = new TransactionScope()) { var projectId = postEditProjects.ProjectId; var parentCode = postEditProjects.EditProjects[0].ParentCode; var projects = ProjectInfo.Search(pi => pi.ProjectId == projectId).ToList(); var usCode = projects[0].USCode; var store = StoreBasicInfo.GetStorInfo(usCode); var minExecuteSequence = postEditProjects.EditProjects.Min(p => p.ExecuteSequence); var maxExecuteSequance = postEditProjects.EditProjects.Max(p => p.ExecuteSequence); foreach (TopNavigator nav in postEditProjects.EditProjects) { var workflow = BaseWFEntity.GetWorkflowEntity(postEditProjects.ProjectId, nav.Code); workflow.Edit(); } string[] cancelWorkflowCodes = FlowInfo.Search(f => f.ParentCode == parentCode && f.ExecuteSequence <= maxExecuteSequance + 1).Select(f => f.Code).ToArray(); TaskWork.Cancel(t => cancelWorkflowCodes.Contains(t.TypeCode) && t.RefID == postEditProjects.ProjectId && t.Status != TaskWorkStatus.Finished); postEditProjects.EditProjects.Where(n => n.ExecuteSequence == minExecuteSequence).ToList().ForEach(n => { var project = projects.FirstOrDefault(pi => pi.FlowCode == n.Code); var originator = Employee.GetSimpleEmployeeByCode(project.CreateUserAccount); var source = FlowInfo.Get(n.ParentCode); var taskType = FlowInfo.Get(n.Code); TaskWork task = new TaskWork(); task.Id = Guid.NewGuid(); task.SourceCode = source.Code; task.SourceNameENUS = source.NameENUS; task.SourceNameZHCN = source.NameZHCN; task.Status = TaskWorkStatus.UnFinish; task.StatusNameZHCN = "任务"; task.StatusNameENUS = "任务"; task.Title = TaskWork.BuildTitle(postEditProjects.ProjectId, store.NameZHCN, store.NameENUS); task.RefID = postEditProjects.ProjectId; task.StoreCode = usCode; task.ReceiverAccount = originator.Code; task.ReceiverNameENUS = originator.NameENUS; task.ReceiverNameZHCN = originator.NameZHCN; task.TypeCode = taskType.Code; task.TypeNameENUS = taskType.NameENUS; task.TypeNameZHCN = taskType.NameZHCN; task.Url = TaskWork.BuildUrl(n.Code, projectId, ""); task.CreateTime = DateTime.Now; task.CreateUserAccount = ClientCookie.UserCode; task.Sequence = 0; task.ActivityName = "Start"; task.Add(); }); tranScope.Complete(); } return(Ok()); } else { return(BadRequest("you must select projects to be edited!")); } }
public void FinishTest() { var taskWork = TaskWork.FirstOrDefault(e => e.Id == new Guid("6bae9906-8608-49a2-8faa-0bbd5eaa43ee")); var wfEntity = BaseWFEntity.GetWorkflowEntity("MajorLease15030405", FlowCode.MajorLease_ConsInfo); wfEntity.Finish(TaskWorkStatus.K2ProcessApproved, taskWork); }
public IHttpActionResult PostClosureConsInvtChecking(ClosureConsInvtChecking entity) { //ClosureInfo closure = new ClosureInfo(); //closure = closure.GetByProjectId(entity.ProjectId.Value); var task = TaskWork.FirstOrDefault( e => e.ReceiverAccount == ClientCookie.UserCode && e.Status == 0 && e.SourceCode == FlowCode.Closure && e.TypeCode == FlowCode.Closure_ConsInvtChecking && e.RefID == entity.ProjectId); task.Finish(); // Start K2 Process string _procCode = WFConsInvtChecking.ProcessCode; List <ProcessDataField> _listDataFields = new List <ProcessDataField>(); var _diff = CalDiff(entity);; /* * Total Variance <= +-5% : 1 +-5% < Total Variance <= +- 10% : 2 * Total Variance > +- 10% : 3 */ var closureEntity = ClosureInfo.GetByProjectId(entity.ProjectId); _listDataFields.Add(new ProcessDataField("flag_DiffRangeType", _diff)); //传偏差值范围 1, 2, 3 //_listDataFields.Add(new ProcessDataField("dest_Creator", ClientCookie.UserCode)); _listDataFields.Add(new ProcessDataField("dest_Creator", entity.CreateUserAccount)); // 发起人也变成工程PM,不是actor _listDataFields.Add(new ProcessDataField("dest_EngPM", entity.PMSupervisor)); _listDataFields.Add(new ProcessDataField("dest_Fin", entity.FinControllerAccount)); _listDataFields.Add(new ProcessDataField("dest_VPGM", entity.VPGMAccount)); _listDataFields.Add(new ProcessDataField("dest_Group1", entity.FinanceAccount + ";" + entity.PMSupervisor)); _listDataFields.Add(new ProcessDataField("ProcessCode", _procCode)); //_listDataFields.Add(new ProcessDataField("dest_Receiver", "")); 知会人 //将 WFConsInvtChecking 的任务传给K2 var taskJson = Newtonsoft.Json.JsonConvert.SerializeObject(task); _listDataFields.Add(new ProcessDataField("ProjectTaskInfo", taskJson)); int _procInstID = K2FxContext.Current.StartProcess(_procCode, ClientCookie.UserCode, _listDataFields); if (_procInstID > 0) { // 更新 ConsInvtChecking 表的ProcInstId entity.ProcInstID = _procInstID; ClosureConsInvtChecking.Update(entity); SaveCommers(entity, ProjectAction.Submit, ProjectCommentStatus.Submit); ProjectInfo.FinishNode(entity.ProjectId, FlowCode.Closure_ConsInvtChecking, NodeCode.Closure_ConsInvtChecking_ResultUpload); } return(Ok()); }
public IHttpActionResult ProcessClosureWOCheckList(ClosureWOCheckList entity) { int procInstID = entity.ProcInstID.Value; string actionLower = entity.Action.ToLower(); string account = ClientCookie.UserCode; //评论信息 string comments = entity.Comments; // To-Do K2 action ProcessActionResult _action = BPMHelper.ConvertToProcAction(actionLower); if (actionLower.Equals(ProjectAction.Return, StringComparison.CurrentCultureIgnoreCase)) { TaskWork.Finish(e => e.RefID == entity.ProjectId && e.TypeCode == FlowCode.Closure_WOCheckList && e.Status == TaskWorkStatus.UnFinish && e.K2SN != entity.SN); } if (actionLower == "resubmit") { List <ProcessDataField> _listDataFields = new List <ProcessDataField>(); _listDataFields.Add(new ProcessDataField("dest_PMSupervisor", entity.PMSupervisorAccount)); // 工程PM直属上级 _listDataFields.Add(new ProcessDataField("dest_MCCLApprovers", string.Join(";", entity.MCCLApproverAccount, entity.MCCLITApproverAccount, entity.MCCLMCCLEqApproverAccount))); // MCCL Approvers K2FxContext.Current.ApprovalProcess(entity.SN, account, _action.ToString(), comments, _listDataFields); entity.Save(); _db.Entry(entity).State = EntityState.Modified; _db.SaveChanges(); } else { K2FxContext.Current.ApprovalProcess(entity.SN, account, _action.ToString(), comments); } if (actionLower == "submit") { } else if (actionLower == "resubmit") { ProjectInfo.FinishNode(entity.ProjectId, FlowCode.Closure_WOCheckList, NodeCode.Closure_WOCheckList_ClosingCost); } //ProjectInfo.UpdateProjectStatus(entity.ProjectId, FlowCode.Closure_WOCheckList, entity.GetProjectStatus(entity.Action)); SaveCommers(entity, _action.ToString(), ProjectCommentStatus.Submit); return(Ok(entity.Status)); }
public static bool IsFlowStarted(string projectId, string flowCode) { bool isStart = TaskWork.Any(e => e.RefID == projectId && e.TypeCode == flowCode && e.ActivityName != "Start" && e.ActivityName != "Originator" && e.Status == TaskWorkStatus.UnFinish); return(isStart); }
public IHttpActionResult Get(string sourceCode, string refId) { var task = TaskWork.Search(c => c.SourceCode == sourceCode && c.RefID == refId).FirstOrDefault(); if (task == null) { return(NotFound()); } return(Ok(task)); }
public IHttpActionResult PackageList(TaskWorkCondition condition) { condition.Status = TaskWorkStatus.Holding; condition.TypeCode = FlowCode.Reimage_Package; int totalSize; var data = TaskWork.Query(condition, out totalSize).ToList(); return(Ok(new { data, totalSize })); }
public IHttpActionResult ProcessClosureConsInvtChecking(ClosureConsInvtChecking entity) { int procInstID = entity.ProcInstID.Value; string actionLower = entity.Action.ToLower(); string account = ClientCookie.UserCode; //评论信息 string comments = entity.Comments; // To-Do K2 action ProcessActionResult _action = BPMHelper.ConvertToProcAction(actionLower); List <ProcessDataField> _listDataFields = new List <ProcessDataField>(); if (entity.Action == "ReSubmit") { var _diff = CalDiff(entity); _listDataFields.Add(new ProcessDataField("flag_DiffRangeType", _diff)); // 1, 2, 3 //_listDataFields.Add(new ProcessDataField("dest_Creator", ClientCookie.UserCode)); _listDataFields.Add(new ProcessDataField("dest_Creator", entity.CreateUserAccount)); // 发起人也变成工程PM,不是actor _listDataFields.Add(new ProcessDataField("dest_EngPM", entity.PMSupervisor)); _listDataFields.Add(new ProcessDataField("dest_Fin", entity.FinControllerAccount)); _listDataFields.Add(new ProcessDataField("dest_VPGM", entity.VPGMAccount)); _listDataFields.Add(new ProcessDataField("dest_Group1", entity.FinanceAccount + ";" + entity.PMSupervisor)); K2FxContext.Current.ApprovalProcess(entity.SN, account, _action.ToString(), comments, _listDataFields); } else { K2FxContext.Current.ApprovalProcess(entity.SN, account, _action.ToString(), comments); } if (actionLower.Equals(ProjectAction.Return, StringComparison.CurrentCultureIgnoreCase)) { TaskWork.Finish(e => e.RefID == entity.ProjectId && e.TypeCode == FlowCode.Closure_ConsInvtChecking && e.Status == TaskWorkStatus.UnFinish && e.K2SN != entity.SN); } if (actionLower == "resubmit") { ProjectInfo.FinishNode(entity.ProjectId, FlowCode.Closure_ConsInvtChecking, NodeCode.Closure_ConsInvtChecking_WriteOffData); } else if (actionLower == "return") { //ProjectInfo.Reset(entity.ProjectId, FlowCode.Closure_ConsInvtChecking); } SaveCommers(entity, _action.ToString(), ProjectCommentStatus.Submit); return(Ok()); }
public JsonResult GetExchange() { TaskWork taskwork = new TaskWork(); taskwork.CreteExchangeData(); string strMsg = "Complete GetExchange!!"; //return View(); return(Json(new { Response = strMsg }, JsonRequestBehavior.AllowGet)); }
public JsonResult WorkSchedule2() { TaskWork taskwork = new TaskWork(); taskwork.CreteStockData(); string strMsg = "Work Schedule2!!"; //return View(); return(Json(new { Response = strMsg }, JsonRequestBehavior.AllowGet)); }
public void CreateTask(TaskWork taskWorkNew) { try { this.repository.TaskWork.CreateTask(taskWorkNew); this.repository.Save(); } catch (Exception ex) { throw new Exception(ex.Message, ex.InnerException); } }
public IHttpActionResult ReturnTask(WorkflowStepInfo info) { var task = TaskWork.GetTaskBySN(info.SN); if (task == null || task.Status != TaskWorkStatus.UnFinish) { return(Ok()); } var entityId = new Guid(info.EntityID); string projectId = string.Empty; switch (info.WorkflowName) { case FlowCode.Closure_ClosurePackage: var closurePackage = ClosurePackage.Get(entityId); projectId = closurePackage.ProjectId; break; case FlowCode.TempClosure_ClosurePackage: var tempClosurePackage = TempClosurePackage.Get(entityId); projectId = tempClosurePackage.ProjectId; break; case FlowCode.MajorLease_Package: var majorLeasePackage = MajorLeaseChangePackage.Get(entityId); projectId = majorLeasePackage.ProjectId; break; case FlowCode.Rebuild_Package: var rebuildPackage = RebuildPackage.Get(entityId); projectId = rebuildPackage.ProjectId; break; case FlowCode.Renewal_Package: var renewalPackage = RenewalPackage.Get(entityId); projectId = renewalPackage.ProjectId; break; case FlowCode.Reimage_Package: var reimagePackage = RenewalPackage.Get(entityId); projectId = reimagePackage.ProjectId; break; default: break; } if (!string.IsNullOrEmpty(projectId)) { TaskWork.Finish(e => e.RefID == projectId && e.TypeCode == info.WorkflowName && e.Status == TaskWorkStatus.UnFinish && e.ActivityName != "Originator"); } return(Ok()); }
public IHttpActionResult GetTaskReminders(int pageSize = 5) { ProjectReminder reminder = new ProjectReminder(); reminder.TaskCount = TaskWork.GetUseableTaskWork().Count(c => c.ReceiverAccount == ClientCookie.UserCode && c.Status == 0 && c.ActionName != ProjectAction.Pending); reminder.Tasks = TaskWork.GetUseableTaskWork().Where(c => c.ReceiverAccount == ClientCookie.UserCode && c.Status == TaskWorkStatus.UnFinish) .OrderByDescending(c => c.CreateTime).Take(pageSize).ToList(); reminder.RemindCount = Remind.Count(c => c.ReceiverAccount == ClientCookie.UserCode && !c.IsReaded); reminder.Reminds = Remind.Search(c => c.ReceiverAccount == ClientCookie.UserCode && !c.IsReaded) .OrderByDescending(c => c.CreateTime).Take(pageSize).ToList(); return(Ok(reminder)); }
public JsonResult WorkSchedule() { TaskWork taskwork = new TaskWork(); taskwork.CreteData(); //ViewBag.Message = "Work Schedule!!"; string strMsg = "Work Schedule!!"; //return View(); return(Json(new { Response = strMsg }, JsonRequestBehavior.AllowGet)); }
public WFTempClosureLegalReview(TempClosureLegalReview entity) : base(entity) { var legal = ProjectUsers.FirstOrDefault(pu => pu.ProjectId == entity.ProjectId && pu.RoleCode == ProjectUserRoleCode.Legal); var task = TaskWork.GetTaskWork(entity.ProjectId, ClientCookie.UserCode, TaskWorkStatus.UnFinish, FlowCode.TempClosure, FlowCode.TempClosure_LegalReview); K2Param.Task = task; K2Param.AddDataField("dest_Creator", Entity.CreateUserAccount); K2Param.AddDataField("dest_Legal", legal.UserAccount); K2Param.AddDataField("ProcessCode", ProcessCode); K2Param.AddDataField("ProjectTaskInfo", JsonConvert.SerializeObject(task)); }
public IHttpActionResult GetMaterTrackReps(string workflowId, Guid nodeId) { var tracks = MaterTrack.Search(m => m.WorkflowId == workflowId && m.NodeId == nodeId).ToList(); var reps = tracks.Where(t => t.TrackType == MaterTrackType.Rep).OrderBy(t => t.CreateTime).Select(t => { var rep = new MaterTrackRep(); rep.Id = t.Id; rep.Content = t.Content; rep.CreateTime = t.CreateTime; rep.Creator = t.Creator; rep.CreatorZHCN = t.CreatorZHCN; rep.CreatorENUS = t.CreatorENUS; rep.TrackType = (MaterTrackType)t.TrackType; if (tracks.Count(t2 => t2.TrackType == MaterTrackType.Rep && t2.CreateTime > t.CreateTime) > 0) { rep.IsFinish = true; } else { if (TaskWork.Count(t2 => t2.RefID == workflowId && t2.Status == TaskWorkStatus.UnFinish && t2.ActivityName.Contains("Start_MaterTrack")) > 0) { rep.IsFinish = false; } else { rep.IsFinish = true; } } rep.Replies = tracks.Where(f => f.ParentId == t.Id).OrderBy(f => f.CreateTime).Select(f => { var reply = new MaterTrackReply(); reply.Id = f.Id; reply.Content = f.Content; reply.CreateTime = f.CreateTime; reply.Creator = f.Creator; reply.CreatorZHCN = f.CreatorZHCN; reply.CreatorENUS = f.CreatorENUS; reply.TrackType = (MaterTrackType)f.TrackType; return(reply); }).ToList(); return(rep); }).ToList(); return(Ok(new { Reps = reps, IsLegal = ProjectUsers.IsRole(workflowId, ClientCookie.UserCode, ProjectUserRoleCode.Legal), IsAssetActor = ProjectUsers.IsRole(workflowId, ClientCookie.UserCode, ProjectUserRoleCode.AssetActor) })); }
public bool Add(MaterTrack materTrack) { using (TransactionScope tranScope = new TransactionScope()) { materTrack.Id = Guid.NewGuid(); materTrack.CreateTime = DateTime.Now; MaterTrack.Add(materTrack); var project = ProjectInfo.Get(materTrack.WorkflowId, materTrack.WorkflowType); var store = StoreBasicInfo.FirstOrDefault(s => s.StoreCode == project.USCode); var Codes = materTrack.NodeType.Split('_'); var url = string.Format("/{0}/Main#/{1}/Process/View?projectId={2}", Codes[0], Codes[1], materTrack.WorkflowId); //if (Codes[0] == "Closure") //临时改动 只针对Closure,因为Closure 用的还是老的URL //{ // url = string.Format("/{0}/Main#/{0}/{1}/Process/View?projectId={2}", Codes[0], Codes[1], materTrack.WorkflowId); //} var title = TaskWork.BuildTitle(materTrack.WorkflowId, store.NameZHCN, store.NameENUS); switch (materTrack.TrackType) { case MaterTrackType.Rep: { var actor = ProjectUsers.FirstOrDefault(pu => pu.ProjectId == materTrack.WorkflowId && pu.RoleCode == ProjectUserRoleCode.AssetActor); TaskWork.SendTask(materTrack.WorkflowId, title, project.USCode, url, actor, materTrack.WorkflowType, materTrack.NodeType, "Start_MaterTrack_Rep"); } break; case MaterTrackType.Feedback: { var legal = ProjectUsers.FirstOrDefault(pu => pu.ProjectId == materTrack.WorkflowId && pu.RoleCode == ProjectUserRoleCode.Legal); TaskWork.Finish(t => t.RefID == materTrack.WorkflowId && t.SourceCode == materTrack.WorkflowType && t.TypeCode == materTrack.NodeType && t.ActivityName == "Start_MaterTrack_Rep" && t.Status == TaskWorkStatus.UnFinish); if (TaskWork.Count(t => t.RefID == materTrack.WorkflowId && t.SourceCode == materTrack.WorkflowType && t.TypeCode == materTrack.NodeType && t.ActivityName == "Start_MaterTrack_Feedback" && t.Status == TaskWorkStatus.UnFinish) == 0) { TaskWork.SendTask(materTrack.WorkflowId, title, project.USCode, url, legal, materTrack.WorkflowType, materTrack.NodeType, "Start_MaterTrack_Feedback"); } } break; case MaterTrackType.Reply: { var actor = ProjectUsers.FirstOrDefault(pu => pu.ProjectId == materTrack.WorkflowId && pu.RoleCode == ProjectUserRoleCode.AssetActor); TaskWork.Finish(t => t.RefID == materTrack.WorkflowId && t.SourceCode == materTrack.WorkflowType && t.TypeCode == materTrack.NodeType && t.ActivityName == "Start_MaterTrack_Feedback" && t.Status == TaskWorkStatus.UnFinish); if (TaskWork.Count(t => t.RefID == materTrack.WorkflowId && t.SourceCode == materTrack.WorkflowType && t.TypeCode == materTrack.NodeType && t.ActivityName == "Start_MaterTrack_Rep" && t.Status == TaskWorkStatus.UnFinish) == 0) { TaskWork.SendTask(materTrack.WorkflowId, title, project.USCode, url, actor, materTrack.WorkflowType, materTrack.NodeType, "Start_MaterTrack_Rep"); } } break; } tranScope.Complete(); return(true); } }
public WFTempClosurePackage(TempClosurePackage entity) : base(entity) { var approvers = ApproveDialogUser.GetApproveDialogUser(entity.Id.ToString()); var task = TaskWork.FirstOrDefault(t => t.RefID == entity.ProjectId && t.TypeCode == FlowCode.TempClosure_ClosurePackage); K2Param.AddDataField("dest_Creator", Entity.CreateUserAccount); K2Param.AddDataField("dest_MRMgrs", string.Concat(approvers.MarketMgrCode, ";", !string.IsNullOrEmpty(approvers.RegionalMgrCode) ? approvers.RegionalMgrCode : "")); K2Param.AddDataField("dest_GMApprovers", string.Concat(approvers.MDDCode, ";", approvers.GMCode, ";", approvers.FCCode)); K2Param.AddDataField("dest_VPGM", approvers.VPGMCode); //K2Param.AddDataField("dest_DevVP", Entity.DevVP); Cary: 没有这个环节了。2014-9-11 K2Param.AddDataField("ProcessCode", ProcessCode); K2Param.AddDataField("ProjectTaskInfo", JsonConvert.SerializeObject(task)); }
public void CompleteNotifyTask(string projectId) { var task = TaskWork.Search(e => e.RefID == projectId && e.Status == TaskWorkStatus.UnFinish && (e.TypeCode == WorkflowCode) && e.ActivityName == "Notify").FirstOrDefault(); if (task != null) { task.Status = TaskWorkStatus.Finished; //string strTypeCode = task.TypeCode.Split('_')[1]; //task.Url = string.Format("/{0}/Main#/{1}/Process/View?projectId={2}", task.TypeCode.Split('_')[0], strTypeCode, projectId); TaskWork.Update(task); } }
public IHttpActionResult QueryCheckPoints(string projectId, string flowCode) { var list = nodeInfo.QueryCheckPoints(projectId, flowCode); var project = ProjectInfo.Get(projectId, flowCode.Split('_')[0]); return(Ok(new { Nodes = list, Info = project, Progress = ProjectProgress.GetProgress(projectId), Operators = TaskWork.GetOperators(flowCode, projectId), IsFinished = ProjectInfo.IsFlowFinished(projectId, flowCode) })); }
public List <TaskWork> ChangeWorkflowApprovers(string projectId, ApproveUsers approver) { var workflowTasks = TaskWork.Search(e => e.RefID == projectId && e.Status == TaskWorkStatus.UnFinish && e.K2SN != null).ToList(); var approveDiallogUsers = ApproveDialogUser.Search(e => e.ProjectId == projectId).ToList(); ChangeWorkflowApprovers(workflowTasks, approveDiallogUsers, approver); ApproveDialogUser.Update(approveDiallogUsers.ToArray()); TaskWork.Update(workflowTasks.ToArray()); return(workflowTasks); }
private void btnDeleteEvent_Click(object sender, EventArgs e) { //int index = this.listTasks.FindIndex(x => x.ID == int.Parse(this.lstEvent.SelectedItems[0].SubItems[0].Text)); //this.listTasks.RemoveAt(index); //this.lstEvent.SelectedItems[0].Remove(); List <TaskWork> taskWorks = TaskController.GetAllTasks(); TaskWork task = taskWorks.Where(x => x.ID == int.Parse(this.lstEvent.SelectedItems[0].SubItems[0].Text)).Single(); if (TaskController.DeleteTask(task) is false) { MessageBox.Show("Can not delete this event!", "Error"); } DisplayTask(); }
public IHttpActionResult Get(string projectId, Guid?Id = null) { var project = ProjectInfo.Get(projectId, FlowCode.TempClosure_ClosurePackage); var tempClosure = TempClosureInfo.FirstOrDefault(tc => tc.ProjectId == projectId); var isActor = ProjectUsers.IsRole(projectId, ClientCookie.UserCode, ProjectUserRoleCode.AssetActor); TempClosurePackage entity; if (Id != null) { entity = TempClosurePackage.Get(Id.Value); } else { entity = TempClosurePackage.Get(projectId); } if (entity != null) { entity.IsProjectFreezed = entity.CheckIfFreezeProject(projectId); var SavedComment = ProjectComment.GetSavedComment(entity.Id, "TempClosurePackage", ClientCookie.UserCode); var hasValidTask = TaskWork.Any(t => t.RefID == projectId && t.Status == TaskWorkStatus.UnFinish && t.ReceiverAccount != ClientCookie.UserCode); return(Ok(new { Info = tempClosure, ClosurePackage = entity, Approver = ApproveDialogUser.GetApproveDialogUser(projectId, FlowCode.TempClosure_ClosurePackage), ProjectComment = SavedComment != null ? SavedComment.Content : "", Editable = ProjectInfo.IsFlowEditable(projectId, FlowCode.TempClosure_ClosurePackage), Recallable = ProjectInfo.IsFlowRecallable(projectId, FlowCode.TempClosure_ClosurePackage), Rejectable = ApproveDialogUser.Any(u => u.ProjectId == projectId && u.FlowCode == FlowCode.TempClosure_ClosurePackage && u.VPGMCode == ClientCookie.UserCode), Savable = ProjectInfo.IsFlowSavable(projectId, FlowCode.TempClosure_ClosurePackage) })); } else { entity = TempClosurePackage.Create(projectId); return(Ok(new { Info = tempClosure, ClosurePackage = entity, Approver = ApproveDialogUser.GetApproveDialogUser(projectId, FlowCode.TempClosure_ClosurePackage), ProjectComment = "", Editable = (project.Status == ProjectStatus.Finished || project.Status == ProjectStatus.Rejected) && isActor && !entity.IsHistory, Recallable = project.Status == ProjectStatus.UnFinish && isActor && project.NodeCode != NodeCode.Start, Rejectable = ApproveDialogUser.Any(u => u.ProjectId == projectId && u.FlowCode == FlowCode.TempClosure_ClosurePackage && u.VPGMCode == ClientCookie.UserCode), Savable = ProjectInfo.IsFlowSavable(projectId, FlowCode.TempClosure_ClosurePackage) })); } }