schangxiang@126.com
2025-04-17 d34ea2a9fc2334d2bf7383cb64562f301ffbda84
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,29 @@
        {
            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();
            //包中只有一块板时,认定为 不齐包 【Editby shaocx,2025-04-01】
            /*
            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,12 +91,7 @@
        //批量删除
        await _rep.DeleteAsync(batchOrderUPIs22);
        foreach (var item in input)
        {
            item.AreaCode = AreaCodeEnum.无区域;
            item.UpiStatus = UpiStatusEnum.初始;
            item.CreateUserName = item.UpdateUserName = "MES";
        }
        List<Mes_Package_Gather> addGatherList = new List<Mes_Package_Gather>();
        var groups = input.GroupBy(x => x.PackageCode);
        foreach (var group in groups)
@@ -87,7 +105,19 @@
        }
        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);
    }
}