Пример #1
0
        /// <summary>
        /// 获取上次审批信息
        /// </summary>
        /// <param name="msgItem"></param>
        /// <param name="applyUserCode"></param>
        /// <param name="actionResult"></param>
        /// <returns></returns>
        private PrcServer_FormApprovalHistory GetApproverInfo(ProcessEventMessage msgItem, string applyUserCode, string actionResult)
        {
            var processLogEntity = new PrcServer_FormApprovalHistory()
            {
                UserAccount = applyUserCode,
                EndDate     = DateTime.Now
            };

            if (msgItem.EventType == ProcessEventEnum.ActivityRejected.ToString())
            {
                var logItem = _formInstanceSevice.GetFormApprovalHistoryByActionType(msgItem.FormId, ActionType.Reject.ToString(), msgItem.ActivityName, msgItem.RejectActivityName);
                if (logItem != null)
                {
                    return(logItem);
                }
            }

            if (msgItem.ActivityName.StartsWith("000_"))
            {
                //ActionType.Reject驳回同步 意见类型、意见到业务系统
                //ActionType.ReSubmit驳回再提交同步 意见类型、意见到业务系统
                var logItem = _formInstanceSevice.GetFormApprovalHistoryByActionType(msgItem.FormId, actionResult);
                if (logItem != null)
                {
                    processLogEntity = logItem;
                }
                return(processLogEntity);
            }
            else
            {
                var processOpType = actionResult;                         //默认查审批日志
                if (actionResult == ActionType.AdminFinalPass.ToString()) //流程结束归档
                {
                    //获取最后一个审批日志作为推送接口审批人
                    var logItem = _formInstanceSevice.GetFormApprovalHistoryByActionType(msgItem.FormId, ActionType.Approve.ToString());
                    if (logItem != null)
                    {
                        return(logItem);
                    }
                }
                else if (actionResult == ActionType.Cancel.ToString()) //作废
                {
                    //查作废类型的日志Refused、AdminInvalid
                    processOpType = string.Format("{0},{1}", ActionType.Refused.ToString(), ActionType.AdminInvalid.ToString());
                }

                //获取最后一条审批记录日志
                var latestLog = _formInstanceSevice.GetFormApprovalHistoryByActionType(msgItem.FormId, processOpType);
                if (latestLog != null)
                {
                    processLogEntity = latestLog;
                }
            }
            return(processLogEntity);
        }