using System; using System.Collections.Generic; using System.Linq; using System.Text; using QMAPP.BLL; using QMAPP.Entity; using QMAPP.FJC.Entity.Basic; using QMFrameWork.Log; using QMAPP.FJC.DAL.Basic; using QMFrameWork.Data; using System.Data; using QMAPP.MD.BLL; using QMAPP.MD.Entity; using Resource = QMAPP.FJC.Entity.Resource; namespace QMAPP.FJC.BLL.Basic { public class ProductInfoBLL : BaseBLL { #region 获取信息 /// /// 获取信息 /// /// 条件 /// 信息 public DataResult Get(ProductInfo model) { DataResult result = new DataResult(); try { result.Result = new ProductInfoDAL().Get(model); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件号逻辑层-获取信息!" }); result.IsSuccess = false; result.Msg = Resource.SystemException; throw ex; } result.IsSuccess = true; return result; } #endregion #region 获取列表 /// /// 获取列表 /// /// 条件 /// 数据页 /// 数据页 public DataResult GetList(ProductInfo condition, DataPage page) { DataResult result = new DataResult(); try { DataPage dataPage = new ProductInfoDAL().GetList(condition, page); result.Result = dataPage; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件号逻辑层-获取列表!" }); result.IsSuccess = false; result.Msg = Resource.SystemException; throw ex; } result.IsSuccess = true; return result; } #endregion #region 信息是否重复 /// /// 判断区域编号是否存在 /// /// /// true:已存在;fasel:不存在。 public bool ExistsProductInfo(ProductInfo model) { try { return new ProductInfoDAL().ExistsProductInfo(model); } catch (Exception ex) { throw ex; } } #endregion #region 插入信息 /// /// 插入信息(单表) /// /// 信息 /// 插入行数 public DataResult Insert(ProductInfo model) { DataResult result = new DataResult(); //基本信息 model.PID = Guid.NewGuid().ToString(); model.CREATEUSER = this.LoginUser.UserID; model.CREATEDATE = DateTime.Now; model.UPDATEUSER = model.CREATEUSER; model.UPDATEDATE = model.CREATEDATE; ProductInfoDAL cmdDAL = new ProductInfoDAL(); try { if (ExistsProductInfo(model) == true) { result.IsSuccess = false; result.Msg = Resource.MaterielCodeIsHave; return result; } result.Result = new ProductInfoDAL().Insert(model); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件号逻辑层-插入信息!" }); result.IsSuccess = false; result.Msg = Resource.SystemException; throw ex; } result.IsSuccess = true; return result; } #endregion #region 更新信息 /// /// 更新信息 /// /// /// 更新行数 public DataResult Update(ProductInfo model) { DataResult result = new DataResult(); model.UPDATEUSER = this.LoginUser.UserID; try { if (ExistsProductInfo(model) == true) { result.IsSuccess = false; result.Msg = Resource.MaterielCodeIsHave; return result; } result.Result = new ProductInfoDAL().Update(model); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件号逻辑层-更新信息!" }); result.IsSuccess = false; result.Msg = Resource.SystemException; throw ex; } result.IsSuccess = true; return result; } #endregion #region 删除 /// /// 删除信息 /// /// /// 删除个数 public DataResult Delete(string strs) { int count = 0; string[] list = strs.Split(":".ToCharArray()); DataResult result = new DataResult(); try { foreach (string str in list) { count += this.DeleteProductInfo(new ProductInfo { PID = str }); } result.Result = count; result.IsSuccess = true; return result; } catch (Exception ex) { throw ex; } } /// /// 删除信息 /// /// 信息 /// 删除个数 public int DeleteProductInfo(ProductInfo model) { int count = 0; try { count = new ProductInfoDAL().Delete(model); return count; } catch (Exception ex) { throw ex; } } #endregion #region 导出数据 /// /// 获取导出的数据 /// /// 查询条件 /// 数据 public DataTable GetExportData(ProductInfo model) { try { return new ProductInfoDAL().GetExportData(model); } catch (Exception ex) { throw ex; } } #endregion #region 导入数据 /// /// 导入Excel表数据 /// /// Excel列表 /// 区域信息 /// 工厂信息 /// 零件类别信息 /// 结果 public DataResult GetImportData(List list, Factory factorymodel, ProductBasic productbasicmodel) { DataResult result = new DataResult(); ProductInfoDAL cmDal = new ProductInfoDAL(); List List = new List(); int index = 0; try { result.Result = new ImportMessage(); result.Result.Errors = new List(); //List areainfo = null; List plantinfo = null; List productbasicinfo = null; using (IDataSession session = AppDataFactory.CreateMainSession()) { //获取区域信息 //areainfo = new QMAPP.FJC.BLL.Basic.AreaBLL().GetAllList(aramodel); //获取工厂信息 plantinfo = new FactoryBLL().GetAllList(factorymodel); //获取零件类别信息 productbasicinfo = new QMAPP.FJC.BLL.Basic.ProductBasicBLL().GetAllList(productbasicmodel); //状态判断 foreach (ProductInfo ma in list) { index++; //转换区域 //Area areaMes = areainfo.Find(a => a.AREANAME == ma.AREANAME); //if (areaMes != null) //{ // ma.AREAID = areaMes.PID; //} //else //{ // ma.PID = null; // result.Result.Errors.Add(new RowError(index, "区域信息不存在")); // result.Result.failureNum += 1; // continue; //} //转换工厂 Factory plantMes = plantinfo.Find(p => p.FACTORY_NAME == ma.FACTORY_NAME); if (plantMes != null) { ma.FACTORYID = plantMes.PID; } else { ma.PID = null; result.Result.Errors.Add(new RowError(index, "工厂信息不存在")); result.Result.failureNum += 1; continue; } //校验工厂和区域信息是否匹配 //if (areaMes != null && plantMes != null) //{ // int number = new ProductInfoDAL().ImportCheck(plantMes, areaMes); // if (number == 0) // { // result.Result.Errors.Add(new RowError(index, "工厂和区域信息不匹配")); // result.Result.failureNum += 1; // continue; // } //} //转换零件类别 ProductBasic productbasicMes = productbasicinfo.Find(pc => pc.PRODUCTNAME == ma.PRODUCTNAME); if (productbasicMes != null) { ma.PRODUCTBASICID = productbasicMes.PID; } else { ma.PID = null; result.Result.Errors.Add(new RowError(index, "零件类别不存在")); result.Result.failureNum += 1; continue; } if (string.IsNullOrEmpty(ma.InfoError) == false) { ma.PID = null; result.Result.failureNum += 1; continue; } //修改改时根据主键等信息获取详细内容信息 ProductInfo oldInfo = cmDal.Get(ma); if (oldInfo != null) { //更新 ma.PID = oldInfo.PID; ma.CREATEUSER = oldInfo.CREATEUSER; ma.CREATEDATE = oldInfo.CREATEDATE; ma.UPDATEUSER = this.LoginUser.UserID; ma.UPDATEDATE = oldInfo.UPDATEDATE; ma.IsNewInfo = false; result.Result.updateNum += 1; } else { //新增 oldInfo = new ProductInfo(); ma.PID = Guid.NewGuid().ToString(); ma.CREATEUSER = this.LoginUser.UserID; ma.CREATEDATE = DateTime.Now; ma.UPDATEUSER = ma.CREATEUSER; ma.UPDATEDATE = ma.CREATEDATE; ma.IsNewInfo = true; result.Result.insertNum += 1; } List.Add(ma); } } //导入 cmDal.GetImportData(List); result.Msg = "导入成功"; result.IsSuccess = true; return result; } catch (Exception ex) { result.IsSuccess = false; result.Ex = ex; return result; } } #endregion #region 获取零件列表(绑定下拉列表使用)王丹丹 2017.03.13 /// /// 获取零件列表 /// /// 条件 /// 全部集合 public DataResult> GetProductInfoList(ProductInfo condition) { DataResult> result = new DataResult>(); try { result.Result = new ProductInfoDAL().GetProductInfoList(condition); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件信息逻辑层-获取零件列表(绑定下拉列表使用)!" }); result.IsSuccess = false; result.Msg = Resource.SystemException; throw ex; } result.IsSuccess = true; return result; } #endregion } }