Ejemplo n.º 1
0
        /// <summary>
        /// 添加审批记录
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public int AddOrderApprove(P_ORDER_APPROVE entity)
        {
            var sqlServerTemplate = sqlServerTemplFactory.CreateDbTemplate();

            using (var conn = sqlServerTemplate.GetSqlConnection())
            {
                conn.Open();

                var res = sqlServerTemplate.ExecuteNonQuery("INSERT INTO P_ORDER_APPROVE " +
                                                            " (ID,OrderID,CN,UserId,OldState,NewState,Result,Comment,IsWXClient,CreateDate,CreateUserId)" +
                                                            "VALUES (@ID,@OrderID,@CN,@UserId,@OldState,@NewState,@Result,@Comment,@IsWXClient,@CreateDate,@CreateUserId) ",
                                                            new SqlParameter[]
                {
                    SqlParameterFactory.GetSqlParameter("@ID", entity.ID),
                    SqlParameterFactory.GetSqlParameter("@OrderID", entity.OrderID),
                    SqlParameterFactory.GetSqlParameter("@CN", entity.CN),
                    SqlParameterFactory.GetSqlParameter("@UserId", entity.UserId),
                    SqlParameterFactory.GetSqlParameter("@OldState", entity.OldState),
                    SqlParameterFactory.GetSqlParameter("@NewState", entity.NewState),
                    SqlParameterFactory.GetSqlParameter("@Result", entity.Result),
                    SqlParameterFactory.GetSqlParameter("@Comment", entity.Comment),
                    SqlParameterFactory.GetSqlParameter("@IsWXClient", entity.IsWXClient),
                    SqlParameterFactory.GetSqlParameter("@CreateDate", entity.CreateDate),
                    SqlParameterFactory.GetSqlParameter("@CreateUserId", entity.CreateUserId)
                });
                return(res);
            }
        }
Ejemplo n.º 2
0
        /// <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 }));
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 添加审批记录
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 public int AddOrderApprove(P_ORDER_APPROVE entity)
 {
     return(evaluateService.AddOrderApprove(entity));
 }