| 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 = null; | 
|                 if (model.ItemType == MaterielTypeEnum.RawMateriel.ObjToInt()) | 
|                 { | 
|                     warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == model.WaId); | 
|                     if (warehouse == null) | 
|                     { | 
|                         return WebResponseContent.Instance.Error("未找到仓库信息"); | 
|                     } | 
|                 } | 
|                 if (model.OperateType == 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, | 
|                         MaterielSpec = warehouse == null ? "空" : model.StandType, | 
|                         MaterielState = (EnableEnum)model.State, | 
|                         MaterielThickness = model.Thickness, | 
|                         MaterielType = (MaterielTypeEnum)model.ItemType, | 
|                         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 == 1) | 
|                 { | 
|                     Dt_MaterielInfo materielInfo = BaseDal.QueryFirst(x => x.MaterielCode == model.Code); | 
|                     if (materielInfo == null) | 
|                     { | 
|                         return WebResponseContent.Instance.Error($"未找到物料信息"); | 
|                     } | 
|   | 
|                     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; | 
|                     materielInfo.MaterielSpec = warehouse == null ? "" : model.StandType; | 
|                     materielInfo.MaterielState = (EnableEnum)model.State; | 
|                     materielInfo.MaterielThickness = model.Thickness; | 
|                     materielInfo.MaterielType = (MaterielTypeEnum)model.ItemType; | 
|                     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 == 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.Error(ex.Message); | 
|             } | 
|         } | 
|     } | 
| } |