Example #1
0
        private void DataStore()
        {
            string nowDate = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            //string loginID = CommonFuns.NewInstance.LoginInfo.LoginID;
            //1.detail中存放两笔资料,一笔当前状态的更新   2  下一节点的记录新增 ,如果当前没有完成整个节点的审批,那么不需要进行此项工作
            //2.往handle中更新当前处理人的处理状态及意见

            ///1  更新表WF_APP_HANDLE:往handle中更新当前处理人的处理状态及意见
            WF_APP_HANDLE item = WorkFlow.NewInstance.GetWfAppHandleItem(APP.WFA_ID, wipWFAppDetai.Current_STEP_ID, loginID);
            if (item != null)
            {
                if (item.IS_THROUGH != null && item.IS_THROUGH.Trim() != "")
                {
                    MessageBox.Show("您已经审批过,无需再一次审批!", "工作流实例建立向导提示您:", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
                    return;
                }
            }
            else
            {
                MessageBox.Show("获取当前用户处理节点信息异常!", "工作流实例建立向导提示您:", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
                return;
            }
            item.DEL_FLAG = "N";
            item.LASTUPDATEDATE = nowDate;
            item.LASTUPDATEUSER = loginID;
            item.MSG = contentMsg;
            item.COMPLEMENTDATE = nowDate;
            if (isThrough == true)
            {
                item.IS_THROUGH = "Y";
            }
            else
            {
                item.IS_THROUGH = "N";

            }
            item.Update();

            //2 判定当前节点是否还有人员没有审批完成
            Boolean blAllThrough = true;
            Boolean isUpdateDetail = true;
            IList<WF_APP_HANDLE> list = WorkFlow.NewInstance.GetWfAppStepHandleList(APP.WFA_ID, wipWFAppDetai.Current_STEP_ID);
            foreach (WF_APP_HANDLE handleItem in list)  //判定该流程节点是否通过
            {
                if (handleItem.IS_THROUGH == "N")
                {
                    blAllThrough = false; //只要有一个人员的签批为未通过,则整个节点就为未通过
                    break;
                }
            }
            foreach (WF_APP_HANDLE handleItem in list) //判定该节点是否还有没有完成的签批用户
            {
                if (handleItem.IS_THROUGH == null || handleItem.IS_THROUGH == "")
                {
                    isUpdateDetail = false;
                    break;
                }
            }
            if (isUpdateDetail) //需要更新detail信息,说明此节点的所有用户已经审批完成,而且全部通过审批
            {
                ///A更新当前节点的处理信息
                WF_DETAIL detail = new HYPDM.Entities.WF_DETAIL();

                detail = WorkFlow.NewInstance.GetDetailByWFAppidAndStepID(wipWFAppDetai.WFA_ID, wipWFAppDetai.Current_STEP_ID);

                if (detail == null)
                {
                    MessageBox.Show("获取当前节点信息异常!", "工作流实例建立向导提示您:", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
                    return;
                }
                detail.Current_STEP_ID = wipWFAppDetai.Current_STEP_ID;
                detail.MSG = contentMsg; //可加可不加
                //detail.IS_Through = "Y";
                detail.IS_Through = blAllThrough == true ? "Y" : "N";
                detail.COMPLEMENTDATE = nowDate;
                detail.WFA_ID = wipWFAppDetai.WFA_ID;
                detail.Update();

                //判定整个工作流是否已经完成,如果已经完成,更新整个工作流状态为Complete

                WF_APP wfapp = WorkFlow.NewInstance.GetWFappByWFID(wipWFAppDetai.WFA_ID);
                WF_TEMPLATES_STEP step = WorkFlow.NewInstance.GetWFEndStepByWFID(wfapp.WFT_ID); //end step
                if (wipWFAppDetai.WFT_STEP_ID == step.WFT_STEP_ID) //判定是否最终节点
                {
                    ///B将该工作流的状态设为完成Complete
                    wfapp.LASTUPDATEDATE = nowDate;
                    wfapp.LASTUPDATEUSER = loginID;
                    wfapp.STATUS = DataType.WFDetailSTATUS.Complete.ToString();
                    wfapp.Update();
                }
                else
                {
                    //如果不是跟节点,且目前节点已经审批完成,需要添加下节点信息,WIP信息

                    // if (isThrough) //如果本用户签批通过,在detail信息表中新增wip信息
                    if (blAllThrough || isThrough)
                    {
                        ///新增WF_DETAIL记录,指向下一工作流信息
                        // wfah.Current_STEP_ID = WorkFlow.NewInstance.GetWFStepInfoByStepID(wftStepID).WFT_CURRENT_STEP_ID;
                        WF_DETAIL detailNew = new HYPDM.Entities.WF_DETAIL();
                        detailNew.Current_STEP_ID = WorkFlow.NewInstance.GetStepInfoByWftIDAndCurrentStepID(APP.WFT_ID, detail.Current_STEP_ID).WFT_NEXT_STEP_ID;
                        detailNew.MSG = "";
                        detailNew.IS_Through = "";
                        detailNew.DEL_FLAG = "N";
                        detailNew.COMPLEMENTDATE = "";
                        detailNew.RECIVEDATE = detail.COMPLEMENTDATE;
                        detailNew.WFD_ID = Guid.NewGuid().ToString();
                        detailNew.WFA_ID = detail.WFA_ID;
                        detailNew.WFT_STEP_ID = WorkFlow.NewInstance.GetWftStepIDByStepIDAndAppID(detailNew.WFA_ID, detailNew.Current_STEP_ID);
                        detailNew.Save();
                    }
                }
            }

            if (!blAllThrough)  //说明有用户选择没有通过的选项
            {
                ///1.如果没有通过工作流审批,A.将WF_APP中工作流实例信息的状态变为:UNActivate,未激活,返回拟制状态
                ///                     B.将WF_APP_HANDLE表中对应的处理人del_flag设为Y
                ///                     C.将WF_DETAIL表中对应的信息del_falg设为Y
                ///
                ///如果有审批人员在此节点审批不通过,则将此工作流实例设为Return(退回、拟制状态)
                //A.将WF_APP中工作流实例信息的状态变为:Return,未激活,返回拟制状态
                WF_APP wfapp = WorkFlow.NewInstance.GetWFappByWFID(wipWFAppDetai.WFA_ID);
                wfapp.LASTUPDATEDATE = nowDate;
                wfapp.LASTUPDATEUSER = loginID;
                wfapp.STATUS = DataType.WFDetailSTATUS.Return.ToString();
                wfapp.Update();

                // B.将WF_APP_HANDLE表中对应的处理人del_flag设为Y
                IList<WF_APP_HANDLE> handleUsers = WorkFlow.NewInstance.GetAllHandleList(wipWFAppDetai.WFA_ID);
                foreach (WF_APP_HANDLE handle in handleUsers)
                {
                    handle.LASTUPDATEDATE = nowDate;
                    handle.LASTUPDATEUSER = loginID;
                    handle.DEL_FLAG = "Y";
                    handle.Update();
                }
                IList<WF_APP_USER> users = WorkFlow.NewInstance.GetAllUserList(wipWFAppDetai.WFA_ID);
                foreach (WF_APP_USER user in users)
                {
                    WF_APP_HANDLE wfah = new HYPDM.Entities.WF_APP_HANDLE();
                    wfah.WFAH_ID = Guid.NewGuid().ToString();
                    wfah.LASTUPDATEDATE = "";
                    wfah.LASTUPDATEUSER = "";
                    wfah.CREATEDATE = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    wfah.CREATEUSER = CommonFuns.NewInstance.LoginInfo.LoginID;
                    wfah.DEL_FLAG = "N";
                    wfah.WFA_ID = user.WFA_ID;
                    wfah.Current_STEP_ID = WorkFlow.NewInstance.GetWFStepInfoByStepID(user.WFT_STEP_ID).WFT_CURRENT_STEP_ID;
                    wfah.OBJECTTYPE = user.OBJECTTYPE.ToString();
                    wfah.OBJECTVALUE = user.OBJECTVALUE.ToString() ;
                    wfah.WFT_STEP_ID = user.WFT_STEP_ID;
                    wfah.IS_THROUGH = "";
                    wfah.Save();
                }
                //C.将WF_DETAIL表中对应的信息del_falg设为Y
                IList<WF_DETAIL> detailList = WorkFlow.NewInstance.GetWfDetailList(wipWFAppDetai.WFA_ID);
                foreach (WF_DETAIL detail in detailList)
                {
                    detail.DEL_FLAG = "Y";
                    detail.Update();
                }
                /////
            }
        }
Example #2
0
        private void DataStore()
        {
            string nowDate = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            //string loginID = CommonFuns.NewInstance.LoginInfo.LoginID;
            //1.detail中存放两笔资料,一笔当前状态的更新   2  下一节点的记录新增 ,如果当前没有完成整个节点的审批,那么不需要进行此项工作
            //2.往handle中更新当前处理人的处理状态及意见

            ///1  更新表WF_APP_HANDLE:往handle中更新当前处理人的处理状态及意见
            WF_APP_HANDLE item = WorkFlow.NewInstance.GetWfAppHandleItem(APP.WFA_ID, wipWFAppDetai.Current_STEP_ID, loginID);

            if (item != null)
            {
                if (item.IS_THROUGH != null && item.IS_THROUGH.Trim() != "")
                {
                    MessageBox.Show("您已经审批过,无需再一次审批!", "工作流实例建立向导提示您:", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
                    return;
                }
            }
            else
            {
                MessageBox.Show("获取当前用户处理节点信息异常!", "工作流实例建立向导提示您:", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
                return;
            }
            item.DEL_FLAG       = "N";
            item.LASTUPDATEDATE = nowDate;
            item.LASTUPDATEUSER = loginID;
            item.MSG            = contentMsg;
            item.COMPLEMENTDATE = nowDate;
            if (isThrough == true)
            {
                item.IS_THROUGH = "Y";
            }
            else
            {
                item.IS_THROUGH = "N";
            }
            item.Update();


            //2 判定当前节点是否还有人员没有审批完成
            Boolean blAllThrough       = true;
            Boolean isUpdateDetail     = true;
            IList <WF_APP_HANDLE> list = WorkFlow.NewInstance.GetWfAppStepHandleList(APP.WFA_ID, wipWFAppDetai.Current_STEP_ID);

            foreach (WF_APP_HANDLE handleItem in list)  //判定该流程节点是否通过
            {
                if (handleItem.IS_THROUGH == "N")
                {
                    blAllThrough = false; //只要有一个人员的签批为未通过,则整个节点就为未通过
                    break;
                }
            }
            foreach (WF_APP_HANDLE handleItem in list) //判定该节点是否还有没有完成的签批用户
            {
                if (handleItem.IS_THROUGH == null || handleItem.IS_THROUGH == "")
                {
                    isUpdateDetail = false;
                    break;
                }
            }
            if (isUpdateDetail) //需要更新detail信息,说明此节点的所有用户已经审批完成,而且全部通过审批
            {
                ///A更新当前节点的处理信息
                WF_DETAIL detail = new HYPDM.Entities.WF_DETAIL();

                detail = WorkFlow.NewInstance.GetDetailByWFAppidAndStepID(wipWFAppDetai.WFA_ID, wipWFAppDetai.Current_STEP_ID);

                if (detail == null)
                {
                    MessageBox.Show("获取当前节点信息异常!", "工作流实例建立向导提示您:", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
                    return;
                }
                detail.Current_STEP_ID = wipWFAppDetai.Current_STEP_ID;
                detail.MSG             = contentMsg; //可加可不加
                //detail.IS_Through = "Y";
                detail.IS_Through     = blAllThrough == true ? "Y" : "N";
                detail.COMPLEMENTDATE = nowDate;
                detail.WFA_ID         = wipWFAppDetai.WFA_ID;
                detail.Update();

                //判定整个工作流是否已经完成,如果已经完成,更新整个工作流状态为Complete

                WF_APP            wfapp = WorkFlow.NewInstance.GetWFappByWFID(wipWFAppDetai.WFA_ID);
                WF_TEMPLATES_STEP step  = WorkFlow.NewInstance.GetWFEndStepByWFID(wfapp.WFT_ID); //end step
                if (wipWFAppDetai.WFT_STEP_ID == step.WFT_STEP_ID)                               //判定是否最终节点
                {
                    ///B将该工作流的状态设为完成Complete
                    wfapp.LASTUPDATEDATE = nowDate;
                    wfapp.LASTUPDATEUSER = loginID;
                    wfapp.STATUS         = DataType.WFDetailSTATUS.Complete.ToString();
                    wfapp.Update();
                }
                else
                {
                    //如果不是跟节点,且目前节点已经审批完成,需要添加下节点信息,WIP信息

                    // if (isThrough) //如果本用户签批通过,在detail信息表中新增wip信息
                    if (blAllThrough || isThrough)
                    {
                        ///新增WF_DETAIL记录,指向下一工作流信息
                        // wfah.Current_STEP_ID = WorkFlow.NewInstance.GetWFStepInfoByStepID(wftStepID).WFT_CURRENT_STEP_ID;
                        WF_DETAIL detailNew = new HYPDM.Entities.WF_DETAIL();
                        detailNew.Current_STEP_ID = WorkFlow.NewInstance.GetStepInfoByWftIDAndCurrentStepID(APP.WFT_ID, detail.Current_STEP_ID).WFT_NEXT_STEP_ID;
                        detailNew.MSG             = "";
                        detailNew.IS_Through      = "";
                        detailNew.DEL_FLAG        = "N";
                        detailNew.COMPLEMENTDATE  = "";
                        detailNew.RECIVEDATE      = detail.COMPLEMENTDATE;
                        detailNew.WFD_ID          = Guid.NewGuid().ToString();
                        detailNew.WFA_ID          = detail.WFA_ID;
                        detailNew.WFT_STEP_ID     = WorkFlow.NewInstance.GetWftStepIDByStepIDAndAppID(detailNew.WFA_ID, detailNew.Current_STEP_ID);
                        detailNew.Save();
                    }
                }
            }

            if (!blAllThrough)  //说明有用户选择没有通过的选项
            {
                ///1.如果没有通过工作流审批,A.将WF_APP中工作流实例信息的状态变为:UNActivate,未激活,返回拟制状态
                ///                     B.将WF_APP_HANDLE表中对应的处理人del_flag设为Y
                ///                     C.将WF_DETAIL表中对应的信息del_falg设为Y
                ///
                ///如果有审批人员在此节点审批不通过,则将此工作流实例设为Return(退回、拟制状态)
                //A.将WF_APP中工作流实例信息的状态变为:Return,未激活,返回拟制状态
                WF_APP wfapp = WorkFlow.NewInstance.GetWFappByWFID(wipWFAppDetai.WFA_ID);
                wfapp.LASTUPDATEDATE = nowDate;
                wfapp.LASTUPDATEUSER = loginID;
                wfapp.STATUS         = DataType.WFDetailSTATUS.Return.ToString();
                wfapp.Update();

                // B.将WF_APP_HANDLE表中对应的处理人del_flag设为Y
                IList <WF_APP_HANDLE> handleUsers = WorkFlow.NewInstance.GetAllHandleList(wipWFAppDetai.WFA_ID);
                foreach (WF_APP_HANDLE handle in handleUsers)
                {
                    handle.LASTUPDATEDATE = nowDate;
                    handle.LASTUPDATEUSER = loginID;
                    handle.DEL_FLAG       = "Y";
                    handle.Update();
                }
                IList <WF_APP_USER> users = WorkFlow.NewInstance.GetAllUserList(wipWFAppDetai.WFA_ID);
                foreach (WF_APP_USER user in users)
                {
                    WF_APP_HANDLE wfah = new HYPDM.Entities.WF_APP_HANDLE();
                    wfah.WFAH_ID         = Guid.NewGuid().ToString();
                    wfah.LASTUPDATEDATE  = "";
                    wfah.LASTUPDATEUSER  = "";
                    wfah.CREATEDATE      = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    wfah.CREATEUSER      = CommonFuns.NewInstance.LoginInfo.LoginID;
                    wfah.DEL_FLAG        = "N";
                    wfah.WFA_ID          = user.WFA_ID;
                    wfah.Current_STEP_ID = WorkFlow.NewInstance.GetWFStepInfoByStepID(user.WFT_STEP_ID).WFT_CURRENT_STEP_ID;
                    wfah.OBJECTTYPE      = user.OBJECTTYPE.ToString();
                    wfah.OBJECTVALUE     = user.OBJECTVALUE.ToString();
                    wfah.WFT_STEP_ID     = user.WFT_STEP_ID;
                    wfah.IS_THROUGH      = "";
                    wfah.Save();
                }
                //C.将WF_DETAIL表中对应的信息del_falg设为Y
                IList <WF_DETAIL> detailList = WorkFlow.NewInstance.GetWfDetailList(wipWFAppDetai.WFA_ID);
                foreach (WF_DETAIL detail in detailList)
                {
                    detail.DEL_FLAG = "Y";
                    detail.Update();
                }
                /////
            }
        }
Example #3
0
        /// <summary>
        /// 弹出选择用户登录的弹出框
        /// </summary>
        private void selUser(string wftStepID)
        {
            List<DataType.UserOrGroupSelected> oldSelectedUserList = new List<DataType.UserOrGroupSelected>();
            // WfAppID
            //判定当前节点已经设定的签批用户

            IList<WF_APP_HANDLE> list = WorkFlow.NewInstance.GetWFAppStepHandle(this.WfAppID, wftStepID);
            IList<WF_APP_USER> UserList = WorkFlow.NewInstance.GetWFAppStepUser(this.wfAppID,wftStepID);

            if (list == null)
            {

            }
            else
            {
                DataType.UserOrGroupSelected item;
                foreach (WF_APP_HANDLE han in list)
                {
                    item = new DataType.UserOrGroupSelected();
                    item.Value = han.OBJECTVALUE;
                    item.ObjectType = DataType.AuthObjectType.SingleUser;
                    oldSelectedUserList.Add(item);
                }

            }

            stbUser = new StringBuilder();
            UserAndUserRoleForm frm = new UserAndUserRoleForm();
            //DialogResult dialogResult = frm.ShowDialog();
            frm.OldSelectedUserList = oldSelectedUserList;
            if (frm.ShowDialog() == DialogResult.OK)
            {

                //先删除,如果有的话,最终签批用后以本次的为准
                //  IList<WF_APP_HANDLE> list = WorkFlow.NewInstance.GetWFAppStepHandle(this.WfAppID, wftStepID);

                foreach (WF_APP_HANDLE l in list)
                {
                    l.Delete();
                }
                foreach (WF_APP_USER user in UserList)
                {
                    user.Delete();
                }
                selectedUserOrGroupList = frm.SelectedUserOrGroupList;
                if (selectedUserOrGroupList == null || selectedUserOrGroupList.Count == 0)
                {
                    stbUser = new StringBuilder("");
                    return;
                }
                else
                {
                    stbUser = new StringBuilder("\n");
                    foreach (DataType.UserOrGroupSelected sel in selectedUserOrGroupList)
                    {

                        //添加
                        //防呆  判定改用户是否已经存在了,存在了就不需要再一次更新
                        WF_APP_HANDLE wfah = new HYPDM.Entities.WF_APP_HANDLE();
                        wfah.WFAH_ID = Guid.NewGuid().ToString();
                        wfah.LASTUPDATEDATE = "";
                        wfah.LASTUPDATEUSER = "";
                        wfah.CREATEDATE = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                        wfah.CREATEUSER = CommonFuns.NewInstance.LoginInfo.LoginID;
                        wfah.DEL_FLAG = "N";
                        wfah.WFA_ID = this.wfAppID;
                        wfah.Current_STEP_ID = WorkFlow.NewInstance.GetWFStepInfoByStepID(wftStepID).WFT_CURRENT_STEP_ID;
                        wfah.OBJECTTYPE = sel.ObjectType.ToString();
                        wfah.OBJECTVALUE = sel.Value.ToString();
                        wfah.WFT_STEP_ID = wftStepID;
                        wfah.IS_THROUGH = "";

                        WF_APP_USER wfuser = new WF_APP_USER();
                        wfuser.WFAU_ID = Guid.NewGuid().ToString();
                        wfuser.CREATEDATE = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                        wfuser.CREATEUSER = CommonFuns.NewInstance.LoginInfo.LoginID;
                        wfuser.DEL_FLAG = "N";
                        wfuser.WFA_ID = this.wfAppID;
                        wfuser.Current_STEP_ID = WorkFlow.NewInstance.GetWFStepInfoByStepID(wftStepID).WFT_CURRENT_STEP_ID;
                        wfuser.OBJECTTYPE = sel.ObjectType.ToString();
                        wfuser.OBJECTVALUE = sel.Value.ToString();
                        wfuser.WFT_STEP_ID = wftStepID;

                        try
                        {
                            wfah.Save();
                            wfuser.Save();
                            if (wfah.OBJECTTYPE == DataType.AuthObjectType.SingleUser.ToString())
                            {
                                stbUser.Append("用户:【" + wfah.OBJECTVALUE + "】" + "\n");
                            }
                            else
                            {
                                stbUser.Append("群组:【" + wfah.OBJECTVALUE + "】" + "\n");
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("处理人设定信息存储异常:" + ex.Message.ToString(), "工作流实例建立向导提示您:", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
                            return;
                        }
                    }
                    // stbUser.Remove(stbUser.Length-1, 1);

                }
            }
        }
Example #4
0
        private void btnSubmit_Click(object sender, EventArgs e)
        {
            if (this.txtSubject.Text == "")
            {
                this.txtSubject.Focus();
                return;
            }
            else
            {
                WF_APP wf = new WF_APP();
                wf.WFA_ID = Guid.NewGuid().ToString();
                wf.WFT_ID = this.WfTemplatesID;
                wf.SUBJECT = this.txtSubject.Text.ToString();
                wf.STATUS = DataType.WFDetailSTATUS.UNActivate.ToString();
                wf.START_DATE = "";
                wf.RELATIONOBJECTTYPE = this.RelationObjectType.ToString();
                wf.OBJECTKEY = this.ObjectKey;
                wf.LASTUPDATEDATE = "";
                wf.LASTUPDATEUSER = "";
                wf.CREATEDATE = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                wf.CREATEUSER = CommonFuns.NewInstance.LoginInfo.LoginID;
                wf.DEL_FLAG = "N";

                try
                {
                    wf.Save();
                    this.gpFlowDetail.Visible = true;
                    WfAppID = wf.WFA_ID;
                  //  this.txtSubject.ReadOnly = true;  //modify by cs 20131015
                    this.btnSubmit.Enabled = false;
                    ///新增拟制人员(发起人)的WF_APP_HANDLE表信息
                    WF_APP_HANDLE wfah = new HYPDM.Entities.WF_APP_HANDLE();

                    wfah.WFAH_ID = Guid.NewGuid().ToString();
                    wfah.LASTUPDATEDATE = "";
                    wfah.LASTUPDATEUSER = "";
                    wfah.CREATEDATE = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    wfah.CREATEUSER = CommonFuns.NewInstance.LoginInfo.LoginID;
                    wfah.DEL_FLAG = "N";
                    wfah.IS_THROUGH = "";
                    wfah.MSG = "";
                    wfah.OBJECTTYPE = DataType.AuthObjectType.SingleUser.ToString();
                    wfah.OBJECTVALUE = CommonFuns.NewInstance.LoginInfo.LoginID;
                    wfah.WFA_ID = this.wfAppID;
                    wfah.WFT_STEP_ID = WorkFlow.NewInstance.GetWFStartStepByWFID(this.WfTemplatesID).WFT_STEP_ID;
                    wfah.Current_STEP_ID = WorkFlow.NewInstance.GetWFStepInfoByStepID(wfah.WFT_STEP_ID).WFT_CURRENT_STEP_ID;

                    WF_APP_USER user = new HYPDM.Entities.WF_APP_USER();

                    user.WFAU_ID = Guid.NewGuid().ToString();
                    user.CREATEDATE = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    user.CREATEUSER = CommonFuns.NewInstance.LoginInfo.LoginID;
                    user.DEL_FLAG = "N";
                    user.OBJECTTYPE = DataType.AuthObjectType.SingleUser.ToString();
                    user.OBJECTVALUE = CommonFuns.NewInstance.LoginInfo.LoginID;
                    user.WFA_ID = this.wfAppID;
                    user.WFT_STEP_ID = WorkFlow.NewInstance.GetWFStartStepByWFID(this.WfTemplatesID).WFT_STEP_ID;
                    user.Current_STEP_ID = WorkFlow.NewInstance.GetWFStepInfoByStepID(wfah.WFT_STEP_ID).WFT_CURRENT_STEP_ID;

                    // wfah.WFT_STEP_ID = wftStepID;
                    user.Save();
                    wfah.Save();
                    this.tspDelete.Enabled = true;

                }
                catch (Exception ex)
                {
                    MessageBox.Show("创建新流程信息存储异常:" + ex.Message.ToString(), "工作流实例建立向导提示您:", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
                    return;
                }
            }
        }
Example #5
0
        private void btnSubmit_Click(object sender, EventArgs e)
        {
            if (this.txtSubject.Text == "")
            {
                this.txtSubject.Focus();
                return;
            }
            else
            {
                WF_APP wf = new WF_APP();
                wf.WFA_ID             = Guid.NewGuid().ToString();
                wf.WFT_ID             = this.WfTemplatesID;
                wf.SUBJECT            = this.txtSubject.Text.ToString();
                wf.STATUS             = DataType.WFDetailSTATUS.UNActivate.ToString();
                wf.START_DATE         = "";
                wf.RELATIONOBJECTTYPE = this.RelationObjectType.ToString();
                wf.OBJECTKEY          = this.ObjectKey;
                wf.LASTUPDATEDATE     = "";
                wf.LASTUPDATEUSER     = "";
                wf.CREATEDATE         = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                wf.CREATEUSER         = CommonFuns.NewInstance.LoginInfo.LoginID;
                wf.DEL_FLAG           = "N";


                try
                {
                    wf.Save();
                    this.gpFlowDetail.Visible = true;
                    WfAppID = wf.WFA_ID;
                    //  this.txtSubject.ReadOnly = true;  //modify by cs 20131015
                    this.btnSubmit.Enabled = false;
                    ///新增拟制人员(发起人)的WF_APP_HANDLE表信息
                    WF_APP_HANDLE wfah = new HYPDM.Entities.WF_APP_HANDLE();

                    wfah.WFAH_ID         = Guid.NewGuid().ToString();
                    wfah.LASTUPDATEDATE  = "";
                    wfah.LASTUPDATEUSER  = "";
                    wfah.CREATEDATE      = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    wfah.CREATEUSER      = CommonFuns.NewInstance.LoginInfo.LoginID;
                    wfah.DEL_FLAG        = "N";
                    wfah.IS_THROUGH      = "";
                    wfah.MSG             = "";
                    wfah.OBJECTTYPE      = DataType.AuthObjectType.SingleUser.ToString();
                    wfah.OBJECTVALUE     = CommonFuns.NewInstance.LoginInfo.LoginID;
                    wfah.WFA_ID          = this.wfAppID;
                    wfah.WFT_STEP_ID     = WorkFlow.NewInstance.GetWFStartStepByWFID(this.WfTemplatesID).WFT_STEP_ID;
                    wfah.Current_STEP_ID = WorkFlow.NewInstance.GetWFStepInfoByStepID(wfah.WFT_STEP_ID).WFT_CURRENT_STEP_ID;


                    WF_APP_USER user = new HYPDM.Entities.WF_APP_USER();

                    user.WFAU_ID         = Guid.NewGuid().ToString();
                    user.CREATEDATE      = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    user.CREATEUSER      = CommonFuns.NewInstance.LoginInfo.LoginID;
                    user.DEL_FLAG        = "N";
                    user.OBJECTTYPE      = DataType.AuthObjectType.SingleUser.ToString();
                    user.OBJECTVALUE     = CommonFuns.NewInstance.LoginInfo.LoginID;
                    user.WFA_ID          = this.wfAppID;
                    user.WFT_STEP_ID     = WorkFlow.NewInstance.GetWFStartStepByWFID(this.WfTemplatesID).WFT_STEP_ID;
                    user.Current_STEP_ID = WorkFlow.NewInstance.GetWFStepInfoByStepID(wfah.WFT_STEP_ID).WFT_CURRENT_STEP_ID;

                    // wfah.WFT_STEP_ID = wftStepID;
                    user.Save();
                    wfah.Save();
                    this.tspDelete.Enabled = true;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("创建新流程信息存储异常:" + ex.Message.ToString(), "工作流实例建立向导提示您:", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
                    return;
                }
            }
        }
Example #6
0
        /// <summary>
        /// 弹出选择用户登录的弹出框
        /// </summary>
        private void selUser(string wftStepID)
        {
            List <DataType.UserOrGroupSelected> oldSelectedUserList = new List <DataType.UserOrGroupSelected>();
            // WfAppID
            //判定当前节点已经设定的签批用户

            IList <WF_APP_HANDLE> list     = WorkFlow.NewInstance.GetWFAppStepHandle(this.WfAppID, wftStepID);
            IList <WF_APP_USER>   UserList = WorkFlow.NewInstance.GetWFAppStepUser(this.wfAppID, wftStepID);


            if (list == null)
            {
            }
            else
            {
                DataType.UserOrGroupSelected item;
                foreach (WF_APP_HANDLE han in list)
                {
                    item            = new DataType.UserOrGroupSelected();
                    item.Value      = han.OBJECTVALUE;
                    item.ObjectType = DataType.AuthObjectType.SingleUser;
                    oldSelectedUserList.Add(item);
                }
            }

            stbUser = new StringBuilder();
            UserAndUserRoleForm frm = new UserAndUserRoleForm();

            //DialogResult dialogResult = frm.ShowDialog();
            frm.OldSelectedUserList = oldSelectedUserList;
            if (frm.ShowDialog() == DialogResult.OK)
            {
                //先删除,如果有的话,最终签批用后以本次的为准
                //  IList<WF_APP_HANDLE> list = WorkFlow.NewInstance.GetWFAppStepHandle(this.WfAppID, wftStepID);

                foreach (WF_APP_HANDLE l in list)
                {
                    l.Delete();
                }
                foreach (WF_APP_USER user in UserList)
                {
                    user.Delete();
                }
                selectedUserOrGroupList = frm.SelectedUserOrGroupList;
                if (selectedUserOrGroupList == null || selectedUserOrGroupList.Count == 0)
                {
                    stbUser = new StringBuilder("");
                    return;
                }
                else
                {
                    stbUser = new StringBuilder("\n");
                    foreach (DataType.UserOrGroupSelected sel in selectedUserOrGroupList)
                    {
                        //添加
                        //防呆  判定改用户是否已经存在了,存在了就不需要再一次更新
                        WF_APP_HANDLE wfah = new HYPDM.Entities.WF_APP_HANDLE();
                        wfah.WFAH_ID         = Guid.NewGuid().ToString();
                        wfah.LASTUPDATEDATE  = "";
                        wfah.LASTUPDATEUSER  = "";
                        wfah.CREATEDATE      = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                        wfah.CREATEUSER      = CommonFuns.NewInstance.LoginInfo.LoginID;
                        wfah.DEL_FLAG        = "N";
                        wfah.WFA_ID          = this.wfAppID;
                        wfah.Current_STEP_ID = WorkFlow.NewInstance.GetWFStepInfoByStepID(wftStepID).WFT_CURRENT_STEP_ID;
                        wfah.OBJECTTYPE      = sel.ObjectType.ToString();
                        wfah.OBJECTVALUE     = sel.Value.ToString();
                        wfah.WFT_STEP_ID     = wftStepID;
                        wfah.IS_THROUGH      = "";

                        WF_APP_USER wfuser = new WF_APP_USER();
                        wfuser.WFAU_ID         = Guid.NewGuid().ToString();
                        wfuser.CREATEDATE      = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                        wfuser.CREATEUSER      = CommonFuns.NewInstance.LoginInfo.LoginID;
                        wfuser.DEL_FLAG        = "N";
                        wfuser.WFA_ID          = this.wfAppID;
                        wfuser.Current_STEP_ID = WorkFlow.NewInstance.GetWFStepInfoByStepID(wftStepID).WFT_CURRENT_STEP_ID;
                        wfuser.OBJECTTYPE      = sel.ObjectType.ToString();
                        wfuser.OBJECTVALUE     = sel.Value.ToString();
                        wfuser.WFT_STEP_ID     = wftStepID;

                        try
                        {
                            wfah.Save();
                            wfuser.Save();
                            if (wfah.OBJECTTYPE == DataType.AuthObjectType.SingleUser.ToString())
                            {
                                stbUser.Append("用户:【" + wfah.OBJECTVALUE + "】" + "\n");
                            }
                            else
                            {
                                stbUser.Append("群组:【" + wfah.OBJECTVALUE + "】" + "\n");
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("处理人设定信息存储异常:" + ex.Message.ToString(), "工作流实例建立向导提示您:", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
                            return;
                        }
                    }
                    // stbUser.Remove(stbUser.Length-1, 1);
                }
            }
        }