pan
6 天以前 a7b15461d3dc6d07c18e065fa3a6acd234c2d7c8
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs
@@ -3,7 +3,7 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using SqlSugar;
using SqlSugar.Extensions;
using WIDESEA_Common.AllocateEnum;
using WIDESEA_Common.OrderEnum;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
@@ -11,6 +11,7 @@
using WIDESEA_Core.CodeConfigEnum;
using WIDESEA_Core.DB;
using WIDESEA_Core.Enums;
using WIDESEA_Core.Helper;
using WIDESEA_Core.Seed;
using WIDESEA_IBasicService;
using WIDESEA_IOutboundService;
@@ -35,6 +36,7 @@
            _materialUnitService = materialUnitService;
        }
        private int[] OrderTypes = new int[] { (int)InOrderTypeEnum.AllocatOutbound, (int)InOrderTypeEnum.InternalAllocat, (int)InOrderTypeEnum.ReCheck };
        public async Task<WebResponseContent> ReceiveOutboundOrder(Dt_OutboundOrder model, int operateType)
        {
            try
@@ -65,17 +67,17 @@
                }
                foreach (var item in model.Details)
                {
                    var issueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode,item.BarcodeUnit, item.BarcodeQty);
                    var issueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeQty);
                    item.Unit = issueoStockResult.Unit;
                    item.OrderQuantity = issueoStockResult.Quantity;
                    var moveissueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeMoveQty);
                    item.MoveQty = moveissueoStockResult.Quantity;
                }
                if (model.OrderType != InOrderTypeEnum.AllocatInbound.ObjToInt() || model.OrderType != InOrderTypeEnum.InternalAllocat.ObjToInt())
                if (!OrderTypes.Contains(model.OrderType))
                {
                    model.OrderNo = CreateCodeByRule(nameof(RuleCodeEnum.OutboundOrderRule));
                }
                Db.InsertNav(model).Include(x => x.Details).ExecuteCommand();
                return WebResponseContent.Instance.OK();
@@ -99,7 +101,7 @@
                {
                    return WebResponseContent.Instance.Error($"未找到出库单明细信息");
                }
                if (outboundOrder.OrderStatus != OutOrderStatusEnum.未开始.ObjToInt())
                if (outboundOrder.OrderStatus != (int)OutOrderStatusEnum.未开始)
                {
                    return WebResponseContent.Instance.Error($"该订单状态不允许修改");
                }
@@ -127,7 +129,7 @@
                            BarcodeQty = item.OrderQuantity,
                            BarcodeUnit = item.Unit,
                        };
                        var issueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode,item.BarcodeUnit, item.BarcodeQty);
                        var issueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeQty);
                        item.Unit = issueoStockResult.Unit;
                        item.OrderQuantity = issueoStockResult.Quantity;
                        var moveissueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeMoveQty);
@@ -203,7 +205,7 @@
                {
                    return WebResponseContent.Instance.Error($"未找到出库单明细信息");
                }
                if (outboundOrder.OrderStatus != OutOrderStatusEnum.未开始.ObjToInt())
                if (outboundOrder.OrderStatus != (int)OutOrderStatusEnum.未开始)
                {
                    return WebResponseContent.Instance.Error($"该订单状态不允许删除");
                }
@@ -300,5 +302,43 @@
                return code;
            }
        }
        public override PageGridData<Dt_OutboundOrder> GetPageData(PageDataOptions options)
        {
            string wheres = ValidatePageOptions(options);
            //获取排序字段
            Dictionary<string, SqlSugar.OrderByType> orderbyDic = GetPageDataSort(options, TProperties);
            List<OrderByModel> orderByModels = new List<OrderByModel>();
            foreach (var item in orderbyDic)
            {
                OrderByModel orderByModel = new()
                {
                    FieldName = item.Key,
                    OrderByType = item.Value
                };
                orderByModels.Add(orderByModel);
            }
            int totalCount = 0;
            List<SearchParameters> searchParametersList = new List<SearchParameters>();
            if (!string.IsNullOrEmpty(options.Wheres))
            {
                try
                {
                    searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
                    options.Filter = searchParametersList;
                }
                catch { }
            }
            var data = BaseDal.Db.Queryable<Dt_OutboundOrder>()
                .WhereIF(!wheres.IsNullOrEmpty(), wheres)
                .Where(x => x.OrderType == 0)
                .OrderBy(orderByModels)
                .ToPageList(options.Page, options.Rows, ref totalCount);
            return new PageGridData<Dt_OutboundOrder>(totalCount, data);
        }
    }
}