using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Mvc;
|
using SqlSugar;
|
using WIDESEA_Common.CommonEnum;
|
using WIDESEA_Common.MaterielEnum;
|
using WIDESEA_Common.OrderEnum;
|
using WIDESEA_Core;
|
using WIDESEA_Core.Attributes;
|
using WIDESEA_Core.Helper;
|
using WIDESEA_DTO;
|
using WIDESEA_DTO.Basic;
|
using WIDESEA_DTO.ERP;
|
using WIDESEA_External.ERPService;
|
using WIDESEA_IBasicRepository;
|
using WIDESEA_IInboundRepository;
|
using WIDESEA_IInboundService;
|
using WIDESEA_Model.Models;
|
|
namespace WIDESEA_WMSServer.Controllers.ERP
|
{
|
[Route("api/Erp")]
|
[ApiController]
|
public class ErpController : ControllerBase
|
{
|
private readonly IPurchaseOrderRepository _purchaseOrderRepository;
|
private readonly IPurchaseOrderService _purchaseOrderService;
|
private readonly ISupplierInfoRepository _supplierInfoRepository;
|
private readonly IMaterielInfoRepository _materielInfoRepository;
|
|
public ErpController(IPurchaseOrderRepository purchaseOrderRepository, IPurchaseOrderService purchaseOrderService, ISupplierInfoRepository supplierInfoRepository, IMaterielInfoRepository materielInfoRepository)
|
{
|
_purchaseOrderRepository = purchaseOrderRepository;
|
_purchaseOrderService = purchaseOrderService;
|
_supplierInfoRepository = supplierInfoRepository;
|
_materielInfoRepository = materielInfoRepository;
|
}
|
|
[HttpPost, Route("ReceivePurchaseOrder"), AllowAnonymous, MethodParamsValidate]
|
public WebResponseContent ReceivePurchaseOrder([FromBody] Dt_PurchaseOrder model)
|
{
|
try
|
{
|
_purchaseOrderRepository.AddData(model, x => x.Details);
|
|
foreach (var item in model.Details)
|
{
|
Dt_ReceiveOrder receiveOrder = new Dt_ReceiveOrder()
|
{
|
ReceiveOrderStatus = InOrderStatusEnum.未开始.ObjToInt(),
|
WarehouseId = item.WarehouseId,
|
SuppliersId = model.SupplierCode,
|
ReceiveOrderType = InOrderTypeEnum.Purchase.ObjToInt(),
|
ReceiveDate = DateTime.Now,
|
};
|
}
|
|
return WebResponseContent.Instance.OK();
|
}
|
catch (Exception ex)
|
{
|
return WebResponseContent.Instance.Error(ex.Message);
|
}
|
}
|
|
[HttpPost, Route("ReceivePurchaseOrderSingle"), AllowAnonymous, MethodParamsValidate]
|
public WebResponseContent ReceivePurchaseOrderSingle(PurchaseOrderModel model)
|
{
|
return _purchaseOrderService.ReceivePurchaseOrderSingle(model);
|
}
|
|
[HttpPost, Route("ReceiveSupplier"), AllowAnonymous, MethodParamsValidate]
|
public WebResponseContent ReceiveSupplier(SupplierDTO model)
|
{
|
try
|
{
|
if (model.OperateType == "0")
|
{
|
Dt_SupplierInfo supplierInfo = new Dt_SupplierInfo()
|
{
|
Status = 1,
|
SupplierCode = model.Code,
|
SupplierName = model.Name,
|
SupplierShortName = model.ShortName
|
};
|
|
_supplierInfoRepository.AddData(supplierInfo);
|
}
|
else if (model.OperateType == "1")
|
{
|
Dt_SupplierInfo supplierInfo = _supplierInfoRepository.QueryFirst(x => x.SupplierCode == model.Code);
|
if (supplierInfo == null)
|
{
|
return WebResponseContent.Instance.Error($"未找到该供应商信息");
|
}
|
supplierInfo.Status = 1;
|
supplierInfo.SupplierCode = model.Code;
|
supplierInfo.SupplierName = model.Name;
|
supplierInfo.SupplierShortName = model.ShortName;
|
_supplierInfoRepository.UpdateData(supplierInfo);
|
}
|
else if (model.OperateType == "2")
|
{
|
Dt_SupplierInfo supplierInfo = _supplierInfoRepository.QueryFirst(x => x.SupplierCode == model.Code);
|
if (supplierInfo == null)
|
{
|
return WebResponseContent.Instance.Error($"未找到该供应商信息");
|
}
|
_supplierInfoRepository.DeleteData(supplierInfo);
|
}
|
return WebResponseContent.Instance.OK();
|
}
|
catch (Exception ex)
|
{
|
return WebResponseContent.Instance.Error(ex.Message);
|
}
|
}
|
|
[HttpPost, Route("ReceiveMaterial"), AllowAnonymous, MethodParamsValidate]
|
public WebResponseContent ReceiveMaterial(MaterielInfoDTO model)
|
{
|
try
|
{
|
if (model.OperateType == 0)
|
{
|
Dt_MaterielInfo materielInfo = new Dt_MaterielInfo()
|
{
|
IsCheck = (WhetherEnum)model.IsCheck,
|
MaterielCode = model.Code,
|
MaterielInvOrgId = model.InvOrgId,
|
MaterielLength = model.Length,
|
MaterielModel = model.Model,
|
MaterielName = model.Name,
|
MaterielSize = model.Size,
|
MaterielSourceType = (MaterielSourceTypeEnum)model.ItemSourceType,
|
MaterielSpec = "model.",
|
MaterielState = (EnableEnum)model.State,
|
MaterielThickness = model.Thickness,
|
MaterielType = (MaterielTypeEnum)model.ItemType,
|
MaterielUnit = model.Unit,
|
MaterielVersion = model.MaterialVersion,
|
MaterielWide = model.Wide,
|
WarehouseId = model.WaId,
|
};
|
_materielInfoRepository.AddData(materielInfo);
|
}
|
else if (model.OperateType == 1)
|
{
|
Dt_MaterielInfo materielInfo = _materielInfoRepository.QueryFirst(x => x.MaterielCode == model.Code);
|
if (materielInfo == null)
|
{
|
return WebResponseContent.Instance.Error($"未找到物料信息");
|
}
|
|
materielInfo.IsCheck = (WhetherEnum)model.IsCheck;
|
materielInfo.MaterielCode = model.Code;
|
materielInfo.MaterielInvOrgId = model.InvOrgId;
|
materielInfo.MaterielLength = model.Length;
|
materielInfo.MaterielModel = model.Model;
|
materielInfo.MaterielName = model.Name;
|
materielInfo.MaterielSize = model.Size;
|
materielInfo.MaterielSourceType = (MaterielSourceTypeEnum)model.ItemSourceType;
|
materielInfo.MaterielSpec = model.StandType;
|
materielInfo.MaterielState = (EnableEnum)model.State;
|
materielInfo.MaterielThickness = model.Thickness;
|
materielInfo.MaterielType = (MaterielTypeEnum)model.ItemType;
|
materielInfo.MaterielUnit = model.Unit;
|
materielInfo.MaterielVersion = model.MaterialVersion;
|
materielInfo.MaterielWide = model.Wide;
|
materielInfo.WarehouseId = model.WaId;
|
_materielInfoRepository.UpdateData(materielInfo);
|
}
|
else if (model.OperateType == 2)
|
{
|
Dt_MaterielInfo materielInfo = _materielInfoRepository.QueryFirst(x => x.MaterielCode == model.Code);
|
if (materielInfo == null)
|
{
|
return WebResponseContent.Instance.Error($"未找到物料信息");
|
}
|
|
_materielInfoRepository.DeleteData(materielInfo);
|
}
|
return WebResponseContent.Instance.OK();
|
}
|
catch (Exception ex)
|
{
|
return WebResponseContent.Instance.Error(ex.Message);
|
}
|
}
|
|
public WebResponseContent ReceiveOutOrder(ErpOutOrderDTO erpOutOrder)
|
{
|
try
|
{
|
return WebResponseContent.Instance.OK();
|
}
|
catch(Exception ex)
|
{
|
return WebResponseContent.Instance.Error(ex.Message);
|
}
|
}
|
}
|
}
|