22
schangxiang@126.com
2024-12-23 283a985dede9fd09cb820a79bb603d7ea34050fc
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>
@@ -28,7 +28,7 @@
    [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)
        {
@@ -43,6 +43,25 @@
        {
            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只能属于一个 批次号+订单号
@@ -68,11 +87,7 @@
        //批量删除
        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)
@@ -81,11 +96,24 @@
            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);
    }
}