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.未盘点.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.盘点完成.ObjToInt() && x.WarehouseId == warehouseId).ToPageList(pageNo, 5);
|
}
|
else
|
{
|
takeStockOrders = Db.Queryable<Dt_TakeStockOrder>().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;
|
}
|
}
|
}
|