using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Core.BaseServices; using WIDESEA_Core; using WIDESEA_IInboundRepository; using WIDESEA_IInboundService; using WIDESEA_Model.Models; using WIDESEA_DTO.ERP; using WIDESEA_Core.BaseRepository; using WIDESEA_IBasicRepository; using WIDESEA_IOutboundService; using WIDESEA_Common.OrderEnum; using WIDESEA_Common.CommonEnum; using WIDESEA_Core.Helper; using Microsoft.AspNetCore.Mvc.RazorPages; namespace WIDESEA_InboundService { public class TakeStockOrderService : ServiceBase, ITakeStockOrderService { public ITakeStockOrderRepository Repository => BaseDal; private readonly IUnitOfWorkManage _unitOfWorkManage; private readonly IBasicRepository _basicRepository; public TakeStockOrderService(ITakeStockOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IBasicRepository basicRepository) : base(BaseDal) { _unitOfWorkManage = unitOfWorkManage; _basicRepository = basicRepository; } /// /// 新增 /// public override WebResponseContent AddData(SaveModel saveModel) { Dt_Warehouse? warehouse = null; if (saveModel.MainData.TryGetValue(nameof(Dt_TakeStockOrder.WarehouseId).FirstLetterToLower(), out object? warehouseId) && warehouseId != null && !string.IsNullOrEmpty(warehouseId.ToString())) { warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == warehouseId.ObjToInt()); if (warehouse == null) return WebResponseContent.Instance.Error("未找到仓库信息"); } if (saveModel.DetailData.Count>0) { for (int i = 0; i < saveModel.DetailData.Count; i++) { if (saveModel.DetailData[i].TryGetValue(nameof(Dt_TakeStockOrderDetail.MaterielCode).FirstLetterToLower(), out object? materielCode) && materielCode != null && !string.IsNullOrEmpty(materielCode.ToString())) { Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode.ToString() && x.WarehouseId == warehouse.WarehouseId); if (materielInfo == null) return WebResponseContent.Instance.Error($"未找到本仓库物料{materielCode}信息"); saveModel.DetailData[i].Add(nameof(Dt_TakeStockOrderDetail.MaterielName).FirstLetterToLower(),materielInfo.MaterielName); saveModel.DetailData[i].Add(nameof(Dt_TakeStockOrderDetail.MaterielSpec).FirstLetterToLower(), materielInfo.MaterielSpec); saveModel.DetailData[i].Add(nameof(Dt_TakeStockOrderDetail.Unit).FirstLetterToLower(), materielInfo.MaterielUnit); } } } saveModel.MainData.Add(nameof(Dt_TakeStockOrder.TakeStockStatus).FirstLetterToLower(), TakeStockStatusEnum.未盘点.ObjToInt()); return base.AddData(saveModel); } /// /// 获取对应仓库盘点单 /// /// public WebResponseContent GetTakeStockOrders(SaveModel saveModel) { WebResponseContent content =new WebResponseContent(); try { int pageNo = saveModel.MainData["pageNo"].ObjToInt(); string? orderNo = saveModel.MainData["orderNo"].ToString(); int warehouseId = saveModel.MainData["warehouseId"].ObjToInt(); List takeStockOrders = new List(); if (string.IsNullOrEmpty(orderNo)) { takeStockOrders = Db.Queryable().Where(x => x.TakeStockStatus < TakeStockStatusEnum.盘点完成.ObjToInt() && x.WarehouseId == warehouseId).ToPageList(pageNo, 5); } else { takeStockOrders = Db.Queryable().Where(x => (x.OrderNo.Contains(orderNo) && x.TakeStockStatus < TakeStockStatusEnum.盘点完成.ObjToInt() && x.WarehouseId == warehouseId)).ToPageList(pageNo, 5); } content.OK(data: takeStockOrders); } catch (Exception ex) { content.Error(ex.Message); } return content; } public WebResponseContent MatPicking(SaveModel saveModel) { WebResponseContent content = new WebResponseContent(); try { } catch (Exception ex) { content.Error(ex.Message); } return content; } } }