using System; using System.Collections; using System.Configuration; using System.Data; using System.Drawing; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using hyplat.bean.workflat; using hyplat.biz.service.workflat; using hyplat.biz; using System.Collections.Generic; using hyplat.utilities; using hyplat.biz.service.organization; using hyplat.biz.service.user; using System.Text; using hyplat.bean.plat.workflow; using hyplat.biz.service.plat.workflow; using hyplat.bean.SMSremind; using hyplat.biz.service.SMSremind; using hyplat.bean.user; public partial class office_workflow_OAjfw_JFWEdit : System.Web.UI.Page { public string fileName; //public DataTable dt = new DataTable(); private ProcessInstanceService processInstanceService = ServiceManager.getServiceBean("ProcessInstanceService") as ProcessInstanceService; private UserCaService userCaS = ServiceManager.getServiceBean("UserCaService") as UserCaService; //当前环节的所有的action public DataTable dtAction = null; //流程定义 public DataTable dtPro = null; //表单中的流程实例 public DataTable dtProcessInstance = null; public string iDBody1Display; public string iDBody2Display; public string iDBody3Display; public string iDBody4Display; public string iDBody5Display; //签名定义 protected string documentid = ""; //formid protected string signatureid = ""; //instanceid protected string caName = ""; protected string isqzbool = ""; protected string issignature = "none"; protected void Page_Load(object sender, EventArgs e) { //是否签章验证 isqzbool = DictionaryClass.getIsSignature(Session["RoleID"].ToString()); if (isqzbool == "true") { issignature = ""; //电子签名 if (Session["UserId"] != null && Session["UserId"].ToString() != "") { DataTable dtca = userCaS.GetByUserId(Session["UserId"].ToString()); if (dtca != null && dtca.Rows.Count > 0) { caName = dtca.Rows[0]["ca"].ToString(); } } //签章,流程记录id signatureid = hidRecordid.Value; } //先判断是否session过期 LoginLogic.reloadSession(); HiddenFieldUserName.Value = Session["UserName"].ToString(); //流程实例Table dtProcessInstance = processInstanceService.getProcessInstanceByID(Request.QueryString["instanceId"].ToString()); //动作Table NodeActionService nodeActionService = ServiceManager.getServiceBean("NodeActionService") as NodeActionService; dtAction = nodeActionService.getActionsByNodeIDAndProcessID(dtProcessInstance.Rows[0]["currentNodeID"].ToString(), dtProcessInstance.Rows[0]["processID"].ToString()); iDBody2Display = "none"; iDBody3Display = "none"; iDBody4Display = "none"; if (!IsPostBack) { change.Value = "0"; HiddenField1.Value = DateTime.Now.ToString(); txthide.Text = SIDWrapper.getSID("FilesId");//生成表单主键 documentid = txthide.Text; //签章的documentid //签章 hidRecordid.Value = SIDWrapper.getSID("InstanceRecord"); //审批记录ID signatureid = hidRecordid.Value; } #region this.TxtTitle.Text = Server.UrlDecode(Request.QueryString["Title"].ToString()); fileName = dtProcessInstance.Rows[0]["docpath"].ToString(); hiddenFieldFileName.Value = fileName; SOAOfficeX.SOAOfficeCtrl SOACtrl = new SOAOfficeX.SOAOfficeCtrl(); SOACtrl.ServerURL = "../soaservice/soaserv.aspx"; SOACtrl.MainStyle = SOAOfficeX.soaMainStyle.VistaBlue; SOACtrl.Caption = "编辑或查看正文"; SOACtrl.BorderStyle = SOAOfficeX.soaBorderStyle.BorderNone; SOACtrl.MenubarStyle = SOAOfficeX.soaMenubarStyle.Center1; SOACtrl.MenubarColor = Color.FromArgb(236, 233, 216); SOACtrl.TitlebarTextColor = Color.FromArgb(80, 192, 72); SOACtrl.TitlebarColor = Color.ForestGreen; HiddenFieldShiLi.Value = Request.QueryString["instanceId"].ToString();//实例ID HiddenFieldLiuCheng.Value = Request.QueryString["processId"].ToString();//流程ID ProcessDefinitionService processDefinitionService = ServiceManager.getServiceBean("ProcessDefinitionService") as ProcessDefinitionService; dtPro = processDefinitionService.getProcessDefinitionByID(HiddenFieldLiuCheng.Value); SDepartmentService deptService = (SDepartmentService)ServiceManager.getServiceBean("SDepartmentService"); DataTable dtDept = deptService.getSDepartmentByID(Session["DeptID"].ToString()); TxtFilesDraftOffice.Text = dtDept.Rows[0]["DeptName"].ToString(); TxtFilesDraftPerson.Text = Session["UserName"].ToString(); SOACtrl.SaveDocURL = "SaveDoc/SaveDoc2.aspx"; SOACtrl.FileTitle = StringHandler.replaceIllegalCharacter(TxtTitle.Text.Trim()); SOACtrl.WebOpen(fileName, SOAOfficeX.soaWorkMode.docAdmin, Session["UserName"].ToString(), "Word.Document"); #endregion string[] manageDept = new OrgTool().getManageDeptByID(Session["DeptID"].ToString()).Split(','); //套红doc表头 docHead.Value = manageDept[1]; } protected void ImageButton1_Click(object sender, ImageClickEventArgs e) { //先判断是否session过期 LoginLogic.reloadSession(); //DataTable dtInstance = processInstanceService.getProcessInstanceByID(HiddenFieldShiLi.Value); //判断瞬间重复多次提交 if (dtProcessInstance.Rows[0]["currentProcesserID"].ToString() != Request.Form["hh"].ToString() || dtProcessInstance.Rows[0]["currentActionID"].ToString() != HiddenField4.Value) { //更新的流程实例 ProcessInstance processInstance = new ProcessInstance(); processInstance.instanceID = HiddenFieldShiLi.Value; processInstance.processID = dtProcessInstance.Rows[0]["processID"].ToString(); processInstance.drafterID = dtProcessInstance.Rows[0]["drafterID"].ToString(); processInstance.drafterTime = (DateTime)dtProcessInstance.Rows[0]["drafterTime"]; //需要修改的字段 //当前处理人ID=====>下一步处理人的ID processInstance.currentProcesserID = Request.Form["hh"].ToString(); //当前动作=========选择的下一步处理动作 processInstance.currentActionID = HiddenField4.Value;//当前处理动作 //当前环节=========>所选择的动作的环节ID processInstance.currentNodeID = Request.Form["hiddenradio"].ToString(); //当前状态 processInstance.instanceStatus = "00"; //表单ID processInstance.formID = txthide.Text; //表单标题 processInstance.formTitleName = TxtTitle.Text; processInstance.docPath = hiddenFieldFileName.Value; processInstance.workType = dtPro.Rows[0]["processName"].ToString(); /*上一步处理人信息*/ processInstance.priorProcesserID = dtProcessInstance.Rows[0]["currentProcesserID"].ToString(); processInstance.priorNodeID = dtProcessInstance.Rows[0]["currentNodeID"].ToString(); processInstance.priorActionID = dtProcessInstance.Rows[0]["currentActionID"].ToString(); ///发起部门 processInstance.CreateDept = dtProcessInstance.Rows[0]["CreateDept"].ToString(); processInstance.CreateDeptId = dtProcessInstance.Rows[0]["CreateDeptId"].ToString(); //审批记录 InstanceRecord instanceRecord = new InstanceRecord(); instanceRecord.recordID = hidRecordid.Value; instanceRecord.instanceID = HiddenFieldShiLi.Value;//实例ID instanceRecord.processID = HiddenFieldLiuCheng.Value;//流程ID instanceRecord.currentProcesserID = Session["UserId"].ToString();//当前处理人 instanceRecord.currentProcessTime = DateTime.Now;//当前处理时间 instanceRecord.currentNodeID = processInstance.currentNodeID;//当前处理环节 instanceRecord.currentNodeActionID = processInstance.currentActionID;//当前处理动作 instanceRecord.nextProcesserID = Request.Form["hh"].ToString();//Request.Form["hh"].ToString();下一步处理人 instanceRecord.nextNodeID = processInstance.currentNodeID;//修改通过查询得到 instanceRecord.status = "00"; ///当前处理人的部门 instanceRecord.currentDeptName = Session["DeptName"].ToString(); instanceRecord.currentDeptId = Session["DeptID"].ToString(); //处理意见 InstanceOpinion instanceOpinion = new InstanceOpinion(); instanceOpinion.recordID = instanceRecord.recordID; instanceOpinion.instanceID = processInstance.instanceID;//流程实例ID instanceOpinion.processID = instanceRecord.processID; instanceOpinion.opinion = txtTransactMessage.Text; instanceOpinion.isRemind = this.CheckBox6.Checked == true ? "01" : "00"; //如果选择了消息提醒,在消息提醒表中添加一条记录 if (this.CheckBox6.Checked == true) { //添加一条消息提醒记录,多个接受者添加多条记录 //string receiveID = txtuserIDs.Text.Trim(); string receiveUserID = Request.Form["hh"].ToString(); SMS sms = new SMS(); sms.msgContent = dtProcessInstance.Rows[0]["formTitleName"].ToString(); sms.msgID = dtProcessInstance.Rows[0]["formID"].ToString(); sms.msgSource = "工作流_" + dtPro.Rows[0]["processName"].ToString(); sms.senderID = Session["UserID"].ToString(); sms.sendTime = DateTime.Now.ToString(); sms.status = "00"; //添加一个消息提醒记录 SMSService smsService = ServiceManager.getServiceBean("SMSService") as SMSService; smsService.addSMS(sms, receiveUserID); #region 发送短信 MsgWs msgWs = new MsgWs(); msgWs.SendWaitWorkMsg(Session["UserId"].ToString(), Request.Form["hh"].ToString(), dtProcessInstance.Rows[0]["formTitleName"].ToString(), dtPro.Rows[0]["processName"].ToString(), "", ""); #endregion } ProcessManagerService processManagerService = ServiceManager.getServiceBean("ProcessManagerService") as ProcessManagerService; processManagerService.nextProcess(instanceRecord, instanceOpinion, processInstance); } Response.Write(""); } //打印表单 protected void imgBtnPrint_Click(object sender, ImageClickEventArgs e) { string url = "Print.aspx?shiliID=" + HiddenFieldShiLi.Value; Page.ClientScript.RegisterStartupScript(this.GetType(), "", " "); } }