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_Common.OrderEnum;
|
using WIDESEA_Core.Helper;
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
using WIDESEA_InboundRepository;
|
using WIDESEA_IStockRepository;
|
using WIDESEA_Core.Enums;
|
using SqlSugar;
|
using System.Collections;
|
using WIDESEA_Common;
|
using WIDESEA_DTO.Outbound;
|
using WIDESEA_Core.TaskEnum;
|
|
namespace WIDESEA_InboundService
|
{
|
public class TakeStockOrderCPService : ServiceBase<Dt_TakeStockOrderCP, ITakeStockOrderCPRepository>, ITakeStockOrderCPService
|
{
|
public ITakeStockOrderCPRepository Repository => BaseDal;
|
private readonly IUnitOfWorkManage _unitOfWorkManage;
|
private readonly IBasicRepository _basicRepository;
|
private readonly ITakeStockOrderDetailCPRepository _takeStockOrderDetailCPRepository;
|
private readonly IStockInfoRepository _stockInfoRepository;
|
private readonly IStockInfoDetailRepository _stockInfoDetailRepository;
|
public TakeStockOrderCPService(ITakeStockOrderCPRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IBasicRepository basicRepository, ITakeStockOrderDetailCPRepository takeStockOrderDetailCPRepository, IStockInfoRepository stockInfoRepository, IStockInfoDetailRepository stockInfoDetailRepository) : base(BaseDal)
|
{
|
_unitOfWorkManage = unitOfWorkManage;
|
_basicRepository = basicRepository;
|
_takeStockOrderDetailCPRepository = takeStockOrderDetailCPRepository;
|
_stockInfoRepository = stockInfoRepository;
|
_stockInfoDetailRepository = stockInfoDetailRepository;
|
}
|
|
//smom下发盘点任务
|
public WebResponseContent NewInventoryOut(HouseCancelOut houseInventoryOut)
|
{
|
WebResponseContent content = new();
|
try
|
{
|
Dt_TakeStockOrderCP takeStockOrderCP = BaseDal.QueryFirst(x => x.OrderNo == houseInventoryOut.No);
|
if (takeStockOrderCP != null)
|
{
|
OutboundOrderAddDTO orderAddDTO1 = new OutboundOrderAddDTO();
|
orderAddDTO1.Details = houseInventoryOut.DetailList.DicToIEnumerable<OutboundOrderDetailAddDTO>();
|
foreach (var item in orderAddDTO1.Details)
|
{
|
Dt_TakeStockOrderDetailCP takeStockOrderDetail = new Dt_TakeStockOrderDetailCP()
|
{
|
TakeStockId = takeStockOrderCP.Id,
|
MaterielCode = item.MaterielCode,
|
MaterielName = item.MaterielName,
|
BatchNo = item.BatchNo,
|
MaterielSpec = item.MaterieSpec,
|
SysQty = item.OrderQuantity,
|
TakePalletCode = item.LPNNo,
|
TakeDetalStatus = TakeStockDetailStatusEnum.未盘点.ObjToInt(),
|
};
|
takeStockOrderCP.Details.Add(takeStockOrderDetail);
|
}
|
}
|
else
|
{
|
OutboundOrderAddDTO orderAddDTO1 = new OutboundOrderAddDTO();
|
orderAddDTO1.Details = houseInventoryOut.DetailList.DicToIEnumerable<OutboundOrderDetailAddDTO>();
|
Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == orderAddDTO1.Details.FirstOrDefault().WarehouseCode);
|
takeStockOrderCP = new Dt_TakeStockOrderCP()
|
{
|
OrderNo = houseInventoryOut.No,
|
WarehouseId = warehouse.WarehouseId,
|
TakeStockStatus = TakeStockDetailStatusEnum.未盘点.ObjToInt(),
|
Creater = "SMOM",
|
CreateDate = DateTime.Now,
|
Details = new List<Dt_TakeStockOrderDetailCP>()
|
};
|
|
foreach (var item in orderAddDTO1.Details)
|
{
|
if (item.LPNNo == null)
|
{
|
return WebResponseContent.Instance.Error("盘点托盘号不能为空");
|
}
|
Dt_TakeStockOrderDetailCP takeStockOrderDetail = new Dt_TakeStockOrderDetailCP()
|
{
|
TakeStockId = takeStockOrderCP.Id,
|
MaterielCode = item.MaterielCode,
|
MaterielName = item.MaterielName,
|
BatchNo = item.BatchNo,
|
MaterielSpec = item.MaterieSpec,
|
SysQty = item.OrderQuantity,
|
TakePalletCode = item.LPNNo,
|
Creater = "SMOM",
|
CreateDate = DateTime.Now,
|
TakeDetalStatus = TakeStockDetailStatusEnum.未盘点.ObjToInt(),
|
};
|
takeStockOrderCP.Details.Add(takeStockOrderDetail);
|
}
|
}
|
_unitOfWorkManage.BeginTran();
|
BaseDal.Db.InsertNav(takeStockOrderCP).Include(x => x.Details).ExecuteCommand();
|
_unitOfWorkManage.CommitTran();
|
content = WebResponseContent.Instance.OK();
|
}
|
catch (Exception ex)
|
{
|
_unitOfWorkManage.RollbackTran();
|
content = WebResponseContent.Instance.Error(ex.Message);
|
}
|
finally
|
{
|
|
}
|
return content;
|
}
|
|
|
/// <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_TakeStockOrderCP> takeStockOrders = new List<Dt_TakeStockOrderCP>();
|
if (string.IsNullOrEmpty(orderNo))
|
{
|
takeStockOrders = Db.Queryable<Dt_TakeStockOrderCP>().Where(x => x.TakeStockStatus < TakeStockStatusEnum.盘点完成.ObjToInt() && x.WarehouseId == warehouseId).Includes(x => x.Details).ToPageList(pageNo, 5);
|
}
|
else
|
{
|
takeStockOrders = Db.Queryable<Dt_TakeStockOrderCP>().Where(x => (x.OrderNo.Contains(orderNo) && x.TakeStockStatus < TakeStockStatusEnum.盘点完成.ObjToInt() && x.WarehouseId == warehouseId)).Includes(x => x.Details).ToPageList(pageNo, 5);
|
}
|
content.OK(data: takeStockOrders);
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
return content;
|
}
|
|
/// <summary>
|
/// 成品盘点
|
/// </summary>
|
/// <returns></returns>
|
public WebResponseContent TakeStockOrderCP(SaveModel saveModel)
|
{
|
WebResponseContent responseContent = new WebResponseContent();
|
try
|
{
|
|
}
|
catch (Exception)
|
{
|
|
throw;
|
}
|
return WebResponseContent.Instance.OK();
|
}
|
}
|
}
|