Ejemplo n.º 1
0
        public override FlowPageShowData getMobileCommonData(string BusinessID, string processCode, WorkflowContext wfc)
        {
            string _BusinessID = BusinessID.Split(',')[0]; // 参数1
            string ProType     = BusinessID.Split(',')[1]; // 参数2

            FlowPageShowData flowdata = new FlowPageShowData();

            flowdata.groups = new List <Groups>();
            if (wfc != null)
            {
                //
                var Targetplan = B_TargetplanOperator.Instance.GetTargetplan(_BusinessID.ToGuid());
                var Sys        = StaticResource.Instance[Targetplan.SystemID, Targetplan.ModifyTime];


                if (Sys.Category == 3)
                {
                    //基本信息
                    var baseInfo = InitBaseInfo(Sys, Targetplan);
                    flowdata.groups.Add(baseInfo);

                    //月度报表
                    var monthRptInfo = InitMonthRpt_Group(_BusinessID);
                    flowdata.groups.Add(monthRptInfo);
                }
                else
                {
                    //基本信息
                    var baseInfo = InitBaseInfo(Sys, Targetplan);
                    flowdata.groups.Add(baseInfo);

                    //月度报表
                    var monthRptInfo = InitMonthRpt(_BusinessID);
                    flowdata.groups.Add(monthRptInfo);
                }

                //附件信息(直接添加的)
                var attachmenInfo = InitAttachment(_BusinessID);
                flowdata.groups.Add(attachmenInfo);


                #region 工作流信息
                flowdata.mainTitle    = wfc.ProcessInstance.ProcessTitle;
                flowdata.requestId    = BusinessID;
                flowdata.processCode  = processCode;
                flowdata.status       = ConstantWS.success;
                flowdata.message      = ConstantWS.successText;
                flowdata.remarkisshow = "0";
                Groups workflowApprove = new Groups()
                {
                    type = ConstantWS.flowData_group_workFlow
                    ,
                    approvesubTitle = "审批流程"
                    ,
                    logsubTitle = "审批历史"
                    ,
                    AppCode = wfc.AppCode
                    ,
                    AppID = wfc.AppID
                    ,
                    BusinessID = wfc.BusinessID
                    ,
                    CurrentUser = wfc.CurrentUser
                    ,
                    WFToken = wfc.WFToken
                    ,
                    ProcessInstance = wfc.ProcessInstance
                    ,
                    NodeInstanceList = wfc.NodeInstanceList
                    ,
                    CcNodeInstanceList = wfc.CcNodeInstanceList
                    ,
                    CurrentUserNodeID = wfc.CurrentUserNodeID
                    ,
                    ProcessLogList = wfc.ProcessLogList
                    ,
                    CurrentUserSceneSetting = wfc.CurrentUserSceneSetting
                    ,
                    CurrentUserHasTodoTask = wfc.CurrentUserHasTodoTask
                    ,
                    CurrentUserTodoTaskIsRead = wfc.CurrentUserTodoTaskIsRead
                    ,

                    CurrentUserActivityPropertiesList = wfc.CurrentUserActivityPropertiesList
                    ,
                    ExtensionInfos = wfc.ExtensionInfos
                    ,
                    StatusCode = wfc.StatusCode.ToString()
                    ,
                    StatusMessage = wfc.StatusMessage
                    ,
                    LastException = wfc.LastException == null ? "" : wfc.LastException.Message
                };
                foreach (var log in workflowApprove.ProcessLogList)
                {
                    log.LogContent = log.LogContent.Replace("\"", "&#34;");
                }
                flowdata.groups.Add(workflowApprove);
                #endregion
            }

            return(flowdata);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 手机页面上的数据展示
        /// </summary>
        /// <param name="BusinessID"> 这个可能是多个参数,用“,”连接 </param>
        /// <param name="processCode"></param>
        /// <param name="wfc"></param>
        /// <returns></returns>
        public override FlowPageShowData getMobileCommonData(string BusinessID, string processCode, WorkflowContext wfc)
        {
            string _BusinessID = BusinessID.Split(',')[0]; // 参数1
            string ProType     = BusinessID.Split(',')[1]; // 参数2


            FlowPageShowData flowdata = new FlowPageShowData();

            flowdata.groups = new List <Groups>();
            if (wfc != null)
            {
                #region 页面数据展示


                if (!string.IsNullOrEmpty(ProType))                                                  // 合并审批
                {
                    var Batch = B_SystemBatchOperator.Instance.GetSystemBatch(_BusinessID.ToGuid()); // 去拿批次数据
                    List <V_SubReport> BatchRptList = JsonConvert.DeserializeObject <List <V_SubReport> >(Batch.SubReport);

                    // for 循环多个 项目公司加载出来
                    if (BatchRptList.Count > 0)
                    {
                        BatchRptList.ForEach(BR =>
                        {
                            var approval = B_BusinessBaseOperator.Instance.GetBusinessBase(BR.ReportID);

                            //基本信息
                            var baseInfo = InitBaseInfo(approval);
                            flowdata.groups.Add(baseInfo);
                            //附件信息(直接添加的)
                            var attachmenInfo = InitAttachment(approval);
                            flowdata.groups.Add(attachmenInfo);
                        });
                    }
                }
                else // 分支审批
                {
                    var approval = B_BusinessBaseOperator.Instance.GetBusinessBase(_BusinessID.ToGuid());
                    var monthRpt = B_MonthlyreportOperator.Instance.GetMonthlyreport(_BusinessID.ToGuid());
                    //这里判断系统的类型
                    int SysType = StaticResource.Instance[monthRpt.SystemID, approval.CreateTime].Category;

                    if (SysType == 1 || SysType == 4)  // 直管 经营
                    {
                        //基本信息
                        var baseInfo = InitBaseInfo(approval);
                        flowdata.groups.Add(baseInfo);

                        //月度报表
                        var monthRptInfo = InitMonthRpt(approval);
                        flowdata.groups.Add(monthRptInfo);

                        //年度报表
                        var yearRptInfo = InitYearRpt(approval);
                        flowdata.groups.Add(yearRptInfo);

                        //附件信息(直接添加的)
                        var attachmenInfo = InitAttachment(approval);
                        flowdata.groups.Add(attachmenInfo);
                    }
                    else if (SysType == 2) //项目公司
                    {
                        //基本信息
                        var baseInfo = InitBaseInfo(approval);
                        flowdata.groups.Add(baseInfo);

                        //附件信息(直接添加的)
                        var attachmenInfo = InitAttachment(approval);
                        flowdata.groups.Add(attachmenInfo);
                    }
                    else if (SysType == 3) // 总部系统
                    {
                        //基本信息
                        var baseInfo = InitBaseInfo(approval);
                        flowdata.groups.Add(baseInfo);

                        //年度报表
                        var yearRptInfo = InitYearRpt(approval);
                        flowdata.groups.Add(yearRptInfo);

                        //附件信息(直接添加的)
                        var attachmenInfo = InitAttachment(approval);
                        flowdata.groups.Add(attachmenInfo);
                    }
                }

                #endregion

                #region 工作流信息
                flowdata.mainTitle    = wfc.ProcessInstance.ProcessTitle;
                flowdata.requestId    = BusinessID;
                flowdata.processCode  = processCode;
                flowdata.status       = ConstantWS.success;
                flowdata.message      = ConstantWS.successText;
                flowdata.remarkisshow = "0";
                Groups workflowApprove = new Groups()
                {
                    type = ConstantWS.flowData_group_workFlow
                    ,
                    approvesubTitle = "审批流程"
                    ,
                    logsubTitle = "审批历史"
                    ,
                    AppCode = wfc.AppCode
                    ,
                    AppID = wfc.AppID
                    ,
                    BusinessID = wfc.BusinessID
                    ,
                    CurrentUser = wfc.CurrentUser
                    ,
                    WFToken = wfc.WFToken
                    ,
                    ProcessInstance = wfc.ProcessInstance
                    ,
                    NodeInstanceList = wfc.NodeInstanceList
                    ,
                    CcNodeInstanceList = wfc.CcNodeInstanceList
                    ,
                    CurrentUserNodeID = wfc.CurrentUserNodeID
                    ,
                    ProcessLogList = wfc.ProcessLogList
                    ,
                    CurrentUserSceneSetting = wfc.CurrentUserSceneSetting
                    ,
                    CurrentUserHasTodoTask = wfc.CurrentUserHasTodoTask
                    ,
                    CurrentUserTodoTaskIsRead = wfc.CurrentUserTodoTaskIsRead
                    ,

                    CurrentUserActivityPropertiesList = wfc.CurrentUserActivityPropertiesList
                    ,
                    ExtensionInfos = wfc.ExtensionInfos
                    ,
                    StatusCode = wfc.StatusCode.ToString()
                    ,
                    StatusMessage = wfc.StatusMessage
                    ,
                    LastException = wfc.LastException == null ? "" : wfc.LastException.Message
                };
                foreach (var log in workflowApprove.ProcessLogList)
                {
                    log.LogContent = log.LogContent.Replace("\"", "&#34;"); // 替换双引号,导致的Json数据截断问题。
                }
                flowdata.groups.Add(workflowApprove);
                #endregion
            }

            return(flowdata);
        }
        public string getMobileCommonData(string param)
        {
            GetProcessCodeMessage gpcm = new GetProcessCodeMessage();
            string errMessage          = string.Empty;

            if (base.AuthVerify() == false)
            {
                return(base.authVerifyMessage);
            }
            GetProcessInfoParam proParam = Newtonsoft.Json.JsonConvert.DeserializeObject <GetProcessInfoParam>(param);

            B_MonthlyReportAction BRA = new B_MonthlyReportAction();

            BRA.Action       = "WebService";
            BRA.Description  = param;
            BRA.Operator     = "MobileCommonWebService.getMobileCommonData 进入";
            BRA.OperatorTime = DateTime.Now;
            BRA.IsDeleted    = true;
            B_MonthlyReportActionOperator.Instance.AddMonthlyReportAction(BRA);



            //proParam.requestId 这里的requestId 可能是多个值

            string            businessID = proParam.requestId.Split(',')[0];
            string            ProType    = proParam.requestId.Split(',')[1];
            string            subPage    = proParam.SubPageName;
            MobileServiceBase mobileservice;
            string            logID = string.Empty;

            if (string.IsNullOrEmpty(subPage) == false)
            {
                logID         = subPage;
                mobileservice = GetMobileServiceForsubPage(subPage);
                #region 获取二级页面信息
                FlowPageShowData flowdata = mobileservice.getSubPageData(proParam.PlanID, proParam.CategoryID, proParam.Approve);
                return(Newtonsoft.Json.JsonConvert.SerializeObject(flowdata));

                #endregion
            }
            else if (string.IsNullOrEmpty(businessID) == false)
            {
                logID         = logID = subPage;;
                mobileservice = GetMobileService(businessID, ProType);
                #region 获取流程信息

                UserInfo curUser = new UserInfo();
                var      vuser   = Wanda.SDK.Common.ClientSDKHelper.GetResultContextData <UserSourceSDK.UserInfo>(UserSourceSDK.UserSourceClientSDK.GetUserInfoByUserLoginID(proParam.userLoginId, null));

                if (vuser == null)
                {
                    gpcm.status      = ConstantWS.error;
                    gpcm.processCode = "";
                    gpcm.requestId   = businessID;
                    gpcm.message     = string.Format("当前用户:{0} 不存在", proParam.userId);
                }
                else
                {
                    try
                    {
                        curUser.UserID          = vuser.UserID;
                        curUser.UserCode        = vuser.UserCode;//TODO
                        curUser.UserJobName     = vuser.UserJobName;
                        curUser.UserLoginID     = vuser.UserLoginID;
                        curUser.UserName        = vuser.UserName;
                        curUser.UserOrgID       = vuser.UserOrgID;
                        curUser.UserOrgPathID   = vuser.UserOrgPathName;
                        curUser.UserOrgPathName = vuser.UserOrgPathName;


                        string          processCode = GetProcessCode(businessID, ProType);
                        WorkflowContext wfc         = GetProcessCode(businessID, curUser);

                        if (wfc.ProcessInstance.Status == 2 && wfc.CurrentUser.UserLoginID == wfc.ProcessInstance.StartUser.UserLoginID) // 退回时候,不是发起人
                        {
                            gpcm.status      = ConstantWS.error;
                            gpcm.processCode = processCode;
                            gpcm.requestId   = businessID;
                            gpcm.message     = "该待办事项需要重新填报,请在电脑上操作!";
                        }
                        else
                        {
                            // 这里的需要将proParam.requestId ,传递过去,具体的处理 业务ID的数据
                            FlowPageShowData flowdata = mobileservice.getMobileCommonData(proParam.requestId, processCode, wfc);
                            if (string.IsNullOrEmpty(flowdata.requestId) == false)
                            {
                                //Context.Response.Write(jss.Serialize(flowdata));
                                return(Newtonsoft.Json.JsonConvert.SerializeObject(flowdata));
                            }
                            else
                            {
                                gpcm.status      = ConstantWS.error;
                                gpcm.processCode = processCode;
                                gpcm.requestId   = businessID;
                                gpcm.message     = string.Format("获取不存在processCode {0},requestId:{1} 不存在processCode", ConstantWS.errorText, businessID);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        gpcm.status  = ConstantWS.error;
                        gpcm.message = "发生不可预知的错误:" + ex.Message;

                        BRA.Action       = "WebService";
                        BRA.Description  = gpcm.message;
                        BRA.Operator     = "MobileCommonWebService.getMobileCommonData";
                        BRA.OperatorTime = DateTime.Now;
                        BRA.IsDeleted    = true;
                        B_MonthlyReportActionOperator.Instance.AddMonthlyReportAction(BRA);
                    }
                }
                #endregion
            }
            else
            {
                gpcm.status  = ConstantWS.error;
                gpcm.message = "requestId为空";
                logID        = gpcm.message;
            }

            BRA.Action          = "WebService";
            BRA.Description     = Newtonsoft.Json.JsonConvert.SerializeObject(gpcm);
            BRA.Operator        = "MobileCommonWebService.getMobileCommonData 序列化成功返回的Json";
            BRA.OperatorTime    = DateTime.Now;
            BRA.MonthlyReportID = businessID.ToGuid();
            BRA.IsDeleted       = true;
            B_MonthlyReportActionOperator.Instance.AddMonthlyReportAction(BRA);

            return(Newtonsoft.Json.JsonConvert.SerializeObject(gpcm));
        }
        /// <summary>
        /// 加工 工作流程信息
        /// </summary>
        /// <param name="BusinessID"></param>
        /// <param name="processCode"></param>
        /// <param name="wfc"></param>
        /// <param name="flowdata"></param>
        /// <returns></returns>
        protected FlowPageShowData MakeWorkFlowInfo(string BusinessID, string processCode, WorkflowContext wfc, FlowPageShowData flowdata)
        {
            flowdata.mainTitle    = wfc.ProcessInstance.ProcessTitle;
            flowdata.requestId    = BusinessID;
            flowdata.processCode  = processCode;
            flowdata.status       = ConstantWS.success;
            flowdata.message      = ConstantWS.successText;
            flowdata.remarkisshow = "0";
            Groups workflowApprove = new Groups()
            {
                type = ConstantWS.flowData_group_workFlow
                ,
                approvesubTitle = "审批流程"
                ,
                logsubTitle = "审批历史"
                ,
                AppCode = wfc.AppCode
                ,
                AppID = wfc.AppID
                ,
                BusinessID = wfc.BusinessID
                ,
                CurrentUser = wfc.CurrentUser
                ,
                WFToken = wfc.WFToken
                ,
                ProcessInstance = wfc.ProcessInstance
                ,
                NodeInstanceList = wfc.NodeInstanceList
                ,
                CcNodeInstanceList = wfc.CcNodeInstanceList
                ,
                CurrentUserNodeID = wfc.CurrentUserNodeID
                ,
                ProcessLogList = wfc.ProcessLogList
                ,
                CurrentUserSceneSetting = wfc.CurrentUserSceneSetting
                ,
                CurrentUserHasTodoTask = wfc.CurrentUserHasTodoTask
                ,
                CurrentUserTodoTaskIsRead = wfc.CurrentUserTodoTaskIsRead
                ,

                CurrentUserActivityPropertiesList = wfc.CurrentUserActivityPropertiesList
                ,
                ExtensionInfos = wfc.ExtensionInfos
                ,
                StatusCode = wfc.StatusCode.ToString()
                ,
                StatusMessage = wfc.StatusMessage
                ,
                LastException = wfc.LastException == null ? "" : wfc.LastException.Message
            };

            foreach (var log in workflowApprove.ProcessLogList)
            {
                log.LogContent = log.LogContent.Replace("\"", "&#34;");
            }
            flowdata.groups.Add(workflowApprove);
            return(flowdata);
        }