public virtual WMS_PartModel GetById(object id)
        {
            if (IsExists(id))
            {
                WMS_Part      entity = m_Rep.GetById(id);
                WMS_PartModel model  = new WMS_PartModel();
                model.Id             = entity.Id;
                model.PartCode       = entity.PartCode;
                model.PartName       = entity.PartName;
                model.PartType       = entity.PartType;
                model.CustomerCode   = entity.CustomerCode;
                model.LogisticsCode  = entity.LogisticsCode;
                model.OtherCode      = entity.OtherCode;
                model.PCS            = entity.PCS;
                model.StoreMan       = entity.StoreMan;
                model.Status         = entity.Status;
                model.CreatePerson   = entity.CreatePerson;
                model.CreateTime     = entity.CreateTime;
                model.ModifyPerson   = entity.ModifyPerson;
                model.ModifyTime     = entity.ModifyTime;
                model.Unit           = entity.Unit;
                model.Volume         = entity.Volume;
                model.Remark         = entity.Remark;
                model.SafeStock      = entity.SafeStock;
                model.BelongSupplier = entity.BelongSupplier;
                model.BelongCustomer = entity.BelongCustomer;

                return(model);
            }
            else
            {
                return(null);
            }
        }
        public virtual bool Edit(ref ValidationErrors errors, WMS_PartModel model)
        {
            try
            {
                WMS_Part entity = m_Rep.GetById(model.Id);
                if (entity == null)
                {
                    errors.Add(Resource.Disable);
                    return(false);
                }
                entity.Id             = model.Id;
                entity.PartCode       = model.PartCode;
                entity.PartName       = model.PartName;
                entity.PartType       = model.PartType;
                entity.CustomerCode   = model.CustomerCode;
                entity.LogisticsCode  = model.LogisticsCode;
                entity.OtherCode      = model.OtherCode;
                entity.PCS            = model.PCS;
                entity.StoreMan       = model.StoreMan;
                entity.Status         = model.Status;
                entity.CreatePerson   = model.CreatePerson;
                entity.CreateTime     = model.CreateTime;
                entity.ModifyPerson   = model.ModifyPerson;
                entity.ModifyTime     = model.ModifyTime;
                entity.Unit           = model.Unit;
                entity.Volume         = model.Volume;
                entity.Remark         = model.Remark;
                entity.SafeStock      = model.SafeStock;
                entity.BelongCustomer = model.BelongCustomer;
                entity.BelongSupplier = model.BelongSupplier;



                if (m_Rep.Edit(entity))
                {
                    return(true);
                }
                else
                {
                    errors.Add(Resource.NoDataChange);
                    return(false);
                }
            }
            catch (Exception ex)
            {
                errors.Add(ex.Message);
                ExceptionHander.WriteException(ex);
                return(false);
            }
        }
示例#3
0
        public virtual bool Create(ref ValidationErrors errors, WMS_PartModel model)
        {
            try
            {
                WMS_Part entity = m_Rep.GetById(model.Id);
                if (entity != null)
                {
                    errors.Add(Resource.PrimaryRepeat);
                    return(false);
                }
                entity               = new WMS_Part();
                entity.Id            = model.Id;
                entity.PartCode      = model.PartCode;
                entity.PartName      = model.PartName;
                entity.PartType      = model.PartType;
                entity.CustomerCode  = model.CustomerCode;
                entity.LogisticsCode = model.LogisticsCode;
                entity.OtherCode     = model.OtherCode;
                entity.PCS           = model.PCS;
                entity.StoreMan      = model.StoreMan;
                entity.Status        = model.Status;
                entity.CreatePerson  = model.CreatePerson;
                entity.CreateTime    = model.CreateTime;
                entity.ModifyPerson  = model.ModifyPerson;
                entity.ModifyTime    = model.ModifyTime;
                entity.Unit          = model.Unit;
                entity.Volume        = model.Volume;
                entity.Remark        = model.Remark;


                if (m_Rep.Create(entity))
                {
                    return(true);
                }
                else
                {
                    errors.Add(Resource.InsertFail);
                    return(false);
                }
            }
            catch (Exception ex)
            {
                errors.Add(ex.Message);
                ExceptionHander.WriteException(ex);
                return(false);
            }
        }
        /// <summary>
        /// 保存数据
        /// </summary>
        public virtual void SaveImportData(IEnumerable <WMS_PartModel> list)
        {
            try
            {
                using (DBContainer db = new DBContainer())
                {
                    foreach (var model in list)
                    {
                        WMS_Part entity = new WMS_Part();
                        entity.Id            = 0;
                        entity.PartCode      = model.PartCode;
                        entity.PartName      = model.PartName;
                        entity.PartType      = model.PartType;
                        entity.CustomerCode  = model.CustomerCode;
                        entity.LogisticsCode = model.LogisticsCode;
                        entity.OtherCode     = model.OtherCode;
                        entity.PCS           = model.PCS;
                        entity.StoreMan      = model.StoreMan;
                        entity.Status        = model.Status;
                        entity.CreatePerson  = model.CreatePerson;
                        entity.CreateTime    = ResultHelper.NowTime;
                        entity.ModifyPerson  = model.ModifyPerson;
                        entity.ModifyTime    = model.ModifyTime;
                        entity.Unit          = model.Unit;
                        entity.Volume        = model.Volume;
                        entity.Remark        = model.Remark;

                        db.WMS_Part.Add(entity);
                    }
                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
示例#5
0
        public bool ImportStoreMan(string oper, string filePath, ref ValidationErrors errors)
        {
            bool rtn = true;

            var targetFile = new FileInfo(filePath);

            if (!targetFile.Exists)
            {
                errors.Add("导入的数据文件不存在");
                return(false);
            }

            var excelFile = new ExcelQueryFactory(filePath);

            using (XLWorkbook wb = new XLWorkbook(filePath))
            {
                //第一个Sheet
                using (IXLWorksheet wws = wb.Worksheets.First())
                {
                    //对应列头
                    excelFile.AddMapping <WMS_PartModel>(x => x.PartCode, "物料编码(必输)");
                    excelFile.AddMapping <WMS_PartModel>(x => x.StoreMan, "保管员(必输)");


                    //SheetName,第一个Sheet
                    var excelContent = excelFile.Worksheet <WMS_PartModel>(0);

                    //开启事务
                    using (DBContainer db = new DBContainer())
                    {
                        var tran     = db.Database.BeginTransaction(); //开启事务
                        int rowIndex = 0;

                        //检查数据正确性
                        foreach (var row in excelContent)
                        {
                            rowIndex += 1;
                            string errorMessage = String.Empty;
                            var    model        = new WMS_PartModel();
                            model.Id = row.Id;
                            if (row.PartCode != null)
                            {
                                model.PartCode = row.PartCode.Replace(" ", "");
                            }
                            if (row.StoreMan != null)
                            {
                                model.StoreMan = row.StoreMan.Replace(" ", "");
                            }


                            if (!String.IsNullOrEmpty(errorMessage))
                            {
                                rtn = false;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                                continue;
                            }

                            //执行额外的数据校验
                            try
                            {
                                AdditionalCheckStoreMan(db, ref model);
                            }
                            catch (Exception ex)
                            {
                                rtn          = false;
                                errorMessage = ex.Message;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                                continue;
                            }

                            //写入数据库
                            WMS_Part entity = m_Rep.GetById(model.Id);
                            entity.Id = model.Id;
                            //entity.PartCode = model.PartCode;
                            entity.StoreMan     = model.StoreMan;
                            entity.ModifyPerson = oper;
                            entity.ModifyTime   = DateTime.Now;
                            m_Rep.Edit(entity);

                            //db.WMS_Part.Add(entity);
                            try
                            {
                                db.SaveChanges();
                            }
                            catch (Exception ex)
                            {
                                rtn = false;
                                //将当前报错的entity状态改为分离,类似EF的回滚(忽略之前的Add操作)
                                db.Entry(entity).State = System.Data.Entity.EntityState.Detached;
                                errorMessage           = ex.InnerException.InnerException.Message;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                            }
                        }

                        if (rtn)
                        {
                            tran.Commit();  //必须调用Commit(),不然数据不会保存
                        }
                        else
                        {
                            tran.Rollback();    //出错就回滚
                        }
                    }
                }
                wb.Save();
            }

            return(rtn);
        }
示例#6
0
        public bool ImportExcelData(string oper, string filePath, ref ValidationErrors errors)
        {
            bool rtn = true;

            var targetFile = new FileInfo(filePath);

            if (!targetFile.Exists)
            {
                errors.Add("导入的数据文件不存在");
                return(false);
            }

            var excelFile = new ExcelQueryFactory(filePath);

            using (XLWorkbook wb = new XLWorkbook(filePath))
            {
                //第一个Sheet
                using (IXLWorksheet wws = wb.Worksheets.First())
                {
                    //对应列头
                    excelFile.AddMapping <WMS_PartModel>(x => x.PartCode, "物料编码(必输)");
                    excelFile.AddMapping <WMS_PartModel>(x => x.PartName, "物料名称(必输)");
                    excelFile.AddMapping <WMS_PartModel>(x => x.PartType, "物料类型(必输)");
                    excelFile.AddMapping <WMS_PartModel>(x => x.CustomerCode, "主机厂编码");
                    excelFile.AddMapping <WMS_PartModel>(x => x.LogisticsCode, "物流号");
                    excelFile.AddMapping <WMS_PartModel>(x => x.OtherCode, "额外信息编码");
                    excelFile.AddMapping <WMS_PartModel>(x => x.PCS, "每箱数量");
                    excelFile.AddMapping <WMS_PartModel>(x => x.StoreMan, "保管员(必输)");
                    excelFile.AddMapping <WMS_PartModel>(x => x.Unit, "单位");
                    excelFile.AddMapping <WMS_PartModel>(x => x.Volume, "每箱体积");
                    excelFile.AddMapping <WMS_PartModel>(x => x.BelongSupplier, "所属供应商");
                    excelFile.AddMapping <WMS_PartModel>(x => x.BelongCustomer, "所属客户");
                    excelFile.AddMapping <WMS_PartModel>(x => x.Remark, "说明");


                    //SheetName,第一个Sheet
                    var excelContent = excelFile.Worksheet <WMS_PartModel>(0);

                    //开启事务
                    using (DBContainer db = new DBContainer())
                    {
                        var tran     = db.Database.BeginTransaction(); //开启事务
                        int rowIndex = 0;

                        //检查数据正确性
                        foreach (var row in excelContent)
                        {
                            rowIndex += 1;
                            string errorMessage = String.Empty;
                            var    model        = new WMS_PartModel();
                            model.Id = row.Id;
                            if (row.PartCode != null)
                            {
                                model.PartCode = row.PartCode.Replace(" ", "");
                            }

                            if (row.PartName != null)
                            {
                                model.PartName = row.PartName.Replace(" ", "");
                            }

                            if (row.PartType != null)
                            {
                                model.PartType = row.PartType.Replace(" ", "");
                            }

                            if (row.CustomerCode != null)
                            {
                                model.CustomerCode = row.CustomerCode.Replace(" ", "").Replace(";", ";");
                            }

                            //model.PartName = row.PartName.Replace(" ", "");
                            //model.PartType = row.PartType.Replace(" ", "");
                            //model.CustomerCode = row.CustomerCode.Replace(" ", "").Replace(";",";");
                            model.LogisticsCode = row.LogisticsCode;
                            model.OtherCode     = row.OtherCode;
                            model.PCS           = row.PCS;
                            model.StoreMan      = row.StoreMan.Replace(" ", "");
                            model.Unit          = row.Unit;
                            model.Volume        = row.Volume;
                            model.Remark        = row.Remark;
                            if (row.BelongCustomer != null)
                            {
                                model.BelongCustomer = row.BelongCustomer.Replace(" ", "").Replace(";", ";");
                            }

                            if (row.BelongSupplier != null)
                            {
                                model.BelongSupplier = row.BelongSupplier.Replace(" ", "").Replace(";", ";");
                            }

                            //model.BelongCustomer = row.BelongCustomer.Replace(" ", "").Replace(";", ";");
                            //model.BelongSupplier = row.BelongSupplier.Replace(" ", "").Replace(";", ";");

                            //model.CreatePerson = row.oper;
                            //model.CreateTime = row.CreateTime;
                            //model.ModifyPerson = row.oper;
                            //model.ModifyTime = row.ModifyTime;

                            if (!String.IsNullOrEmpty(errorMessage))
                            {
                                rtn = false;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                                continue;
                            }

                            //执行额外的数据校验
                            try
                            {
                                AdditionalCheckExcelData(db, ref model);
                            }
                            catch (Exception ex)
                            {
                                rtn          = false;
                                errorMessage = ex.Message;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                                continue;
                            }

                            //写入数据库
                            WMS_Part entity = new WMS_Part();
                            entity.Id            = model.Id;
                            entity.PartCode      = model.PartCode;
                            entity.PartName      = model.PartName;
                            entity.PartType      = model.PartType;
                            entity.CustomerCode  = ";" + model.CustomerCode + ";";
                            entity.LogisticsCode = model.LogisticsCode;
                            entity.OtherCode     = model.OtherCode;
                            entity.PCS           = model.PCS;
                            entity.StoreMan      = model.StoreMan;
                            entity.Status        = "有效";
                            entity.CreatePerson  = oper;
                            entity.CreateTime    = DateTime.Now;
                            entity.ModifyPerson  = oper;
                            entity.ModifyTime    = DateTime.Now;
                            entity.Unit          = model.Unit;
                            entity.Volume        = model.Volume;
                            entity.Remark        = model.Remark;
                            if (model.BelongCustomer != null)
                            {
                                entity.BelongCustomer = ";" + model.BelongCustomer + ";";
                            }
                            if (model.BelongSupplier != null)
                            {
                                entity.BelongSupplier = ";" + model.BelongSupplier + ";";
                            }

                            db.WMS_Part.Add(entity);
                            try
                            {
                                db.SaveChanges();
                            }
                            catch (Exception ex)
                            {
                                rtn = false;
                                //将当前报错的entity状态改为分离,类似EF的回滚(忽略之前的Add操作)
                                db.Entry(entity).State = System.Data.Entity.EntityState.Detached;
                                errorMessage           = ex.InnerException.InnerException.Message;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                            }
                        }

                        if (rtn)
                        {
                            tran.Commit();  //必须调用Commit(),不然数据不会保存
                        }
                        else
                        {
                            tran.Rollback();    //出错就回滚
                        }
                    }
                }
                wb.Save();
            }

            return(rtn);
        }