using AutoMapper;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using WIDESEA_Common.OrderEnum;
|
using WIDESEA_Common.WareHouseEnum;
|
using WIDESEA_Core;
|
using WIDESEA_Core.BaseRepository;
|
using WIDESEA_Core.BaseServices;
|
using WIDESEA_Core.Helper;
|
using WIDESEA_DTO.ERP;
|
using WIDESEA_IBasicRepository;
|
using WIDESEA_IBasicService;
|
using WIDESEA_IOutboundRepository;
|
using WIDESEA_IOutboundService;
|
using WIDESEA_IRecordService;
|
using WIDESEA_IStockService;
|
using WIDESEA_Model.Models;
|
|
namespace WIDESEA_OutboundService
|
{
|
public partial class ProOutOrderService : ServiceBase<Dt_ProOutOrder, IProOutOrderRepository>, IProOutOrderService
|
{
|
private readonly IUnitOfWorkManage _unitOfWorkManage;
|
private readonly IBasicRepository _basicRepository;
|
private readonly IMapper _mapper;
|
|
public IProOutOrderRepository Repository => BaseDal;
|
|
public ProOutOrderService(IProOutOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IBasicRepository basicRepository, IMapper mapper) : base(BaseDal)
|
{
|
_unitOfWorkManage = unitOfWorkManage;
|
_basicRepository = basicRepository;
|
_mapper = mapper;
|
}
|
/// <summary>
|
/// 接收ERP成品出库单
|
/// </summary>
|
/// <returns></returns>
|
public WebResponseContent ProductDeliveryOrder(ErpProOutOrderDTO outOrderDTO)
|
{
|
try
|
{
|
return outOrderDTO.Way switch
|
{
|
1 => AddDeliveryOrder(outOrderDTO),
|
2 => UpdateDeliveryOrder(outOrderDTO),
|
3 => DeleteDeliveryOrder(outOrderDTO),
|
_ => WebResponseContent.Instance.Error($"操作类型不存在,Way:{outOrderDTO.Way}"),
|
};
|
}
|
catch (Exception ex)
|
{
|
return WebResponseContent.Instance.Error(ex.Message);
|
}
|
}
|
/// <summary>
|
/// 新增成品出库单
|
/// </summary>
|
/// <returns></returns>
|
public WebResponseContent AddDeliveryOrder(ErpProOutOrderDTO outOrderDTO)
|
{
|
WebResponseContent content=new WebResponseContent();
|
try
|
{
|
if (BaseDal.QueryFirst(x => x.ProOutOrderNo == outOrderDTO.OrderNo) != null)
|
{
|
return content.Error($"出库单号{outOrderDTO.OrderNo}已存在!");
|
}
|
Dt_Warehouse warehouse=null;
|
if (outOrderDTO.OType==1 && string.IsNullOrEmpty(outOrderDTO.WaType))
|
{
|
warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseCode==WarehouseEnum.HA71.ToString());
|
}
|
else if (outOrderDTO.OType==2)
|
{
|
warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA101.ToString());
|
}
|
List<Dt_ProOutOrderDetail> proOutOrderDetails = new List<Dt_ProOutOrderDetail>();
|
foreach (var item in outOrderDTO.OrderDetails)
|
{
|
proOutOrderDetails.Add(_mapper.Map<Dt_ProOutOrderDetail>(item));
|
}
|
Dt_ProOutOrder proOutOrder= new Dt_ProOutOrder()
|
{
|
ProOutOrderNo= outOrderDTO.OrderNo,
|
WarehouseId= warehouse.WarehouseId,
|
ProOrderType= outOrderDTO.OType,
|
ProOrderStatus=OutOrderStatusEnum.未开始.ObjToInt(),
|
PlantShipDate= outOrderDTO.PlantShipDate.ObjToDate(),
|
Remark= outOrderDTO.Note,
|
Details= proOutOrderDetails
|
};
|
Db.InsertNav(proOutOrder).Include(x => x.Details).ExecuteCommand();
|
content.OK("成功");
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
return content;
|
}
|
/// <summary>
|
/// 更新成品出库单
|
/// </summary>
|
/// <returns></returns>
|
public WebResponseContent UpdateDeliveryOrder(ErpProOutOrderDTO outOrderDTO)
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
return content;
|
}
|
/// <summary>
|
/// 删除成品出库单
|
/// </summary>
|
/// <returns></returns>
|
public WebResponseContent DeleteDeliveryOrder(ErpProOutOrderDTO outOrderDTO)
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
return content;
|
}
|
}
|
}
|