示例#1
0
        /// <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);
            }
        }
示例#2
0
        /// <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);
        }