Beispiel #1
0
        public JsonResult ApproveSelected(List <string> Ids)
        {
            bool       hasOverDate = false;
            var        channel     = PreApprovalClientChannelFactory.GetChannel();
            P_USERINFO userInfo    = Session[MealH5.Util.ConstantHelper.CURRENTWXUSER] as P_USERINFO;

            foreach (var item in Ids)
            {
                var preApproval = channel.LoadPreApprovalInfo(Guid.Parse(item));
                if (preApproval.MeetingDate < DateTime.Now)
                {
                    hasOverDate = true;
                    continue;
                }
                var res = channel.BUHeadApprove(Guid.Parse(item), 3, "");
                if (res == 1)
                {
                    P_PreApprovalApproveHistory preApprovalHistory = new P_PreApprovalApproveHistory()
                    {
                        ID          = Guid.NewGuid(),
                        PID         = Guid.Parse(item),
                        UserName    = userInfo.Name,
                        UserId      = userInfo.UserId,
                        ActionType  = 3,
                        ApproveDate = DateTime.Now,
                        Comments    = "",
                        type        = 2
                    };
                    //添加审批记录
                    var historyRes = channel.AddPreApprovalApproveHistory(preApprovalHistory);
                    if (historyRes == 0)
                    {
                        LogHelper.Info($"审批通过,添加审批记录失败 - [{ item}]");
                    }
                    // 发用户消息
                    //var preApproval = channel.LoadPreApprovalInfo(Guid.Parse(item));
                    WxMessageHandler.GetInstance().SendPreApprovalStateChangeMessageToUser(preApproval);
                }
                else
                {
                    LogHelper.Info($"(审批通过)预申请状态修改失败 - [{ item}]");
                }
            }
            return(Json(new { state = 1, txt = hasOverDate == true ? "预申请已批量审批通过,会议日期失效部分系统已忽略。" : "预申请已批量审批通过。" }));
        }
 public int AddPreApprovalApproveHistory(P_PreApprovalApproveHistory PreApprovalHistory)
 {
     return(preApprovalService.AddPreApprovalApproveHistory(PreApprovalHistory));
 }
Beispiel #3
0
        public JsonResult ApproveAll(string end, string state, string applicant, int year, int month)
        {
            bool hasOverDate = false;
            var  beginTime   = "";
            var  endTime     = "";

            if (month == 0)
            {
                beginTime = year + "-01-01";
                year      = year + 1;
                endTime   = year + "-01-01";
            }
            else
            {
                beginTime = year + "-" + month + "-01";
                if (month == 12)
                {
                    year  = year + 1;
                    month = 1;
                }
                else
                {
                    month = month + 1;
                }
                endTime = year + "-" + month + "-01";
            }
            var        channel  = PreApprovalClientChannelFactory.GetChannel();
            P_USERINFO userInfo = Session[MealH5.Util.ConstantHelper.CURRENTWXUSER] as P_USERINFO;
            DateTime   _begin   = Convert.ToDateTime(beginTime);
            DateTime   _end     = Convert.ToDateTime(endTime);
            DateTime   __end    = Convert.ToDateTime(end);

            if (__end >= _begin && __end <= _end)
            {
                _end = __end;
            }
            var list = channel.LoadMyApproveAll(CurrentWxUser.UserId, applicant);

            if (list.Count > 0)
            {
                foreach (var item in list)
                {
                    if (item.MeetingDate < DateTime.Now)
                    {
                        hasOverDate = true;
                        continue;
                    }
                    var res = channel.BUHeadApprove(item.ID, 3, "");
                    item.State = "5";
                    if (res == 1)
                    {
                        P_PreApprovalApproveHistory preApprovalHistory = new P_PreApprovalApproveHistory()
                        {
                            ID          = Guid.NewGuid(),
                            PID         = item.ID,
                            UserName    = userInfo.Name,
                            UserId      = userInfo.UserId,
                            ActionType  = 3,
                            ApproveDate = DateTime.Now,
                            Comments    = "",
                            type        = 2
                        };
                        //添加审批记录
                        var historyRes = channel.AddPreApprovalApproveHistory(preApprovalHistory);
                        if (historyRes == 0)
                        {
                            LogHelper.Info($"审批通过,添加审批记录失败 - [{ item.ID}]");
                        }
                        // 发用户消息
                        WxMessageHandler.GetInstance().SendPreApprovalStateChangeMessageToUser(item);
                    }
                    else
                    {
                        LogHelper.Info($"(审批通过)预申请状态修改失败 - [{ item.ID}]");
                    }
                }
                return(Json(new { state = 1, txt = hasOverDate == true ? "预申请已全部审批通过,会议日期失效部分系统已忽略。" : "预申请已全部审批通过。" }));
            }
            else
            {
                return(Json(new { state = 1, txt = "当前没有待审批预申请数据。" }));
            }
        }
Beispiel #4
0
        /// <summary>
        /// 预申请审批
        /// </summary>
        /// <param name="id"></param>
        /// <param name="state"></param>
        /// <param name="reason"></param>
        /// <returns></returns>
        public JsonResult PreApprovalApprove(Guid id, int state, string reason)
        {
            var        preApprovalChannel = PreApprovalClientChannelFactory.GetChannel();
            P_USERINFO userInfo           = Session[MealH5.Util.ConstantHelper.CURRENTWXUSER] as P_USERINFO;
            var        preApproval        = preApprovalChannel.LoadPreApprovalInfo(id);
            // var userInfoChannel = UserInfoClientChannelFactory.GetChannel();
            bool flag   = preApprovalChannel.HasApproveByTA(preApproval.CurrentApproverMUDID, preApproval.TA);
            bool second = false;

            //审批通过
            if (state == 3)
            {
                if (preApproval.BudgetTotal >= 1200 && preApproval.BudgetTotal < 1500)
                {
                    state  = 7;
                    second = true;
                }
                else if (preApproval.BudgetTotal >= 1500)
                {
                    state = 3;
                }

                //预申请buhead审批通过
                if ((preApproval.BUHeadMUDID.ToUpper() == userInfo.UserId.ToUpper() || flag == true) && second == false)
                {
                    var res = preApprovalChannel.BUHeadApprove(id, 5, reason);
                    if (res == 1)
                    {
                        P_PreApprovalApproveHistory preApprovalHistory = new P_PreApprovalApproveHistory()
                        {
                            ID          = Guid.NewGuid(),
                            PID         = id,
                            UserName    = userInfo.Name,
                            UserId      = userInfo.UserId,
                            ActionType  = 3,
                            ApproveDate = DateTime.Now,
                            Comments    = reason,
                            type        = 2
                        };
                        //添加审批记录
                        var historyRes = preApprovalChannel.AddPreApprovalApproveHistory(preApprovalHistory);
                        if (historyRes == 0)
                        {
                            LogHelper.Info($"审批通过,添加审批记录失败 - [{ id},{userInfo.UserId}]");
                        }
                        // 发用户消息
                        var preApproval1 = preApprovalChannel.LoadPreApprovalInfo(id);
                        WxMessageHandler.GetInstance().SendPreApprovalStateChangeMessageToUser(preApproval1);
                        LogHelper.Info($"BuHead审批通过 - [{ id},{userInfo.UserId}]");
                        return(Json(new { state = 1, txt = "预申请已审批通过。" }));
                    }
                    else
                    {
                        LogHelper.Info($"(审批通过)预申请状态修改失败 - [{id}]");
                    }
                }
                else if (state == 3)
                {
                    if (!CheckApproveStep(userInfo.UserId, preApproval.TA))
                    {
                        return(Json(new { state = 0, txt = "当前预申请审批流程有误,请联系:技术支持热线: 0411-84898998或PMO邮箱[email protected]。" }));
                    }

                    var baseDataChannel = BaseDataClientChannelFactory.GetChannel();
                    var pre             = baseDataChannel.GetNameUserId(preApproval.CurrentApproverMUDID);
                    //var delegateMUDID = userInfoChannel.isAgent(preApproval.CurrentApproverMUDID);
                    //preApproval.CurrentApproverMUDID = delegateMUDID == null ? preApproval.CurrentApproverMUDID : delegateMUDID.DelegateUserMUDID;
                    //preApproval.CurrentApproverName = delegateMUDID == null ? preApproval.CurrentApproverName : delegateMUDID.DelegateUserName;
                    preApproval.CurrentApproverMUDID = preApproval.CurrentApproverMUDID;
                    preApproval.CurrentApproverName  = preApproval.CurrentApproverName;
                    P_PreApprovalApproveHistory preApprovalHistory = new P_PreApprovalApproveHistory()
                    {
                        ID          = Guid.NewGuid(),
                        PID         = id,
                        UserName    = preApproval.CurrentApproverName,
                        UserId      = preApproval.CurrentApproverMUDID,
                        ActionType  = 3,
                        ApproveDate = DateTime.Now,
                        Comments    = reason,
                        type        = 2
                    };
                    //添加审批记录
                    var historyRes = preApprovalChannel.AddPreApprovalApproveHistory(preApprovalHistory);
                    if (historyRes == 0)
                    {
                        LogHelper.Info($"审批通过,添加审批记录失败 - [{ id}]");
                    }
                    else
                    {
                        preApproval.CurrentApproverMUDID = pre.CurrentApproverMUDID;
                        preApproval.CurrentApproverName  = pre.CurrentApproverName;
                        var num = baseDataChannel.UpdateCurrentPreApprova(preApproval);
                        if (num == 0)
                        {
                            LogHelper.Info($"审批通过,跟新审批人失败 - [{ id}]");
                        }
                    }
                    // 发用户消息
                    //bool flag1 = preApprovalChannel.HasApprove(preApproval.CurrentApproverMUDID);
                    //if (flag1 == true)
                    //{
                    var preApproval3 = preApprovalChannel.LoadPreApprovalInfo(id);
                    preApproval3.IsOnc = 2;
                    WxMessageHandler.GetInstance().SendPreApprovalStateChangeMessageToUser(preApproval3);
                    LogHelper.Info($"审批通过 - [{ id},{pre.CurrentApproverMUDID}]");
                    //}

                    return(Json(new { state = 1, txt = "预申请已审批通过。" }));
                }
                else if (state == 7)
                {
                    var res = preApprovalChannel.BUHeadApprove(id, 9, reason);
                    if (res == 1)
                    {
                        P_PreApprovalApproveHistory preApprovalHistory = new P_PreApprovalApproveHistory()
                        {
                            ID          = Guid.NewGuid(),
                            PID         = id,
                            UserName    = userInfo.Name,
                            UserId      = userInfo.UserId,
                            ActionType  = 3,
                            ApproveDate = DateTime.Now,
                            Comments    = reason,
                            type        = 2
                        };
                        //添加审批记录
                        var historyRes = preApprovalChannel.AddPreApprovalApproveHistory(preApprovalHistory);
                        if (historyRes == 0)
                        {
                            LogHelper.Info($"审批通过,添加审批记录失败 - [{ id}]");
                        }
                        // 发用户消息
                        var preApproval1 = preApprovalChannel.LoadPreApprovalInfo(id);
                        WxMessageHandler.GetInstance().SendPreApprovalStateChangeMessageToUser(preApproval1);
                        LogHelper.Info($"二线审批通过 - [{ id},{preApproval.CurrentApproverMUDID}]");
                        return(Json(new { state = 1, txt = "预申请已审批通过。" }));
                    }
                    else
                    {
                        LogHelper.Info($"(审批通过)预申请状态修改失败 - [{ id}]");
                    }
                }
            }

            else
            {
                if (preApproval.BudgetTotal >= 1200 && preApproval.BudgetTotal < 1500)
                {
                    state             = 8;
                    preApproval.State = "8";
                }
                else if (preApproval.BudgetTotal >= 1500)
                {
                    if (!CheckApproveStep(userInfo.UserId, preApproval.TA))
                    {
                        return(Json(new { state = 0, txt = "当前预申请审批流程有误,请联系:技术支持热线: 0411-84898998或PMO邮箱[email protected]。" }));
                    }

                    state             = 4;
                    preApproval.State = "4";
                    LogHelper.Info($"审批驳回 - [{ id},{preApproval.CurrentApproverMUDID}]");
                }
                var res = preApprovalChannel.BUHeadReject(id, state, reason);
                //var preApproval = preApprovalChannel.LoadPreApprovalInfo(id);
                if (res == 1)
                {
                    P_PreApprovalApproveHistory preApprovalHistory = new P_PreApprovalApproveHistory()
                    {
                        ID          = Guid.NewGuid(),
                        PID         = id,
                        UserName    = userInfo.Name,
                        UserId      = userInfo.UserId,
                        ActionType  = 2,
                        ApproveDate = DateTime.Now,
                        Comments    = reason,
                        type        = 2
                    };
                    //添加审批记录
                    var historyRes = preApprovalChannel.AddPreApprovalApproveHistory(preApprovalHistory);

                    if (historyRes == 0)
                    {
                        LogHelper.Info($"审批驳回,添加审批记录失败 - [{ id}]");
                    }
                    // 发用户消息
                    if (state == 8 || flag == true)
                    {
                        var preApproval4 = preApprovalChannel.LoadPreApprovalInfo(id);
                        WxMessageHandler.GetInstance().SendPreApprovalRejectMessageToUser(reason, preApproval4);
                        LogHelper.Info($"审批拒绝 - [{ id},{preApproval.CurrentApproverMUDID}]");
                    }

                    return(Json(new { state = 1, txt = "预申请已审批驳回。" }));
                }
                else
                {
                    LogHelper.Info($"(审批驳回)预申请状态修改失败 - [{ id}]");
                }
            }
            return(Json(new { state = 0, txt = "预申请审批失败,请刷新页面后重试。", errCode = 9007 }));
        }
Beispiel #5
0
        /// <summary>
        /// 预申请审批
        /// </summary>
        /// <param name="id"></param>
        /// <param name="state"></param>
        /// <param name="reason"></param>
        /// <returns></returns>
        public JsonResult SaveMMCoEResult(Guid id, int state, string reason)
        {
            var        preApprovalChannel = PreApprovalClientChannelFactory.GetChannel();
            P_USERINFO userInfo           = Session[MealH5.Util.ConstantHelper.CURRENTWXUSER] as P_USERINFO;
            var        preApproval        = preApprovalChannel.LoadPreApprovalInfo(id);
            var        hisList            = preApprovalChannel.FindPreApprovalApproveHistory(id);
            P_PreApprovalApproveHistory lastBUHeadApprove = null;

            if (hisList.Count > 0)
            {
                lastBUHeadApprove = hisList.Where(p => p.PID == id && p.type == 2 && (p.ActionType == 2 || p.ActionType == 3)).OrderByDescending(p => p.ApproveDate).FirstOrDefault();
            }
            var isReject = true;

            if (lastBUHeadApprove != null)
            {
                if (lastBUHeadApprove.ActionType == 3)
                {
                    isReject = false;
                }
            }
            //审批通过
            if (state == 3)
            {
                //预算超02000并且(金额产生变化或上一次是审批拒绝)
                if (preApproval.BudgetTotal > 2000 && (preApproval.IsBudgetChange || (lastBUHeadApprove == null || isReject == true) || preApproval.ModifyDate == null))
                {
                    preApproval.State = "3";
                }
                else
                {
                    preApproval.State = "6";
                }
                var res = preApprovalChannel.MMCoEApprove(id, int.Parse(preApproval.State), reason);

                if (res == 1)
                {
                    P_PreApprovalApproveHistory preApprovalHistory = new P_PreApprovalApproveHistory()
                    {
                        ID          = Guid.NewGuid(),
                        PID         = id,
                        UserName    = userInfo.Name,
                        UserId      = userInfo.UserId,
                        ActionType  = state,
                        ApproveDate = DateTime.Now,
                        Comments    = reason,
                        type        = 1
                    };
                    // 发用户消息
                    WxMessageHandler.GetInstance().SendPreApprovalStateChangeMessageToUser(preApproval);
                    //添加审批记录
                    var historyRes = preApprovalChannel.AddPreApprovalApproveHistory(preApprovalHistory);
                    if (preApproval.State == "6")
                    {
                        P_PreApprovalApproveHistory autoHistory = new P_PreApprovalApproveHistory()
                        {
                            ID          = Guid.NewGuid(),
                            PID         = id,
                            UserName    = "******",
                            UserId      = "系统自动审批",
                            ActionType  = 3,
                            ApproveDate = DateTime.Now,
                            type        = 1
                        };
                        preApprovalChannel.AddPreApprovalApproveHistory(autoHistory);
                    }
                    if (historyRes == 0)
                    {
                        LogHelper.Info($"审批通过,添加审批记录失败 - [{ id}]");
                    }
                    return(Json(new { state = 1, txt = "预申请已审批通过。" }));
                }
                else
                {
                    LogHelper.Info($"(审批通过)预申请状态修改失败 - [{ id}]");
                }
            }
            else
            {
                var res = preApprovalChannel.MMCoEReject(id, state, reason);
                preApproval.State = "2";
                if (res == 1)
                {
                    P_PreApprovalApproveHistory preApprovalHistory = new P_PreApprovalApproveHistory()
                    {
                        ID          = Guid.NewGuid(),
                        PID         = id,
                        UserName    = userInfo.Name,
                        UserId      = userInfo.UserId,
                        ActionType  = state,
                        ApproveDate = DateTime.Now,
                        Comments    = reason,
                        type        = 1
                    };
                    // 发用户消息
                    WxMessageHandler.GetInstance().SendPreApprovalRejectMessageToUser(reason, preApproval);
                    //添加审批记录
                    var historyRes = preApprovalChannel.AddPreApprovalApproveHistory(preApprovalHistory);
                    if (historyRes == 0)
                    {
                        LogHelper.Info($"审批驳回,添加审批记录失败 - [{ id}]");
                    }
                    return(Json(new { state = 1, txt = "预申请已审批驳回。" }));
                }
                else
                {
                    LogHelper.Info($"(审批驳回)预申请状态修改失败 - [{ id}]");
                }
            }
            return(Json(new { state = 0, txt = "预申请审批失败,请刷新页面后重试。", errCode = 9007 }));
        }
 public int AddPreApprovalApproveHistory(P_PreApprovalApproveHistory PreApprovalHistory)
 {
     return(PreApprovalDao.AddPreApprovalApproveHistory(PreApprovalHistory));
 }