| 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); | 
|             } | 
|         } | 
|     } | 
| } |