From ea9bdf217e8202a5fa475262dba1792decb05bcb Mon Sep 17 00:00:00 2001 From: hutongqing <hutongqing@hnkhzn.com> Date: 星期五, 13 九月 2024 15:36:00 +0800 Subject: [PATCH] 1 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs | 40 ++++++++++++++++++++++++++++++++++++---- 1 files changed, 36 insertions(+), 4 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" index 70b01da..3e529c7 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" @@ -1,4 +1,6 @@ 锘縰sing AutoMapper; +using Newtonsoft.Json; +using Newtonsoft.Json.Serialization; using System; using System.Collections.Generic; using System.Linq; @@ -26,6 +28,8 @@ private readonly IStockInfoService _stockInfoService; private readonly IStockInfoDetailService _stockDetailService; + public IOutboundOrderRepository Repository => BaseDal; + public OutboundOrderService(IOutboundOrderRepository BaseDal, IMapper mapper, IMaterielInfoService materielInfoService, IStockInfoDetailService stockDetailService, IStockInfoService stockInfoService) : base(BaseDal) { _mapper = mapper; @@ -37,8 +41,38 @@ public override WebResponseContent AddData(SaveModel saveModel) { OutboundOrderAddDTO outboundOrder = saveModel.MainData.DicToModel<OutboundOrderAddDTO>(); - outboundOrder.Details = saveModel.DetailData.DicToIEnumerable<OutboundOrderDetailAddDTO>(); + List<OutboundOrderDetailAddDTO> orderDetailAddDTOs = saveModel.DetailData.DicToIEnumerable<OutboundOrderDetailAddDTO>(); + outboundOrder.Details = orderDetailAddDTOs.GroupBy(x => x.MaterielCode).Select(x => new OutboundOrderDetailAddDTO + { + BatchNo = x.FirstOrDefault()?.BatchNo ?? "", + MaterielCode = x.Key, + OrderQuantity = x.Sum(x => x.OrderQuantity), + Remark = x.FirstOrDefault(v => !string.IsNullOrEmpty(v.Remark))?.Remark ?? "" + }).ToList(); return AddOutboundOrder(outboundOrder); + } + + public override WebResponseContent UpdateData(SaveModel saveModel) + { + List<Dt_OutboundOrderDetail> outboundOrderDetails = saveModel.DetailData.DicToIEnumerable<Dt_OutboundOrderDetail>(); + if (outboundOrderDetails.GroupBy(x => x.MaterielCode).Select(x => x.Count()).Any(x => x > 1)) + { + return WebResponseContent.Instance.Error("鐗╂枡閲嶅"); + } + outboundOrderDetails = outboundOrderDetails.Where(x => (x.Id > 0 && x.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt()) || x.Id == 0).ToList(); + + List<Dictionary<string, object>> dics = new List<Dictionary<string, object>>(); + JsonSerializerSettings settings = new JsonSerializerSettings(); + settings.ContractResolver = new CamelCasePropertyNamesContractResolver(); + foreach (var item in outboundOrderDetails) + { + string str = JsonConvert.SerializeObject(item, settings); + Dictionary<string, object>? dic = JsonConvert.DeserializeObject<Dictionary<string, object>>(str); + if (dic != null) + dics.Add(dic); + } + saveModel.DetailData = dics; + return base.UpdateData(saveModel); } public WebResponseContent AddOutboundOrder(OutboundOrderAddDTO orderAddDTO) @@ -101,13 +135,11 @@ { } - catch(Exception ex) + catch (Exception ex) { } return content; } - - } } -- Gitblit v1.9.3