/// <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); } }
/// <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 })); }
/// <summary> /// 添加审批记录 /// </summary> /// <param name="entity"></param> /// <returns></returns> public int AddOrderApprove(P_ORDER_APPROVE entity) { return(evaluateService.AddOrderApprove(entity)); }