Ejemplo n.º 1
0
        /// ****************************************************************************
        /// <summary>
        /// 数据加载
        /// </summary>
        /// ****************************************************************************
        private void LoadData()
        {
            try
            {
                WorkFlowActStrategyBuilder sb = new WorkFlowActStrategyBuilder();
                sb.AddStrategy(new Strategy(DAL.QueryStrategy.WorkFlowActStrategyName.ActCode, this.ActCode));

                string sql = sb.BuildMainQueryString();

                QueryAgent QA     = new QueryAgent();
                EntityData entity = QA.FillEntityData("WorkFlowAct", sql);
                this.ViewState["_CaseCode"] = entity.CurrentRow["CaseCode"].ToString();
                QA.Dispose();
                entity.Dispose();

                WorkCase workCase = Rms.WorkFlow.WorkCaseManager.GetWorkCase(this.ViewState["_CaseCode"].ToString());

                this.ViewState["_ApplicationCode"] = workCase.ApplicationCode;

                Act currentAct = workCase.GetAct(this.ActCode);

                Procedure procedure = DefinitionManager.GetProcedureDifinition(workCase.ProcedureCode, true);

                this.ViewState["_ProcedureCode"] = procedure.ProcedureCode;

                Task currentTask = procedure.GetTask(currentAct.ToTaskCode);

                this.contentspan.InnerHtml = WriteOpinion(workCase, currentTask, currentAct);
            }
            catch (Exception ex)
            {
                ApplicationLog.WriteLog(this.ToString(), ex, "");
            }
        }
Ejemplo n.º 2
0
        // *****************************************************************************

        /// ****************************************************************************
        /// <summary>
        /// 提交意见按钮事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// ****************************************************************************
        protected void btnSubmitOpinion_ServerClick(object sender, System.EventArgs e)
        {
            try
            {
                WorkCase workCase = Rms.WorkFlow.WorkCaseManager.GetWorkCase(this.ViewState["_CaseCode"].ToString());

                Procedure procedure = DefinitionManager.GetProcedureDifinition(workCase.ProcedureCode, true);

                Act  currentAct  = workCase.GetAct(this.ActCode);
                Task currentTask = procedure.GetTask(currentAct.ToTaskCode);
                Rms.WorkFlow.WorkCaseManager.SaveSignOpinionText(workCase, currentAct, currentTask, this.IUser.UserCode, this.HiddenOption.Value);
                BLL.WorkFlowRule.SaveWorkFlowCase(workCase);

                //WorkFlowSaveClick(this,EventArgs.Empty);

                Response.Write(Rms.Web.JavaScript.ScriptStart);
                Response.Write(Rms.Web.JavaScript.OpenerReload(false));
                Response.Write(Rms.Web.JavaScript.WinClose(false));
                Response.Write(Rms.Web.JavaScript.ScriptEnd);
            }
            catch (Exception ex)
            {
                ApplicationLog.WriteLog(this.ToString(), ex, "");
            }
        }
Ejemplo n.º 3
0
    /// <summary>
    /// 提交数据
    /// </summary>
    override public void SubmitData()
    {
        if (this.ActCode != "" && !this.Scout)
        {
            WorkCase workCase = Rms.WorkFlow.WorkCaseManager.GetWorkCase(this.ViewState["_CaseCode"].ToString());
            Act      act      = workCase.GetAct(this.ActCode);
            string   TaskCode = act.ToTaskCode;
            if (RmsPM.BLL.ConvertRule.ToString(System.Configuration.ConfigurationSettings.AppSettings["FlowCaseState"]) == "1")
            {
            }
            else
            {
                for (int i = 0; i < dgList.Items.Count; i++)
                {
                    //dgList.Items[i].Cells[10].Text.Trim() == "ActCode" &&
                    if (dgList.Items[i].Cells[8].Text.Trim() == TaskCode && dgList.Items[i].Cells[9].Text.Trim() == this.UserCode && dgList.Items[i].Cells[10].Text.Trim() == "1")
                    {
                        Act currentAct = workCase.GetAct(dgList.Items[i].Cells[7].Text.Trim());

                        if (((CheckBox)dgList.Items[i].FindControl("chkopinionshow")).Checked)
                        {
                            currentAct.IsSleep = 1;
                        }
                        else
                        {
                            currentAct.IsSleep = 0;
                        }
                    }
                }
            }
            DataSet ds = Rms.WorkFlow.WorkCaseManager.SaveWorkCaseData(workCase);
            RmsPM.BLL.WorkFlowApplicationRule.SaveWorkCaseEx(ds, workCase.CaseCode);
        }
    }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        /// ****************************************************************************
        /// <summary>
        /// 完成按钮事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// ****************************************************************************
        protected void btnEndOpinion_ServerClick(object sender, System.EventArgs e)
        {
            string routerCode  = this.txtSelectRouterCode.Value;
            string userCodes   = this.txtSelectUserCodes.Value;
            string opinionText = this.HiddenOption.Value;

            try
            {
                WorkCase workCase = Rms.WorkFlow.WorkCaseManager.GetWorkCase(this.ViewState["_CaseCode"].ToString());

                Rms.WorkFlow.WorkCaseManager.EndWorkCase(workCase, workCase.ApplicationCode, this.ActCode, routerCode, userCodes, this.IUser.UserCode, opinionText);
                DataSet ds = Rms.WorkFlow.WorkCaseManager.SaveWorkCaseData(workCase);
                BLL.WorkFlowRule.SaveWorkFlowCase(ds, this.ViewState["_CaseCode"].ToString());
                ds.Dispose();
                //WorkFlowSendClick(this,EventArgs.Empty);
                Response.Write(Rms.Web.JavaScript.ScriptStart);
                Response.Write(Rms.Web.JavaScript.OpenerReload(false));
                Response.Write(Rms.Web.JavaScript.WinClose(false));
                Response.Write(Rms.Web.JavaScript.ScriptEnd);
            }
            catch (Exception ex)
            {
                ApplicationLog.WriteLog(this.ToString(), ex, "");
            }
        }
Ejemplo n.º 6
0
        protected void rblSelectRouter_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            string routerCode = this.rblSelectRouter.SelectedValue;
            string routerName = this.rblSelectRouter.SelectedItem.Text;

            this.txtSelectRouterCode.Value = routerCode;
            this.txtSelectRouterName.Value = routerName;
            WorkCase workCase = (WorkCase)Session["WorkCaseApplicationTemp"];

            FillUserSelect(workCase, routerCode);
        }
Ejemplo n.º 7
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            //string appliactionCode = Request["ApplicationCode"]+"";
            string actCode  = Request["ActCode"] + "";
            string caseCode = Request["CaseCode"] + "";

            if (actCode == "" || caseCode == "")
            {
                Response.Write(Rms.Web.JavaScript.ScriptStart);
                Response.Write(Rms.Web.JavaScript.Alert(false, "没有流程编号 !"));
                Response.Write(Rms.Web.JavaScript.WinClose(false));
                Response.Write(Rms.Web.JavaScript.ScriptEnd);
                return;
            }

            WorkCase workCase = Rms.WorkFlow.WorkCaseManager.GetWorkCase(caseCode);

            if (workCase == null)
            {
                Response.Write(Rms.Web.JavaScript.ScriptStart);
                Response.Write(Rms.Web.JavaScript.Alert(false, "没有这个流程 !"));
                Response.Write(Rms.Web.JavaScript.WinClose(false));
                Response.Write(Rms.Web.JavaScript.ScriptEnd);
                return;
            }

            Act act = workCase.GetAct(actCode);

            if (act == null)
            {
                Response.Write(Rms.Web.JavaScript.ScriptStart);
                Response.Write(Rms.Web.JavaScript.Alert(false, "没有这个动作 !"));
                Response.Write(Rms.Web.JavaScript.WinClose(false));
                Response.Write(Rms.Web.JavaScript.ScriptEnd);
                return;
            }

            string action = Request["Action"] + "";

            if (action == "DealWith")
            {
                Procedure procedure = Rms.WorkFlow.DefinitionManager.GetProcedureDifinition(workCase.ProcedureCode, true);
                Task      task      = procedure.GetTask(act.ToTaskCode);
                if (task.CanEdit == 1)
                {
                    GotoApplicationEdit(procedure.ApplicationPath, workCase.ApplicationCode, caseCode, actCode, "Info");
                }
                else
                {
                    GotoApplicationInfo(procedure.ApplicationPath, workCase.ApplicationCode, caseCode, actCode, "Info");
                }
            }
        }
Ejemplo n.º 8
0
        protected void Button3_Click(object sender, EventArgs e)
        {
            try
            {
                WorkCase  workCase  = Rms.WorkFlow.WorkCaseManager.GetWorkCase(this.TxtCaseCode.Value.Trim());
                Procedure procedure = DefinitionManager.GetProcedureDifinition(this.TxtProcedure.Value.Trim(), true);
                DataSet   ds        = Rms.WorkFlow.DefinitionManager.SaveProcedureDefinitionData(procedure);
                /////////////////创建属性表///////////////////
                DataTable PropertyTable = BLL.WorkFlowRule.GetPropertyTable(workCase, procedure);

                if (PropertyTable.Select(this.textareasql.Value.Trim()).Length >= 0)
                {
                    this.Response.Write("<script>window.alert('语法正确!')</script>");
                }
            }
            catch (System.Exception ec)
            {
                this.Response.Write("<script>window.alert('语法错误!" + ec.Message + "')</script>");
            }
        }
Ejemplo n.º 9
0
    private void SaveCasePropertyValue(string PropertyName, string PropertyValue, string ProcedureCode)
    {
        string    PropertyCode             = "";
        string    WorkFlowCasePropertyCode = "";
        Procedure procedure = DefinitionManager.GetProcedureDifinition(ProcedureCode, true);

        System.Collections.IDictionaryEnumerator ie = procedure.GetPropertyEnumerator();
        while (ie.MoveNext())
        {
            Property PropertyCase = (Property)ie.Value;
            if (PropertyCase.ProcedurePropertyName == PropertyName)
            {
                PropertyCode = PropertyCase.WorkFlowProcedurePropertyCode;
            }
        }

        if (this.CaseCode + "" != "")
        {
            WorkCase workCase = Rms.WorkFlow.WorkCaseManager.GetWorkCase(this.CaseCode);

            ie = workCase.GetCasePropertyEnumerator();
            while (ie.MoveNext())
            {
                CaseProperty CasePropertyCase = (CaseProperty)ie.Value;
                if (CasePropertyCase.ProcedurePropertyCode == PropertyCode)
                {
                    WorkFlowCasePropertyCode = CasePropertyCase.WorkFlowCasePropertyCode;
                }
            }
        }
        if (PropertyCode != "")
        {
            CaseProperty CasePropertyCaseM = new CaseProperty();
            CasePropertyCaseM.WorkFlowCasePropertyCode = WorkFlowCasePropertyCode;
            CasePropertyCaseM.CaseCode = this.CaseCode;
            CasePropertyCaseM.ProcedurePropertyCode  = PropertyCode;
            CasePropertyCaseM.ProcedurePropertyValue = PropertyValue;

            RmsPM.BLL.WorkFlowRule.SaveCaseProperty(CasePropertyCaseM);
        }
    }
Ejemplo n.º 10
0
        private void FillUserSelect(WorkCase workCase, string FromTaskCode)
        {
            string procedureCode  = this.txtProcedureCode.Value;
            string currentActCode = this.txtCurrentActCode.Value;

            Procedure procedure = Rms.WorkFlow.DefinitionManager.GetProcedureDifinition(workCase.ProcedureCode, true);
            Task      FromTask  = procedure.GetTask(FromTaskCode);

            DataSet ds = Rms.WorkFlow.WorkCaseManager.SaveWorkCaseData(workCase);
            //BLL.ConvertRule.DataTableDistinctRow(ds.Tables["WorkFlowAct"],"ActUserCode");
            //DataView dv = new DataView( ds.Tables["WorkFlowAct"],String.Format(" ToTaskCode='{0}' and ActType <> 1 and status='End' and  Copy <> 1",FromTaskCode),"",DataViewRowState.CurrentRows);
            //clm修改 日期:2006-11-2
            DataView dv = new DataView(ds.Tables["WorkFlowAct"], String.Format(" ToTaskCode='{0}' and status='End' and  Copy <> 1", FromTaskCode), "", DataViewRowState.CurrentRows);

            dv = BLL.ConvertRule.GetDistinct(dv, "ActUserCode");
            //BLL.ConvertRule.DataViewDistinctRow(dv,"ActUserCode");


            if (Request["Debug"] + "" == "1")
            {
                this.DataGrid2.DataSource = dv;
                this.DataGrid2.DataBind();
            }

            string s = "";

            this.txtTaskActorIDs.Value = "";
            int iCount = dv.Count;

            for (int i = 0; i < iCount; i++)
            {
                string userCode = (String)dv[i].Row["ActUserCode"];
                this.txtTaskActorIDs.Value += userCode + ",";
                string UserName = RmsPM.BLL.SystemRule.GetUserNameByProjectCode(userCode, this.ProjectCode, null);
                s += BuildCheckBoxListUsers("", userCode, userCode, true, false, UserName);
            }

            this.tdSelectTaskActors.InnerHtml = s;
        }
Ejemplo n.º 11
0
        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;
            ////////////////////////////
        }
Ejemplo n.º 12
0
        private void LoadData()
        {
            string code     = Request["ApplicationCode"] + "";
            string caseCode = Request["CaseCode"] + "";

            string procedureCode = Request["ProcedureCode"] + "";
            string procedureName = Request["ProcedureName"] + "";
            string userCode      = Request["UserCode"] + "";
            string unitCode      = Request["UnitCodeCode"] + "";

            WorkCase workCase = Rms.WorkFlow.WorkCaseManager.GetWorkCase(caseCode);

            Procedure procedure = DefinitionManager.GetProcedureDifinition(workCase.ProcedureCode, true);

            if (procedure == null)
            {
                LogHelper.WriteLog("取不到对应流程");
                throw new Exception("流程配置有误,取不到对应流程");
            }


            Act currentAct = workCase.GetAct(Request["ActCode"] + "");

            if (currentAct == null)
            {
                LogHelper.WriteLog("取不到当前流程节点");
                throw new Exception("非法操作,取不到当前流程节点");
            }

            /*if(Request["ActCode"]+"" != "")
             * {
             *      Act act = workCase.GetAct(Request["ActCode"]+"");
             *      if(act.Copy == 0)
             *              this.ChkShow.Checked = (act.IsSleep == 1);
             *      else
             *              this.ChkShow.Visible = false;
             * }*/

            System.Collections.IDictionaryEnumerator ie = workCase.GetOpinionEnumerator();
            while (ie.MoveNext())
            {
                Opinion Flowopinion = (Opinion)ie.Value;
                if (Flowopinion.ApplicationCode == Request["ActCode"] + "")
                {
                    this.FlowOpinion.Value = Flowopinion.OpinionText;
                    switch (this.up_sPMName.ToLower())
                    {
                    case "shimaopm":
                        if (Flowopinion.OpinionText.Trim() == "")
                        {
                            Task firstTask = DefinitionManager.GetFirstTask(procedure);
                            if (firstTask == null)
                            {
                                LogHelper.WriteLog("流程取不到开始节点");
                                throw new Exception("流程配置有误,请检查开始节点的属性");
                            }
                            if (currentAct.ToTaskCode == firstTask.TaskCode)
                            {
                                this.FlowOpinion.Value = "";
                            }
                            else
                            {
                                this.FlowOpinion.Value = "同意";
                            }
                        }
                        break;
                    }
                }
            }
        }
Ejemplo n.º 13
0
        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;
                }
            }
        }
Ejemplo n.º 14
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            if (!IsPostBack)
            {
                ///////////////////////////////////////////////////
                string code          = Request["ApplicationCode"] + "";
                string caseCode      = Request["CaseCode"] + "";
                string procedureCode = Request["ProcedureCode"] + "";
                string procedureName = Request["ProcedureName"] + "";
                string userCode      = Request["UserCode"] + "";
                string unitCode      = Request["UnitCodeCode"] + "";
                this.ProjectCode = Request["ProjectCode"] + "";
                //if (procedureCode == "")
                //    procedureCode = BLL.WorkFlowRule.GetProcedureCodeByName(procedureName);
                bool      isNew          = (caseCode == "");
                Procedure procedure      = DefinitionManager.GetProcedureDifinition(procedureCode, true);
                string    currentActCode = Request["ActCode"] + "";
                Act       currentAct     = null;
                string    actCode        = "";
                WorkCase  workCase       = null;
                if (isNew)
                {
                    workCase   = Rms.WorkFlow.WorkCaseManager.StartNewWorkCase(code, procedureCode, userCode, unitCode, ref actCode, "", "");
                    currentAct = (Act)(WorkCaseManager.GetActivityAct(workCase)[0]);
                }
                else
                {
                    workCase   = Rms.WorkFlow.WorkCaseManager.GetWorkCase(caseCode);
                    currentAct = workCase.GetAct(Request["ActCode"] + "");
                }
                this.txtCurrentActCode.Value = currentAct.ActCode;
                Task currentTask = procedure.GetTask(currentAct.ToTaskCode);
                ///////////////////////////////////////////////////

                if (currentTask.CanManual == 1)
                {
                    this.SendTable.Visible    = false;
                    this.SendTitle.Visible    = false;
                    this.CopyTable.Visible    = false;
                    this.CopyTitle.Visible    = false;
                    this.OpinionTitle.Visible = false;
                    this.OpinionTable.Visible = false;
                    this.MessageTitle.Visible = false;
                    this.MessageTable.Visible = false;
                    this.ButtonTable.Visible  = false;
                    this.pwdcheckdiv.Visible  = true;
                }
                else
                {
                    InitPageState();
                }
                BLL.TemplateOpinion to = new BLL.TemplateOpinion();
                to.UserCode = ((User)Session["User"]).UserCode;
                DataTable dt = to.GetTemplateOpinions();
                if (dt.Rows.Count == 0)
                {
                    this.sltTemplateOpinion.Visible = false;
                }
                else
                {
                    this.sltTemplateOpinion.Visible        = true;
                    this.sltTemplateOpinion.DataSource     = dt;
                    this.sltTemplateOpinion.DataTextField  = "Name";
                    this.sltTemplateOpinion.DataValueField = "Center";
                    this.sltTemplateOpinion.DataBind();
                    ListItem li = new ListItem();
                    li.Text     = "--常用意见--";
                    li.Value    = "";
                    li.Selected = true;
                    this.sltTemplateOpinion.Items.Add(li);
                    this.sltTemplateOpinion.Attributes["onchange"] = "javascript:document.all('FlowOpinion').value = this.value;";
                }
                this.rdoCheck.Visible = (Request["IsAudit"] + "" == "1");
            }
        }
Ejemplo n.º 15
0
        private void LoadData()
        {
            string code     = Request["ApplicationCode"] + "";
            string caseCode = Request["CaseCode"] + "";

            string procedureCode = Request["ProcedureCode"] + "";
            string procedureName = Request["ProcedureName"] + "";
            //if ( procedureCode == "" )
            //	procedureCode = BLL.WorkFlowRule.GetProcedureCodeByName(procedureName);

            bool   isNew    = (caseCode == "");
            string userCode = Request["UserCode"] + "";
            string unitCode = Request["UnitCodeCode"] + "";


            Procedure procedure      = DefinitionManager.GetProcedureDifinition(procedureCode, true);
            string    currentActCode = Request["ActCode"] + "";
            Act       currentAct     = null;
            string    actCode        = "";
            WorkCase  workCase       = null;

            if (isNew)
            {
                workCase   = Rms.WorkFlow.WorkCaseManager.StartNewWorkCase(code, procedureCode, userCode, unitCode, ref actCode, "", "");
                currentAct = (Act)(WorkCaseManager.GetActivityAct(workCase)[0]);
                if (currentAct.ApplicationSubject != null)
                {
                    this.rdoCheck.SelectedValue = currentAct.ApplicationSubject.ToString();
                }
            }
            else
            {
                workCase   = Rms.WorkFlow.WorkCaseManager.GetWorkCase(caseCode);
                currentAct = workCase.GetAct(Request["ActCode"] + "");
                if (currentAct.ApplicationSubject != null)
                {
                    this.rdoCheck.SelectedValue = currentAct.ApplicationSubject.ToString();
                }
            }


            //this.ChkShow.Checked = (currentAct.IsSleep == 1);


            System.Collections.IDictionaryEnumerator ie = workCase.GetOpinionEnumerator();
            while (ie.MoveNext())
            {
                Opinion Flowopinion = (Opinion)ie.Value;
                if (Flowopinion.ApplicationCode == currentAct.ActCode)
                {
                    this.FlowOpinion.Value = Flowopinion.OpinionText;
                    switch (this.up_sPMName.ToLower())
                    {
                    case "shimaopm":
                        if (Flowopinion.OpinionText.Trim() == "")
                        {
                            Task firstTask = DefinitionManager.GetFirstTask(procedure);
                            if (currentAct.ToTaskCode == firstTask.TaskCode)
                            {
                                this.FlowOpinion.Value = "";
                            }
                            else
                            {
                                this.FlowOpinion.Value = "同意";
                            }
                        }
                        break;
                    }
                }
            }


            this.txtCurrentActCode.Value = currentAct.ActCode;

            Task currentTask = procedure.GetTask(currentAct.ToTaskCode);

            //是否需要等待
            this.WaitForFlag.Checked = (currentTask.CanEdit == 1);
            this.CopyName.InnerHtml  = currentTask.TaskActorType;
            FillCopyUserSelect(workCase, procedure, currentTask);
            if (Request["Work"] + "" == "Send")
            {
                FillSendCopyUserSelect(workCase, procedure, currentTask);
            }

            this.txtProcedureCode.Value   = procedureCode;
            this.txtCurrentTaskCode.Value = currentTask.TaskCode;

            if (currentTask.Copy != 1)
            {
                this.CopyTable.Visible = false;
                this.CopyTitle.Visible = false;
            }

            // 填充路由rbl
            DataSet  ds = Rms.WorkFlow.DefinitionManager.SaveProcedureDefinitionData(procedure);
            DataView dv = new DataView(ds.Tables["WorkFlowRouter"], String.Format(" FromTaskCode='{0}' ", currentTask.TaskCode), "SortID", DataViewRowState.CurrentRows);

            /////////////////创建属性表///////////////////
            DataTable PropertyTable = BLL.WorkFlowRule.GetPropertyTable(workCase, procedure);

            if (Request["Debug"] + "" == "1")
            {
                this.DataGrid1.DataSource = PropertyTable;
                this.DataGrid1.DataBind();
            }
            //PropertyTable.Rows.Add(PropertyRow);

            for (int i = 0; i < dv.Table.Rows.Count; i++)
            {
                System.Collections.IDictionaryEnumerator iecondition = procedure.GetRouter((string)dv.Table.Rows[i]["RouterCode"]).GetConditionEnumerator();
                if (iecondition.MoveNext())
                {
                    Condition condition = (Condition)iecondition.Value;
                    if (PropertyTable.Select(condition.Description).Length == 0)
                    {
                        dv.Table.Rows.Remove(dv.Table.Rows[i]);
                        i--;
                    }
                }
            }
            if (Request["Debug"] + "" == "1")
            {
                this.DataGrid2.DataSource = dv.Table;
                this.DataGrid2.DataBind();
            }
            ///////////////////////////////////

            int iCount = dv.Count;

            for (int i = 0; i < iCount; i++)
            {
                string routerCode  = (String)dv[i].Row["RouterCode"];
                string description = (String)dv[i].Row["Description"];
                //Router router = (Router)ar[i];
                if (procedure.GetTask(procedure.GetRouter(routerCode).ToTaskCode).TaskType != 2)
                {
                    this.rblSelectRouter.Items.Add(new ListItem(description, routerCode));
                }
            }
            if (this.rblSelectRouter.Items.Count > 0)
            {
                this.rblSelectRouter.SelectedIndex = 0;
                this.txtSelectRouterCode.Value     = this.rblSelectRouter.SelectedItem.Value;
                FillUserSelect(workCase, this.rblSelectRouter.SelectedValue);
            }
            Session["WorkCaseApplicationTemp"] = workCase;
        }
Ejemplo n.º 16
0
        private void LoadData()
        {
            string caseCode = Request["CaseCode"] + "";
            string actCode  = Request["ActCode"] + "";

            this.ProjectCode = Request["ProjectCode"] + "";
            WorkCase  workCase   = Rms.WorkFlow.WorkCaseManager.GetWorkCase(caseCode);
            Procedure procedure  = DefinitionManager.GetProcedureDifinition(workCase.ProcedureCode, true);
            Act       currentAct = workCase.GetAct(Request["ActCode"] + "");

            //this.ChkShow.Checked = (currentAct.IsSleep == 1);
            this.FlowOpinion.Value = "不同意";
            System.Collections.IDictionaryEnumerator ie = workCase.GetOpinionEnumerator();
            while (ie.MoveNext())
            {
                Opinion Flowopinion = (Opinion)ie.Value;
                if (Flowopinion.ApplicationCode == currentAct.ActCode)
                {
                    this.FlowOpinion.Value = Flowopinion.OpinionText;
                    switch (this.up_sPMName.ToLower())
                    {
                    case "shimaopm":
                        if (Flowopinion.OpinionText.Trim() == "")
                        {
                            this.FlowOpinion.Value = "不同意";
                        }
                        break;
                    }
                }
            }

            Task currentTask = procedure.GetTask(currentAct.ToTaskCode);

            DataSet ds = Rms.WorkFlow.WorkCaseManager.SaveWorkCaseData(workCase);

            //BLL.ConvertRule.DataTableDistinctRow(ds.Tables["WorkFlowAct"],"FromTaskCode");
            //BLL.ConvertRule.DataTableDistinctRow(ds.Tables["WorkFlowAct"],"FromTaskCode");
            //DataView dv = new DataView( ds.Tables["WorkFlowAct"],String.Format(" FromTaskCode<>'{0}' and ActType <> 1 and  Copy <> 1",currentTask.TaskCode),"",DataViewRowState.CurrentRows);
            //clm修改 日期:2006-11-2
            DataView dv = new DataView(ds.Tables["WorkFlowAct"], String.Format(" FromTaskCode<>'{0}' and  Copy <> 1", currentTask.TaskCode), "", DataViewRowState.CurrentRows);

            dv = BLL.ConvertRule.GetDistinct(dv, "FromTaskCode");
            //BLL.ConvertRule.DataViewDistinctRow(dv,"FromTaskCode");


            if (Request["Debug"] + "" == "1")
            {
                this.DataGrid1.DataSource = dv;
                this.DataGrid1.DataBind();
            }

            int iCount = dv.Count;

            for (int i = 0; i < iCount; i++)
            {
                string FromTaskCode = (String)dv[i].Row["FromTaskCode"];
                string FromTaskName = "退回给" + procedure.GetTask(FromTaskCode).TaskName;
                if (procedure.GetTask(FromTaskCode).TaskType != 1)
                {
                    this.rblSelectRouter.Items.Add(new ListItem(FromTaskName, FromTaskCode));
                }
            }
            if (this.rblSelectRouter.Items.Count > 0)
            {
                this.rblSelectRouter.SelectedIndex = 0;
                this.txtSelectRouterCode.Value     = this.rblSelectRouter.SelectedItem.Value;
                FillUserSelect(workCase, this.rblSelectRouter.SelectedValue);
            }
            Session["WorkCaseApplicationTemp"] = workCase;
        }
Ejemplo n.º 17
0
    public string CreateCase(String ProcudeID, string ApplicationCode, string ApplicationTitle, string XmlData, string Username, String ToTask, string ToUser)
    {
        try
        {
            ProcudeID        = System.Web.HttpUtility.UrlDecode(ProcudeID);
            ApplicationTitle = System.Web.HttpUtility.UrlDecode(ApplicationTitle);
            XmlData          = System.Web.HttpContext.Current.Server.HtmlDecode(System.Web.HttpUtility.UrlDecode(XmlData)).Replace("<br>", "\n");
            Username         = System.Web.HttpUtility.UrlDecode(Username);
            ToTask           = System.Web.HttpUtility.UrlDecode(ToTask);
            ToUser           = System.Web.HttpUtility.UrlDecode(ToUser);

            string ProjectName = "";
            RmsPM.BLL.ConvertRule cConvertRule = new RmsPM.BLL.ConvertRule();
            System.Xml.XmlNode    xmlnode      = cConvertRule.GetXmlDate(XmlData.ToLower());
            if (xmlnode.SelectSingleNode("projectname") != null)
            {
                ProjectName = xmlnode.SelectSingleNode("projectname").InnerText.Trim();
            }
            string SystemUserCode = "";
            string SystemUnitCode = "";

            string Transactor   = "";
            string TransactUnit = "";
            this.FlowName = ProcudeID;
            UserStrategyBuilder sb = new UserStrategyBuilder();

            sb.AddStrategy(new Strategy(UserStrategyName.UserID, Username));

            string sql = sb.BuildMainQueryString();

            Rms.ORMap.QueryAgent qa     = new QueryAgent();
            EntityData           entity = qa.FillEntityData("SystemUser", sql);
            qa.Dispose();
            if (entity.HasRecord())
            {
                SystemUserCode = entity.GetString("UserCode");
            }

            if (SystemUserCode == "")
            {
                return("UserNotFound");
            }


            string ProjectCode = "";
            if (ProjectName != "")
            {
                ProjectCode = RmsPM.BLL.ProjectRule.GetProjectCodeByName(ProjectName.Trim());
            }
            string   actCode       = "";
            string   ProcedureCode = RmsPM.BLL.WorkFlowRule.GetProcedureCodeByName(ProcudeID, ProjectCode);
            WorkCase workCase      = Rms.WorkFlow.WorkCaseManager.StartNewWorkCase(ApplicationCode, ProcedureCode, SystemUserCode, SystemUnitCode, ref actCode, Transactor, TransactUnit);
            System.Collections.IDictionaryEnumerator ie = workCase.GetActEnumerator();
            while (ie.MoveNext())
            {
                Act act = (Act)ie.Value;
                if (act.Copy != 1)
                {
                    act.IsSleep = 1;
                }
            }
            DataSet ds = Rms.WorkFlow.WorkCaseManager.SaveWorkCaseData(workCase);
            RmsPM.BLL.WorkFlowApplicationRule.SaveWorkCaseEx(ds, workCase.CaseCode);
            this.CaseCode = workCase.CaseCode;
            this.ActCode  = actCode;
            this.SaveCasePropertyValue("主题", ApplicationTitle, ProcedureCode);
            this.SaveCasePropertyValue("申请人", SystemUserCode, ProcedureCode);
            this.SaveCasePropertyValue("项目代码", ProjectCode, ProcedureCode);
            this.SaveCasePropertyValue("项目部门", RmsPM.BLL.ProjectRule.GetUnitByProject(ProjectCode), ProcedureCode);
            this.SaveCasePropertyValue("业务类别", "", ProcedureCode);
            this.SaveCasePropertyValue("业务部门", "", ProcedureCode);
            this.SaveCasePropertyValue("业务数据", XmlData, ProcedureCode);
            this.SaveCasePropertyValue("表单部门", "", ProcedureCode);
            this.SaveCasePropertyValue("手送资料", "", ProcedureCode);

            string NumberString = RmsPM.BLL.WorkFlowRule.GetProcedureNumberByName(this.FlowName) + DateTime.Now.Year.ToString().Substring(2, 2);

            int FlowNumberLenth = (RmsPM.BLL.SystemRule.GetProjectConfigValue("FlowNumberLength") == "") ? 4 : int.Parse(RmsPM.BLL.SystemRule.GetProjectConfigValue("FlowNumberLength"));

            NumberString += RmsPM.DAL.EntityDAO.SystemManageDAO.GetNewSysCode(NumberString).Substring(6 - FlowNumberLenth, FlowNumberLenth);

            this.SaveCasePropertyValue("流水号", NumberString, ProcedureCode);

            /////////////////////////////////////////////////////////////////////



            if (actCode != "")
            {
                return("success");
            }
            else
            {
                return("faild");
            }
        }
        catch (System.Exception ec)
        {
            return(ec.Message);
        }
    }
Ejemplo n.º 18
0
    /// ****************************************************************************
    /// <summary>
    /// 执行 sql 语句将查询结果帮定显示。


    /// </summary>
    /// ****************************************************************************
    private void LoadData()
    {
        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");
        entity.CurrentTable.Columns.Add(Opinion);

        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)
            {
                if (dr["ActCode"].ToString() == Flowopinion.ApplicationCode)
                {
                    if (dr["Status"].ToString() == "End")
                    {
                        Act tmpAct = workCase.GetAct(dr["ActCode"].ToString());
                        if (!(tmpAct.Copy == 1 && tmpAct.IsSleep == 0) || (tmpAct.ToTaskCode == TaskCode && tmpAct.FromUserCode == this.UserCode && tmpAct.Copy == 1) || tmpAct.ActUserCode == this.UserCode || this.IsScoutPopedom)
                        {
                            if (Flowopinion.OpinionText.Length > 0)
                            {
                                ModuleState moduleState = this.Toobar.GetModuleState(WorkFlowRule.GetTaskOpinionTypeByActCode(dr["ActCode"].ToString()));
                                if (moduleState != ModuleState.Sightless && moduleState != ModuleState.Other)
                                {
                                    //dr["Opinion"] = "<a href=\"#\" OnClick=\"javascript:WorkFlowCaseStateOpenOpinionView('" + Flowopinion.OpinionCode + "');\">" + Flowopinion.OpinionText.Substring(0, 50) + "...</a>";
                                    dr["Opinion"] = Flowopinion.OpinionText.Replace("\n", "<br>") + "&nbsp;&nbsp;<a href=\"#\" OnClick=\"javascript:WorkFlowCaseStateOpenOpinionView('" + Flowopinion.OpinionCode + "');return false;\">[详细]";
                                    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"] += "</a><br>" + "附件:" + tmpstr;
                                    }
                                    else
                                    {
                                        dr["Opinion"] += "</a>";
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        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.dgList.DataSource = dv;
        this.dgList.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 < dgList.Items.Count; i++)
                {
                    //dgList.Items[i].Cells[10].Text.Trim() == "ActCode" &&
                    if (dgList.Items[i].Cells[8].Text.Trim() == TaskCode && dgList.Items[i].Cells[9].Text.Trim() == this.UserCode && dgList.Items[i].Cells[10].Text.Trim() == "1")
                    {
                        Act tmpact = workCase.GetAct(dgList.Items[i].Cells[7].Text.Trim());
                        ((CheckBox)dgList.Items[i].FindControl("chkopinionshow")).Checked = (tmpact.IsSleep == 1);
                        ((CheckBox)dgList.Items[i].FindControl("chkopinionshow")).Visible = true;
                    }
                    else
                    {
                        ((CheckBox)dgList.Items[i].FindControl("chkopinionshow")).Visible = false;
                        Act tmpact = workCase.GetAct(dgList.Items[i].Cells[7].Text.Trim());
                        if (tmpact.IsSleep == 1 && tmpact.Copy == 1)
                        {
                            dgList.Items[i].Cells[6].Text = "&nbsp;公开";
                        }
                        else if (tmpact.IsSleep == 0 && tmpact.Copy == 1)
                        {
                            dgList.Items[i].Cells[6].Text = "&nbsp;未公开";
                        }
                    }
                }
            }
            if (this.Scout)
            {
                for (int i = 0; i < dgList.Items.Count; i++)
                {
                    ((CheckBox)dgList.Items[i].FindControl("chkopinionshow")).Visible = false;
                    Act tmpact = workCase.GetAct(dgList.Items[i].Cells[7].Text.Trim());
                    if (tmpact.IsSleep == 1 && tmpact.Copy == 1)
                    {
                        dgList.Items[i].Cells[6].Text = "&nbsp;公开";
                    }
                    else if (tmpact.IsSleep == 0 && tmpact.Copy == 1)
                    {
                        dgList.Items[i].Cells[6].Text = "&nbsp;未公开";
                    }
                }
            }
        }
        entity.Dispose();
    }
Ejemplo n.º 19
0
        // *****************************************************************************

        /// ****************************************************************************
        /// <summary>
        /// 生成显示脚本
        /// </summary>
        /// <param name="workCase">流程实体</param>
        /// <param name="currentTask">任务</param>
        /// <param name="currentAct">流程行动</param>
        /// <returns></returns>
        /// ****************************************************************************
        private string WriteOpinion(WorkCase workCase, Task currentTask, Act currentAct)
        {
            StringBuilder sb = new StringBuilder();

            EntityData pE = DAL.EntityDAO.WorkFlowDAO.GetStandard_WorkFlowProcedureByCode(workCase.ProcedureCode);
            EntityData wE = DAL.EntityDAO.WorkFlowDAO.GetStandard_WorkFlowCaseByCode(workCase.CaseCode);

            sb.Append(@"<table cellSpacing=0 cellPadding=0 width=100% border=0 class=list >");

            DataRow[] dr = pE.Tables["WorkFlowTask"].Select(" TaskCode='" + this.TaskCode + "'", "SortID", DataViewRowState.CurrentRows);

            int taskType   = (int)dr[0]["TaskType"];
            int HasOpinion = (int)dr[0]["HasOpinion"];

            sb.Append(@"<tr>");
            sb.Append(@"<td>");
            sb.Append(@"<br>");

            // 如果是会签节点
            if (taskType == 5)
            {
                /*******************  判断是否为会签最后一个参与者  **********************/
                bool SendFlag = false;
                if (StatusEndCount(this.ViewState["_CaseCode"].ToString(), this.TaskCode) == 1)
                {
                    SendFlag = true;
                }

                /*******************  获取当前会签数据  **********************/
                DataRow[] drTaskActor = pE.Tables["WorkFlowTaskActor"].Select(String.Format("TaskCode='{0}' and TaskActorID='{1}'", this.TaskCode, this.TaskActorID), "IOrder", DataViewRowState.CurrentRows);

                string taskActorID   = BLL.ConvertRule.ToString(drTaskActor[0]["TaskActorID"]);
                string taskActorName = BLL.ConvertRule.ToString(drTaskActor[0]["taskActorName"]);

                bool      isEdit     = (currentAct.ActUserCode == IUser.UserCode && this.TaskCode == currentTask.TaskCode && this.TaskActorID == currentAct.TaskActorID);
                DataRow[] drsOpinion = wE.Tables["WorkFlowOpinion"].Select(String.Format("TaskCode='{0}' and TaskActorID='{1}'  ", this.TaskCode, this.TaskActorID), "OpinionDate desc");
                if (drsOpinion.Length > 0)
                {
                    if (currentAct.Status == ActStatus.DealWith && isActorUser() && isEdit)
                    {
                        BuildOpinionCanEdit(sb, drsOpinion[0], true, SendFlag, HasOpinion);
                    }
                    else
                    {
                        BuildOpinionCanNotEdit(sb, drsOpinion[0]);
                    }
                }
                else
                {
                    if (isEdit && isActorUser())
                    {
                        BuildOpinionCanEdit(sb, null, true, SendFlag, HasOpinion);
                    }
                }
            }
            else             // 非会签节点
            {
                bool      isEdit     = (currentAct.ActUserCode == IUser.UserCode && currentTask.TaskCode == this.TaskCode);
                DataRow[] drsOpinion = wE.Tables["WorkFlowOpinion"].Select(String.Format("TaskCode='{0}'  ", this.TaskCode), "OpinionDate desc");
                if (drsOpinion.Length > 0)
                {
                    if (isEdit)
                    {
                        BuildOpinionCanEdit(sb, drsOpinion[0], false, true, HasOpinion);
                    }
                    else
                    {
                        BuildOpinionCanNotEdit(sb, drsOpinion[0]);
                    }
                }
                else
                {
                    if (isEdit)
                    {
                        BuildOpinionCanEdit(sb, null, false, true, HasOpinion);
                    }
                }
            }

            sb.Append(@"<br>");
            sb.Append(@"</td>");
            sb.Append(@"</tr>");

            sb.Append(@"</table>");

            sb.Append("<script>");
            sb.Append("function returnSelectRouterControl( routerCode , routerName  , userCodes , userNames ,copyUsers)");
            sb.Append("{");
            sb.Append("    document.all(\"divRouterName\").value = routerName;");
            sb.Append("    document.all(\"divUserNames\").value = userNames;");
            sb.Append("    document.all(\"" + this.ID + "_txtSelectRouterCode\").value = routerCode;");
            sb.Append("    document.all(\"" + this.ID + "_txtSelectUserCodes\").value = userCodes;");
            sb.Append("    document.all(\"" + this.ID + "_HiddenCopyUsers\").value = copyUsers;");
            sb.Append("    sendOpinionControl();");
            sb.Append("} ");
            sb.Append("	function sendOpinionControl()");
            sb.Append("{");
            sb.Append("    if ( (Form1." + this.ID + "_txtSelectRouterCode.value == '' )  || ( Form1." + this.ID + "_txtSelectUserCodes.value == '' ))");
            sb.Append("    {");
            sb.Append("        alert( '请选择流向 !' );");
            sb.Append("        return;");
            sb.Append("    }");
            sb.Append("    if ( document.all(\"txtOpinion\") != null )");
            sb.Append("        Form1." + this.ID + "_HiddenOption.value = document.all(\"txtOpinion\").value;");
            sb.Append("    Form1." + this.ID + "_btnSendOpinion.onclick();");
            sb.Append("	}");

            sb.Append("	function endOpinionControl()");
            sb.Append("{");
            sb.Append("    if ( document.all(\"txtOpinion\") != null )");
            sb.Append("        Form1." + this.ID + "_HiddenOption.value = document.all(\"txtOpinion\").value;");
            sb.Append("    Form1." + this.ID + "_btnEndOpinion.onclick();");
            sb.Append("	}");

            sb.Append(" function saveOpinion()");
            sb.Append("{");
            sb.Append("    if ( document.all(\"txtOpinion\") != null )");
            sb.Append("        Form1." + this.ID + "_HiddenOption.value = document.all(\"txtOpinion\").value;");
            sb.Append("    Form1." + this.ID + "_btnSubmitOpinion.onclick();");
            sb.Append("	}");

            sb.Append(" function selectRouterControl(ProcedureCode,UserCode) ");
            sb.Append("{");
            sb.Append("    OpenMiddleWindow('" + this.SelectRouterUrl + "WorkFlowSelectRouter.aspx?ProcedureCode='+ProcedureCode+'&CaseCode=" + this.ViewState["_CaseCode"].ToString() + "&ApplicationCode=" + workCase.ApplicationCode + "&UserCode=' + UserCode + '&ActCode=" + this.ActCode + "&Control=1'   ,'选择发送对象');");
            sb.Append("}");
            sb.Append("</script>");

            pE.Dispose();
            wE.Dispose();
            return(sb.ToString());;
        }
Ejemplo n.º 20
0
    /// ****************************************************************************
    /// <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>") + "&nbsp;&nbsp;";
                                    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 = "&nbsp;√";
                        }
                        else if (tmpact.IsSleep == 0 && tmpact.Copy == 1)
                        {
                            DataGrid3.Items[i].Cells[9].Text = "&nbsp;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 = "&nbsp;√";
                    }
                    else if (tmpact.IsSleep == 0 && tmpact.Copy == 1)
                    {
                        DataGrid3.Items[i].Cells[9].Text = "&nbsp;x";
                    }
                }
            }
        }
        entity.Dispose();
    }
Ejemplo n.º 21
0
        private void LoadData()
        {
            string code     = Request["ApplicationCode"] + "";
            string caseCode = Request["CaseCode"] + "";

            string procedureCode = Request["ProcedureCode"] + "";
            string procedureName = Request["ProcedureName"] + "";
            string userCode      = Request["UserCode"] + "";
            string unitCode      = Request["UnitCodeCode"] + "";

            this.ProjectCode = Request["ProjectCode"] + "";
            WorkCase workCase   = Rms.WorkFlow.WorkCaseManager.GetWorkCase(caseCode);
            Act      currentAct = workCase.GetAct(Request["ActCode"] + "");

            //this.ChkShow.Checked = (currentAct.IsSleep == 1);

            Procedure procedure = DefinitionManager.GetProcedureDifinition(workCase.ProcedureCode, true);

            DataSet  dsp          = Rms.WorkFlow.DefinitionManager.SaveProcedureDefinitionData(procedure);
            DataView dvt          = new DataView(dsp.Tables["WorkFlowTask"], String.Format(" TaskType=1 "), "", DataViewRowState.CurrentRows);
            DataView dvr          = new DataView(dsp.Tables["WorkFlowRouter"], String.Format(" FromTaskCode='{0}' ", dvt[0].Row["TaskCode"].ToString()), "", DataViewRowState.CurrentRows);
            string   FromTaskCode = dvr[0].Row["ToTaskCode"].ToString();
            string   FromTaskName = procedure.GetTask(FromTaskCode).TaskName;

            this.rblSelectRouter.Items.Add(new ListItem(FromTaskName, FromTaskCode));

            if (this.rblSelectRouter.Items.Count > 0)
            {
                this.rblSelectRouter.SelectedIndex = 0;
                this.txtSelectRouterCode.Value     = this.rblSelectRouter.SelectedItem.Value;
            }

            string userCodes = "";

            System.Collections.IDictionaryEnumerator ieact = workCase.GetActEnumerator();
            while (ieact.MoveNext())
            {
                Act act = (Act)ieact.Value;
                if (act.FromTaskCode == dvt[0].Row["TaskCode"].ToString())
                {
                    userCodes = act.ActUserCode;//+",taskActorName=,,undefined;";
                    this.txtTaskActorIDs.Value += userCodes + ",";
                }
            }

            this.FlowOpinion.Value = "不同意";
            System.Collections.IDictionaryEnumerator ie = workCase.GetOpinionEnumerator();
            while (ie.MoveNext())
            {
                Opinion Flowopinion = (Opinion)ie.Value;
                if (Flowopinion.ApplicationCode == currentAct.ActCode)
                {
                    this.FlowOpinion.Value = Flowopinion.OpinionText;
                    switch (this.up_sPMName.ToLower())
                    {
                    case "shimaopm":
                        if (Flowopinion.OpinionText.Trim() == "")
                        {
                            this.FlowOpinion.Value = "不同意";
                        }
                        break;
                    }
                }
            }

            this.txtCurrentActCode.Value = currentAct.ActCode;

            this.tdSelectTaskActors.InnerHtml = "";
            StringBuilder sb = new StringBuilder();

            string UserName = RmsPM.BLL.SystemRule.GetUserNameByProjectCode(userCodes, this.ProjectCode, null);

            sb.Append("<table border=0 cellpadding=0 cellspace=0>");
            sb.Append("<tr>");
            sb.Append(" <td nowrap> <input ");
            sb.Append(" checked ");
            sb.Append(" type=checkbox name=sta" + userCodes + " id=sta" + userCodes + " userName="******"  value=" + userCodes + " taskActorID=" + userCodes + " taskActorName=" + " >");
            sb.Append(UserName);
            sb.Append("</td>");
            sb.Append("</tr>");
            sb.Append("</table>");
            this.tdSelectTaskActors.InnerHtml  = sb.ToString();
            Session["WorkCaseApplicationTemp"] = workCase;
        }