Beispiel #1
0
        public ActionResult Post(PostModel postModel)
        {
            if (!CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, Token))
            {
                return(Content("参数错误!"));
            }

            #region 打包 PostModel 信息

            postModel.Token          = Token;          //根据自己后台的设置保持一致
            postModel.EncodingAESKey = EncodingAesKey; //根据自己后台的设置保持一致
            postModel.AppId          = AppId;          //根据自己后台的设置保持一致

            #endregion

            //v4.2.2之后的版本,可以设置每个人上下文消息储存的最大数量,防止内存占用过多,如果该参数小于等于0,则不限制
            var maxRecordCount = 10;

            //自定义MessageHandler,对微信请求的详细判断操作都在这里面。
            var messageHandler = new WxMessageHandler(Request.InputStream, postModel, maxRecordCount)
            {
                OmitRepeatedMessage = true
            };

            try
            {
                //执行微信处理过程
                messageHandler.Execute();
                return(Content(messageHandler.ResponseDocument.ToString()));//v0.7-
            }
            catch (Exception ex)
            {
                return(Content("错了错了"));
            }
        }
        public JsonResult ConfirmOrder(Guid id, string supplier, string price, string reason, string remark, string count, string cReason, string cRemark, string isSame)
        {
            // 改数据库状态
            var channel = OrderApiClientChannelFactory.GetChannel();
            var res     = channel.Confirm(id, price, reason, remark, count, cReason, cRemark, isSame);

            if (res > 0)
            {
                var order = channel.FindByID(id);
                // 发用户消息
                WxMessageHandler.GetInstance().SendMessageToUser(order.IsTransfer == 0?CurrentWxUser.UserId:order.TransferUserMUDID, order);

                // 告诉小秘书已经收餐
                //var oponapiChannel = OpenApiChannelFactory.GetChannel();
                //var xmlres = oponapiChannel.finishOrder(order.XmsOrderId, "0", string.Empty);
                var req = new FinishOrderReq()
                {
                    _Channels    = supplier,
                    iPathOrderId = order.XmsOrderId,
                    type         = "0",
                    remark       = string.Empty
                };
                var iPathRes = apiClient.FinishOrder(req);


                return(Json(new { state = 1 }));
            }
            return(Json(new { state = 0, txt = "操作失败", errCode = 9008 }));
        }
Beispiel #3
0
        public JsonResult AddressApproveAll(int action, string reason, string applicant)
        {
            var        channel  = PreApprovalClientChannelFactory.GetChannel();
            P_USERINFO userInfo = Session[MealH5.Util.ConstantHelper.CURRENTWXUSER] as P_USERINFO;

            try
            {
                var list = channel.LoadMyAddressApproveAll(CurrentWxUser.UserId, applicant);
                if (list.Count > 0)
                {
                    foreach (var item in list)
                    {
                        var res = channel.AddressApprove(item, reason);
                        if (res == 1)
                        {
                            P_AddressApproveHistory addressApproveHistory = new P_AddressApproveHistory()
                            {
                                ID          = Guid.NewGuid(),
                                DA_ID       = item.ID,
                                UserName    = userInfo.Name,
                                UserId      = userInfo.UserId,
                                ActionType  = action,
                                ApproveDate = DateTime.Now,
                                Comments    = reason,
                                type        = 0,
                                IsDelete    = 0
                            };
                            //添加审批记录
                            //var historyRes = channel.AddAddressApproveHistory(addressApproveHistory);
                            //if (historyRes == 0)
                            //{
                            //    LogHelper.Info($"审批成功,添加审批记录失败 - [{ item.ID},{userInfo.UserId}]");
                            //}
                            P_AddressApproval addressApproval = new P_AddressApproval();
                            addressApproval.ID = item.ID;
                            // 发用户消息
                            WxMessageHandler.GetInstance().SendAddressApprovalStateChangeMessageToUser(addressApproval);
                        }
                        else
                        {
                            LogHelper.Info($" 审批地址申请失败 - [{item.ID}]");
                        }
                    }
                    return(Json(new { state = 1, txt = "地址申请审批通过。" }));
                }
                else
                {
                    return(Json(new { state = 1, txt = "当前没有待审批地址申请数据。" }));
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error("Exception AddressApproveAll", ex);
                return(Json(new { state = 0, txt = "地址申请审批失败,请刷新页面后重试。", errCode = 9007 }));
            }
        }
Beispiel #4
0
        public JsonResult AddressApproveSelected(List <string> Ids)
        {
            var channel = PreApprovalClientChannelFactory.GetChannel();

            P_AddressApproval addressApproval = new P_AddressApproval();

            P_AddressApproval_View addressApproval_View = new P_AddressApproval_View();
            var preApprovalChannel = PreApprovalClientChannelFactory.GetChannel();

            P_USERINFO userInfo = Session[MealH5.Util.ConstantHelper.CURRENTWXUSER] as P_USERINFO;


            try
            {
                foreach (var id in Ids)
                {
                    addressApproval_View = channel.LoadAddressApprovalInfo(Guid.Parse(id));
                    var res = preApprovalChannel.AddressApprove(addressApproval_View, "");
                    if (res == 1)
                    {
                        P_AddressApproveHistory addressApproveHistory = new P_AddressApproveHistory()
                        {
                            ID          = Guid.NewGuid(),
                            DA_ID       = Guid.Parse(id),
                            UserName    = userInfo.Name,
                            UserId      = userInfo.UserId,
                            ActionType  = 1,
                            ApproveDate = DateTime.Now,
                            Comments    = "",
                            type        = 0,
                            IsDelete    = 0
                        };
                        //添加审批记录
                        //var historyRes = preApprovalChannel.AddAddressApproveHistory(addressApproveHistory);
                        //if (historyRes == 0)
                        //{
                        //    LogHelper.Info($"审批成功,添加审批记录失败 - [{ id},{userInfo.UserId}]");
                        //}
                        // 发用户消息
                        addressApproval.ID = Guid.Parse(id);
                        WxMessageHandler.GetInstance().SendAddressApprovalStateChangeMessageToUser(addressApproval);
                        LogHelper.Info($"地址申请审批通过 - [{ id},{userInfo.UserId}]");
                    }
                    else
                    {
                        LogHelper.Info($" 审批地址申请失败 - [{id}]");
                    }
                }
                return(Json(new { state = 1, txt = "地址申请审批通过。" }));
            }
            catch (Exception ex)
            {
                LogHelper.Error("Exception AddressApprove", ex);
                return(Json(new { state = 0, txt = "地址申请审批失败,请刷新页面后重试。", errCode = 9007 }));
            }
        }
        /// <summary>
        /// 评论
        /// </summary>
        /// <returns></returns>
        public JsonResult Add(string orderID, string restaurantId, int star, int onTime, string onTimeDiscripion,
                              int isSafe, string safeDiscepion, string safeImage, int health, string healthDiscrpion, string healthImage,
                              int pack, string packDiscrpion, string packImage, int costEffective, string costEffectiveDiscrpion, string costEffectiveImage, string otherDiscrpion)
        {
            P_EVALUATE entity = new P_EVALUATE();

            entity.ID                     = Guid.NewGuid();
            entity.OrderID                = new Guid(orderID);
            entity.RestaurantId           = restaurantId == "" ? "" : restaurantId;
            entity.Star                   = star;
            entity.OnTime                 = onTime;
            entity.OnTimeDiscrpion        = onTimeDiscripion;
            entity.IsSafe                 = isSafe;
            entity.SafeDiscrpion          = safeDiscepion == "" ? "" : safeDiscepion;
            entity.SafeImage              = safeImage == "" ? "" : safeImage;
            entity.Health                 = health;
            entity.HealthDiscrpion        = healthDiscrpion == "" ? "" : healthDiscrpion;
            entity.HealthImage            = healthImage == "" ? "" : healthImage;
            entity.Pack                   = pack;
            entity.PackDiscrpion          = packDiscrpion == "" ? "" : packDiscrpion;
            entity.PackImage              = packImage == "" ? "" : packImage;
            entity.CostEffective          = costEffective;
            entity.CostEffectiveDiscrpion = costEffectiveDiscrpion == "" ? "" : costEffectiveDiscrpion;
            entity.CostEffectiveImage     = costEffectiveImage == "" ? "" : costEffectiveImage;
            entity.OtherDiscrpion         = otherDiscrpion == "" ? "" : otherDiscrpion;
            entity.State                  = 1;
            entity.CreateDate             = DateTime.Now;

            var channel = EvaluateClientChannelFactory.GetChannel();
            int res     = channel.Add(entity);

            if (res == 1)
            {
                var  _channel = OrderApiClientChannelFactory.GetChannel();
                Guid id       = new Guid(orderID);
                var  order    = _channel.FindByID(id);
                // 发用户消息
                WxMessageHandler.GetInstance().SendMessageToUser(CurrentWxUser.UserId, order);

                return(Json(new { state = 1 }));
            }
            else
            {
                return(Json(new { state = 0, errCode = 9008 }));
            }
        }
Beispiel #6
0
        public JsonResult SendSpecialWxMessage(Guid id)
        {
            P_AddressApproval addressApproval = new P_AddressApproval();

            addressApproval.ID = id;
            P_AddressApproval_View addressApproval_View = new P_AddressApproval_View();
            var preApprovalChannel = PreApprovalClientChannelFactory.GetChannel();
            var channel            = PreApprovalClientChannelFactory.GetChannel();

            addressApproval_View = channel.LoadAddressApprovalInfo(id);
            P_USERINFO userInfo = Session[MealH5.Util.ConstantHelper.CURRENTWXUSER] as P_USERINFO;
            string     msg      = "";

            try
            {
                var res = preApprovalChannel.AddressApprove(addressApproval_View, "该医院已被删除");
                if (res == 1)
                {
                    P_AddressApproveHistory addressApproveHistory = new P_AddressApproveHistory()
                    {
                        ID          = Guid.NewGuid(),
                        DA_ID       = id,
                        UserName    = userInfo.Name,
                        UserId      = userInfo.UserId,
                        ActionType  = 2,
                        ApproveDate = DateTime.Now,
                        Comments    = "该医院已被删除",
                        type        = 0,
                        IsDelete    = 0
                    };

                    WxMessageHandler.GetInstance().SendSpecialMessageToUser(addressApproval);
                    return(Json(new { state = 1, txt = msg }));
                }
                else
                {
                    LogHelper.Info($" 审批地址申请失败 - [{id}]");
                    return(Json(new { state = 0, txt = "地址申请审批失败,请刷新页面后重试。", errCode = 9007 }));
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error("Exception SendWxMessage", ex);
                return(Json(new { state = 0, txt = "", errCode = 9007 }));
            }
        }
Beispiel #7
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 ? "预申请已批量审批通过,会议日期失效部分系统已忽略。" : "预申请已批量审批通过。" }));
        }
        /// <summary>
        /// 未送达
        /// </summary>
        /// <param name="orderID"></param>
        /// <param name="restaurantId"></param>
        /// <param name="onTimeDiscripion"></param>
        /// <returns></returns>
        public JsonResult AddUndelivered(string orderID, string restaurantId, string onTimeDiscripion, string supplier, int normal)
        {
            P_EVALUATE entity = new P_EVALUATE();

            entity.ID              = Guid.NewGuid();
            entity.OrderID         = new Guid(orderID);
            entity.RestaurantId    = restaurantId;
            entity.OnTime          = 0;
            entity.OnTimeDiscrpion = onTimeDiscripion;
            entity.State           = 1;
            entity.CreateDate      = DateTime.Now;
            entity.Normal          = normal;
            var channel = EvaluateClientChannelFactory.GetChannel();
            int res     = channel.Add(entity);

            if (res == 1)
            {
                var  _channel = OrderApiClientChannelFactory.GetChannel();
                Guid id       = new Guid(orderID);
                var  order    = _channel.FindByID(id);
                // 发用户消息
                WxMessageHandler.GetInstance().SendMessageToUser(CurrentWxUser.UserId, order);

                // 告诉小秘书没收到餐
                Task.Factory.StartNew(() =>
                {
                    //var oponapiChannel = OpenApiChannelFactory.GetChannel();
                    //var xmlres = oponapiChannel.orderDeliveryFailure(order.XmsOrderId, string.Empty);
                    var req = new OrderDeliveryFailureReq()
                    {
                        _Channels    = supplier,
                        iPathOrderId = order.XmsOrderId,
                        remark       = onTimeDiscripion
                    };
                    var iPathRes = apiClient.OrderDeliveryFailure(req);
                });

                return(Json(new { state = 1 }));
            }
            else
            {
                return(Json(new { state = 0, errCode = 9008 }));
            }
        }
        public JsonResult ApproveSelected(List <string> Ids)
        {
            var        channel  = UploadOrderApiClientChannelFactory.GetChannel();
            P_USERINFO userInfo = Session[MealH5.Util.ConstantHelper.CURRENTWXUSER] as P_USERINFO;

            foreach (var item in Ids)
            {
                var res = channel.BUHeadApprove(Guid.Parse(item), 3, "");
                if (res == 1)
                {
                    P_OrderApproveHistory orderHistory = new P_OrderApproveHistory()
                    {
                        ID          = Guid.NewGuid(),
                        PID         = Guid.Parse(item),
                        UserName    = userInfo.Name,
                        UserId      = userInfo.UserId,
                        ActionType  = 3,
                        ApproveDate = DateTime.Now,
                        Comments    = "",
                        type        = 2
                    };
                    //添加审批记录
                    var historyRes = channel.AddOrderApproveHistory(orderHistory);
                    if (historyRes == 0)
                    {
                        LogHelper.Info($"审批通过,添加审批记录失败 - [{ item}]");
                    }
                    // 发用户消息
                    var orderInfo = channel.LoadPreUploadOrder(Guid.Parse(item));
                    WxMessageHandler.GetInstance().SendOrderStateChangeMessageToUser(orderInfo);
                }
                else
                {
                    LogHelper.Info($"(审批通过)上传文件状态修改失败 - [{ item}]");
                }
            }
            return(Json(new { state = 1, txt = "上传文件已批量审批通过。" }));
        }
        public JsonResult Refunds(Guid id, string supplier)
        {
            var orderChannel = OrderApiClientChannelFactory.GetChannel();
            var order        = orderChannel.FindByID(id);

            //if (order.State != OrderState.SCHEDULEDSUCCESS)
            //{
            //    return Json(new { state = 0, txt = "当前订单状态不可执行退单操作!" ,errCode = 9009});
            //}

            //var channel = OpenApiChannelFactory.GetChannel();
            //var res = channel.cancleOrder(order.XmsOrderId, string.Empty);

            RefundOrderReq req = new RefundOrderReq()
            {
                _Channels    = supplier,
                iPathOrderId = order.XmsOrderId
            };
            var res = apiClient.RefundOrder(req);

            if (res.errorCode == "0")
            {
                int cancelRes = orderChannel.CancelOrder(id);
                if (cancelRes > 0)
                {
                    // 发用户消息
                    WxMessageHandler.GetInstance().SendMessageToUser(CurrentWxUser.UserId, order);
                    return(Json(new { state = 1 }));
                }
                else
                {
                    return(Json(new { state = 0, txt = "退单请求发送成功,但订单状态更改失败。", errCode = 9010 }));
                }
            }

            return(Json(new { state = 0, txt = "操作失败!", errCode = 9008 }));
        }
        public JsonResult OriginalOrderSend(Guid id, string supplier)
        {
            var orderChannel = OrderApiClientChannelFactory.GetChannel();
            var order        = orderChannel.FindByID(id);

            if (!(order.State == OrderState.RETURNFAIL && order.IsRetuen == OrderIsRetuen.FAIL))
            {
                return(Json(new { state = 0, txt = "当前订单状态不可执行该操作!", errCode = 9011 }));
            }

            //var channel = OpenApiChannelFactory.GetChannel();
            //var res = channel.cancleFailOrderFeedBack(order.XmsOrderId, "0", string.Empty);
            var req = new CancleFailOrderFeedBackReq()
            {
                _Channels    = order.Channel,
                type         = "0",
                iPathOrderId = order.XmsOrderId,
                remark       = string.Empty
            };
            var res = apiClient.CancleFailOrderFeedBack(req);

            if (res.errorCode == "0")
            {
                int cancelRes = orderChannel.OriginalOrderSend(id);
                if (cancelRes > 0)
                {
                    // 发用户消息
                    WxMessageHandler.GetInstance().SendMessageToUser(CurrentWxUser.UserId, order);
                    return(Json(new { state = 1 }));
                }
                else
                {
                    return(Json(new { state = 0, txt = "退单请求发送成功,但订单状态更改失败。", errCode = 9010 }));
                }
            }
            return(Json(new { state = 0, txt = "操作失败!", errCode = 9008 }));
        }
        public JsonResult _Submit(string htCode, string MMCoEImageOne, string MMCoEImageTwo, string MMCoEImageThree, int FileType, int IsAttentSame, string AttentSameReason, string SpecialReason, int IsAddFile, int IsMeetingInfoSame, string MeetingInfoSameReason, string Memo)
        {
            //用户信息
            P_USERINFO userInfo        = Session[MealH5.Util.ConstantHelper.CURRENTWXUSER] as P_USERINFO;
            var        uploadChannel   = UploadOrderApiClientChannelFactory.GetChannel();
            var        userInfoChannel = UserInfoClientChannelFactory.GetChannel();
            var        orderChannel    = OrderApiClientChannelFactory.GetChannel();
            //DM
            var uploadInfo = uploadChannel.FindApproveInfo(userInfo.UserId);


            if (uploadInfo == null || uploadInfo.UserId == null)
            {
                return(Json(new { state = 0, txt = "您的直线经理信息有误,请隔日再尝试提交。", errCode = 6666 }));
            }

            var uploadInfoDMDelegate = userInfoChannel.isAgent(uploadInfo.UserId);
            //RM
            var            uploaderRMInfo     = new WP_QYUSER();
            var            uploaderRDInfo     = new WP_QYUSER();
            P_UserDelegate uploaderRDDelegate = null;

            if (uploadInfo != null && uploadInfo.UserId != null)
            {
                uploaderRMInfo = uploadChannel.FindApproveInfo(uploadInfo.UserId);

                if (uploaderRMInfo != null && uploaderRMInfo.UserId != null)
                {
                    //RD/SD
                    uploaderRDInfo     = uploadChannel.FindApproveInfo(uploaderRMInfo.UserId);
                    uploaderRDDelegate = userInfoChannel.isAgent(uploaderRDInfo.UserId);
                }
            }

            var orderInfo   = orderChannel.FindOrderByCN(htCode);
            var orderUpload = new P_PREUPLOADORDER();

            orderUpload.ID                    = Guid.NewGuid();
            orderUpload.ApplierName           = orderInfo.IsTransfer == 0 ? userInfo.Name : orderInfo.Consignee;                                                                                                                                           //登录人姓名
            orderUpload.ApplierMUDID          = orderInfo.IsTransfer == 0 ? userInfo.UserId : orderInfo.UserId;                                                                                                                                            //登录人ID
            orderUpload.CreateDate            = DateTime.Now;                                                                                                                                                                                              //创建日期
            orderUpload.ModifyDate            = orderUpload.CreateDate;                                                                                                                                                                                    //修改日期
            orderUpload.HTCode                = htCode;                                                                                                                                                                                                    //HT编号
            orderUpload.BUHeadName            = FileType == 2 ? (uploaderRDDelegate == null ? uploaderRDInfo.Name : uploaderRDDelegate.DelegateUserName) : (uploadInfoDMDelegate == null ? uploadInfo.Name : uploadInfoDMDelegate.DelegateUserName);       //审批人姓名
            orderUpload.BUHeadMUDID           = FileType == 2 ? (uploaderRDDelegate == null ? uploaderRDInfo.UserId : uploaderRDDelegate.DelegateUserMUDID) : (uploadInfoDMDelegate == null ? uploadInfo.UserId : uploadInfoDMDelegate.DelegateUserMUDID); //审批人ID
            orderUpload.IsReAssign            = false;                                                                                                                                                                                                     //是否重新分配
            orderUpload.State                 = "1";                                                                                                                                                                                                       //状态
            orderUpload.MMCoEImageOne         = MMCoEImageOne;                                                                                                                                                                                             //上传文件1
            orderUpload.MMCoEImageTwo         = MMCoEImageTwo;                                                                                                                                                                                             //上传文件2
            orderUpload.MMCoEImageThree       = MMCoEImageThree;                                                                                                                                                                                           //上传文件2
            orderUpload.FileType              = FileType;
            orderUpload.IsAttentSame          = IsAttentSame;
            orderUpload.AttentSameReason      = AttentSameReason;
            orderUpload.SpecialReason         = SpecialReason;
            orderUpload.IsAddFile             = IsAddFile;
            orderUpload.IsMeetingInfoSame     = IsMeetingInfoSame;
            orderUpload.MeetingInfoSameReason = MeetingInfoSameReason;
            orderUpload.Memo                  = Memo;
            if (orderInfo.IsTransfer == 1)
            {
                orderUpload.IsTransfer            = orderInfo.IsTransfer;
                orderUpload.TransferUserName      = orderInfo.TransferUserName;
                orderUpload.TransferUserMUDID     = orderInfo.TransferUserMUDID;
                orderUpload.TransferOperatorName  = orderInfo.TransferOperatorName;
                orderUpload.TransferOperatorMUDID = orderInfo.TransferOperatorMUDID;
                orderUpload.TransferOperateDate   = orderInfo.TransferOperateDate;
            }
            var res = uploadChannel.Add(orderUpload);

            if (res > 0)
            {
                P_OrderApproveHistory history = new P_OrderApproveHistory()
                {
                    ID          = Guid.NewGuid(),
                    PID         = orderUpload.ID,
                    UserName    = userInfo.Name,
                    UserId      = userInfo.UserId,
                    ActionType  = 1,
                    ApproveDate = DateTime.Now,
                    type        = 2
                };
                uploadChannel.AddOrderApproveHistory(history);
                WxMessageHandler.GetInstance().SendOrderStateChangeMessageToUser(orderUpload);
                return(Json(new { state = 1 }));
            }
            if (res == 0)
            {
                return(Json(new { state = 0, txt = "您的文件已经提交过,请勿重复提交。", errCode = 5555 }));
            }
            else
            {
                return(Json(new { state = 0 }));
            }
        }
Beispiel #13
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 }));
        }
        /// <summary>
        /// MMCoE审批
        /// </summary>
        /// <param name="id"></param>
        /// <param name="state"></param>
        /// <param name="reason"></param>
        /// <returns></returns>
        public JsonResult SaveMMCoEResult(Guid orderId, int state, string reason)
        {
            var channel         = OrderApiClientChannelFactory.GetChannel();
            var evaluateChannel = EvaluateClientChannelFactory.GetChannel();
            var order           = channel.FindByID(orderId);
            var customerID      = ConfigurationManager.AppSettings["CustomerID"];

            //审批驳回
            if (state == 2)
            {
                var res = channel.MMCoEResult(orderId, state, reason);
                if (res == 1)
                {
                    P_ORDER_APPROVE entity = new P_ORDER_APPROVE();
                    entity.ID           = Guid.NewGuid();
                    entity.OrderID      = orderId;
                    entity.CN           = order.CN;
                    entity.UserId       = order.UserId;
                    entity.OldState     = order.State;
                    entity.NewState     = OrderState.REJECT;
                    entity.Result       = 0;
                    entity.Comment      = reason;
                    entity.IsWXClient   = 1;
                    entity.CreateDate   = DateTime.Now;
                    entity.CreateUserId = CurrentWxUser.UserId;
                    //添加审批记录
                    var evaluateRes = evaluateChannel.AddOrderApprove(entity);

                    if (evaluateRes == 0)
                    {
                        LogHelper.Info($"订单状态修改成功,添加审批记录失败 - [{ orderId.ToString()}]");
                    }
                    // 发用户消息
                    WxMessageHandler.GetInstance().SendMessageToUser(order.UserId, order);
                    return(Json(new { state = 1, txt = "订单审批已驳回" }));
                }
                else
                {
                    LogHelper.Info($"(审批驳回)订单状态修改失败 - [{ orderId.ToString()}]");
                }
            }

            //审批通过
            else
            {
                //订单审批
                var _res = channel.MMCoEResult(orderId, state, reason);
                if (_res == 1)
                {
                    //var openApiChannel = OpenApiChannelFactory.GetChannel();
                    //下新单
                    if (order.IsChange == 0)
                    {
                        var     json      = order.Detail;
                        P_Order orderInfo = JsonConvert.DeserializeObject <P_Order>(json);
                        var     foodList  = orderInfo.foods.foods.Select(a => a.ToFoodRequest()).ToArray();
                        var     foods     = new List <iPathFeast.ApiEntity.Food>();
                        foreach (var item in foodList)
                        {
                            foods.Add(new iPathFeast.ApiEntity.Food()
                            {
                                foodId   = item.foodId,
                                foodName = item.foodName,
                                count    = Convert.ToInt32(item.count)
                            });
                        }

                        //调用小秘书下单接口
                        //var openApiRes = openApiChannel.createOrder2(orderId.ToString(), string.Empty, "0", orderInfo);
                        var req = new CreateOrderReq()
                        {
                            _Channels         = order.Channel,
                            enterpriseOrderId = order.EnterpriseOrderId,
                            oldiPathOrderId   = string.Empty,
                            CustomerID        = Guid.Parse(customerID),
                            sendTime          = orderInfo.details.deliverTime.Value.ToString("yyyy-MM-dd HH:mm:ss"),
                            foodFee           = orderInfo.foods.foodFee.ToString(),
                            packageFee        = orderInfo.foods.packageFee.ToString(),
                            sendFee           = orderInfo.foods.sendFee.ToString(),
                            totalFee          = orderInfo.foods.allPrice.ToString(),
                            invoiceTitle      = orderInfo.hospital.invoiceTitle + " - " + orderInfo.hospital.dutyParagraph,
                            orderTime         = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                            remark            = orderInfo.details.remark,
                            dinnerName        = orderInfo.details.consignee,
                            dinnernum         = orderInfo.details.attendCount.ToString(),
                            phone             = orderInfo.details.phone,
                            address           = orderInfo.hospital.address + " - " + orderInfo.details.deliveryAddress,
                            resId             = orderInfo.foods.resId,
                            longitude         = orderInfo.hospital.longitude,
                            latitude          = orderInfo.hospital.latitude,
                            hospitalId        = orderInfo.hospital.hospital,
                            foods             = foods,
                            cityId            = orderInfo.hospital.city,
                            cn       = order.CN,
                            cnAmount = orderInfo.meeting.budgetTotal.ToString(),
                            mudId    = orderInfo.meeting.userId,
                            typeId   = "0"
                        };
                        var openApiRes = apiClient.CreateOrder(req);
                        if (openApiRes.errorCode == "0")
                        {
                            var _channel = OrderApiClientChannelFactory.GetChannel();
                            // 审批下单成功,保存小秘书单号
                            var res = channel.SaveXmsOrderId(orderId, openApiRes.iPathOrderId);
                            if (res > 0)
                            {
                                var _order = channel.FindByID(orderId);

                                P_ORDER_APPROVE entity = new P_ORDER_APPROVE();
                                entity.ID           = Guid.NewGuid();
                                entity.OrderID      = orderId;
                                entity.CN           = _order.CN;
                                entity.UserId       = _order.UserId;
                                entity.OldState     = order.State;
                                entity.NewState     = _order.State;
                                entity.Result       = 1;
                                entity.Comment      = reason;
                                entity.IsWXClient   = 1;
                                entity.CreateDate   = DateTime.Now;
                                entity.CreateUserId = CurrentWxUser.UserId;
                                //添加审批记录
                                var evaluateRes = evaluateChannel.AddOrderApprove(entity);

                                if (evaluateRes == 0)
                                {
                                    LogHelper.Info($"审批通过,下单成功,保存小秘书单号成功,添加审批记录失败 - [{ orderId.ToString()}]");
                                }
                                //发用户消息
                                WxMessageHandler.GetInstance().SendMessageToUser(order.UserId, _order);
                                return(Json(new { state = 1, txt = "订单审批已通过" }));
                            }
                            else
                            {
                                LogHelper.Info("审批通过,下单成功,保存小秘书单号失败");
                            }
                        }
                        else
                        {
                            //审批退回审批前状态
                            var res = channel._MMCoEResult(orderId, 1, "");
                            if (res == 1)
                            {
                                return(Json(new { state = 0, txt = "调用小秘书下单接口失败,订单审批失败", errCode = openApiRes.errorCode }));
                            }
                            else
                            {
                                LogHelper.Info($"订单状态修改成功,调用小秘书下单接口失败,订单审批退回失败 - [{ orderId.ToString()}]");
                            }
                        }
                    }
                    //改单
                    else
                    {
                        var     json       = order.ChangeDetail;
                        P_Order orderInfo  = JsonConvert.DeserializeObject <P_Order>(json);
                        var     ChangeID   = Guid.NewGuid();
                        var     XmsOrderId = string.Empty;
                        var     foodList   = orderInfo.foods.foods.Select(a => a.ToFoodRequest()).ToArray();
                        var     foods      = new List <iPathFeast.ApiEntity.Food>();
                        foreach (var item in foodList)
                        {
                            foods.Add(new iPathFeast.ApiEntity.Food()
                            {
                                foodId   = item.foodId,
                                foodName = item.foodName,
                                count    = Convert.ToInt32(item.count)
                            });
                        }
                        var _enterpriseOrderId = order.EnterpriseOrderId;
                        if (string.IsNullOrEmpty(_enterpriseOrderId))
                        {
                            int RandKey  = new Random().Next(1, 999);
                            var two      = (RandKey < 10 ? "00" + RandKey : (RandKey < 100 ? "0" + RandKey : RandKey.ToString()));
                            var _channel = orderInfo.supplier;
                            var _date    = DateTime.Now.ToString("yyMMddHHmmss");
                            _enterpriseOrderId = _channel.ToUpper() + "-" + _date + two;
                        }
                        var type = string.IsNullOrEmpty(order.XmsOrderId) ? "0" : "1";
                        var req  = new CreateOrderReq()
                        {
                            _Channels         = order.Channel,
                            enterpriseOrderId = _enterpriseOrderId,
                            oldiPathOrderId   = order.XmsOrderId,
                            CustomerID        = Guid.Parse(customerID),
                            sendTime          = orderInfo.details.deliverTime.Value.ToString("yyyy-MM-dd HH:mm:ss"),
                            foodFee           = orderInfo.foods.foodFee.ToString(),
                            packageFee        = orderInfo.foods.packageFee.ToString(),
                            sendFee           = orderInfo.foods.sendFee.ToString(),
                            totalFee          = orderInfo.foods.allPrice.ToString(),
                            invoiceTitle      = orderInfo.hospital.invoiceTitle + " - " + orderInfo.hospital.dutyParagraph,
                            orderTime         = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                            remark            = orderInfo.details.remark,
                            dinnerName        = orderInfo.details.consignee,
                            dinnernum         = orderInfo.details.attendCount.ToString(),
                            phone             = orderInfo.details.phone,
                            address           = orderInfo.hospital.address + " - " + orderInfo.details.deliveryAddress,
                            resId             = orderInfo.foods.resId,
                            longitude         = orderInfo.hospital.longitude,
                            latitude          = orderInfo.hospital.latitude,
                            hospitalId        = orderInfo.hospital.hospital,
                            foods             = foods,
                            cityId            = orderInfo.hospital.city,
                            cn       = orderInfo.CnCode,
                            cnAmount = orderInfo.meeting.budgetTotal.ToString(),
                            mudId    = orderInfo.meeting.userId,
                            typeId   = type
                        };
                        //调用小秘书下单接口
                        //var openApiRes = openApiChannel.createOrder2(order.ChangeID.ToString(), order.XmsOrderId,
                        //    string.IsNullOrEmpty(order.XmsOrderId) ? "0" : "1", orderInfo);
                        var openApiRes = apiClient.CreateOrder(req);

                        if (openApiRes.errorCode == "0")
                        {
                            if (string.IsNullOrEmpty(order.XmsOrderId))
                            {
                                XmsOrderId = openApiRes.iPathOrderId;
                            }
                            var _channel = OrderApiClientChannelFactory.GetChannel();
                            // 写入改单后的新数据
                            //var res = _channel.Change(orderId, ChangeID, orderInfo);
                            //if (res > 0)
                            //{
                            //    if (!string.IsNullOrEmpty(XmsOrderId))
                            //    {
                            //        // 从未在小秘书下单过的改单,下单成功后应写入小秘书单号
                            //        _channel.SaveXmsOrderId(orderId, XmsOrderId);
                            //    }
                            //}
                            OrderInfo = null;
                            var _order = channel.FindByID(orderId);

                            P_ORDER_APPROVE entity = new P_ORDER_APPROVE();
                            entity.ID           = Guid.NewGuid();
                            entity.OrderID      = orderId;
                            entity.CN           = _order.CN;
                            entity.UserId       = _order.UserId;
                            entity.OldState     = order.State;
                            entity.NewState     = _order.State;
                            entity.Result       = 1;
                            entity.Comment      = reason;
                            entity.IsWXClient   = 1;
                            entity.CreateDate   = DateTime.Now;
                            entity.CreateUserId = CurrentWxUser.UserId;
                            //添加审批记录
                            var evaluateRes = evaluateChannel.AddOrderApprove(entity);

                            if (evaluateRes == 0)
                            {
                                LogHelper.Info($"审批通过,(改单)下单成功,保存小秘书单号成功,添加审批记录失败 - [{ orderId.ToString()}]");
                            }

                            //发用户消息
                            WxMessageHandler.GetInstance().SendMessageToUser(order.UserId, _order);
                            return(Json(new { state = 1, txt = "订单审批已通过" }));
                        }
                        else
                        {
                            var res = channel._MMCoEResult(orderId, 1, "");
                            if (res == 1)
                            {
                                return(Json(new { state = 0, txt = openApiRes.errorMsg, errCode = openApiRes.errorCode }));
                            }
                            else
                            {
                                LogHelper.Info($"订单状态修改成功,调用供应商下单接口失败,订单审批退回失败 - [{ orderId.ToString()}]");
                            }
                        }
                    }
                }
                else
                {
                    LogHelper.Info($"(审批通过)订单状态修改失败 - [{ orderId.ToString()}]");
                }
            }

            return(Json(new { state = 0, txt = "订单审批失败,请刷新页面后重试。", errCode = 9007 }));
        }
        public JsonResult _Edit(Guid UploadOrderId, string htCode, string MMCoEImageOne, string MMCoEImageTwo, string MMCoEImageThree, int FileType, int IsAttentSame, string AttentSameReason, string SpecialReason, int IsAddFile, int IsMeetingInfoSame, string MeetingInfoSameReason, string Memo)
        {
            //用户信息
            P_USERINFO userInfo        = Session[MealH5.Util.ConstantHelper.CURRENTWXUSER] as P_USERINFO;
            var        uploadChannel   = UploadOrderApiClientChannelFactory.GetChannel();
            var        userInfoChannel = UserInfoClientChannelFactory.GetChannel();
            var        orderChannel    = OrderApiClientChannelFactory.GetChannel();
            //DM
            var uploadInfo = uploadChannel.FindApproveInfo(userInfo.UserId);

            if (uploadInfo == null || uploadInfo.UserId == null)
            {
                return(Json(new { state = 0, txt = "您的直线经理信息有误,请隔日再尝试提交。", errCode = 6666 }));
            }

            var uploadInfoDMDelegate = userInfoChannel.isAgent(uploadInfo.UserId);
            //RM
            var            uploaderRMInfo     = new WP_QYUSER();
            var            uploaderRDInfo     = new WP_QYUSER();
            P_UserDelegate uploaderRDDelegate = null;

            if (uploadInfo != null && uploadInfo.UserId != null)
            {
                uploaderRMInfo = uploadChannel.FindApproveInfo(uploadInfo.UserId);

                if (uploaderRMInfo != null && uploaderRMInfo.UserId != null)
                {
                    //RD/SD
                    uploaderRDInfo     = uploadChannel.FindApproveInfo(uploaderRMInfo.UserId);
                    uploaderRDDelegate = userInfoChannel.isAgent(uploaderRDInfo.UserId);
                }
            }

            var uploadOrderInfo = uploadChannel.LoadPreUploadOrder(UploadOrderId);
            var orderInfo       = orderChannel.FindOrderByCN(htCode);

            uploadOrderInfo.ModifyDate            = DateTime.Now;                                                                                                                                                                                              //修改日期
            uploadOrderInfo.State                 = "1";
            uploadOrderInfo.BUHeadName            = FileType == 2 ? (uploaderRDDelegate == null ? uploaderRDInfo.Name : uploaderRDDelegate.DelegateUserName) : (uploadInfoDMDelegate == null ? uploadInfo.Name : uploadInfoDMDelegate.DelegateUserName);       //审批人姓名
            uploadOrderInfo.BUHeadMUDID           = FileType == 2 ? (uploaderRDDelegate == null ? uploaderRDInfo.UserId : uploaderRDDelegate.DelegateUserMUDID) : (uploadInfoDMDelegate == null ? uploadInfo.UserId : uploadInfoDMDelegate.DelegateUserMUDID); //审批人ID
            uploadOrderInfo.MMCoEImageOne         = MMCoEImageOne;                                                                                                                                                                                             //上传文件1
            uploadOrderInfo.MMCoEImageTwo         = MMCoEImageTwo;                                                                                                                                                                                             //上传文件2
            uploadOrderInfo.MMCoEImageThree       = MMCoEImageThree;                                                                                                                                                                                           //上传文件2
            uploadOrderInfo.IsAttentSame          = IsAttentSame;
            uploadOrderInfo.AttentSameReason      = AttentSameReason;
            uploadOrderInfo.SpecialReason         = SpecialReason;
            uploadOrderInfo.IsAddFile             = IsAddFile;
            uploadOrderInfo.IsMeetingInfoSame     = IsMeetingInfoSame;
            uploadOrderInfo.MeetingInfoSameReason = MeetingInfoSameReason;
            uploadOrderInfo.Memo = Memo;
            if (orderInfo.IsTransfer == 1)
            {
                uploadOrderInfo.IsTransfer            = orderInfo.IsTransfer;
                uploadOrderInfo.TransferUserName      = orderInfo.TransferUserName;
                uploadOrderInfo.TransferUserMUDID     = orderInfo.TransferUserMUDID;
                uploadOrderInfo.TransferOperatorName  = orderInfo.TransferOperatorName;
                uploadOrderInfo.TransferOperatorMUDID = orderInfo.TransferOperatorMUDID;
                uploadOrderInfo.TransferOperateDate   = orderInfo.TransferOperateDate;
            }
            uploadChannel.Update(uploadOrderInfo);
            P_OrderApproveHistory history = new P_OrderApproveHistory()
            {
                ID          = Guid.NewGuid(),
                PID         = UploadOrderId,
                UserName    = CurrentWxUser.Name,
                UserId      = CurrentWxUser.UserId,
                ActionType  = 4,
                ApproveDate = DateTime.Now,
                type        = 2
            };

            uploadChannel.AddOrderApproveHistory(history);

            WxMessageHandler.GetInstance().SendOrderStateChangeMessageToUser(uploadOrderInfo);
            return(Json(new { state = 1 }));
        }
Beispiel #16
0
        public JsonResult AddressApprove(Guid id, int action, string reason)
        {
            P_AddressApproval addressApproval = new P_AddressApproval();

            addressApproval.ID = id;
            P_AddressApproval_View addressApproval_View = new P_AddressApproval_View();
            var preApprovalChannel = PreApprovalClientChannelFactory.GetChannel();
            var channel            = PreApprovalClientChannelFactory.GetChannel();

            addressApproval_View = channel.LoadAddressApprovalInfo(id);
            P_USERINFO userInfo = Session[MealH5.Util.ConstantHelper.CURRENTWXUSER] as P_USERINFO;
            string     msg      = "";

            try
            {
                var res = preApprovalChannel.AddressApprove(addressApproval_View, reason);
                if (res == 1)
                {
                    P_AddressApproveHistory addressApproveHistory = new P_AddressApproveHistory()
                    {
                        ID          = Guid.NewGuid(),
                        DA_ID       = id,
                        UserName    = userInfo.Name,
                        UserId      = userInfo.UserId,
                        ActionType  = action,
                        ApproveDate = DateTime.Now,
                        Comments    = reason,
                        type        = 0,
                        IsDelete    = 0
                    };
                    //添加审批记录
                    //var historyRes = preApprovalChannel.AddAddressApproveHistory(addressApproveHistory);
                    //if (historyRes == 0)
                    //{
                    //    LogHelper.Info($"审批成功,添加审批记录失败 - [{ id},{userInfo.UserId}]");
                    //}
                    // 发用户消息
                    WxMessageHandler.GetInstance().SendAddressApprovalStateChangeMessageToUser(addressApproval);
                    LogHelper.Info($"地址申请审批通过 - [{ id},{userInfo.UserId}]");
                    if (reason == "")
                    {
                        if (addressApproval_View.ApprovalStatus == 0)
                        {
                            msg = "地址申请审批通过。";
                        }
                        else if (addressApproval_View.ApprovalStatus == 9)
                        {
                            msg = "地址申请修改审批通过。";
                        }
                        else if (addressApproval_View.ApprovalStatus == 10)
                        {
                            msg = "地址申请重新提交审批通过。";
                        }
                    }
                    else
                    {
                        if (addressApproval_View.ApprovalStatus == 0)
                        {
                            msg = "地址申请审批驳回。";
                        }
                        else if (addressApproval_View.ApprovalStatus == 9)
                        {
                            msg = "地址申请修改审批驳回。";
                        }
                        else if (addressApproval_View.ApprovalStatus == 10)
                        {
                            msg = "地址申请重新提交审批驳回。";
                        }
                    }
                    return(Json(new { state = 1, txt = msg }));
                }
                else
                {
                    LogHelper.Info($" 审批地址申请失败 - [{id}]");
                    return(Json(new { state = 0, txt = "地址申请审批失败,请刷新页面后重试。", errCode = 9007 }));
                }
            }catch (Exception ex)
            {
                LogHelper.Error("Exception AddressApprove", ex);
                return(Json(new { state = 0, txt = "地址申请审批失败,请刷新页面后重试。", errCode = 9007 }));
            }
        }
Beispiel #17
0
        public JsonResult OrderFeeChange()
        {
            try
            {
                StreamReader reader = new StreamReader(Request.InputStream);
                var          req    = reader.ReadToEnd();
                LogHelper.Info(req);

                OrderFeeChangeCallBack request = JsonConvert.DeserializeObject <OrderFeeChangeCallBack>(req);

                var channel = OrderApiClientChannelFactory.GetChannel();
                var res     = request.requestData;
                var order   = channel.FindByXmlOrderId(res.supplierOrderId);
                var detail  = (JObject)JsonConvert.DeserializeObject(order.Detail);
                var timeNow = DateTime.Now;

                #region 判断是否超预算
                var baseDataChannel = BaseDataClientChannelFactory.GetChannel();
                var cBudget         = baseDataChannel.FindCityBudget(order.HospitalId);
                if (cBudget.IsOut == 0)
                {
                    if (res.totalFee / order.AttendCount > 60)
                    {
                        LogHelper.Info("code=802");
                        return(Json(new { code = 802, message = "人均实际金额超过60元" }));
                    }
                }
                else
                {
                    if (string.IsNullOrEmpty(cBudget.CityName))
                    {
                        if (res.totalFee / order.AttendCount > 100)
                        {
                            LogHelper.Info("code=802");
                            return(Json(new { code = 802, message = "人均实际金额超过100元" }));
                        }
                    }
                    //一二线城市
                    else
                    {
                        if (res.totalFee / order.AttendCount > 150)
                        {
                            LogHelper.Info("code=802");
                            return(Json(new { code = 802, message = "人均实际金额超过150元" }));
                        }
                    }
                }
                #endregion

                if (timeNow > DateTime.Parse(detail["details"]["deliverTime"].ToString()))
                {
                    LogHelper.Info("code=803");
                    return(Json(new { code = 803, message = "修改实际金额时间超过送餐时间" }));
                }
                else if (res.totalFee > decimal.Parse(detail["preApproval"]["BudgetTotal"].ToString()))
                {
                    LogHelper.Info("code=801");
                    return(Json(new { code = 801, message = "实际金额大于会议预算金额" }));
                }
                else if (res.totalFee > order.TotalPrice)
                {
                    LogHelper.Info("code=804");
                    return(Json(new { code = 804, message = "实际金额大于会议预定金额" }));
                }
                //else if (res.totalFee / order.AttendCount > 60)
                //{
                //    LogHelper.Info("code=802");
                //    return Json(new { code = 802, message = "人均实际金额超过60元" });
                //}
                else
                {
                    int result = channel.XmsChangeTotalFee(res.supplierOrderId, res.totalFee, res.remark);
                    if (result > 0)
                    {
                        if (order.IsNonHT == 0)
                        {
                            WxMessageHandler.GetInstance().SendMessageToUserForChangeFee(res.supplierOrderId);
                        }
                        else
                        {
                            WxMessageHandler.GetInstance().SendNonHTMessageToUserForChangeFee(res.supplierOrderId);
                        }
                        LogHelper.Info("code=200");
                        return(Json(new { code = 200, message = "ok" }));
                    }
                    else
                    {
                        LogHelper.Info("数据库连接超时,更改订单金额失败,code=500");
                        return(Json(new { code = 500, message = "fail" }));
                    }
                }
            }
            catch (Exception exp)
            {
                LogHelper.Error("Exception OrderFeeChange", exp);
                return(Json(new { code = 500, message = "error" }));
            }
        }
Beispiel #18
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 #19
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 }));
        }
        /// <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        orderChannel = UploadOrderApiClientChannelFactory.GetChannel();
            P_USERINFO userInfo     = Session[MealH5.Util.ConstantHelper.CURRENTWXUSER] as P_USERINFO;
            //审批通过
            int pstate = 6;

            if (state == 3)
            {
                var preApproval = orderChannel.LoadPreUploadOrder(id);
                var res         = orderChannel.MMCoEApprove(id, pstate, reason);

                if (res == 1)
                {
                    P_OrderApproveHistory orderHistory = new P_OrderApproveHistory()
                    {
                        ID          = Guid.NewGuid(),
                        PID         = id,
                        UserName    = userInfo.Name,
                        UserId      = userInfo.UserId,
                        ActionType  = state,
                        ApproveDate = DateTime.Now,
                        Comments    = reason,
                        type        = 1
                    };
                    //添加审批记录
                    var historyRes = orderChannel.AddOrderApproveHistory(orderHistory);
                    if (historyRes == 0)
                    {
                        LogHelper.Info($"审批通过,添加审批记录失败 - [{ id}]");
                    }
                    // 发用户消息
                    WxMessageHandler.GetInstance().SendOrderStateChangeMessageToUser(preApproval);
                    return(Json(new { state = 1, txt = "文件上传已审批通过。" }));
                }
                else
                {
                    LogHelper.Info($"(审批通过)文件上传状态修改失败 - [{ id}]");
                }
            }
            else
            {
                pstate = 2;
                var res       = orderChannel.MMCoEReject(id, pstate, reason);
                var orderInfo = orderChannel.LoadPreUploadOrder(id);
                orderInfo.State = "2";
                if (res == 1)
                {
                    P_OrderApproveHistory orderHistory = new P_OrderApproveHistory()
                    {
                        ID          = Guid.NewGuid(),
                        PID         = id,
                        UserName    = userInfo.Name,
                        UserId      = userInfo.UserId,
                        ActionType  = state,
                        ApproveDate = DateTime.Now,
                        Comments    = reason,
                        type        = 1
                    };
                    //添加审批记录
                    var historyRes = orderChannel.AddOrderApproveHistory(orderHistory);
                    if (historyRes == 0)
                    {
                        LogHelper.Info($"审批驳回,添加审批记录失败 - [{ id}]");
                    }
                    // 发用户消息
                    WxMessageHandler.GetInstance().SendOrderRejectMessageToUser(reason, orderInfo);
                    return(Json(new { state = 1, txt = "文件上传已审批驳回。" }));
                }
                else
                {
                    LogHelper.Info($"(审批驳回)文件上传状态修改失败 - [{ id}]");
                }
            }
            return(Json(new { state = 0, txt = "文件上传审批失败,请刷新页面后重试。", errCode = 9007 }));
        }
Beispiel #21
0
        public JsonResult OrderStateChange()
        {
            try
            {
                StreamReader reader = new StreamReader(Request.InputStream);
                var          req    = reader.ReadToEnd();
                LogHelper.Info(req);

                OrderStateChangeCallBack request = JsonConvert.DeserializeObject <OrderStateChangeCallBack>(req);
                var res = request.requestData;
                if (res.status == 2 && res.supplierOrderId == res.oldsupplierOrderId)
                {
                    // 迁就小秘书,把改单失败的状态码,从小秘书2改成我们需要的3
                    res.status = 3;
                }

                var channel = OrderApiClientChannelFactory.GetChannel();
                var orderId = string.IsNullOrEmpty(res.oldsupplierOrderId) ? res.supplierOrderId : res.oldsupplierOrderId;
                var order   = channel.FindByXmlOrderId(orderId);

                if (order.State == 5 || order.State == 11)
                {
                    LogHelper.Info("code=805,无效订单");
                    return(Json(new { code = 805, message = "无效订单,无法继续返回订单状态" }));
                }

                switch (res.status)
                {
                case 2:
                {
                    var timeNow = DateTime.Now;
                    if (timeNow > order.DeliverTime)
                    {
                        LogHelper.Info("code=804");
                        return(Json(new { code = 804, message = "订单状态返回时间超过送餐时间" }));
                    }
                    // 预定成功
                    var i = channel.ScheduledSuccess(res.supplierOrderId, res.CheckCode, res.remark, res.oldsupplierOrderId);
                    if (i > 0)
                    {
                        var _order = channel.FindByXmlOrderId(res.supplierOrderId);
                        if (_order.IsNonHT == 0)
                        {
                            WxMessageHandler.GetInstance().SendMessageToUser(_order.UserId, _order);
                        }
                    }
                }
                break;

                case 3:
                {
                    var timeNow = DateTime.Now;
                    if (timeNow > order.DeliverTime)
                    {
                        LogHelper.Info("code=804");
                        return(Json(new { code = 804, message = "订单状态返回时间超过送餐时间" }));
                    }
                    // 预定失败
                    var i = channel.ScheduledFail(res.supplierOrderId, res.remark, res.oldsupplierOrderId);
                    if (i > 0)
                    {
                        var _order = channel.FindByXmlOrderId(res.supplierOrderId);
                        if (_order.IsNonHT == 0)
                        {
                            WxMessageHandler.GetInstance().SendMessageToUser(_order.UserId, _order);
                        }
                    }
                }
                break;

                case 4:
                {
                    // 配送成功
                    // 配送成功暂时无需进行数据库操作
                }
                break;

                case 5:
                {
                    var timeNow  = DateTime.Now;
                    var dataTime = order.ReturnOrderDate;
                    dataTime = dataTime.AddHours(18);
                    if (order.IsRetuen == 4)
                    {
                        dataTime = order.DeliverTime;
                    }

                    if (timeNow > dataTime)
                    {
                        LogHelper.Info("code=804");
                        return(Json(new { code = 804, message = "订单状态返回时间超过送餐时间" }));
                    }

                    // 退订失败(只送小票 发票)
                    var i = -1;
                    //if (_order.State == OrderState.RETURNING)
                    //{
                    //    i = channel.CancelOrderFail(res.xmsOrderId, res.remark);
                    //}
                    //else if(_order.State == OrderState.RETURNFAIL && _order.IsRetuen== OrderIsRetuen.POSTFOOD)
                    //{
                    //    i = channel.OriginalOrderSendFail(res.xmsOrderId, res.remark);
                    //}

                    if (order.IsRetuen == OrderIsRetuen.POSTFOOD)
                    {
                        i = channel.OriginalOrderSendFail(res.supplierOrderId, res.remark);
                    }
                    else
                    {
                        i = channel.CancelOrderFail(res.supplierOrderId, res.remark);
                    }
                    if (i > 0)
                    {
                        var _order = channel.FindByXmlOrderId(res.supplierOrderId);
                        if (_order.IsNonHT == 0)
                        {
                            WxMessageHandler.GetInstance().SendMessageToUser(_order.UserId, _order);
                        }
                    }
                }
                break;

                case 6:
                {
                    var timeNow  = DateTime.Now;
                    var dataTime = order.ReturnOrderDate;
                    dataTime = dataTime.AddHours(18);
                    if (order.IsRetuen == 4)
                    {
                        dataTime = order.DeliverTime;
                    }

                    if (timeNow > dataTime)
                    {
                        LogHelper.Info("code=804");
                        return(Json(new { code = 804, message = "订单状态返回时间超过送餐时间" }));
                    }

                    // 退订订单
                    var i = channel.CancelOrderSuccess(res.supplierOrderId);
                    if (i > 0)
                    {
                        var _order = channel.FindByXmlOrderId(res.supplierOrderId);
                        if (_order.IsNonHT == 0)
                        {
                            WxMessageHandler.GetInstance().SendMessageToUser(_order.UserId, _order);
                        }
                    }
                }
                break;

                case 7:
                {
                    // 订单未送达
                    // 未送达暂时无需操作
                }
                break;

                case 8:
                {
                    var timeNow  = DateTime.Now;
                    var dataTime = order.ReturnOrderDate;
                    dataTime = dataTime.AddHours(18);
                    if (order.IsRetuen == 4)
                    {
                        dataTime = order.DeliverTime;
                    }

                    if (timeNow > dataTime)
                    {
                        LogHelper.Info("code=804");
                        return(Json(new { code = 804, message = "订单状态返回时间超过送餐时间" }));
                    }
                    var i = -1;
                    // 退订失败(继续配送)
                    if (order.IsRetuen == OrderIsRetuen.POSTFOOD && order.State == OrderState.RETURNFAIL)
                    {
                        i = channel.OriginalOrderSendSuccess(res.supplierOrderId, res.remark);
                    }
                    else
                    {
                        i = channel.OriginalOrderSendSuccess(res.supplierOrderId, res.remark);
                    }
                    //var i = channel.OriginalOrderSendFail(res.xmsOrderId);
                    if (i > 0)
                    {
                        var _order = channel.FindByXmlOrderId(res.supplierOrderId);
                        if (_order.IsNonHT == 0)
                        {
                            WxMessageHandler.GetInstance().SendMessageToUser(_order.UserId, _order);
                        }
                    }
                }
                break;
                }

                return(Json(new { code = 200, message = "ok" }));
            }
            catch (Exception exp)
            {
                LogHelper.Error("Exception OrderStateChange", exp);
                return(Json(new { code = 500, message = "error" }));
            }
        }
        /// <summary>
        /// 文件上传审批
        /// </summary>
        /// <param name="id"></param>
        /// <param name="state"></param>
        /// <param name="reason"></param>
        /// <returns></returns>
        public JsonResult OrderApprove(Guid id, int state, string reason)
        {
            var        uploadChannel = UploadOrderApiClientChannelFactory.GetChannel();
            P_USERINFO userInfo      = Session[MealH5.Util.ConstantHelper.CURRENTWXUSER] as P_USERINFO;

            //审批通过
            if (state == 3)
            {
                var res   = uploadChannel.BUHeadApprove(id, state, reason);
                var order = uploadChannel.LoadPreUploadOrder(id);

                if (res == 1)
                {
                    P_OrderApproveHistory orderlHistory = new P_OrderApproveHistory()
                    {
                        ID          = Guid.NewGuid(),
                        PID         = id,
                        UserName    = userInfo.Name,
                        UserId      = userInfo.UserId,
                        ActionType  = state,
                        ApproveDate = DateTime.Now,
                        Comments    = reason,
                        type        = 2
                    };
                    //添加审批记录
                    var historyRes = uploadChannel.AddOrderApproveHistory(orderlHistory);
                    if (historyRes == 0)
                    {
                        LogHelper.Info($"审批通过,添加审批记录失败 - [{ id}]");
                    }
                    // 发用户消息  修改SendOrderStateChangeMessageToUser
                    try
                    {
                        WxMessageHandler.GetInstance().SendOrderStateChangeMessageToUser(order);
                        string returnMessage = "上传文件已审批通过。";
                        switch (order.FileType)
                        {
                        case 1:
                            returnMessage = "退单原因已审批通过。"; break;

                        case 2:
                            returnMessage = "会议支持文件丢失原因已审批通过。"; break;

                        case 3:
                            returnMessage = "未送达,会议未正常召开原因已审批通过。"; break;
                        }
                        return(Json(new { state = 1, txt = returnMessage }));
                    }
                    catch (Exception ex)
                    {
                        string returnMessage = "上传文件失败。";
                        LogHelper.Info($"调用SendOrderStateChangeMessageToUser失败-[{ex.Message}]");
                        return(Json(new { state = 0, txt = returnMessage }));
                    }
                }
                else
                {
                    LogHelper.Info($"(审批通过)文件上传状态修改失败 - [{ id}]");
                }
            }
            else
            {
                var res       = uploadChannel.BUHeadReject(id, state, reason);
                var orderInfo = uploadChannel.LoadPreUploadOrder(id);
                if (res == 1)
                {
                    P_OrderApproveHistory orderHistory = new P_OrderApproveHistory()
                    {
                        ID          = Guid.NewGuid(),
                        PID         = id,
                        UserName    = userInfo.Name,
                        UserId      = userInfo.UserId,
                        ActionType  = state,
                        ApproveDate = DateTime.Now,
                        Comments    = reason,
                        type        = 2
                    };
                    //添加审批记录
                    var historyRes = uploadChannel.AddOrderApproveHistory(orderHistory);
                    if (historyRes == 0)
                    {
                        LogHelper.Info($"审批驳回,添加审批记录失败 - [{ id}]");
                    }
                    // 发用户消息
                    WxMessageHandler.GetInstance().SendOrderRejectMessageToUser(reason, orderInfo);
                    string returnMessage = "上传文件已审批被驳回。";
                    switch (orderInfo.FileType)
                    {
                    case 1:
                        returnMessage = "退单原因已审批被驳回。"; break;

                    case 2:
                        returnMessage = "会议支持文件丢失原因已审批被驳回。"; break;

                    case 3:
                        returnMessage = "未送达,会议未正常召开原因已审批被驳回。"; break;
                    }
                    return(Json(new { state = 1, txt = returnMessage }));
                }
                else
                {
                    LogHelper.Info($"(审批驳回)上传文件状态修改失败 - [{ id}]");
                }
            }
            return(Json(new { state = 0, txt = "上传文件审批失败,请刷新页面后重试。", errCode = 9007 }));
        }