protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Request["ID"] == null)
            {
                return;
            }
            hiddenRunProcess.Text = Request["ID"];
            int id = int.Parse(hiddenRunProcess.Text);
            FineOffice.Modules.OA_FlowRunProcess model = runProcessBll.GetModel(d => d.ID == id);

            if (Request["Version"] != null)
            {
                hiddenVersion.Text = Request["Version"];
            }
            else
            {
                hiddenVersion.Text = this.ByteToJson(model.Version);
            }
            btnFind.OnClientClick = frmPersonnel.GetSaveStateReference(txtPersonnel.ClientID, hiddenPersonnel.ClientID)
                                    + frmPersonnel.GetShowReference("FrmTransmitPerson.aspx?Process=" + model.ProcessID);
            btnClose.OnClientClick = ActiveWindow.GetConfirmHidePostBackReference();
        }
    }
Example #2
0
    protected void btnEnterNextProcess_Click(object sender, EventArgs e)
    {
        if (processGrid.SelectedRowIndexArray.Length == 0)
        {
            Alert.ShowInParent("请选择工作步骤!");
            return;
        }

        object[] process = processGrid.DataKeys[processGrid.SelectedRowIndex];
        object[] person  = null;
        if (!(bool)process[3])
        {
            if (personGrid.SelectedRowIndexArray.Length == 0)
            {
                Alert.ShowInParent("请选办理人员!");
                return;
            }
            person = personGrid.DataKeys[personGrid.SelectedRowIndex];
        }

        FineOffice.Modules.OA_FlowRunProcess handle = runProcessBll.GetModel(p => p.ID == int.Parse(hiddenRunProcess.Text));
        handle.State          = 1;//已办理,转入下一步
        handle.TrackingState  = TrackingInfo.Updated;
        handle.Version        = this.JsonTobyte(hiddenVersion.Text);
        handle.HandleTime     = DateTime.Now;
        handle.TransmitAdvice = txtTransmitAdvice.Text;

        //创建新步骤
        FineOffice.Modules.OA_FlowRunProcess runProcess = new FineOffice.Modules.OA_FlowRunProcess();
        runProcess.AcceptTime = handle.HandleTime;
        runProcess.ProcessID  = process[0].ToString();
        runProcess.RunID      = handle.RunID;
        runProcess.State      = 0;
        runProcess.Pattern    = 1;//正常转入
        runProcess.SendID     = handle.AcceptID;

        if (person != null)
        {
            runProcess.AcceptID = int.Parse(person[0].ToString());
        }
        else
        {
            runProcess.AcceptID = handle.AcceptID;
        }

        runProcess.PreviousID    = handle.ID;
        runProcess.TrackingState = TrackingInfo.Created;

        try
        {
            runHandlerBll.HandleCreateRunProcess(handle, runProcess);
            PageContext.RegisterStartupScript("saveRunProcess();");
        }
        catch
        {
            Alert.ShowInParent("该流程已办理,不能操作!");
        }
    }
 protected void Grid_RowDataBound(object sender, FineUI.GridRowEventArgs e)
 {
     FineOffice.Modules.OA_FlowRunProcess row = e.DataItem as FineOffice.Modules.OA_FlowRunProcess;
     if (row != null)
     {
         if (row.State == 3)
         {
             highlightRows.Text += e.RowIndex.ToString() + ",";
         }
     }
 }
Example #4
0
    /// <summary>
    /// 保存
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnSave_Click(object sender, EventArgs e)
    {
        int id = int.Parse(hiddenRunProcess.Text);

        FineOffice.Modules.OA_FlowRunProcess model = runProcessBll.GetModel(p => p.ID == id);
        model.TransmitAdvice = txtTransmitAdvice.Text.Trim();
        model.Version        = JsonTobyte(hiddenVersion.Text);

        model = runProcessBll.Update(model);
        hiddenVersion.Text = ByteToJson(model.Version);
    }
Example #5
0
    /// <summary>
    /// 退回步骤
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnEnterSendBack_Click(object sender, EventArgs e)
    {
        FineOffice.Modules.OA_FlowRunProcess currentProcess = runProcessBll.GetModel(p => p.ID == int.Parse(hiddenRunProcess.Text));
        currentProcess.State          = 4;//退回
        currentProcess.TrackingState  = TrackingInfo.Updated;
        currentProcess.Version        = this.JsonTobyte(hiddenVersion.Text);
        currentProcess.HandleTime     = DateTime.Now;
        currentProcess.TransmitAdvice = txtTransmitAdvice.Text;

        int backID = int.Parse(radRunProcess.SelectedValue);

        //查找要退回的步骤
        FineOffice.Modules.OA_FlowRunProcess backProcess = runProcessBll.GetModel(p => p.ID == backID);

        //创建办理
        FineOffice.Modules.OA_FlowRunProcess process = new FineOffice.Modules.OA_FlowRunProcess();
        process.State = 0;
        process.RunID = backProcess.RunID;

        //退回的操作,刚刚是反转过来
        process.Pattern        = 4;
        process.SendID         = currentProcess.AcceptID;
        process.IsEntrance     = backProcess.IsEntrance;
        process.AcceptID       = backProcess.SendID;
        process.AcceptTime     = currentProcess.HandleTime;
        process.ProcessID      = backProcess.ProcessID;
        process.TransmitAdvice = backProcess.TransmitAdvice;
        process.PreviousID     = backProcess.PreviousID;
        process.TrackingState  = TrackingInfo.Created;

        try
        {
            runHandlerBll.SendBackRunProcess(currentProcess, process);
            PageContext.RegisterStartupScript("saveRunProcess();");
        }
        catch
        {
            Alert.ShowInParent("该流程已办理,不能操作!");
        }
    }
    protected void btnSave_Click(object sender, EventArgs e)
    {
        int id = int.Parse(hiddenRunProcess.Text);

        FineOffice.Modules.OA_FlowRunProcess currentProcess = runProcessBll.GetModel(p => p.ID == int.Parse(hiddenRunProcess.Text));
        currentProcess.State          = 2;//委托
        currentProcess.TrackingState  = TrackingInfo.Updated;
        currentProcess.Version        = this.JsonTobyte(hiddenVersion.Text);
        currentProcess.HandleTime     = DateTime.Now;
        currentProcess.TransmitAdvice = txtTransmitAdvice.Text;

        //创建办理
        FineOffice.Modules.OA_FlowRunProcess process = new FineOffice.Modules.OA_FlowRunProcess();
        process.State = 0;
        process.RunID = currentProcess.RunID;

        //退回的操作,刚刚是反转过来
        process.Pattern        = 2;
        process.SendID         = currentProcess.AcceptID;
        process.IsEntrance     = currentProcess.IsEntrance;
        process.AcceptID       = int.Parse(hiddenPersonnel.Text);
        process.AcceptTime     = currentProcess.HandleTime;
        process.ProcessID      = currentProcess.ProcessID;
        process.TransmitAdvice = currentProcess.TransmitAdvice;
        process.PreviousID     = currentProcess.PreviousID;
        process.TrackingState  = TrackingInfo.Created;

        try
        {
            runHandlerBll.SendBackRunProcess(currentProcess, process);
            PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference("transmitClose"));
        }
        catch
        {
            Alert.ShowInParent("该流程已办理,不能操作!");
        }
    }
Example #7
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Request["RunProcess"] != null)
            {
                hiddenTabID.Text = Request["TabID"];
                int runProcessID = int.Parse(Request["RunProcess"]);
                FineOffice.Modules.OA_FlowRunProcess model = runProcessBll.GetModel(r => r.ID == runProcessID);

                hiddenVersion.Text     = this.ByteToJson(model.Version);
                hiddenRunProcess.Text  = model.ID.ToString();
                txtTransmitAdvice.Text = model.TransmitAdvice;

                lblRemrk.Text      = model.Remark;
                lblCreateTime.Text = string.Format("{0:yyyy-MM-dd mm:ss}", model.WorkCreateTime);
                lblCreator.Text    = model.CreateName;
                lblWorkName.Text   = model.WorkName;
                lblWorkNO.Text     = model.WorkNO;
                hiddenWork.Text    = model.RunID.ToString();

                ChangeTrackingList <EntitySearcher> changeTrackingList = new ChangeTrackingList <EntitySearcher>();
                ViewState["formSql"] = changeTrackingList;
                GridColumn formColumn = formGrid.FindColumn(formGrid.SortColumn);
                formGrid_Bind(changeTrackingList, formColumn.SortField, formGrid.SortDirection);

                ViewState["attachmentSql"] = changeTrackingList;
                GridColumn attachmentColumn = attachmentGrid.FindColumn(attachmentGrid.SortColumn);
                attachmentGrid_Bind(changeTrackingList, attachmentColumn.SortField, attachmentGrid.SortDirection);

                btnPreview.OnClientClick  = formGrid.GetNoSelectionAlertReference("请选择要预览的表单!");
                btnDownForm.OnClientClick = formGrid.GetNoSelectionAlertReference("请选择要下载的表单!");

                btnDownAttachment.OnClientClick = attachmentGrid.GetNoSelectionAlertReference("请选择要下载的附件!");
            }
        }
    }
Example #8
0
    protected void btnSave_Click(object sender, EventArgs e)
    {
        if (this.CookiePersonnel == null)
        {
            Alert.ShowInParent("当前用户不存在职员信息,不能新建工作!");
            return;
        }
        FineOffice.Modules.OA_FlowRun model = new FineOffice.Modules.OA_FlowRun();
        model.WorkNO = txtWorkNO.Text;
        model.FlowID = int.Parse(txtFlowID.Text);
        FineOffice.Modules.OA_FlowProcess process = processBll.GetModel(r => r.FlowID == model.FlowID && r.IsStart == true);
        if (process == null)
        {
            Alert.ShowInParent("工作流程没有开始步骤,不能新建工作!");
            return;
        }

        bool state = false;

        if (process.ProcessDepartment != null)
        {
            string[] deparment = process.ProcessDepartment.Split(',');
            if (deparment.Where(s => s == this.CookiePersonnel.DepartmentID.ToString()).Count() > 0)
            {
                state = true;
            }
        }
        if (process.ProcessPersonnel != null)
        {
            string[] personnel = process.ProcessPersonnel.Split(',');
            if (personnel.Where(s => s == this.CookiePersonnel.ID.ToString()).Count() > 0)
            {
                state = true;
            }
        }
        if (process.ProcessDepartment == null && process.ProcessPersonnel == null)
        {
            state = true;
        }
        if (!state)
        {
            Alert.ShowInParent("当前用户没有操作该步骤的权限,不能新建工作!");
            return;
        }
        model.WorkName   = txtWorkName.Text.Trim();
        model.CreateTime = DateTime.Parse(dtpDate.Text.Trim() + " " + dtpTime.Text);
        model.Remark     = txtRemark.Text;
        model.Creator    = CookiePersonnel.ID;
        FineOffice.Modules.OA_FlowRunProcess runProcess = new FineOffice.Modules.OA_FlowRunProcess();
        runProcess.AcceptID   = this.CookiePersonnel.ID;
        runProcess.SendID     = this.CookiePersonnel.ID;
        runProcess.ProcessID  = process.ID;
        runProcess.AcceptTime = model.CreateTime;
        runProcess.RunID      = model.ID;
        runProcess.State      = 0;
        runProcess.Pattern    = 0;
        runProcess.AcceptTime = model.CreateTime;
        runProcess.State      = 0;
        runProcess.IsEntrance = true;
        runProcess.AcceptID   = this.CookiePersonnel.ID;
        model.OA_FlowRunProcessList.Add(runProcess);

        try
        {
            model = runBll.Add(model);
            ChangeTrackingList <EntitySearcher> searchList = new ChangeTrackingList <EntitySearcher>();
            EntitySearcher searcher = new EntitySearcher();
            searcher.Content  = model.ID.ToString();
            searcher.Operator = "=";
            searcher.Field    = "RunID";
            searcher.Relation = "OR";
            searchList.Add(searcher);
            FineOffice.Modules.OA_FlowRunProcess temp = runProcessBll.GetList(searchList)[0];
            PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference("Close&" + temp.ID));
        }
        catch (Exception ex)
        {
            Alert.ShowInParent(ex.Message);
        }
    }
Example #9
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            hiddenTabID.Text = Request["TabID"];
            int runProcessID = int.Parse(Request["RunProcess"]);
            FineOffice.Modules.OA_FlowRunProcess model = runProcessBll.GetModel(r => r.ID == runProcessID);

            btnReject.Visible   = !model.IsStart.Value;
            tssReject.Visible   = !model.IsStart.Value;
            btnSendback.Visible = !model.IsStart.Value;
            tssSendback.Visible = !model.IsStart.Value;

            hiddenVersion.Text     = this.ByteToJson(model.Version);
            hiddenRunProcess.Text  = model.ID.ToString();
            txtTransmitAdvice.Text = model.TransmitAdvice;

            lblRemrk.Text      = model.Remark;
            lblCreateTime.Text = string.Format("{0:yyyy-MM-dd mm:ss}", model.WorkCreateTime);
            lblCreator.Text    = model.CreateName;
            lblWorkName.Text   = model.WorkName;
            lblWorkNO.Text     = model.WorkNO;
            hiddenWork.Text    = model.RunID.ToString();

            this.formGrid.PageIndex = 0;
            ChangeTrackingList <EntitySearcher> changeTrackingList = new ChangeTrackingList <EntitySearcher>();
            ViewState["formSql"] = changeTrackingList;
            GridColumn formColumn = formGrid.FindColumn(formGrid.SortColumn);
            formGrid_Bind(changeTrackingList, formColumn.SortField, formGrid.SortDirection);

            this.attachmentGrid.PageIndex = 0;
            ViewState["attachmentSql"]    = changeTrackingList;
            GridColumn attachmentColumn = attachmentGrid.FindColumn(attachmentGrid.SortColumn);
            attachmentGrid_Bind(changeTrackingList, attachmentColumn.SortField, attachmentGrid.SortDirection);

            btnNewForm.OnClientClick    = frmNewFlowForm.GetShowReference("FrmNewFlowForm.aspx?ProcessID=" + model.ProcessID + "&RunProcess=" + model.ID);
            btnModifyForm.OnClientClick = formGrid.GetNoSelectionAlertReference("请选择要操作的表单!");
            btnDownForm.OnClientClick   = formGrid.GetNoSelectionAlertReference("请选择要下载的表单!");
            btnPreview.OnClientClick    = formGrid.GetNoSelectionAlertReference("请选择要预览的表单!");

            btnDownAttachment.OnClientClick = attachmentGrid.GetNoSelectionAlertReference("请选择要下载的附件!");
            btnModifyFileName.OnClientClick = attachmentGrid.GetNoSelectionAlertReference("请选择要操作的附件!");
            btnReject.ConfirmText           = String.Format("你确认要拒绝吗?");

            #region 加载选择下一步的数据

            btnNext.OnClientClick             = this.frmNextProcess.GetShowReference();
            btnCloseNextProcess.OnClientClick = this.frmNextProcess.GetHideReference();

            if (model.Next != null)
            {
                string[] strList = model.Next.Split(',');
                List <FineOffice.Modules.OA_FlowProcess> processList = processBll.GetList(p => strList.Contains(p.ID));
                if (processList.Count > 0)
                {
                    this.processGrid.DataSource = processList;
                    this.processGrid.DataBind();
                    this.processGrid.SelectedRowIndex = 0;
                }
            }
            #endregion

            #region 加载退回的数据
            btnSendback.OnClientClick      = this.frmSendBack.GetShowReference();
            btnCloseSendBack.OnClientClick = this.frmSendBack.GetHideReference();

            List <FineOffice.Modules.OA_FlowRunProcess> runProcessList = runHandlerBll.FlowRunProcessList(new FineOffice.Modules.OA_FlowRun {
                ID = (int)model.RunID
            });
            foreach (FineOffice.Modules.OA_FlowRunProcess temp in runProcessList)
            {
                if (temp.State != 0)
                {
                    radRunProcess.Items.Add(temp.ProcessName, temp.ID.ToString());
                }
            }
            radRunProcess.SelectedIndex = radRunProcess.Items.Count - 1;
            #endregion
        }
        if (Request.Form["__EVENTARGUMENT"] == "refreshRunData")
        {
            ChangeTrackingList <EntitySearcher> changeTrackingList = ViewState["formSql"] as ChangeTrackingList <EntitySearcher>;
            GridColumn column = formGrid.FindColumn(formGrid.SortColumn);
            formGrid_Bind(changeTrackingList, column.SortField, formGrid.SortDirection);
        }
        if (Request.Form["__EVENTARGUMENT"] == "refresh_attachment")
        {
            ChangeTrackingList <EntitySearcher> changeTrackingList = ViewState["attachmentSql"] as ChangeTrackingList <EntitySearcher>;
            GridColumn column = attachmentGrid.FindColumn(attachmentGrid.SortColumn);
            attachmentGrid_Bind(changeTrackingList, column.SortField, attachmentGrid.SortDirection);
        }
        if (Request.Form["__EVENTARGUMENT"] == "transmitClose")
        {
            PageContext.RegisterStartupScript("saveRunProcess();");
        }
    }