From 283a985dede9fd09cb820a79bb603d7ea34050fc Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周一, 23 12月 2024 14:26:17 +0800 Subject: [PATCH] 22 --- LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ThirdInterFace/ThirdInterFaceService.cs | 78 ++++++++++++++++++++++++++++++++++---- 1 files changed, 69 insertions(+), 9 deletions(-) diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ThirdInterFace/ThirdInterFaceService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ThirdInterFace/ThirdInterFaceService.cs index 89d4870..1463033 100644 --- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ThirdInterFace/ThirdInterFaceService.cs +++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ThirdInterFace/ThirdInterFaceService.cs @@ -5,7 +5,7 @@ using System.Web; using System.Text; using Furion.DatabaseAccessor; -using Admin.NET.Application.Service.WmsOrder.Mes_BatchOrderUPI_New.Dto; +using Microsoft.CodeAnalysis.Operations; namespace Admin.NET.Application; /// <summary> @@ -15,16 +15,20 @@ public class ThirdInterFaceService : IDynamicApiController, ITransient { private readonly SqlSugarRepository<Mes_BatchOrderUPI_New> _rep; - public ThirdInterFaceService(SqlSugarRepository<Mes_BatchOrderUPI_New> rep) + private readonly SqlSugarRepository<Mes_Package_Gather> _mes_Package_Gather_Rep; + public ThirdInterFaceService(SqlSugarRepository<Mes_BatchOrderUPI_New> rep, + SqlSugarRepository<Mes_Package_Gather> mes_Package_Gather_Rep + ) { _rep = rep; + _mes_Package_Gather_Rep = mes_Package_Gather_Rep; } [HttpPost] [ApiDescriptionSettings(Name = "GetBatchOrderUPIList")] [UnitOfWork] [AllowAnonymous] - public async Task GetBatchOrderUPIList(List<Mes_BatchOrderUPI_New> input) + public async Task GetBatchOrderUPIList(List<GetBatchOrderUPIInput> input) { if (input?.Count <= 0) { @@ -41,19 +45,75 @@ throw Oops.Oh("鏈鏈夐噸澶嶇殑UPI锛侀噸澶嶅彿涓�:" + dit.Key + ",閲嶅鏉℃暟:" + dit.Value); } - List<string> upis = new List<string>(); - input.ForEach(x => upis.Add(x.UPI));//upis鏄紶杩囨潵鐨剈pi瀛楁闆嗗悎 + //鏍¢獙鏁版嵁鏄惁姝g‘ 銆怑ditby shaocx,2024-12-20銆� + var gg = input.GroupBy(x => x.PackageCode); + foreach (var item in gg) + { + var _list = item.ToList(); + if (_list.Count() == 1) + { + throw Oops.Oh($"鍖呭彿{item.Key}涓彧鏈変竴鍧楁澘锛屼笉绗﹀悎瑕佹眰!"); + } + _list = _list.OrderBy(x => x.Shelf).ToList(); + for (int i = 0; i < _list.Count; i++) + { + if (_list[i].Shelf != (i + 1)) + { + throw Oops.Oh($"鍖呭彿{item.Key}涓{(i + 1)}鍧楁澘鐨勬搴忎笉鏄瘂i + 1}锛岃�屾槸{_list[i].Shelf}锛屼笉绗﹀悎瑕佹眰!"); + } + } + } - var batchOrderUPIs = await _rep.AsQueryable().Where(x => upis.Contains(x.UPI)).ToListAsync();//batchOrderUPIs鏄噸澶嶇殑upi闆嗗悎 + //鍚屼竴涓猆PI鍙兘灞炰簬涓�涓� 鎵规鍙�+璁㈠崟鍙� + //浼氬瓨鍦� 涓�涓壒娆″彿锛屽涓鍗曞彿鐨勬儏鍐� + //浼氬瓨鍦� 涓�涓鍗曞彿锛屽涓壒娆″彿鐨勬儏鍐� + + //鎸夌収鎵规鍙�+璁㈠崟鍙峰垹闄� + List<string> packageList = new List<string>(); + input.ForEach(x => packageList.Add(x.PlanNo + "_" + x.OrderId));//upis鏄紶杩囨潵鐨剈pi瀛楁闆嗗悎 + + var batchOrderUPIs = await _rep.AsQueryable().Where(x => packageList.Contains(x.PlanNo + "_" + x.OrderId)).ToListAsync();//batchOrderUPIs鏄噸澶嶇殑upi闆嗗悎 //鎵归噺鍒犻櫎 await _rep.DeleteAsync(batchOrderUPIs); + //鎵归噺鍒犻櫎 + await _mes_Package_Gather_Rep.DeleteAsync(x => packageList.Contains(x.PlanNo + "_" + x.OrderId)); + + //鍒犻櫎閲嶅鐨剈pi鏁版嵁 + List<string> upis = new List<string>(); + input.ForEach(x => upis.Add(x.UPI));//upis鏄紶杩囨潵鐨剈pi瀛楁闆嗗悎 + var queryDateTime = DateTime.Now.AddDays(-7); + var batchOrderUPIs22 = await _rep.AsQueryable().Where(x => upis.Contains(x.UPI) && x.CreateTime >= queryDateTime).ToListAsync();//batchOrderUPIs鏄噸澶嶇殑upi闆嗗悎 + //鎵归噺鍒犻櫎 + await _rep.DeleteAsync(batchOrderUPIs22); + + + List<Mes_Package_Gather> addGatherList = new List<Mes_Package_Gather>(); + var groups = input.GroupBy(x => x.PackageCode); + foreach (var group in groups) + { + var first = group.ToList().First(); + Mes_Package_Gather newGather = first.Adapt<Mes_Package_Gather>(); + newGather.AreaCode = AreaCodeEnum.鏃犲尯鍩�; + newGather.UpiStatus = UpiStatusEnum.鍒濆; + newGather.CreateUserName = newGather.UpdateUserName = "MES"; + addGatherList.Add(newGather); + } + await _mes_Package_Gather_Rep.InsertRangeAsync(addGatherList); + + //杞崲鎴怳pi瀵硅薄 + List<Mes_BatchOrderUPI_New> insertUpiList = new List<Mes_BatchOrderUPI_New>(); foreach (var item in input) { - item.AreaCode = AreaCodeEnum.鏃犲尯鍩�; - item.UpiStatus = UpiStatusEnum.鍒濆; + Mes_BatchOrderUPI_New insertUpi = item.Adapt<Mes_BatchOrderUPI_New>(); + insertUpi.AreaCode = AreaCodeEnum.鏃犲尯鍩�; + insertUpi.UpiStatus = UpiStatusEnum.鍒濆; + insertUpi.CreateUserName = insertUpi.UpdateUserName = "MES"; + insertUpi.CreateTime = insertUpi.UpdateTime = DateTime.Now; + insertUpiList.Add(insertUpi); } - await _rep.InsertRangeAsync(input); + + await _rep.InsertRangeAsync(insertUpiList); } } -- Gitblit v1.9.3