using JiepeiWMS.Common.Enums; using JiepeiWMS.Filter; using JiepeiWMS.IServices; using JiepeiWMS.Model; using JiepeiWMS.Model.Models; using JiepeiWMS.Model.ViewModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; namespace JiepeiWMS.Api.Controllers { [Route("api/[controller]/[action]")] [ApiController] [Authorize(Permissions.Name)] public class WMOrderMainController : ControllerBase { /// /// 订单信息 /// private readonly IWMOrderMainServices _wMOrderMainServices; private readonly IWMOrderInfoServices _wMOrderInfoServices; public WMOrderMainController(IWMOrderMainServices WMOrderMainServices, IWMOrderInfoServices WMOrderInfoServices) { _wMOrderMainServices = WMOrderMainServices; _wMOrderInfoServices = WMOrderInfoServices; } /// /// 查询列表 /// /// 页数 /// 关键字 /// 条数 /// [HttpGet] public async Task>> Index(int page = 1, string key = "", int intPageSize = 50) { if (string.IsNullOrWhiteSpace(key)) key = ""; var PageList = await _wMOrderMainServices.GetWMOrderMainPage(page, intPageSize, key); return new MessageModel>() { msg = "获取成功", success = PageList.dataCount >= 0, response = PageList }; } /// /// 获取列表 /// /// [HttpGet] [AllowAnonymous] public async Task> Get(int id = 0) { return new MessageModel() { msg = "获取成功", success = true, response = await _wMOrderMainServices.QueryById(id) }; } /// /// 订单详情 /// /// /// [HttpGet] public async Task> Detail(int Id = 0) { var model = await _wMOrderMainServices.QueryById(Id); if (model != null) { //var dicType = typeof(EnumWMInInventoryType)._GetValueDescriptionDicFromEnumType(); //string name; //model.OutInTypeName = dicType.TryGetValue((EnumWMInInventoryType)model.OutInType, out name) ? name : string.Empty; model.OrderInfoList = await _wMOrderInfoServices.Query(w => w.OrderNo == model.OrderNo); foreach (var item in model.OrderInfoList) { } } return new MessageModel() { msg = "获取成功", success = true, response = model }; } /// /// 获取订单信息 /// /// [HttpGet, AllowAnonymous, AuthKeySecret] public async Task> CreateOrderMainInfo(WMOrderMainViewModels model) { var msg = string.Empty; var data = new MessageModel(); try { //验证非空 var mainParam = await _wMOrderMainServices.ValidateReconParams(model.OrderMainModel); if (!string.IsNullOrWhiteSpace(mainParam)) { msg = mainParam; goto ErrorResult; } var orderMainModel = await _wMOrderMainServices.GetModel(x => x.GroupNo == model.OrderMainModel.GroupNo); if (orderMainModel == null) { //新增订单信息数据 if (model.OrderMainModel.DataType <= EnumOrderMainDataType.贴片板子内部发货.GetHashCode() || model.OrderMainModel.DataType == EnumOrderMainDataType.元器件供应商发货.GetHashCode()) { if (model.OrderMainModel.OrderNo.StartsWith("H")) { model.OrderMainModel.ProType = 1; } else if (model.OrderMainModel.OrderNo.StartsWith("A_")) { model.OrderMainModel.ProType = 3; } else if (model.OrderMainModel.OrderNo.StartsWith("S_H")) { model.OrderMainModel.ProType = 2; } else if (model.OrderMainModel.OrderNo.StartsWith("IC_")) { model.OrderMainModel.ProType = 4; } await _wMOrderMainServices.Add(model.OrderMainModel); } } else { //更新订单信息数据 await _wMOrderMainServices.Update(model.OrderMainModel); } //循环子订单信息数据 foreach (var item in model.OrderInfoList) { //验证非空 var infoParam = await _wMOrderInfoServices.ValidateReconParams(item); if (!string.IsNullOrWhiteSpace(infoParam)) { msg = infoParam; goto ErrorResult; } var orderInfoModel = await _wMOrderInfoServices.GetModel(x => x.OrderNo == item.OrderNo); if (orderInfoModel == null) { //新增子订单信息数据 await _wMOrderInfoServices.Add(item); } else { //更新子订单信息数据 await _wMOrderInfoServices.Update(item); } } data.msg = "获取订单信息成功"; data.success = true; data.response = 1.ObjToString(); return data; ErrorResult: data.msg = msg; data.success = false; return data; } catch (Exception ex) { data.msg = ex.Message; data.status = 500; return data; } } } }