/// <summary> ///新流程结束 /// </summary> protected void OnProcessCompletedBusinessData() { if (!string.IsNullOrEmpty(this.ProType))//批次 { B_SystemBatch sysBatch = B_SystemBatchOperator.Instance.GetSystemBatch(BusinessID.ToGuid()); ExceptionHelper.TrueThrow(sysBatch == null, string.Format("cannot find the report data which id={0}", BusinessID)); //获取批次A表中的数据 A_SystemBatch _sysBatch = A_SystemBatchOperator.Instance.GetSystemBatch("ProSystem", sysBatch.FinYear, sysBatch.FinMonth); if (_sysBatch == null) { AddBatchData(sysBatch); } else { //先删除数据,在添加数据 int succeed = A_SystemBatchOperator.Instance.DeleteSystemBatch(_sysBatch); ExceptionHelper.TrueThrow(succeed == 0, string.Format("批次表删除失败,批次ID:{0}", _sysBatch.ID)); AddBatchData(sysBatch); } } else { //不包含批次的 //这里通过BusinessID 获取流程批次的信息 B_MonthlyReport mrpt = B_MonthlyreportOperator.Instance.GetMonthlyreport(BusinessID.ToGuid()); ExceptionHelper.TrueThrow(mrpt == null, string.Format("cannot find the report data which id={0}", BusinessID)); List <B_MonthlyReportDetail> rptDetailList = B_MonthlyreportdetailOperator.Instance.GetMonthlyreportdetailList(mrpt.ID).ToList(); mrpt.WFStatus = "Approved"; B_MonthlyreportOperator.Instance.UpdateMonthlyreport(mrpt); //更新 BtoAData(mrpt, rptDetailList); } }
/// <summary> /// 添加更新批次数据 /// </summary> /// <param name="rpt"></param> private void AddBatchData(B_SystemBatch _BatchModel) { //获取批次 List <V_SubReport> BatchRptList = JsonConvert.DeserializeObject <List <V_SubReport> >(_BatchModel.SubReport); //批次更新 BatchRptList.ForEach(p => { B_MonthlyReport tempModel = B_MonthlyreportOperator.Instance.GetMonthlyreport(p.ReportID); List <B_MonthlyReportDetail> rptDetailList = B_MonthlyreportdetailOperator.Instance.GetMonthlyreportdetailList(p.ReportID).ToList(); tempModel.WFStatus = "Approved"; #region 子流程虚拟审批人提交,是流程走完。 try { WorkflowContext workflow = WFClientSDK.GetProcess(null, tempModel.ID.ToString(), new UserInfo() { UserCode = "$VirtualUserCode$" + VirtualUser }); if (workflow.ProcessInstance.Status != 3) { Dictionary <string, object> formParams = new Dictionary <string, object>(); formParams.Add("ReportName", workflow.ProcessInstance.ProcessTitle); formParams.Add("ProcessKey", workflow.ProcessInstance.FlowCode); BizContext bizContext = new BizContext(); bizContext.NodeInstanceList = workflow.NodeInstanceList; bizContext.ProcessRunningNodeID = workflow.ProcessInstance.RunningNodeID; bizContext.BusinessID = tempModel.ID.ToString(); bizContext.FlowCode = workflow.ProcessInstance.FlowCode; bizContext.ApprovalContent = "同意"; bizContext.CurrentUser = new UserInfo() { UserCode = "$VirtualUserCode$" + VirtualUser }; bizContext.ProcessURL = "/BusinessReport/TargetApprove.aspx"; bizContext.FormParams = formParams; bizContext.ExtensionCommond = new Dictionary <string, string>(); bizContext.ExtensionCommond.Add("RejectNode", Guid.Empty.ToString()); WorkflowContext wfc = WFClientSDK.ExecuteMethod("SubmitProcess", bizContext); } } catch (Exception ex) { ExceptionHelper.TrueThrow(true, string.Format("{0}", ex)); } #endregion B_MonthlyreportOperator.Instance.UpdateMonthlyreport(tempModel); //?? BtoAData(tempModel, rptDetailList); }); _BatchModel.WFBatchStatus = "Approved"; //修改B批次表的审批状态 B_SystemBatchOperator.Instance.UpdateSystemBatch(_BatchModel); var amodel = new A_SystemBatch() { ID = _BatchModel.ID, FinYear = _BatchModel.FinYear, FinMonth = _BatchModel.FinMonth, BatchType = _BatchModel.BatchType, WFBatchStatus = _BatchModel.WFBatchStatus, SubReport = _BatchModel.SubReport, CreateTime = DateTime.Now, CreatorName = this.CurrentUser, Opinions = _BatchModel.Opinions, Batch_Opinions = _BatchModel.Batch_Opinions, TargetPlanID = _BatchModel.TargetPlanID }; A_SystemBatchOperator.Instance.DeleteSystemBatch(amodel); //将B批次表信息,添加到A表 A_SystemBatchOperator.Instance.AddSystemBatch(amodel); }