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(); } ///// } }
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(); } ///// } }
/// <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); } } }
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; } } }
/// <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); } } }