Commit afc5a103 by guanzhenshan

增加导入数据结构模版功能

parent f47f50b5
...@@ -82,7 +82,7 @@ namespace Bailun.DC.Services.DataWareHouse ...@@ -82,7 +82,7 @@ namespace Bailun.DC.Services.DataWareHouse
cn.Open(); cn.Open();
} }
var obj = cn.QueryFirstOrDefault<sys_table_info>("select * from sys_table_info where id=" + m.id); var obj = cn.QueryFirstOrDefault<sys_table_info>("select * from sys_table_info where code='" + m.code+"'");
if (obj == null) if (obj == null)
......
...@@ -9,6 +9,7 @@ using Bailun.DC.Models.DataWareHouse; ...@@ -9,6 +9,7 @@ using Bailun.DC.Models.DataWareHouse;
using Bailun.ServiceFabric.Authorize; using Bailun.ServiceFabric.Authorize;
using Bailun.ServiceFabric.Core.Extension.HttpContext; using Bailun.ServiceFabric.Core.Extension.HttpContext;
using Bailun.ServiceFabric.Core.Extension; using Bailun.ServiceFabric.Core.Extension;
using System.Data;
namespace Bailun.DC.Web.Areas.DataWareHouse.Controllers namespace Bailun.DC.Web.Areas.DataWareHouse.Controllers
{ {
...@@ -102,8 +103,119 @@ namespace Bailun.DC.Web.Areas.DataWareHouse.Controllers ...@@ -102,8 +103,119 @@ namespace Bailun.DC.Web.Areas.DataWareHouse.Controllers
}); });
} }
/// <summary>
/// 批量导入表结构配置数据
/// </summary>
/// <returns></returns>
public JsonResult UploadTbConfig()
{
if (Request.Form.Files.Count == 0)
{
return Json(new
{
success = false,
msg = "请上传文件!"
});
}
var user = HttpContextHelper.Current?.User;
var file = Request.Form.Files[0];
Dictionary<string, DataTable> dic = Base.NpolHelper.ExcelToDataTable(file.OpenReadStream(), file.FileName, true);
if (dic.Count > 0)
{
var tb = dic.FirstOrDefault();
var list = new List<sys_table_info>();
var _service = new Services.DataWareHouse.TbConfigServices();
for (var i = 0; i < tb.Value.Rows.Count; i++)
{
var row = tb.Value.Rows[i];
var code = row["编码"].ToString();
var name = row["中文名称"].ToString();
var fieldtype = row["字段类型"].ToString();
var length = row["字段长度"].ToString();
var decimals = row["小数位"].ToString();
var note = row["备注"].ToString();
var type = row["编码类型"].ToString();
if (string.IsNullOrEmpty(code))
{
continue;
}
if (string.IsNullOrEmpty(type))
{
return Json(new {
success = false,
msg = $"第{(i+1)}行的编码类型为空,请填写表或者字段"
});
}
if (type.Trim() == "字段" && (fieldtype.Trim() == "" || length.Trim() == ""))
{
return Json(new
{
success = false,
msg = $"第{(i + 1)}行的字段类型或长度为空,请填写。"
});
}
var n_length = 0;
var n_decimal = 0;
int.TryParse(length, out n_length);
int.TryParse(decimals, out n_decimal);
if (type.Trim() == "字段" && n_length == 0)
{
return Json(new
{
success = false,
msg = $"第{(i + 1)}行的字段长度不能为0。"
});
}
var m = new sys_table_info {
code = code.Trim(),
name = name.Trim(),
fieldtype = fieldtype.Trim(),
length = n_length,
decimals = n_decimal,
note = note.Trim(),
type = type.Trim()=="表"?1:2,
id = 0,
};
list.Add(m);
}
//保存数据
foreach (var item in list)
{
var result = _service.SaveTbConfig(item, (user != null ? user.GetUserName() : ""));
if (!string.IsNullOrEmpty(result))
{
return Json(new {
success= false,
msg = "上传失败,请重试!失败原因:"+result,
});
}
}
return Json(new {
success = true,
msg = "",
});
}
return Json(new {
success = false,
msg = "没有找到表格的内容数据",
});
}
} }
} }
...@@ -35,8 +35,8 @@ ...@@ -35,8 +35,8 @@
<div class="form-group"> <div class="form-group">
<button type="button" class="btn btn-primary" onclick="list();">查询</button> <button type="button" class="btn btn-primary" onclick="list();">查询</button>
<button type="button" class="btn btn-success" onclick="Add();">新增</button> <button type="button" class="btn btn-success" onclick="Add();">新增</button>
<button type="button" class="btn btn-success" onclick="importxls();">导入</button> <button id="btn_Upload" class="btn btn-warning">导入</button>
<button type="button" class="btn btn-warning" onclick="downloadxls();">模版下载</button> <a id="btn_UpdateTemplate" class="btn btn-default" href="@Url.Content("~/templatefile/数据仓库字段配置模版.xlsx")" target="_blank">下载导入模版</a>
</div> </div>
</div> </div>
</form> </form>
...@@ -47,14 +47,52 @@ ...@@ -47,14 +47,52 @@
</div> </div>
</div> </div>
@section css{
<link href="~/js/webuploader-0.1.5/webuploader.css" rel="stylesheet" />
<style>
.webuploader-pick {
position: relative;
display: block;
cursor: pointer;
background: none;
padding: 0px;
color: #fff;
text-align: center;
border-radius: 3px;
overflow: hidden;
}
.webuploader-container {
background-color: cornflowerblue !important;
}
</style>
}
@section scripts{ @section scripts{
<script src="~/js/webuploader-0.1.5/webuploader.min.js"></script>
<script> <script>
var BASE_URL = '@(Url.Content("~/js/webuploader-0.1.5/"))';
var tb; var tb;
$(document).ready(function () { $(document).ready(function () {
var height = document.body.clientHeight; var height = document.body.clientHeight;
$("#roletable").attr("data-height", (height - 170)); $("#roletable").attr("data-height", (height - 170));
list(); list();
uploadfile('btn_Upload',
'@Url.Content("~/DataWareHouse/Config/UploadTbConfig")',
function(result){
if(result.success)
{
alert('上传成功!');
list();
}
else
{
alert(result.msg);
}
});
}) })
function list() { function list() {
...@@ -83,6 +121,33 @@ ...@@ -83,6 +121,33 @@
layer_show('新增库表结构配置', '@Url.Content("~/DataWareHouse/Config/AddTbConfig?id=0")', '90%', '90%'); layer_show('新增库表结构配置', '@Url.Content("~/DataWareHouse/Config/AddTbConfig?id=0")', '90%', '90%');
} }
function uploadfile(id,url,callback)
{
var uploader = new WebUploader.Uploader({
// swf文件路径
swf: BASE_URL + 'Uploader.swf',
// 文件接收服务端。
server: url!=undefined?url:'@Url.Content("~/File/UploadFile")',
// 选择文件的按钮。可选。
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
pick: '#'+id,
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
resize: false,
auto:true
});
uploader.on('uploadSuccess', function (file, response) {
if(callback!=undefined)
{
callback(response);
}
});
uploader.on('uploadError', function (file) {
layer.msg("上传出错");
});
}
</script> </script>
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment