| | |
| | | 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> |
| | |
| | | [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) |
| | | { |
| | |
| | | var dit = result.First(); |
| | | throw Oops.Oh("本次有重复的UPI!重复号为:" + dit.Key + ",重复条数:" + dit.Value); |
| | | } |
| | | |
| | | //校验数据是否正确 【Editby 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},不符合要求!"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //同一个UPI只能属于一个 批次号+订单号 |
| | | //会存在 一个批次号,多个订单号的情况 |
| | | //会存在 一个订单号,多个批次号的情况 |
| | | |
| | | //按照批次号+订单号删除 |
| | | List<string> packageList = new List<string>(); |
| | |
| | | //批量删除 |
| | | await _rep.DeleteAsync(batchOrderUPIs22); |
| | | |
| | | foreach (var item in input) |
| | | { |
| | | item.AreaCode = AreaCodeEnum.无区域; |
| | | item.UpiStatus = UpiStatusEnum.初始; |
| | | } |
| | | |
| | | List<Mes_Package_Gather> addGatherList = new List<Mes_Package_Gather>(); |
| | | var groups = input.GroupBy(x => x.PackageCode); |
| | | foreach (var group in groups) |
| | |
| | | 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); |
| | | |
| | | await _rep.InsertRangeAsync(input); |
| | | //转换成Upi对象 |
| | | List<Mes_BatchOrderUPI_New> insertUpiList = new List<Mes_BatchOrderUPI_New>(); |
| | | foreach (var item in input) |
| | | { |
| | | 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(insertUpiList); |
| | | } |
| | | |
| | | } |