using System; 
 | 
using System.Collections.Generic; 
 | 
using System.Linq; 
 | 
using System.Text; 
 | 
using System.Threading.Tasks; 
 | 
using WIDESEA_BasicRepository; 
 | 
using WIDESEA_Common.CommonEnum; 
 | 
using WIDESEA_Common.MaterielEnum; 
 | 
using WIDESEA_Core; 
 | 
using WIDESEA_Core.BaseServices; 
 | 
using WIDESEA_Core.Helper; 
 | 
using WIDESEA_DTO.Basic; 
 | 
using WIDESEA_DTO.ERP; 
 | 
using WIDESEA_IBasicRepository; 
 | 
using WIDESEA_IBasicService; 
 | 
using WIDESEA_Model.Models; 
 | 
  
 | 
namespace WIDESEA_BasicService 
 | 
{ 
 | 
    public partial class MaterielInfoService : ServiceBase<Dt_MaterielInfo, IMaterielInfoRepository>, IMaterielInfoService 
 | 
    { 
 | 
        /// <summary> 
 | 
        /// 判断物料是否存在 
 | 
        /// </summary> 
 | 
        /// <param name="materielCode">物料编号</param> 
 | 
        /// <returns></returns> 
 | 
        public bool ExsitMateriel(string materielCode) 
 | 
        { 
 | 
            return BaseDal.QueryFirst(x => x.MaterielCode == materielCode) != null; 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 判断物料是否存在 
 | 
        /// </summary> 
 | 
        /// <param name="materielCodes">物料编号集合</param> 
 | 
        /// <returns></returns> 
 | 
        public bool ExsitMateriels(List<string> materielCodes) 
 | 
        { 
 | 
            return BaseDal.QueryData(x => materielCodes.Contains(x.MaterielCode)).Count == materielCodes.Count; 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 获取物料信息 
 | 
        /// </summary> 
 | 
        /// <param name="materielCode">物料编号</param> 
 | 
        /// <returns></returns> 
 | 
        public Dt_MaterielInfo GetMaterielInfo(string materielCode) 
 | 
        { 
 | 
            return BaseDal.QueryFirst(x => x.MaterielCode == materielCode); 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 查询物料信息 
 | 
        /// </summary> 
 | 
        /// <param name="materielCodes">物料编号</param> 
 | 
        /// <returns></returns> 
 | 
        public List<Dt_MaterielInfo> GetMaterielInfos(List<string> materielCodes) 
 | 
        { 
 | 
            return BaseDal.QueryData(x => materielCodes.Contains(x.MaterielCode)); 
 | 
        } 
 | 
  
 | 
        public WebResponseContent GetWarehouseMaterielInfos(int warehouseId) 
 | 
        { 
 | 
            try 
 | 
            { 
 | 
                List<Dt_MaterielInfo> materielInfos = BaseDal.QueryData(x => x.WarehouseId == warehouseId); 
 | 
                return WebResponseContent.Instance.OK(data: materielInfos); 
 | 
            } 
 | 
            catch (Exception ex) 
 | 
            { 
 | 
                return WebResponseContent.Instance.Error(ex.Message); 
 | 
            } 
 | 
        } 
 | 
        /// <summary> 
 | 
        /// 接收ERP物料信息 
 | 
        /// </summary> 
 | 
        /// <param name="model"></param> 
 | 
        /// <returns></returns> 
 | 
        public WebResponseContent ReceiveMaterial(MaterielInfoDTO model) 
 | 
        { 
 | 
            try 
 | 
            { 
 | 
                Dt_Warehouse? warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == model.WaId); 
 | 
                if (model.OperateType.ObjToInt() == 0) 
 | 
                { 
 | 
                    Dt_MaterielInfo materielInfo = new Dt_MaterielInfo() 
 | 
                    { 
 | 
                        IsCheck = warehouse == null ? 0 : (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.ObjToInt()), 
 | 
                        MaterielSpec = warehouse == null ? "空" : model.StandType, 
 | 
                        MaterielState = (EnableEnum)(model.State.ObjToInt()), 
 | 
                        MaterielThickness = model.Thickness, 
 | 
                        MaterielType = (MaterielTypeEnum)(model.ItemType.ObjToInt()), 
 | 
                        MaterielUnit = model.Unit == null ? "" : model.Unit, 
 | 
                        MaterielVersion = model.MaterialVersion, 
 | 
                        MaterielWide = model.Wide, 
 | 
                        WarehouseId = warehouse == null ? 0 : warehouse.WarehouseId, 
 | 
                    }; 
 | 
                    BaseDal.AddData(materielInfo); 
 | 
                } 
 | 
                else if (model.OperateType.ObjToInt() == 1) 
 | 
                { 
 | 
                    Dt_MaterielInfo materielInfo = BaseDal.QueryFirst(x => x.MaterielCode == model.Code); 
 | 
                    if (materielInfo == null) 
 | 
                    { 
 | 
                        Dt_MaterielInfo materielInfoAddNew = new Dt_MaterielInfo() 
 | 
                        { 
 | 
                            IsCheck = warehouse == null ? 0 : (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.ObjToInt()), 
 | 
                            MaterielSpec = warehouse == null ? "空" : model.StandType, 
 | 
                            MaterielState = (EnableEnum)(model.State.ObjToInt()), 
 | 
                            MaterielThickness = model.Thickness, 
 | 
                            MaterielType = (MaterielTypeEnum)(model.ItemType.ObjToInt()), 
 | 
                            MaterielUnit = model.Unit == null ? "" : model.Unit, 
 | 
                            MaterielVersion = model.MaterialVersion, 
 | 
                            MaterielWide = model.Wide, 
 | 
                            WarehouseId = warehouse == null ? 0 : warehouse.WarehouseId, 
 | 
                        }; 
 | 
                        BaseDal.AddData(materielInfoAddNew); 
 | 
                    } 
 | 
                    else 
 | 
                    { 
 | 
                        materielInfo.IsCheck = warehouse == null ? 0 : (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.ObjToInt(); 
 | 
                        materielInfo.MaterielSpec = warehouse == null ? "" : model.StandType; 
 | 
                        materielInfo.MaterielState = (EnableEnum)model.State.ObjToInt(); 
 | 
                        materielInfo.MaterielThickness = model.Thickness; 
 | 
                        materielInfo.MaterielType = (MaterielTypeEnum)model.ItemType.ObjToInt(); 
 | 
                        materielInfo.MaterielUnit = model.Unit == null ? "" : model.Unit; 
 | 
                        materielInfo.MaterielVersion = model.MaterialVersion; 
 | 
                        materielInfo.MaterielWide = model.Wide; 
 | 
                        materielInfo.WarehouseId = warehouse == null ? 0 : warehouse.WarehouseId; 
 | 
                        BaseDal.UpdateData(materielInfo); 
 | 
                    } 
 | 
                     
 | 
                } 
 | 
                else if (model.OperateType.ObjToInt() == 2) 
 | 
                { 
 | 
                    Dt_MaterielInfo materielInfo = BaseDal.QueryFirst(x => x.MaterielCode == model.Code); 
 | 
                    if (materielInfo == null) 
 | 
                    { 
 | 
                        return WebResponseContent.Instance.Error($"未找到物料信息"); 
 | 
                    } 
 | 
  
 | 
                    BaseDal.DeleteData(materielInfo); 
 | 
                } 
 | 
                return WebResponseContent.Instance.OK(); 
 | 
            } 
 | 
            catch (Exception ex) 
 | 
            { 
 | 
                return WebResponseContent.Instance.OK(ex.Message); 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
} 
 |