| 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<Dt_TakeStockOrder, ITakeStockOrderRepository>, 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; | 
|         } | 
|         /// <summary> | 
|         /// 新增 | 
|         /// </summary> | 
|         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.NotTake.ObjToInt()); | 
|             return base.AddData(saveModel);  | 
|         } | 
|         /// <summary> | 
|         /// 获取对应仓库盘点单 | 
|         /// </summary> | 
|         /// <returns></returns> | 
|         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<Dt_TakeStockOrder> takeStockOrders = new List<Dt_TakeStockOrder>(); | 
|                 if (string.IsNullOrEmpty(orderNo)) | 
|                 { | 
|                     takeStockOrders = Db.Queryable<Dt_TakeStockOrder>().Where(x => x.TakeStockStatus < TakeStockStatusEnum.Taked.ObjToInt() && x.WarehouseId == warehouseId).ToPageList(pageNo, 5); | 
|                 } | 
|                 else | 
|                 { | 
|                     takeStockOrders = Db.Queryable<Dt_TakeStockOrder>().Where(x => (x.OrderNo.Contains(orderNo) && x.TakeStockStatus < TakeStockStatusEnum.Taked.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; | 
|         } | 
|     } | 
| } |