private void FillSendCopyUserSelect(WorkCase workCase, Procedure procedure, Task CurrentTask) { string sCodes = ""; string sNames = ""; System.Collections.IDictionaryEnumerator ie = CurrentTask.GetTaskActorEnumerator(); while (ie.MoveNext()) { TaskActor ta = (TaskActor)ie.Value; if (ta.TaskActorID == "1" && ta.ActorType == 1) { if (!(ta.TaskActorType == "All" || (workCase.GetAct(this.txtCurrentActCode.Value).Copy == 1 && CurrentTask.GetTaskActor(workCase.GetAct(this.txtCurrentActCode.Value).TaskActorID).TaskActorName == "1"))) { Role role = procedure.GetRole(ta.ActorCode); EntityData ed = BLL.WorkFlowRule.GetRoleUser(workCase, CurrentTask, ta); int iCount = ed.CurrentTable.Rows.Count; for (int i = 0; i < iCount; i++) { ed.SetCurrentRow(i); string UserName = RmsPM.BLL.SystemRule.GetUserNameByProjectCode(this.ProjectCode, ed.GetString("UserName"), ed.GetString("ShortUserName"), null); sCodes += ed.GetString("UserCode") + "," + ta.TaskActorCode + "," + UserName + "," + role.RoleName + ";"; sNames += UserName + ","; } } } } this.txtSendCopyUserCodes.Value = sCodes; if (sNames.Length > 0) { this.SendCopyTd.InnerHtml = "<font color='red'>系统将自动为以下人员抄送一份。</font><br/> " + sNames.Remove(sNames.Length - 1, 1); } }
private void FillCopyUserSelect(WorkCase workCase, Procedure procedure, Task CurrentTask) { ///////////////////////// System.Collections.IDictionaryEnumerator ie = CurrentTask.GetTaskActorEnumerator(); string s = ""; bool IsSelectUser = false; while (ie.MoveNext()) { TaskActor ta = (TaskActor)ie.Value; if (ta.TaskActorID == "1") { if (ta.TaskActorType == "All" || (workCase.GetAct(this.txtCurrentActCode.Value).Copy == 1 && CurrentTask.GetTaskActor(workCase.GetAct(this.txtCurrentActCode.Value).TaskActorID).TaskActorName == "1")) { IsSelectUser = true; this.SelectCopyUserNames.Visible = true; this.btnAddCopyUser.Visible = true; Role role = procedure.GetRole(ta.ActorCode); this.txtCopyTaskActorCode.Value = ta.TaskActorCode; this.txtCopyTaskActorName.Value = role.RoleName; } else { bool ActorNeedValue = false; if (ta.ActorNeed == "1") { ActorNeedValue = true; } Role role = procedure.GetRole(ta.ActorCode); EntityData ed = BLL.WorkFlowRule.GetRoleUser(workCase, CurrentTask, ta); this.txtTaskCopyActorIDs.Value += ta.TaskActorCode + ","; if (ta.TaskActorID == "1") { switch (CurrentTask.WayOfSelectPerson) { // 不用选,合适的人都发 case "NoSelect": s += BuildCheckBoxListUsers(role.RoleName, ta.TaskActorCode, ed, true, ActorNeedValue); break; //从中选出一个人 case "SinglePerson": //s+=BuildRadioBoxListUsers( role.RoleName,ta.TaskActorCode, ed); //以上为人员单选,应客户需求改为了人员多选 s += BuildCheckBoxListUsers(role.RoleName, ta.TaskActorCode, ed, false, false); break; //从中选出多人 case "MultiPerson": s += BuildCheckBoxListUsers(role.RoleName, ta.TaskActorCode, ed, false, false); break; } } } } } if (!IsSelectUser) { this.SelectCopyUserNames.Visible = false; this.btnAddCopyUser.Visible = false; } this.tdSelectCopyTaskActors.InnerHtml = s; //////////////////////////// }
private void FillUserSelect(WorkCase workCase, string routerCode) { string procedureCode = this.txtProcedureCode.Value; string currentActCode = this.txtCurrentActCode.Value; Procedure procedure = Rms.WorkFlow.DefinitionManager.GetProcedureDifinition(procedureCode, true); Router router = procedure.GetRouter(routerCode); Task nextTask = procedure.GetTask(router.ToTaskCode); this.ViewState.Add("WayOfSelectPerson", nextTask.WayOfSelectPerson); this.ViewState.Add("TaskType", nextTask.TaskType.ToString()); this.txtTaskType.Value = nextTask.TaskType.ToString(); this.txtTaskActorIDs.Value = ""; if (nextTask.TaskType == 5) { DataTable TaskActorTable = new DataTable(); TaskActorTable.Columns.Add("Order", System.Type.GetType("System.Int32")); TaskActorTable.Columns.Add("TaskActorCode"); System.Collections.IDictionaryEnumerator ieactor = nextTask.GetTaskActorEnumerator(); while (ieactor.MoveNext()) { TaskActor taskActor = (TaskActor)ieactor.Value; DataRow dr = TaskActorTable.NewRow(); dr["Order"] = taskActor.IOrder; dr["TaskActorCode"] = taskActor.TaskActorCode; TaskActorTable.Rows.Add(dr); } DataRow[] drw = TaskActorTable.Select("", "Order asc"); string s = ""; foreach (DataRow dr in drw) { TaskActor ta = nextTask.GetTaskActor(dr["TaskActorCode"].ToString()); //ta.ActorCode if (ta.TaskActorID == "0") { Role role = procedure.GetRole(ta.ActorCode); this.txtTaskActorIDs.Value += ta.TaskActorCode + ","; EntityData ed = BLL.WorkFlowRule.GetRoleUser(workCase, nextTask, ta); bool ActorNeedValue = false; if (ta.ActorNeed == "1") { ActorNeedValue = true; } if (ta.TaskActorID == "0") { switch (nextTask.WayOfSelectPerson) { // 不用选,合适的人都发 case "NoSelect": s += BuildCheckBoxListUsers(role.RoleName, ta.TaskActorCode, ed, true, ActorNeedValue); break; //从中选出一个人 case "SinglePerson": s += BuildRadioBoxListUsers(role.RoleName, ta.TaskActorCode, ed); break; //从中选出多人 case "MultiPerson": s += BuildCheckBoxListUsers(role.RoleName, ta.TaskActorCode, ed, false, false); break; } } ed.Dispose(); } } this.tdSelectTaskActors.InnerHtml = s; //////////////////////////// } else { Role role = procedure.GetRole(nextTask.TaskRole); EntityData ed = BLL.WorkFlowRule.GetRoleUser(workCase, nextTask); switch (nextTask.WayOfSelectPerson) { // 不用选,合适的人都发 case "NoSelect": this.tdSelectTaskActors.InnerHtml = BuildCheckBoxListUsers(role.RoleName, "", ed, true, false); //,currentActCode),true); break; //从中选出一个人 case "SinglePerson": this.tdSelectTaskActors.InnerHtml = BuildRadioBoxListUsers(role.RoleName, "", ed); break; //从中选出多人 case "MultiPerson": this.tdSelectTaskActors.InnerHtml = BuildCheckBoxListUsers(role.RoleName, "", ed, false, false); break; } } }
/// **************************************************************************** /// <summary> /// 执行 sql 语句将查询结果帮定显示。 /// </summary> /// **************************************************************************** private void LoadData1() { string sql = (string)this.ViewState["SqlString"]; QueryAgent qa = new QueryAgent(); EntityData entity = qa.FillEntityData("WorkFlowAct", sql); qa.Dispose(); //流程意见 DataColumn Opinion = new DataColumn(); Opinion.ColumnName = "Opinion"; Opinion.DefaultValue = ""; Opinion.DataType = System.Type.GetType("System.String"); //流程同意否决项 DataColumn Opinion1 = new DataColumn(); Opinion1.ColumnName = "OpinionConfirm"; Opinion1.DefaultValue = ""; Opinion1.DataType = System.Type.GetType("System.String"); //增加流程角色名 DataColumn Opinion2 = new DataColumn(); Opinion2.ColumnName = "RoleName"; Opinion2.DefaultValue = ""; Opinion2.DataType = System.Type.GetType("System.String"); //结束 DataColumn Opinion3 = new DataColumn(); Opinion3.ColumnName = "IsEnd"; Opinion3.DefaultValue = "1"; Opinion3.DataType = System.Type.GetType("System.String"); entity.CurrentTable.Columns.Add(Opinion); entity.CurrentTable.Columns.Add(Opinion1); entity.CurrentTable.Columns.Add(Opinion2); entity.CurrentTable.Columns.Add(Opinion3); WorkCase workCase = Rms.WorkFlow.WorkCaseManager.GetWorkCase(this.ViewState["_CaseCode"].ToString()); System.Collections.IDictionaryEnumerator ie = workCase.GetOpinionEnumerator(); string TaskCode = ""; if (this.ActCode != "" && !this.Scout) { Act act = workCase.GetAct(this.ActCode); TaskCode = act.ToTaskCode; } while (ie.MoveNext()) { Opinion Flowopinion = (Opinion)ie.Value; foreach (DataRow dr in entity.CurrentTable.Rows) { //获取当前辅助控制的状态 ModuleState moduleState = this.Toobar.GetModuleState(WorkFlowRule.GetTaskOpinionTypeByActCode(dr["ActCode"].ToString())); //加载意见标题项 Procedure procedure = DefinitionManager.GetProcedureDifinition(dr["ProcedureCode"].ToString(), true); Task task = procedure.GetTask(dr["ToTaskCode"].ToString()); string IsCopy = dr["Copy"].ToString(); //判断是否为结束 if (task.TaskType == 2) { dr["IsEnd"] = "0"; } if (task != null) { if (dr["TaskActorID"].ToString() != "") { TaskActor taskActor = task.GetTaskActor(dr["TaskActorID"].ToString()); if (taskActor.OpinionType + "" != "") { dr["RoleName"] = taskActor.OpinionType + "意见"; } else { Role role = procedure.GetRole(taskActor.ActorCode); if (role != null) { dr["RoleName"] = role.RoleName + "意见"; } } } else { if (task.OpinionType + "" != "") { dr["RoleName"] = task.OpinionType + "意见"; } else { Role role = procedure.GetRole(task.TaskRole); if (role != null) { dr["RoleName"] = role.RoleName + "意见"; } } } } if (dr["ActCode"].ToString() == Flowopinion.ApplicationCode) { //加载同意否决项 this.LoadOpinionConfirm(dr["ApplicationSubject"].ToString(), dr); //加载默认用户 this.LoadImgSign(moduleState, dr["ActUserCode"].ToString(), dr); //当前状态为End时 if (dr["Status"].ToString() == "End") { Act tmpAct = workCase.GetAct(dr["ActCode"].ToString()); // 1为抄送并且公开;2为抄送发起人;3为抄送人自己;4为当前用户拥有监控权限 以上4种情况将允许意见的出现 if (!(tmpAct.Copy == 1 && tmpAct.IsSleep == 0) || (tmpAct.ToTaskCode == TaskCode && tmpAct.FromUserCode == this.UserCode && tmpAct.Copy == 1) || tmpAct.ActUserCode == this.UserCode || this.IsScoutPopedom) { if (moduleState != ModuleState.Sightless && moduleState != ModuleState.Other) { //获取意见项 if (Flowopinion.OpinionText.Length > 0) { //dr["Opinion"] = "<a href=\"#\" OnClick=\"javascript:WorkFlowCaseStateOpenOpinionView('" + Flowopinion.OpinionCode + "');\">" + Flowopinion.OpinionText.Substring(0, 50) + "...</a>"; dr["Opinion"] = Flowopinion.OpinionText.Replace("\n", "<br>") + " "; string tmpstr = DocumentRule.Instance().GetAttachListHtml("WorkFlowActOpinion", tmpAct.ActCode); if (tmpstr != "") { //dr["Opinion"] += " <img src=\"../Images/attach.gif\" style=\"border-top-style: none; border-right-style: none; border-left-style: none; border-bottom-style: none\" /></a><br>" + "附件:" + tmpstr; dr["Opinion"] += "<br>" + "附件:" + tmpstr; } } } } } } } } if (Request["Debug"] + "" == "1") { string procedureCode = entity.GetString("ProcedureCode"); Procedure procedure = DefinitionManager.GetProcedureDifinition(procedureCode, true); /////////////////创建属性表/////////////////// DataTable PropertyTable = RmsPM.BLL.WorkFlowRule.GetPropertyTable(workCase, procedure); this.DataGrid1.DataSource = entity; this.DataGrid1.DataBind(); this.DataGrid2.DataSource = PropertyTable; this.DataGrid2.DataBind(); } DataView dv; if (!((User)Session["user"]).HasOperationRight("090102")) { dv = new DataView(entity.CurrentTable, String.Format(" ActUserCode='{0}' or (FromUserCode='{0}' and Copy='1') or (Copy = '1' and IsSleep='1') or Copy='0'", UserCode), "", DataViewRowState.CurrentRows); } else { dv = new DataView(entity.CurrentTable); } this.DataGrid3.DataSource = dv; this.DataGrid3.DataBind(); foreach (DataRow dr in entity.CurrentTable.Select()) { Act tmpAct = workCase.GetAct(dr["ActCode"].ToString()); if (dr["IsEnd"].ToString() == "0" || tmpAct.Copy == 1) { entity.CurrentTable.Rows.Remove(dr); } } this.DataGrid4.DataSource = entity.CurrentTable; this.DataGrid4.DataBind(); if (dv.Count == 0) { this.Visible = false; } else { this.Visible = true; if (this.ActCode != "" && !this.Scout) { //Act act = workCase.GetAct(this.ActCode); //string TaskCode = act.ToTaskCode; for (int i = 0; i < DataGrid3.Items.Count; i++) { //DataGrid3.Items[i].Cells[10].Text.Trim() == "ActCode" && if (DataGrid3.Items[i].Cells[11].Text.Trim() == TaskCode && DataGrid3.Items[i].Cells[12].Text.Trim() == this.UserCode && DataGrid3.Items[i].Cells[13].Text.Trim() == "1") { Act tmpact = workCase.GetAct(DataGrid3.Items[i].Cells[10].Text.Trim()); ((CheckBox)DataGrid3.Items[i].FindControl("chkopinionshow")).Checked = (tmpact.IsSleep == 1); ((CheckBox)DataGrid3.Items[i].FindControl("chkopinionshow")).Visible = true; } else { ((CheckBox)DataGrid3.Items[i].FindControl("chkopinionshow")).Visible = false; Act tmpact = workCase.GetAct(DataGrid3.Items[i].Cells[10].Text.Trim()); if (tmpact.IsSleep == 1 && tmpact.Copy == 1) { DataGrid3.Items[i].Cells[9].Text = " √"; } else if (tmpact.IsSleep == 0 && tmpact.Copy == 1) { DataGrid3.Items[i].Cells[9].Text = " x"; } } } } if (this.Scout) { for (int i = 0; i < DataGrid3.Items.Count; i++) { ((CheckBox)DataGrid3.Items[i].FindControl("chkopinionshow")).Visible = false; Act tmpact = workCase.GetAct(DataGrid3.Items[i].Cells[10].Text.Trim()); if (tmpact.IsSleep == 1 && tmpact.Copy == 1) { DataGrid3.Items[i].Cells[9].Text = " √"; } else if (tmpact.IsSleep == 0 && tmpact.Copy == 1) { DataGrid3.Items[i].Cells[9].Text = " x"; } } } } entity.Dispose(); }
/// **************************************************************************** /// <summary> /// 确定按钮事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// **************************************************************************** protected void btnSave_ServerClick(object sender, System.EventArgs e) { try { string taskCode = Request["TaskCode"] + ""; Procedure procedure = (Procedure)Session["Procedure"]; Task task = (Task)Session["Task"]; bool isNew = (taskCode == ""); if (isNew) { procedure.AddNewTask(task); } task.TaskName = this.txtTaskName.Value; task.TaskID = this.txtTaskID.Value; task.Description = this.txtDescription.Value; task.TaskTitle = this.txtTaskTitle.Value; task.TaskRole = this.sltTaskRole.Value; task.TaskProperty = this.sltTaskProperty.Value; task.TaskType = int.Parse(this.sltTaskType.Value.ToString()); task.Copy = (this.chkTaskCopy.Checked) ? 1:0; task.CanManual = (this.ChkCanManual.Checked) ? 1 : 0; task.ModuleState = this.txtModuleState.Value; task.WayOfSelectPerson = this.sltWayOfSelectPerson.Value; task.TaskMeetType = ((HtmlSelect)this.UltraWebTab1.Tabs.GetTab(0).FindControl("sltMeetType")).Value; task.IsOrderly = (((HtmlInputCheckBox)this.UltraWebTab1.Tabs.GetTab(0).FindControl("chkMeetOrder")).Checked) ? 1:0; //是否等待 task.CanEdit = (((HtmlInputCheckBox)this.UltraWebTab1.Tabs.GetTab(1).FindControl("chkWaitForCopy")).Checked) ? 1 : 0; task.TaskActorType = ((HtmlInputControl)this.UltraWebTab1.Tabs.GetTab(1).FindControl("txtCopyTitle")).Value; task.OpinionType = this.txtOpinionType.Value; UltraWebGrid UWGridCase = ((UltraWebGrid)this.UltraWebTab1.Tabs.GetTab(0).FindControl("UltraWebGrid3")); for (int i = 0; i < UWGridCase.Rows.Count; i++) { bool isNewTaskActor = (UWGridCase.Rows[i].Cells[0].Text == null); TaskActor TaskActorCase = null; if (isNewTaskActor) { TaskActorCase = Rms.WorkFlow.DefinitionManager.NewTaskActor(); TaskActorCase.TaskCode = task.TaskCode; TaskActorCase.ProcedureCode = procedure.ProcedureCode; task.AddNewTaskActor(TaskActorCase); } else { TaskActorCase = task.GetTaskActor(UWGridCase.Rows[i].Cells[0].Text); } TaskActorCase.OpinionType = (string)UWGridCase.Rows[i].Cells[9].Value; TaskActorCase.TaskActorType = (string)UWGridCase.Rows[i].Cells[1].Value; TaskActorCase.ActorCode = (string)UWGridCase.Rows[i].Cells[2].Value; if ((string)UWGridCase.Rows[i].Cells[3].Value == "--选择--" || (string)UWGridCase.Rows[i].Cells[3].Value == null) { TaskActorCase.ActorProperty = ""; } else { TaskActorCase.ActorProperty = (string)UWGridCase.Rows[i].Cells[3].Value; } TaskActorCase.ActorModuleState = (string)UWGridCase.Rows[i].Cells[5].Value; if (UWGridCase.Rows[i].Cells[8].Value == null) { TaskActorCase.IOrder = 1; } else { TaskActorCase.IOrder = (int)UWGridCase.Rows[i].Cells[8].Value; } TaskActorCase.TaskActorID = "0"; if ((bool)UWGridCase.Rows[i].Cells[4].Value) { TaskActorCase.ActorNeed = "1"; } else { TaskActorCase.ActorNeed = "0"; } if ((bool)UWGridCase.Rows[i].Cells[7].Value) { TaskActorCase.TaskActorName = "1"; } else { TaskActorCase.TaskActorName = "0"; } } UltraWebGrid UWGridCopyCase = ((UltraWebGrid)this.UltraWebTab1.Tabs.GetTab(1).FindControl("UltraWebGrid3")); for (int i = 0; i < UWGridCopyCase.Rows.Count; i++) { bool isNewTaskActor = (UWGridCopyCase.Rows[i].Cells[0].Text == null); TaskActor TaskActorCase = null; if (isNewTaskActor) { TaskActorCase = Rms.WorkFlow.DefinitionManager.NewTaskActor(); TaskActorCase.TaskCode = task.TaskCode; TaskActorCase.ProcedureCode = procedure.ProcedureCode; task.AddNewTaskActor(TaskActorCase); } else { TaskActorCase = task.GetTaskActor(UWGridCopyCase.Rows[i].Cells[0].Text); } TaskActorCase.OpinionType = (string)UWGridCopyCase.Rows[i].Cells[12].Value; TaskActorCase.TaskActorType = (string)UWGridCopyCase.Rows[i].Cells[1].Value; TaskActorCase.ActorCode = (string)UWGridCopyCase.Rows[i].Cells[2].Value; if ((string)UWGridCopyCase.Rows[i].Cells[3].Value == "--选择--" || (string)UWGridCopyCase.Rows[i].Cells[3].Value == null) { TaskActorCase.ActorProperty = ""; } else { TaskActorCase.ActorProperty = (string)UWGridCopyCase.Rows[i].Cells[3].Value; } TaskActorCase.ActorModuleState = (string)UWGridCopyCase.Rows[i].Cells[5].Value; TaskActorCase.IOrder = i; TaskActorCase.TaskActorID = "1"; if ((bool)UWGridCopyCase.Rows[i].Cells[4].Value) { TaskActorCase.ActorNeed = "1"; } else { TaskActorCase.ActorNeed = "0"; } if ((bool)UWGridCopyCase.Rows[i].Cells[8].Value) { TaskActorCase.TaskActorName = "1"; } else { TaskActorCase.TaskActorName = "0"; } if ((bool)UWGridCopyCase.Rows[i].Cells[10].Value) { TaskActorCase.ActorType = 1; } else { TaskActorCase.ActorType = 0; } } Session["Procedure"] = procedure; CloseWindow(); } catch (Exception ex) { ApplicationLog.WriteLog(this.ToString(), ex, ""); } }
/// <summary> /// /// </summary> /// <param name="taskActor"></param> public void AddTask(TaskActor taskActor) { _taskActors.Add(taskActor); }