public void buildTree(ArrayList al, ResultNode[] rn, int parentId, int currentId) { for (int i = 0; i < al.Count; i++) { CrowdTask ctl = al[i] as CrowdTask; ArrayList alist = findDecomposeResultByWorkflowIdAndVote(ctl.taskWorkflowId, ctl.mainTaskId); if (alist.Count != 0) { int t = currentId; //记录下分解内rong for (int k = 0; k < alist.Count; k++) { t++; DecomposeResult dr = alist[k] as DecomposeResult; rn[t].taskName = dr.taskName; rn[t].parentId = parentId; if (dr.simple == "yes") { rn[t].taskSolution = findSolveResultByTaskNameAndBestAnswer(dr.taskName, dr.mainTaskId).taskSolution; } } int r = currentId; for (int k = 0; k < alist.Count; k++) { DecomposeResult dr = alist[k] as DecomposeResult; if (dr.simple != "yes") { ArrayList klist = findCrowdTaskByParentWorkflowIdAndTaskTypeAndTaskName(dr.workflow_id, dr.taskName, TaskType.decomposeTask, dr.mainTaskId); buildTree(klist, rn, k + currentId + 1, currentId + alist.Count); } } } } }
public Dictionary <string, ArrayList> findAllDecomposeResultByParentWorkflowId(string parent_workflow_id, string mainTaskId) { Dictionary <string, ArrayList> dic = new Dictionary <string, ArrayList>(); SqlCommand com = null; try { conn.Open(); string sql = string.Format("select * from decomposeResult where parent_workflow_id='{0}' and mainTaskId='{1}'", parent_workflow_id, mainTaskId); com = new SqlCommand(sql, conn); SqlDataReader dr = com.ExecuteReader(); ArrayList arrayList = new ArrayList(); while (dr.Read()) { DecomposeResult decomposeResult = new DecomposeResult(); decomposeResult.taskName = dr["taskName"].ToString(); decomposeResult.taskDescription = dr["taskDescription"].ToString(); decomposeResult.taskOrder = dr["taskOrder"].ToString(); decomposeResult.workflow_id = dr["workflow_id"].ToString(); decomposeResult.parent_workflow_id = dr["parent_workflow_id"].ToString(); decomposeResult.simple = dr["simples"].ToString(); decomposeResult.mainTaskId = dr["mainTaskId"].ToString(); arrayList.Add(decomposeResult); } ArrayList list = new ArrayList(); for (int i = 0; i < arrayList.Count - 1; i++) { DecomposeResult dr1 = arrayList[i] as DecomposeResult; DecomposeResult dr2 = arrayList[i + 1] as DecomposeResult; if (dr1.workflow_id == dr2.workflow_id) { list.Add(dr1); list.Add(dr2); } } } catch (Exception e) { throw e; } finally { if (com != null) { com.Dispose(); } if (conn != null) { conn.Close(); } } return(dic); }
public Dictionary <string, ArrayList> getAllNeedSolvedCrowTaskInDecomposeResult(string mainTaskId) { // int result = 0; SqlCommand com = null; Dictionary <string, ArrayList> dic = new Dictionary <string, ArrayList>(); try { conn.Open(); string sql = string.Format("select wrokflow_id from decomposeResult where simples='{0}' and mainTaskId='{1}' group by workflow_id", "yes", mainTaskId); com = new SqlCommand(sql, conn); SqlDataReader dr = com.ExecuteReader(); while (dr.Read()) { ArrayList al = new ArrayList(); string sql2 = string.Format("select * from decomposeResult where simples='{0}' and workflow_id='{1}' and mainTaskId='{2}'", "yes", dr["workflow_id"].ToString(), mainTaskId); SqlConnection sqlconnection = DbHelper.getSqlConnection(); SqlCommand sc = new SqlCommand(sql2, sqlconnection); SqlDataReader dr1 = sc.ExecuteReader(); while (dr1.Read()) { DecomposeResult decomposeResult = new DecomposeResult(); decomposeResult.taskName = dr["taskName"].ToString(); decomposeResult.taskDescription = dr["taskDescription"].ToString(); decomposeResult.taskOrder = dr["taskOrder"].ToString(); decomposeResult.workflow_id = dr["workflow_id"].ToString(); decomposeResult.parent_workflow_id = dr["parent_workflow_id"].ToString(); decomposeResult.vote = dr["vote"].ToString(); decomposeResult.simple = dr["simples"].ToString(); decomposeResult.mainTaskId = dr["mainTaskId"].ToString(); al.Add(decomposeResult); } dic.Add(dr["workflow_id"].ToString(), al); } } catch (Exception e) { throw e; } finally { if (com != null) { com.Dispose(); } if (conn != null) { conn.Close(); } } return(dic); }
public ArrayList getAllThisLayerNeedSolvedCrowTaskInDecomposeResult(string workflow_id, string mainTaskId) { // int result = 0; SqlCommand com = null; ArrayList al = new ArrayList(); try { conn.Open(); string sql = string.Format("select * from decomposeResult where simples='{0}' and workflow_id='{1}' and mainTaskId='{2}'", "yes", workflow_id, mainTaskId); com = new SqlCommand(sql, conn); SqlDataReader dr = com.ExecuteReader(); while (dr.Read()) { //输出数据 DecomposeResult decomposeResult = new DecomposeResult(); decomposeResult.taskName = dr["taskName"].ToString(); decomposeResult.taskDescription = dr["taskDescription"].ToString(); decomposeResult.taskOrder = dr["taskOrder"].ToString(); decomposeResult.workflow_id = dr["workflow_id"].ToString(); decomposeResult.parent_workflow_id = dr["parent_workflow_id"].ToString(); decomposeResult.vote = dr["vote"].ToString(); decomposeResult.simple = dr["simples"].ToString(); decomposeResult.mainTaskId = dr["mainTaskId"].ToString(); al.Add(decomposeResult); } } catch (Exception e) { throw e; } finally { if (com != null) { com.Dispose(); } if (conn != null) { conn.Close(); } } return(al); }
public ArrayList findDecomposeResultByWorkflowId(string workflow_id, string mainTaskId) { ArrayList arrayList = new ArrayList(); SqlCommand com = null; try { conn.Open(); string sql = string.Format("select * from decomposeResult where workflow_id='{0}' and mainTaskId='{1}'", workflow_id, mainTaskId); com = new SqlCommand(sql, conn); SqlDataReader dr = com.ExecuteReader(); while (dr.Read()) { DecomposeResult decomposeResult = new DecomposeResult(); decomposeResult.taskName = dr["taskName"].ToString(); decomposeResult.taskDescription = dr["taskDescription"].ToString(); decomposeResult.taskOrder = dr["taskOrder"].ToString(); decomposeResult.workflow_id = dr["workflow_id"].ToString(); decomposeResult.parent_workflow_id = dr["parent_workflow_id"].ToString(); decomposeResult.vote = dr["vote"].ToString(); decomposeResult.simple = dr["simples"].ToString(); decomposeResult.mainTaskId = dr["mainTaskId"].ToString(); arrayList.Add(decomposeResult); } com = new SqlCommand(sql, conn); } catch (Exception e) { throw e; } finally { if (com != null) { com.Dispose(); } if (conn != null) { conn.Close(); } } return(arrayList); }
protected void Button1_Click(object sender, EventArgs e) { ArrayList arrayList = new ArrayList(); string steps = tb_step.Text; int number = Convert.ToInt32(steps); CrowdTask[] crowdTasks = new CrowdTask[number]; DecomposeResult[] decomposeResults = new DecomposeResult[number]; for (int i = 0; i < number; i++) { CrowdTask ct = new CrowdTask(); crowdTasks[i] = ct; DecomposeResult dr = new DecomposeResult(); decomposeResults[i] = dr; } switch (steps) { case "2": /* * crowdTasks[0].taskName = taskName_1.Text; * crowdTasks[0].taskDescription = taskDescription_1.Text; * crowdTasks[1].taskName = taskName_2.Text; * crowdTasks[1].taskDescription = taskDescription_2.Text; */ decomposeResults[0].taskName = taskName_1.Text; decomposeResults[0].taskDescription = taskDescription_1.Text; decomposeResults[0].taskOrder = "第一步"; decomposeResults[0].workflow_id = taskWorkflowId; decomposeResults[0].parent_workflow_id = currentCrowdTask.taskParentWorkflowId; decomposeResults[0].mainTaskId = currentCrowdTask.mainTaskId; decomposeResults[1].taskName = taskName_2.Text; decomposeResults[1].taskDescription = taskDescription_2.Text; decomposeResults[1].taskOrder = "第二步"; decomposeResults[1].workflow_id = taskWorkflowId; decomposeResults[1].parent_workflow_id = currentCrowdTask.taskParentWorkflowId; decomposeResults[1].mainTaskId = currentCrowdTask.mainTaskId; for (int i = 0; i < number; i++) { arrayList.Add(decomposeResults[i]); } break; case "3": /* * crowdTasks[0].taskName = taskName_1.Text; * crowdTasks[0].taskDescription = taskDescription_1.Text; * crowdTasks[1].taskName = taskName_2.Text; * crowdTasks[1].taskDescription = taskDescription_2.Text; * crowdTasks[2].taskName = taskName_3.Text; * crowdTasks[2].taskDescription = taskDescription_3.Text; */ decomposeResults[0].taskName = taskName_1.Text; decomposeResults[0].taskDescription = taskDescription_1.Text; decomposeResults[0].taskOrder = "第一步"; decomposeResults[0].workflow_id = taskWorkflowId; decomposeResults[0].parent_workflow_id = currentCrowdTask.taskParentWorkflowId; decomposeResults[0].mainTaskId = currentCrowdTask.mainTaskId; decomposeResults[1].taskName = taskName_2.Text; decomposeResults[1].taskDescription = taskDescription_2.Text; decomposeResults[1].taskOrder = "第二步"; decomposeResults[1].workflow_id = taskWorkflowId; decomposeResults[1].parent_workflow_id = currentCrowdTask.taskParentWorkflowId; decomposeResults[1].mainTaskId = currentCrowdTask.mainTaskId; decomposeResults[2].taskName = taskName_3.Text; decomposeResults[2].taskDescription = taskDescription_3.Text; decomposeResults[2].taskOrder = "第三步"; decomposeResults[2].workflow_id = taskWorkflowId; decomposeResults[2].parent_workflow_id = currentCrowdTask.taskParentWorkflowId; decomposeResults[2].mainTaskId = currentCrowdTask.mainTaskId; for (int i = 0; i < number; i++) { arrayList.Add(decomposeResults[i]); } break; case "4": /* * crowdTasks[0].taskName = taskName_1.Text; * crowdTasks[0].taskDescription = taskDescription_1.Text; * crowdTasks[1].taskName = taskName_2.Text; * crowdTasks[1].taskDescription = taskDescription_2.Text; * crowdTasks[2].taskName = taskName_3.Text; * crowdTasks[2].taskDescription = taskDescription_3.Text; * crowdTasks[3].taskName = taskName_4.Text; * crowdTasks[3].taskDescription = taskDescription_4.Text; */ decomposeResults[0].taskName = taskName_1.Text; decomposeResults[0].taskDescription = taskDescription_1.Text; decomposeResults[0].taskOrder = "第一步"; decomposeResults[0].workflow_id = taskWorkflowId; decomposeResults[0].parent_workflow_id = currentCrowdTask.taskParentWorkflowId; decomposeResults[0].mainTaskId = currentCrowdTask.mainTaskId; decomposeResults[1].taskName = taskName_2.Text; decomposeResults[1].taskDescription = taskDescription_2.Text; decomposeResults[1].taskOrder = "第二步"; decomposeResults[1].workflow_id = taskWorkflowId; decomposeResults[1].parent_workflow_id = currentCrowdTask.taskParentWorkflowId; decomposeResults[1].mainTaskId = currentCrowdTask.mainTaskId; decomposeResults[2].taskName = taskName_3.Text; decomposeResults[2].taskDescription = taskDescription_3.Text; decomposeResults[2].taskOrder = "第三步"; decomposeResults[2].workflow_id = taskWorkflowId; decomposeResults[2].parent_workflow_id = currentCrowdTask.taskParentWorkflowId; decomposeResults[2].mainTaskId = currentCrowdTask.mainTaskId; decomposeResults[3].taskName = taskName_4.Text; decomposeResults[3].taskDescription = taskDescription_4.Text; decomposeResults[3].taskOrder = "第四步"; decomposeResults[3].workflow_id = taskWorkflowId; decomposeResults[3].parent_workflow_id = currentCrowdTask.taskParentWorkflowId; decomposeResults[3].mainTaskId = currentCrowdTask.mainTaskId; for (int i = 0; i < number; i++) { arrayList.Add(decomposeResults[i]); } break; case "5": /* * crowdTasks[0].taskName = taskName_1.Text; * crowdTasks[0].taskDescription = taskDescription_1.Text; * crowdTasks[1].taskName = taskName_2.Text; * crowdTasks[1].taskDescription = taskDescription_2.Text; * crowdTasks[2].taskName = taskName_3.Text; * crowdTasks[2].taskDescription = taskDescription_3.Text; * crowdTasks[3].taskName = taskName_4.Text; * crowdTasks[3].taskDescription = taskDescription_4.Text; * crowdTasks[4].taskName = taskName_5.Text; * crowdTasks[4].taskDescription = taskDescription_5.Text; */ decomposeResults[0].taskName = taskName_1.Text; decomposeResults[0].taskDescription = taskDescription_1.Text; decomposeResults[0].taskOrder = "第一步"; decomposeResults[0].workflow_id = taskWorkflowId; decomposeResults[0].parent_workflow_id = currentCrowdTask.taskParentWorkflowId; decomposeResults[0].mainTaskId = currentCrowdTask.mainTaskId; decomposeResults[1].taskName = taskName_2.Text; decomposeResults[1].taskDescription = taskDescription_2.Text; decomposeResults[1].taskOrder = "第二步"; decomposeResults[1].workflow_id = taskWorkflowId; decomposeResults[1].parent_workflow_id = currentCrowdTask.taskParentWorkflowId; decomposeResults[1].mainTaskId = currentCrowdTask.mainTaskId; decomposeResults[2].taskName = taskName_3.Text; decomposeResults[2].taskDescription = taskDescription_3.Text; decomposeResults[2].taskOrder = "第三步"; decomposeResults[2].workflow_id = taskWorkflowId; decomposeResults[2].parent_workflow_id = currentCrowdTask.taskParentWorkflowId; decomposeResults[2].mainTaskId = currentCrowdTask.mainTaskId; decomposeResults[3].taskName = taskName_4.Text; decomposeResults[3].taskDescription = taskDescription_4.Text; decomposeResults[3].taskOrder = "第四步"; decomposeResults[3].workflow_id = taskWorkflowId; decomposeResults[3].parent_workflow_id = currentCrowdTask.taskParentWorkflowId; decomposeResults[3].mainTaskId = currentCrowdTask.mainTaskId; decomposeResults[4].taskName = taskName_5.Text; decomposeResults[4].taskDescription = taskDescription_5.Text; decomposeResults[4].taskOrder = "第五步"; decomposeResults[4].workflow_id = taskWorkflowId; decomposeResults[4].parent_workflow_id = currentCrowdTask.taskParentWorkflowId; decomposeResults[4].mainTaskId = currentCrowdTask.mainTaskId; for (int i = 0; i < number; i++) { arrayList.Add(decomposeResults[i]); } break; } WorkflowApplication instance = MyWorkflowInstance.getDecomposeWorkflowApplication(taskWorkflowId); instance.ResumeBookmark(BookmarkName.Decomposing, arrayList); //跳转到分解完成页面 Server.Transfer("decomposeCompeleted.aspx"); }