1
huangxiaoqiang
8 天以前 7195016afc472307e4db0b415e45c9d4275bdb02
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/BoxingInfoService.cs
@@ -8,6 +8,7 @@
using WIDESEA_Core.BaseRepository;
using WIDESEA_DTO.Basic;
using WIDESEA_IOrderRepository;
using WIDESEA_Model.Models;
using WIDESEA_OrderRepository;
namespace WIDESEA_StorageBasicService;
@@ -105,7 +106,77 @@
            var info = await BaseDal.QueryFirstAsync(x => x.PalletCode == groupPlate.palletCode);
            if (!info.IsNullOrEmpty())
            {
                content.Error("该托盘已存在组盘");
                //content.Error("该托盘已存在组盘");
                info.StockStatus = (int)StockStateEmun.组盘撤销;
                DtBoxingInfo_Hty stockhty = info.Adapt<DtBoxingInfo_Hty>();
                stockhty.ModifyDate = DateTime.Now;
                List<DtBoxingInfoDetail> details = new List<DtBoxingInfoDetail>();
                foreach (var item in groupPlate.groups)
                {
                    var InboundOrder = _inboundOrderRepository.QueryFirst(x => x.OrderNo == item.orderNo);
                    if (InboundOrder != null)
                    {
                        var x = details.Where(x => x.MaterielCode == InboundOrder.MaterialNo && x.Warehouse == InboundOrder.WarehouseName && x.DrawingNumber == InboundOrder.ProductDrawingNumber && x.DemandClassification == InboundOrder.DemandClassification).FirstOrDefault();
                        if (x != null)
                        {
                            details.Remove(x);
                            x.MaterielCode = InboundOrder.MaterialNo;
                            x.MaterielName = InboundOrder.MaterialName;
                            x.DemandClassification = InboundOrder.DemandClassification;
                            x.Warehouse = InboundOrder.WarehouseName;
                            x.OrderNo = InboundOrder.UpperOrderNo;
                            x.Unit = InboundOrder.Unit;
                            x.WareHouseId = InboundOrder.WareHouseId;
                            x.Specs = InboundOrder.Specs;
                            x.Weight = InboundOrder.Weight;
                            x.Quantity = x.Quantity + item.quantity;
                            x.DrawingNumber = InboundOrder.ProductDrawingNumber;
                            x.Date = InboundOrder.Datetime;
                            details.Add(x);
                        }
                        else
                        {
                            DtBoxingInfoDetail detail = new DtBoxingInfoDetail()
                            {
                                MaterielCode = InboundOrder.MaterialNo,
                                MaterielName = InboundOrder.MaterialName,
                                DemandClassification = InboundOrder.DemandClassification,
                                Warehouse = InboundOrder.WarehouseName,
                                OrderNo = InboundOrder.UpperOrderNo,
                                Unit = InboundOrder.Unit,
                                Specs = InboundOrder.Specs,
                                Weight = InboundOrder.Weight,
                                WareHouseId = InboundOrder.WareHouseId,
                                Quantity = item.quantity,
                                DrawingNumber = InboundOrder.ProductDrawingNumber,
                                Date = InboundOrder.Datetime,
                            };
                            details.Add(detail);
                        }
                    }
                    else
                    {
                        return content.Error("未找到入库单据信息");
                    }
                }
                DtBoxingInfo boxing = new DtBoxingInfo()
                {
                    PalletCode = groupPlate.palletCode,
                    StockStatus = (int)StockStateEmun.组盘暂存,
                    BoxingInfoDetails = details
                };
                await _unitOfWorkManage.UseTranAsync(async () =>
                {
                    await BaseDal.Db.DeleteNav<DtBoxingInfo>(x => x.Id == info.Id)
                                            .Include(x => x.BoxingInfoDetails)
                                            .ExecuteCommandAsync();
                    await AddStockHtyAsync(stockhty);
                    await BaseDal.AddDataNavAsync(boxing);
                });
                content.OK("组盘成功");
            }
            else
            {
@@ -187,7 +258,7 @@
            {
                return content.Error("参数错误");
            }
            var boxingInfo = await BaseDal.QueryFirstNavAsync(x => x.PalletCode == groupPlate.palletCode && x.StockStatus == (int)StockStateEmun.组盘暂存);
            var boxingInfo = await BaseDal.QueryFirstNavAsync(x => x.PalletCode == groupPlate.palletCode);
            if (!boxingInfo.IsNullOrEmpty())
            {
                boxingInfo.StockStatus = (int)StockStateEmun.组盘撤销;
@@ -215,7 +286,7 @@
    }
    private async Task AddStockHtyAsync(DtBoxingInfo_Hty stockhty)
    {
        var isStockAdd = await SqlSugarHelper.DbWMS.InsertNav(stockhty).IncludesAllFirstLayer().ExecuteCommandAsync();
        var isStockAdd = await SqlSugarHelper.DbWMS.InsertNav(stockhty).Include(x=>x.BoxingInfoDetails).ExecuteCommandAsync();
        if (!isStockAdd)
        {
            throw new Exception("库存历史信息添加失败");