using System; using System.Collections.Generic; using System.Linq; using System.Text; using QMAPP.BLL; using QMAPP.Entity; using QMFrameWork.Log; using QMAPP.MD.Entity; using QMFrameWork.Data; using QMAPP.MD.DAL; using QMAPP.MD.BLL.Dict; using QMAPP.FJC.Entity.Basic; namespace QMAPP.MD.BLL { /// <summary> /// 模块名称:物料 /// 作 者:郭兆福 /// 编写日期:2017年05月10日 /// </summary> public class MaterialBLL : BaseBLL { #region 获取信息 /// <summary> /// 获取信息 /// </summary> /// <param name="">条件</param> /// <returns>信息</returns> public DataResult<Material> Get(Material model) { DataResult<Material> result = new DataResult<Material>(); try { result.Result = new MaterialDAL().Get(model); } catch (Exception ex) { result.IsSuccess = false; result.Msg = Resource.SystemException; throw ex; } result.IsSuccess = true; return result; } public DataResult<Material> GetWithAnyFormate(string materialcode) { DataResult<Material> result = new DataResult<Material>(); try { result.Result = new MaterialDAL().GetWithAnyFormate(materialcode); } catch (Exception ex) { result.IsSuccess = false; result.Msg = Resource.SystemException; throw ex; } result.IsSuccess = true; return result; } #endregion #region 获取分页列表 /// <summary> /// 获取分页列表 /// </summary> /// <param name="condition">条件</param> /// <param name="page">数据页</param> /// <returns>数据页</returns> public DataResult<DataPage> GetList(Material condition, DataPage page) { DataResult<DataPage> result = new DataResult<DataPage>(); try { //获取物料信息列表 DataPage dataPage = new MaterialDAL().GetList(condition, page); #region 外购件标识 List<Material> materielList = dataPage.Result as List<Material>; DictManageBLL dictOutSourceBll = new DictManageBLL(DictKind.OutSourceFlag); DictManageBLL dictHBtypeBll = new DictManageBLL(DictKind.HBTYPE); DictManageBLL dictCOLORBll = new DictManageBLL(DictKind.COLOR); foreach (Material m in materielList) { //物料类别 m.OUTSOURCE_NAME = dictOutSourceBll.GetDictValue(m.OUTSOURCE); //高低配 m.HBTYPE = dictHBtypeBll.GetDictValue(m.HBTYPE); //颜色 m.COLOR = dictCOLORBll.GetDictValue(m.COLOR); } #endregion result.Result = dataPage; } catch (Exception ex) { result.IsSuccess = false; result.Msg = Resource.SystemException; throw ex; } result.IsSuccess = true; return result; } /// <summary> /// 获取列表 /// </summary> /// <param name="condition">条件</param> /// <returns>全部集合</returns> public List<Material> GetAllList(Material condition) { try { //获取物料信息列表 List<Material> list = new MaterialDAL().GetList(condition); return list; } catch (Exception ex) { throw ex; } } #endregion #region 信息是否重复 /// <summary> /// 判断名称是否存在 /// </summary> /// <param name="info"></param> /// <returns>true:已存在;fasel:不存在。</returns> public bool ExistsMateriel(Material model) { try { return new MaterialDAL().ExistsMateriel(model); } catch (Exception ex) { throw ex; } } #endregion #region 插入信息 /// <summary> /// 插入信息(单表) /// </summary> /// <param name="">信息</param> /// <returns>插入行数</returns> public DataResult<int> Insert(Material model) { DataResult<int> result = new DataResult<int>(); //基本信息 model.PID = Guid.NewGuid().ToString(); model.FLGDEL = "0"; model.CREATEUSER = this.LoginUser.UserID; model.UPDATEUSER = model.CREATEUSER; MaterialDAL cmdDAL = new MaterialDAL(); try { if (ExistsMateriel(model) == true) { result.IsSuccess = false; result.Msg = Resource.MaterielCodeIsHave; return result; } result.Result = new MaterialDAL().Insert(model); } catch (Exception ex) { result.IsSuccess = false; result.Msg = Resource.SystemException; throw ex; } result.IsSuccess = true; return result; } #endregion #region 更新信息 /// <summary> /// 更新信息 /// </summary> /// <param name=""></param> /// <returns>更新行数</returns> public DataResult<int> Update(Material model) { DataResult<int> result = new DataResult<int>(); //基本信息 model.UPDATEUSER = this.LoginUser.UserID; //model.UPDATEDATE=DateTime.Now; try { if (ExistsMateriel(model) == true) { result.IsSuccess = false; result.Msg = Resource.MaterielCodeIsHave; return result; } result.Result = new MaterialDAL().Update(model); } catch (Exception ex) { result.IsSuccess = false; result.Msg = Resource.SystemException; throw ex; } result.IsSuccess = true; return result; } #endregion #region 删除 /// <summary> /// 删除信息 /// </summary> /// <param name=""></param> /// <returns>删除个数</returns> public DataResult<int> Delete(string strs) { DataResult<int> result = new DataResult<int>(); string[] list = strs.Split(":".ToCharArray()); try { if (IsUsing(list)==true) { result.IsSuccess = false; result.Msg = "物料号已被使用不能删除"; return result; } foreach (string str in list) { result.Result += this.DeleteMateriel(new Material { PID = str }); } } catch (Exception ex) { result.IsSuccess = false; result.Msg = Resource.SystemException; throw ex; } result.IsSuccess = true; return result; } /// <summary> /// 删除信息 /// </summary> /// <param name="">信息</param> /// <returns>删除个数</returns> public int DeleteMateriel(Material model) { int count = 0; try { count = new MaterialDAL().Delete(model); return count; } catch (Exception ex) { throw ex; } } #endregion #region 物料号是否使用 /// <summary> /// 物料号是否使用 /// </summary> /// <param name="info"></param> /// <returns>true:已使用;fasel:未使用。</returns> public bool IsUsing(string[] pid) { try { return new MaterialDAL().IsUsing(pid); } catch (Exception ex) { throw ex; } } #endregion #region 获取物料信息列表(下拉列表使用) /// <summary> /// /// </summary> /// <param name="condition"></param> /// <returns></returns> public List<Material> GetMaterialList(Material condition) { List<Material> list = new List<Material>(); try { list = new MaterialDAL().GetMaterialList(condition); DictManageBLL dictOutSourceBll = new DictManageBLL(DictKind.OutSourceFlag); DictManageBLL dictHBtypeBll = new DictManageBLL(DictKind.HBTYPE); DictManageBLL dictCOLORBll = new DictManageBLL(DictKind.COLOR); foreach (Material m in list) { //物料类别 m.OUTSOURCE = dictOutSourceBll.GetDictValue(m.OUTSOURCE); //高低配 m.HBTYPE = dictHBtypeBll.GetDictValue(m.HBTYPE); //颜色 m.COLOR = dictCOLORBll.GetDictValue(m.COLOR); } } catch (Exception ex) { throw ex; } return list; } #endregion #region 获取物料类型列表(下拉列表使用) /// <summary> /// 获取物料类型列表(下拉列表使用) /// </summary> /// <param name="condition">物料类型</param> /// <returns></returns> public DataResult<List<MaterialClass>> GetMaterialClassList(MaterialClass condition) { DataResult<List<MaterialClass>> result = new DataResult<List<MaterialClass>>(); try { result.Result = new MaterialClassDAL().GetMaterialClassList(condition); } catch (Exception ex) { result.IsSuccess = false; result.Msg = Resource.SystemException; throw ex; } result.IsSuccess = true; return result; } /// <summary> /// /// </summary> /// <param name="condition"></param> /// <returns></returns> public List<MaterialClass> GetAllMaterialClassList(MaterialClass condition) { List<MaterialClass> result = new List<MaterialClass>(); try { List<MaterialClass> list = new MaterialClassDAL().GetMaterialClassList(condition); return list; } catch (Exception ex) { throw ex; } } #endregion #region 根据物料类型获取物料号(手持) /// <summary> /// 根据物料类型获取物料号(手持) /// </summary> /// <param name="condition"></param> /// <returns></returns> public List<Material> GetMaterialListByClass(MaterialClass condition) { List<Material> result = new List<Material>(); try { List<Material> list = new MaterialDAL().GetMaterialListByClass(condition); return list; } catch (Exception ex) { throw ex; } } #endregion #region 获取物料类型列表(winform批量报废) public List<MaterialClass> GetMaterialClassToMendRecorderWasteForm() { List<MaterialClass> result = new List<MaterialClass>(); try { List<MaterialClass> list = new MaterialClassDAL().GetMaterialClassToMendRecorderWasteForm(); return list; } catch (Exception ex) { throw ex; } } #endregion #region 获取物料类型列表(winform注塑使用) /// <summary> /// 获取物料类型列表(winform注塑使用) /// </summary> /// <param name="condition">物料类型</param> /// <returns></returns> public List<MaterialClass> GetMaterialClassWithType(MaterialClass condition, WorkCell workcellmodel) { List<MaterialClass> result = new List<MaterialClass>(); try { List<MaterialClass> list = new MaterialClassDAL().GetMaterialClassWithType(condition, workcellmodel); return list; } catch (Exception ex) { throw ex; } } #endregion #region 获取物料信息列表(Fis下拉列表使用) /// <summary> /// /// </summary> /// <param name="condition"></param> /// <returns></returns> public List<Material> GetNewMaterialList(Material condition,WorkCell workcellmodel) { List<Material> result = new List<Material>(); try { result = new MaterialDAL().GetNewMaterialList(condition, workcellmodel); } catch (Exception ex) { throw ex; } return result; } /// <summary> /// 获取订单计划使用的物料号 /// </summary> /// <param name="OrderType"></param> /// <returns></returns> public List<Material> GetMaterialForOrder(string OrderType) { List<Material> result = new List<Material>(); try { result = new MaterialDAL().GetNewMaterialList(OrderType); } catch (Exception ex) { throw ex; } return result; } //GetInjectMaterialList public List<Material> GetMaterialForInjectOrder(string OrderType) { List<Material> result = new List<Material>(); try { result = new MaterialDAL().GetInjectMaterialList(OrderType); } catch (Exception ex) { throw ex; } return result; } #endregion #region 获取PBOM头物料(下拉列表使用) /// <summary> /// 获取PBOM头物料 /// </summary> /// <param name="condition">物料</param> /// <returns></returns> public DataResult<List<Material>> GetPbomMaterialList(Material condition) { DataResult<List<Material>> result = new DataResult<List<Material>>(); try { result.Result = new MaterialDAL().GetPbomMaterialList(condition); } catch (Exception ex) { result.IsSuccess = false; result.Msg = Resource.SystemException; throw ex; } result.IsSuccess = true; return result; } #endregion #region 获取本体信息 /// <summary> /// 获取本体信息 /// </summary> /// <param name="condition"></param> /// <returns></returns> public Material GetMaterialInfo(Material condition) { Material material = new Material(); //根据表皮条码获取本体信息 material.MATERIAL_CODE = condition.MATERIAL_CODE; material.MaterialCodes = condition.MaterialCodes; try { List<Material> materialList = new MaterialDAL().GetMaterialInfo(material); DictManageBLL dictHBtypeBll = new DictManageBLL(DictKind.HBTYPE); DictManageBLL dictCOLORBll = new DictManageBLL(DictKind.COLOR); foreach (Material m in materialList) { material.HBTYPE = m.HBTYPE; material.COLOR = m.COLOR; material.IMAGE_PATH = m.IMAGE_PATH; //高低配 m.HBTYPE = dictHBtypeBll.GetDictValue(m.HBTYPE); //颜色 m.COLOR = dictCOLORBll.GetDictValue(m.COLOR); material.MATERIAL_NAME = m.MATERIAL_NAME; material.HBTYPECHINESE = m.HBTYPE; material.COLORCHINESE = m.COLOR; material.MATERIAL_TYPE_CODE = m.MATERIAL_TYPE_CODE; } } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "产品档案逻辑层-获取本体信息!" }); throw ex; } return material; } #endregion #region 获取本体信息list /// <summary> /// 获取本体信息 /// </summary> /// <param name="condition"></param> /// <returns></returns> public List<Material> GetMaterialInfoList(Material condition) { Material material = new Material(); //根据表皮条码获取本体信息 material.MaterialCodes = condition.MaterialCodes; try { return new MaterialDAL().GetMaterialInfoList(material); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "产品档案逻辑层-获取本体信息!" }); throw ex; } } #endregion #region 获取Product-type /// <summary> /// /// </summary> /// <param name="materialtype"></param> /// <returns></returns> public MaterialCodeInit GetProductType(string materialtype) { try { return new MaterialDAL().GetProductType(materialtype); } catch (Exception ex) { throw ex; } } #endregion #region 获取门板计划使用的物料号 /// <summary> /// 获取门板计划使用的物料号 /// </summary> /// <param name="OrderType"></param> /// <returns></returns> public List<Material> GetMaterialDoorPlan(Material info) { List<Material> result = new List<Material>(); try { result = new MaterialDAL().GetMaterialDoorPlan(info); //转换高低配和颜色 } catch (Exception ex) { throw ex; } return result; } #endregion /// <summary> /// 成都注塑打码 /// </summary> /// <param name="condition"></param> /// <returns></returns> public List<Material> GetMaterialInfoListBy(Material condition) { List<Material> result = new List<Material>(); try { result = new MaterialDAL().GetMaterialInfoListBy(condition); } catch (Exception ex) { throw ex; } return result; } /// <summary> /// /// </summary> /// <param name="condition"></param> /// <returns></returns> public OrderIndentity GetOrderInfo(OrderIndentity condition) { OrderIndentity order = new OrderIndentity(); try { order = new MaterialDAL().GetOrderInfo(condition); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "产品档案逻辑层-获取本体信息!" }); throw ex; } return order; } } }