1
hutongqing
2024-09-23 d1a2afa67032339c2eb1019a02c6b6d036c0bdb1
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs
@@ -1,4 +1,5 @@
using AutoMapper;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -25,24 +26,23 @@
    public class InboundOrderService : ServiceBase<Dt_InboundOrder, IInboundOrderRepository>, IInboundOrderService
    {
        private readonly IMapper _mapper;
        private readonly IMaterielInfoService _materielInfoService;
        private readonly IStockInfoService _stockInfoService;
        private readonly IStockInfoDetailService _stockDetailService;
        private readonly ITaskRepository _taskRepository;
        private readonly IInboundOrderDetailService _inboundOrderDetailService;
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        private readonly ITaskRepository _taskRepository;
        private IBasicService _basicService;
        private IStockService _stockService;
        private IInboundOrderDetailService _inboundOrderDetailService;
        public IInboundOrderRepository Repository => BaseDal;
        public InboundOrderService(IInboundOrderRepository BaseDal, IMapper mapper, IMaterielInfoService materielInfoService, IStockInfoDetailService stockDetailService, IStockInfoService stockInfoService, ITaskRepository taskRepository, IInboundOrderDetailService inboundOrderDetailService, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
        public InboundOrderService(IInboundOrderRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, ITaskRepository taskRepository, IBasicService basicService, IStockService stockService, IInboundOrderDetailService inboundOrderDetailService) : base(BaseDal)
        {
            _mapper = mapper;
            _materielInfoService = materielInfoService;
            _stockDetailService = stockDetailService;
            _stockInfoService = stockInfoService;
            _taskRepository = taskRepository;
            _inboundOrderDetailService = inboundOrderDetailService;
            _unitOfWorkManage = unitOfWorkManage;
            _taskRepository = taskRepository;
            _basicService = basicService;
            _stockService = stockService;
            _inboundOrderDetailService = inboundOrderDetailService;
        }
        /// <summary>
@@ -108,7 +108,7 @@
            }
            List<string> materielCodes = inboundOrderAddDTO.Details.Select(x => x.MaterielCode).ToList();
            if (!_materielInfoService.ExsitMateriels(materielCodes))
            if (!_basicService.MaterielInfoService.ExsitMateriels(materielCodes))
            {
                return (false, "有物料信息未录入,请录入物料信息", inboundOrderAddDTO);
            }
@@ -146,12 +146,12 @@
                List<string> materielCodes = matSerialNumberDTOs.GroupBy(x => x.MaterielCode).Select(x => x.Key).ToList();
                List<Dt_MaterielInfo> materielInfos = _materielInfoService.GetMaterielInfos(materielCodes);
                List<Dt_MaterielInfo> materielInfos = _basicService.MaterielInfoService.GetMaterielInfos(materielCodes);
                Dt_InboundOrder inboundOrder = GetInboundOrder(materielGroupDTO.OrderNo);
                Dt_StockInfo? stockInfo = _stockInfoService.GetStockByPalletCode(materielGroupDTO.PalletCode);
                Dt_StockInfo? stockInfo = _stockService.StockInfoService.GetStockByPalletCode(materielGroupDTO.PalletCode);
                (bool, string, object?) result = CheckMaterielGroupParam(materielGroupDTO, matSerialNumberDTOs, materielInfos, materielCodes, inboundOrder, stockInfo);
                if (!result.Item1) return content = WebResponseContent.Instance.Error(result.Item2);
@@ -220,7 +220,7 @@
                _unitOfWorkManage.BeginTran();
                UpdateData(inboundOrder);
                _inboundOrderDetailService.UpdateData(inboundOrderDetails);
                _stockInfoService.AddMaterielGroup(stockInfo);
                _stockService.StockInfoService.AddMaterielGroup(stockInfo);
                _unitOfWorkManage.CommitTran();
                return WebResponseContent.Instance.OK();
            }
@@ -256,7 +256,7 @@
                return (false, "已上架的托盘不能再次组盘", materielGroupDTO);
            }
            if (_stockDetailService.ExistSerialNumbers(materielGroupDTO.SerialNumbers))
            if (_stockService.StockInfoDetailService.ExistSerialNumbers(materielGroupDTO.SerialNumbers))
            {
                return (false, "有序列号在库存中已存在", materielGroupDTO);
            }
@@ -307,5 +307,31 @@
            return (true, "成功", materielGroupDTO);
        }
        public WebResponseContent QueryOrderInfo(int pageNo, string orderNo)
        {
            if (string.IsNullOrEmpty(orderNo))
            {
                object obj = Repository.QueryPage(x => true, pageNo, 10, new Dictionary<string, OrderByType> { { nameof(Dt_InboundOrder.CreateDate), OrderByType.Desc } }).Rows.Select(x => new
                {
                    x.OrderNo,
                    x.UpperOrderNo,
                    x.CreateDate,
                    x.Creater
                });
                return WebResponseContent.Instance.OK(data: obj);
            }
            else
            {
                object obj = Repository.QueryPage(x => x.OrderNo == orderNo, pageNo, 10, new Dictionary<string, OrderByType> { { nameof(Dt_InboundOrder.CreateDate), OrderByType.Desc } }).Rows.Select(x => new
                {
                    x.OrderNo,
                    x.UpperOrderNo,
                    x.CreateDate,
                    x.Creater
                });
                return WebResponseContent.Instance.OK(data: obj);
            }
        }
    }
}