Beispiel #1
0
        public async Task <ApiResult> Save(ImportExcelConfig obj)
        {
            ApiResult ret = new ApiResult();

            try
            {
                ImportExcelConfig has = await _importExcelConfigRepo.GetByFileName(obj.FileName);

                if (has != null)
                {
                    ret.code = Code.DataIsExist;
                    ret.msg  = "已存在相同的导入文件名,不允许重复添加";
                }
                else
                {
                    DateTime dt = DateTime.Now;
                    obj.UpdatedTime = dt;
                    obj.CreatedTime = dt;
                    obj.UpdatedBy   = _userID;
                    obj.CreatedBy   = _userID;
                    ret.data        = await _importExcelConfigRepo.Save(obj);
                }
            }
            catch (Exception ex)
            {
                ret.code = Code.Failure;
                ret.msg  = ex.Message;
            }
            return(ret);
        }
Beispiel #2
0
        public async Task <ApiResult> Import(IFormFile file)
        {
            ApiResult ret = new ApiResult();

            ret.code = Code.ImportError;
            try
            {
                string            fileName  = Path.GetFileNameWithoutExtension(file.FileName);
                ImportExcelConfig oneConfig = await _importExcelConfigRepo.GetByFileName(fileName);

                ImportExcelClass oneClass = await _importExcelConfigRepo.GetClassByID(oneConfig.ClassID);

                ImportExcelHelper importExcelHelper = new ImportExcelHelper(oneClass.FullName, oneClass.AssemblyName);
                string[]          config            = oneConfig.Config.Split(',');
                string[]          required          = oneConfig.Required.Split(',');
                string            errMsg            = "";
                ImportExcelLog    log = new ImportExcelLog();
                DataTable         dt  = importExcelHelper.GetData(file, config, required, userID, ref log, ref errMsg);
                if (errMsg != "")
                {
                    ret.msg = errMsg;
                    return(ret);
                }
                DateTime now = DateTime.Now;
                int      i   = 0;
                foreach (DataRow row in dt.Rows)
                {
                    i++;
                    foreach (DataColumn col in dt.Columns)
                    {
                        if (row["online_date"].ToString() == "")
                        {
                            errMsg += "第" + i + "行上线时间必填";
                        }
                        else if (row["medium_repair"].ToString() == "")
                        {
                            errMsg += "第" + i + "行中修频率必填";
                        }
                        else if (row["large_repair"].ToString() == "")
                        {
                            errMsg += "第" + i + "行大修频率必填";
                        }
                        if (errMsg != "")
                        {
                            ret.msg = errMsg;
                            return(ret);
                        }
                        else
                        {
                            DateTime onLine       = Convert.ToDateTime(row["online_date"]);
                            int      mediumRepair = Convert.ToInt32(row["medium_repair"]);
                            int      largeRepair  = Convert.ToInt32(row["large_repair"]);
                            row["next_medium_repair_date"] = onLine.AddDays(mediumRepair);
                            row["next_large_repair_date"]  = onLine.AddDays(largeRepair);
                        }
                        //没有导入的非字符串字段需要默认值
                        if (row[col].ToString() == "")
                        {
                            string typeName = col.DataType.Name;
                            switch (typeName)
                            {
                            case "Int32":
                            case "Double":
                                row[col] = 0;
                                break;

                            case "DateTime":
                                row[col] = new DateTime(1970, 1, 1);
                                break;
                            }
                        }
                    }
                    //系统赋值
                    row["created_by"]   = userID;
                    row["updated_by"]   = userID;
                    row["created_time"] = now;
                    row["updated_time"] = now;
                    row["is_del"]       = 0;
                }
                log.CreatedBy   = userID;
                log.CreatedTime = now;
                dt.TableName    = "equipment_copy";
                using (TransactionScope scope = new TransactionScope())
                {
                    ret.data = _importExcelConfigRepo.BulkLoad(dt);
                    await _importExcelConfigRepo.SaveLog(log);

                    scope.Complete();
                }
                ret.code = Code.Success;
                return(ret);
            }
            catch (Exception ex)
            {
                ret.code = Code.Failure;
                ret.msg  = ex.Message;
                return(ret);
            }
        }