hutongqing
2024-12-13 a75d7e725df5686caf39cc1dade2d6fae11c3d40
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs
@@ -13,8 +13,10 @@
using WIDESEA_DTO.ERP;
using WIDESEA_External.ERPService;
using WIDESEA_IBasicRepository;
using WIDESEA_IBasicService;
using WIDESEA_IInboundRepository;
using WIDESEA_IInboundService;
using WIDESEA_IOutboundService;
using WIDESEA_Model.Models;
namespace WIDESEA_WMSServer.Controllers.ERP
@@ -25,179 +27,61 @@
    {
        private readonly IPurchaseOrderRepository _purchaseOrderRepository;
        private readonly IPurchaseOrderService _purchaseOrderService;
        private readonly ISupplierInfoRepository _supplierInfoRepository;
        private readonly IMaterielInfoRepository _materielInfoRepository;
        private readonly ISupplierInfoService _supplierInfoService;
        private readonly IMaterielInfoService _materielInfoService;
        private readonly IOutboundOrderService _outboundOrderService;
        public ErpController(IPurchaseOrderRepository purchaseOrderRepository, IPurchaseOrderService purchaseOrderService, ISupplierInfoRepository supplierInfoRepository, IMaterielInfoRepository materielInfoRepository)
        public ErpController(IPurchaseOrderRepository purchaseOrderRepository, IPurchaseOrderService purchaseOrderService, ISupplierInfoService supplierInfoService, IMaterielInfoService materielInfoService, IOutboundOrderService outboundOrderService)
        {
            _purchaseOrderRepository = purchaseOrderRepository;
            _purchaseOrderService = purchaseOrderService;
            _supplierInfoRepository = supplierInfoRepository;
            _materielInfoRepository = materielInfoRepository;
            _supplierInfoService = supplierInfoService;
            _materielInfoService = materielInfoService;
            _outboundOrderService = outboundOrderService;
        }
        [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);
            }
        }
        /// <summary>
        /// æŽ¥æ”¶ERP采购单信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost, Route("ReceivePurchaseOrderSingle"), AllowAnonymous, MethodParamsValidate]
        public WebResponseContent ReceivePurchaseOrderSingle(PurchaseOrderModel model)
        public WebResponseContent ReceivePurchaseOrder([FromBody] PurchaseOrderModel model)
        {
            return _purchaseOrderService.ReceivePurchaseOrderSingle(model);
            return _purchaseOrderService.ReceivePurchaseOrder(model);
        }
        /// <summary>
        /// æŽ¥æ”¶ERP供应商信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost, Route("ReceiveSupplier"), AllowAnonymous, MethodParamsValidate]
        public WebResponseContent ReceiveSupplier(SupplierDTO model)
        public WebResponseContent ReceiveSupplier([FromBody] 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);
            }
            return _supplierInfoService.ReceiveSupplier(model);
        }
        /// <summary>
        /// æŽ¥æ”¶ERP物料信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost, Route("ReceiveMaterial"), AllowAnonymous, MethodParamsValidate]
        public WebResponseContent ReceiveMaterial(MaterielInfoDTO model)
        public WebResponseContent ReceiveMaterial([FromBody] 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);
            }
            return _materielInfoService.ReceiveMaterial(model);
        }
        public WebResponseContent ReceiveOutOrder(ErpOutOrderDTO erpOutOrder)
        /// <summary>
        /// æŽ¥æ”¶ERP出库单信息
        /// </summary>
        /// <param name="erpOutOrder"></param>
        /// <returns></returns>
        [HttpPost, Route("ReceiveOutOrder"), AllowAnonymous, MethodParamsValidate]
        public WebResponseContent ReceiveOutOrder([FromBody] ErpOutOrderDTO erpOutOrder)
        {
            try
            {
                return WebResponseContent.Instance.OK();
            }
            catch(Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
            return _outboundOrderService.ReceiveOutOrder(erpOutOrder);
        }
    }
}