实现主从表结构生成;

提取企业版共用组件AuthForm、AuthTable、AuthSelect;
修复大量已知Bug
This commit is contained in:
yubaolee 2021-09-05 21:37:12 +08:00
parent 4d7af5bedf
commit 3c20deb3df
19 changed files with 2792 additions and 1270 deletions

View File

@ -254,20 +254,20 @@ namespace OpenAuth.App
public void CreateBusiness(CreateBusiReq req)
{
var sysTableInfo = Repository.FirstOrDefault(u => u.Id == req.Id);
var tableColumns = _builderTableColumnApp.Find(req.Id);
var mainColumns = _builderTableColumnApp.Find(req.Id);
if (sysTableInfo == null
|| tableColumns == null
|| tableColumns.Count == 0)
|| mainColumns == null
|| mainColumns.Count == 0)
throw new Exception("未能找到正确的模版信息");
//生成应用层
GenerateApp(sysTableInfo,tableColumns);
//生成应用层
GenerateApp(sysTableInfo, mainColumns);
//生成应用层的请求参数
GenerateAppReq(sysTableInfo, tableColumns);
GenerateAppReq(sysTableInfo, mainColumns);
//生成WebApI接口
GenerateWebApi(sysTableInfo, tableColumns);
GenerateWebApi(sysTableInfo, mainColumns);
}
/// <summary>
@ -286,14 +286,28 @@ namespace OpenAuth.App
CheckExistsModule(sysTableInfo.ModuleCode);
string domainContent = FileHelper.ReadFile(@"Template\\BuildApp.html");
string domainContent = string.Empty;
if (sysTableInfo.IsDynamicHeader) //使用动态头部的模版
{
domainContent = FileHelper.ReadFile(@"Template\\SingleTable\\BuildAppWithDynamicHeader.html");
}
else
{
domainContent = FileHelper.ReadFile(@"Template\\SingleTable\\BuildApp.html");
}
domainContent = domainContent
.Replace("{TableName}", sysTableInfo.TableName)
.Replace("{ModuleCode}", sysTableInfo.ModuleCode)
.Replace("{ModuleName}", sysTableInfo.ModuleName)
.Replace("{ClassName}", sysTableInfo.ClassName)
.Replace("{StartName}", StratName);
if (!string.IsNullOrEmpty(sysTableInfo.ForeignKey))
{ //替换外键模版
var foreignTemplate = $"objs = objs.Where(u => u.{sysTableInfo.ForeignKey} == request.{sysTableInfo.ForeignKey});";
domainContent = domainContent
.Replace("{ForeignKeyTemplate}", foreignTemplate);
}
var primarykey = sysColumns.FirstOrDefault(u => u.IsKey);
if (primarykey == null)
@ -338,6 +352,14 @@ namespace OpenAuth.App
.Replace("{ModuleName}", sysTableInfo.ModuleName)
.Replace("{ClassName}", sysTableInfo.ClassName)
.Replace("{StartName}", StratName);
if (!string.IsNullOrEmpty(sysTableInfo.ForeignKey))
{ //替换外键模版
var foreignTemplate = $" public string {sysTableInfo.ForeignKey} {{ get; set; }}";
domainContent = domainContent
.Replace("{ForeignKeyTemplate}", foreignTemplate);
}
FileHelper.WriteFile(Path.Combine(appRootPath, $"{sysTableInfo.ModuleCode}\\Request"), $"Query{sysTableInfo.ClassName}ListReq.cs",
domainContent);
@ -606,115 +628,93 @@ namespace OpenAuth.App
throw new Exception("请提供vue项目的根目录,如C:\\OpenAuth.Pro\\Client");
}
var sysTableInfo = Repository.FirstOrDefault(u => u.Id == req.Id);
if (!string.IsNullOrEmpty(sysTableInfo.ParentTableId))
{
throw new Exception("子表不能直接生成vue请使用该表对应的父表生成vue或删除该表的父表");
}
var tableColumns = _builderTableColumnApp.Find(req.Id);
if (sysTableInfo == null
|| tableColumns == null
|| tableColumns.Count == 0)
throw new Exception("未能找到正确的模版信息");
var domainContent = FileHelper.ReadFile(@"Template\\BuildVue.html");
StringBuilder dialogStrBuilder = new StringBuilder(); //编辑对话框
StringBuilder tempBuilder = new StringBuilder(); //临时类的默认值属性
var syscolums = tableColumns.OrderByDescending(c => c.Sort).ToList();
string[] eidtTye = new string[] { "select", "selectList", "checkbox" };
if (syscolums.Exists(x => eidtTye.Contains(x.EditType) && string.IsNullOrEmpty(x.DataSource)))
{
throw new Exception($"编辑类型为[{string.Join(',', eidtTye)}]时必须选择数据源");
}
foreach (BuilderTableColumn column in syscolums)
{
if (!column.IsEdit) continue;
tempBuilder.Append($" {column.ColumnName.ToCamelCase()}: ");
dialogStrBuilder.Append($" <el-form-item size=\"small\" :label=\"'{column.Comment}'\" prop=\"{column.ColumnName.ToCamelCase()}\" v-if=\"Object.keys(temp).indexOf('{column.ColumnName.ToCamelCase()}')>=0\">\r\n");
string domainContent = string.Empty;
if (column.EditType == "switch")
//查找是否存在子表额情况
var subTable = Repository.FirstOrDefault(u => u.ParentTableId == req.Id);
if (subTable == null) //如果子表不存在,则用单模版生成
{
if (sysTableInfo.IsDynamicHeader)
{
dialogStrBuilder.Append($" <el-switch v-model=\"temp.{column.ColumnName.ToCamelCase()}\" ></el-switch>\r\n");
tempBuilder.Append($"false, //{column.Comment} \r\n");
domainContent = FileHelper.ReadFile(@"Template\\SingleTable\\BuildVueWithDynamicHeader.html");
}
else if (column.EditType == "date")
{
dialogStrBuilder.Append($" <el-date-picker v-model=\"temp.{column.ColumnName.ToCamelCase()}\" type=\"date\" placeholder=\"选择日期\"> </el-date-picker>\r\n");
tempBuilder.Append($"'', //{column.Comment} \r\n");
}
else if (column.EditType == "datetime")
{
dialogStrBuilder.Append($" <el-date-picker v-model=\"temp.{column.ColumnName.ToCamelCase()}\" type=\"datetime\" placeholder=\"选择日期时间\"> </el-date-picker>\r\n");
tempBuilder.Append($"'', //{column.Comment} \r\n");
}
else if (column.EditType == "decimal") //小数
{
dialogStrBuilder.Append($" <el-input-number v-model=\"temp.{column.ColumnName.ToCamelCase()}\" :min=\"1\" :max=\"100\" ></el-input-number>\r\n");
tempBuilder.Append($"0, //{column.Comment} \r\n");
}
else if (column.EditType =="number") //整数
{
dialogStrBuilder.Append($" <el-input-number v-model=\"temp.{column.ColumnName.ToCamelCase()}\" :min=\"1\" :max=\"100\" ></el-input-number>\r\n");
tempBuilder.Append($"0, //{column.Comment} \r\n");
}
else if (column.EditType =="textarea")
{
dialogStrBuilder.Append($" <el-input type=\"textarea\" :rows=\"3\" v-model=\"temp.{column.ColumnName.ToCamelCase()}\"></el-input>\r\n");
tempBuilder.Append($"'', //{column.Comment} \r\n");
}
else if (column.EditType =="select")
{
var categories = _categoryApp.LoadByTypeId(column.DataSource);
if (categories.IsNullOrEmpty())
{
throw new Exception($"未能找到{column.DataSource}对应的值,请在分类管理里面添加");
}
dialogStrBuilder.Append($" <el-select v-model=\"temp.{column.ColumnName.ToCamelCase()}\" placeholder=\"请选择\">\r\n");
foreach (var category in categories)
{
dialogStrBuilder.Append($" <el-option label=\"{category.Name}\" value=\"{category.DtValue}\"> </el-option>\r\n");
}
dialogStrBuilder.Append(" </el-select>\r\n");
tempBuilder.Append($"'', //{column.Comment} \r\n");
}
else if (column.EditType =="checkbox")
{
var categories = _categoryApp.LoadByTypeId(column.DataSource);
if (categories.IsNullOrEmpty())
{
throw new Exception($"未能找到{column.DataSource}对应的值,请在分类管理里面添加");
}
dialogStrBuilder.Append($" <el-checkbox-group v-model=\"temp.{column.ColumnName.ToCamelCase()}\">\r\n");
foreach (var category in categories)
{
dialogStrBuilder.Append($" <el-checkbox label=\"{category.DtValue}\"></el-checkbox>\r\n");
}
dialogStrBuilder.Append(" </el-checkbox-group>\r\n");
tempBuilder.Append($"[], //{column.Comment} \r\n");
}
else
{
dialogStrBuilder.Append($" <el-input v-model=\"temp.{column.ColumnName.ToCamelCase()}\"></el-input>\r\n");
tempBuilder.Append($"'', //{column.Comment} \r\n");
}
dialogStrBuilder.Append(" </el-form-item>\r\n");
dialogStrBuilder.Append("\r\n");
domainContent = FileHelper.ReadFile(@"Template\\SingleTable\\BuildVue.html");
}
domainContent = domainContent.Replace("{ClassName}", sysTableInfo.ClassName)
.Replace("{TableName}", sysTableInfo.ClassName.ToCamelCase())
.Replace("{HeaderList}", BuilderHeader(tableColumns).ToString());
}
else //如果存在子表,则使用主从表生成
{
var subTableColumns = _builderTableColumnApp.Find(subTable.Id);
if (subTableColumns.Count == 0)
throw new Exception($"未找到子表{subTable.ClassName}的字段定义");
if (sysTableInfo.IsDynamicHeader)
{
domainContent = FileHelper.ReadFile(@"Template\\MultiTable\\BuildVueWithDynamicHeader.html");
}
else
{
domainContent = FileHelper.ReadFile(@"Template\\MultiTable\\BuildVue.html");
}
domainContent = domainContent.Replace("{ParentTableId}", subTable.ForeignKey.ToCamelCase())
.Replace("{FirstTableName}", sysTableInfo.ClassName.ToCamelCase())
.Replace("{SecondTableName}", subTable.ClassName.ToCamelCase())
.Replace("{FirstHeaderList}", BuilderHeader(tableColumns).ToString())
.Replace("{SecondHeaderList}", BuilderHeader(subTableColumns).ToString());
}
tempBuilder.Append(" nothing:'' //代码生成时的占位符,看不顺眼可以删除 \r\n");
domainContent = domainContent.Replace("{ClassName}", sysTableInfo.ClassName)
.Replace("{TableName}", sysTableInfo.ClassName.ToCamelCase())
.Replace("{Temp}", tempBuilder.ToString())
.Replace("{DialogFormItem}", dialogStrBuilder.ToString());
FileHelper.WriteFile(Path.Combine(req.VueProjRootPath, $"src/views/{sysTableInfo.ClassName.ToLower()}s/"),
$"index.vue",
domainContent);
}
/// <summary>
/// 创建vue动态表头
/// </summary>
/// <returns></returns>
private StringBuilder BuilderHeader(List<BuilderTableColumn> tableColumns)
{
StringBuilder headerListBuilder = new StringBuilder(); //临时类的默认值属性
var syscolums = tableColumns.OrderByDescending(c => c.Sort).ToList();
//string[] eidtTye = new string[] { "select", "selectList", "checkbox" };
//if (syscolums.Exists(x => eidtTye.Contains(x.EditType) && string.IsNullOrEmpty(x.DataSource)))
//{
// throw new Exception($"编辑类型为[{string.Join(',', eidtTye)}]时必须选择数据源");
//}
foreach (BuilderTableColumn column in syscolums)
{
headerListBuilder.Append(
$" new ColumnDefine('{column.ColumnName.ToCamelCase()}', '{column.Comment}', {column.IsEdit}, {column.IsList}, '{column.EditType}', '{column.DataSource}', '{column.EntityType}', '{column.ColumnType}', '{column.EntityName}'),");
}
return headerListBuilder;
}
/// <summary>
/// 创建vue接口
/// </summary>
@ -740,6 +740,24 @@ namespace OpenAuth.App
FileHelper.WriteFile(Path.Combine(req.VueProjRootPath, $"src/api/"),$"{sysTableInfo.ClassName.ToCamelCase()}s.js",
domainContent);
}
/// <summary>
/// 加载所有的主表parentId为空的
/// </summary>
/// <returns></returns>
public async Task<TableData> AllMain()
{
var result = new TableData();
var objs = UnitWork.Find<BuilderTable>(u =>string.IsNullOrEmpty(u.ParentTableId)).Select(u=>new
{
Id= u.Id,
Name = u.TableName
});
result.data = objs.OrderBy(u => u.Id).ToList();
result.count = objs.Count();
return result;
}
}
}

View File

@ -33,9 +33,18 @@ namespace OpenAuth.App
public void Update(AddOrUpdateResReq obj)
{
var user = _auth.GetCurrentUser().User;
UnitWork.Update<Category>(u => u.Id == obj.Id, u => new Category
UnitWork.Update<Resource>(u => u.Id == obj.Id, u => new Resource
{
Name = obj.Name,
Disable = obj.Disable,
CascadeId = obj.CascadeId,
AppId = obj.AppId,
AppName = obj.AppName,
ParentId = obj.ParentId,
ParentName = obj.ParentName,
TypeId = obj.TypeId,
TypeName = obj.TypeName,
Description = obj.Description,
UpdateTime = DateTime.Now,
UpdateUserId = user.Id,
UpdateUserName = user.Name
@ -57,11 +66,10 @@ namespace OpenAuth.App
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
}
var properties = loginContext.GetProperties("Resource");
if (properties == null || properties.Count == 0)
var columnFields = loginContext.GetTableColumns("Resource");
if (columnFields == null || columnFields.Count == 0)
{
throw new Exception("当前登录用户没有访问该模块字段的权限,请联系管理员配置");
throw new Exception("请在代码生成界面配置Resource表的字段属性");
}
@ -77,8 +85,8 @@ namespace OpenAuth.App
resources = resources.Where(u => u.AppId == request.appId);
}
var propertyStr = string.Join(',', properties.Select(u => u.Key));
result.columnHeaders = properties;
var propertyStr = string.Join(',', columnFields.Select(u => u.ColumnName));
result.columnFields = columnFields;
result.data = resources.OrderBy(u => u.TypeId)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).Select($"new ({propertyStr})");

View File

@ -28,11 +28,6 @@ namespace OpenAuth.App
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
}
var properties = loginContext.GetProperties("WmsInboundOrderTbl");
if (properties == null || properties.Count == 0)
{
throw new Exception("当前登录用户没有访问该模块字段的权限,请联系管理员配置");
}
var columns = loginContext.GetTableColumns("WmsInboundOrderTbl");
if (columns == null || columns.Count == 0)
@ -42,7 +37,6 @@ namespace OpenAuth.App
var result = new TableData();
result.columnHeaders = properties;
result.columnFields = columns;
var objs = GetDataPrivilege("u");
@ -50,7 +44,7 @@ namespace OpenAuth.App
{
objs = objs.Where(u => u.Id.Contains(request.key));
}
var propertyStr = string.Join(',', properties.Select(u => u.Key));
var propertyStr = string.Join(',', columns.Select(u => u.ColumnName));
result.data = objs.OrderBy(u => u.Id)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).Select($"new ({propertyStr})");

View File

@ -68,6 +68,6 @@
</div>
<script type="text/javascript" src="/layui/layui.js"></script>
<script type="text/javascript" src="/userJs/resources.js?v=1.5.1"></script>
<script type="text/javascript" src="/userJs/resources.js?v=3.2.1"></script>

View File

@ -147,6 +147,6 @@
</div>
<script type="text/javascript" src="/layui/layui.js"></script>
<script type="text/javascript" src="/userJs/wmsinboundordertbls.js?v2.0.0"></script>
<script type="text/javascript" src="/userJs/wmsinboundordertbls.js?v3.2.1"></script>

View File

@ -15,10 +15,10 @@
$.getJSON('/Resources/Load',
{ page: 1, limit: 1 },
function (data) {
var columns = data.columnHeaders.filter(u =>u.Browsable ===true).map(function (e) {
var columns = data.columnFields.filter(u => u.IsList ===true).map(function (e) {
return {
field: e.Key,
title: e.Description
field: e.ColumnName,
title: e.Comment
};
});
columns.unshift({

View File

@ -15,12 +15,12 @@
$.getJSON('/WmsInboundOrderTbls/Load',
{ page: 1, limit: 1 },
function (data) {
var columns = data.columnHeaders.filter(u =>u.Browsable ===true).map(function (e) {
return {
field: e.Key,
title: e.Description
};
});
var columns = data.columnFields.filter(u => u.IsList === true).map(function (e) {
return {
field: e.ColumnName,
title: e.Comment
};
});
columns.unshift({
type: 'checkbox',
fixed: 'left'

View File

@ -73,6 +73,15 @@ namespace OpenAuth.WebApi.Controllers
{
return await _app.Load(request);
}
/// <summary>
/// 加载所有的主表parentId为空的
/// </summary>
[HttpGet]
public async Task<TableData> AllMain()
{
return await _app.AllMain();
}
/// <summary>
/// 批量删除代码生成模版和对应的字段信息

View File

@ -14,6 +14,7 @@ namespace OpenAuth.WebApi.Controllers
/// </summary>
[Route("api/[controller]/[action]")]
[ApiController]
[ApiExplorerSettings(GroupName = "{ModuleName}接口_{ClassName}s")]
public class {ClassName}sController : ControllerBase
{
private readonly {ModuleCode} _app;

View File

@ -2,6 +2,6 @@
{
public class Query{ClassName}ListReq : PageReq
{
{ForeignKeyTemplate}
}
}

View File

@ -1,256 +0,0 @@
<template>
<div class="flex-column">
<sticky :className="'sub-navbar'">
<div class="filter-container">
<el-input @keyup.enter.native="handleFilter" size="mini" style="width: 200px;" class="filter-item" :placeholder="'搜索关键字'" v-model="listQuery.key">
</el-input>
<el-button class="filter-item" size="mini" v-waves icon="el-icon-search" @click="handleFilter">搜索</el-button>
<permission-btn moduleName='{TableName}s' size="mini" v-on:btn-event="onBtnClicked"></permission-btn>
</div>
</sticky>
<div class="app-container flex-item">
<div class="bg-white" style="height: 100%;">
<el-table ref="mainTable" height="calc(100% - 52px)" :key='tableKey' :data="list" v-loading="listLoading" border fit highlight-current-row
style="width: 100%;" @row-click="rowClick" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="55"></el-table-column>
<template v-for="(headerItem,index) in headerList">
<el-table-column :label="headerItem.description" min-width="120px" :key="index">
<template slot-scope="scope">
<span>{{scope.row[headerItem.key]}}</span>
</template>
</el-table-column>
</template>
<el-table-column align="center" :label="'操作'" width="230" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button>
<el-button v-if="scope.row.disable!=true" size="mini" type="danger" @click="handleModifyStatus(scope.row,true)">停用</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="handleCurrentChange" />
</div>
<el-dialog v-el-drag-dialog class="dialog-mini" width="500px" :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
<el-form :rules="rules" ref="dataForm" :model="temp" label-position="right" label-width="100px">
{DialogFormItem}
</el-form>
<div slot="footer" >
<el-button size="mini" @click="dialogFormVisible = false">取消</el-button>
<el-button size="mini" v-if="dialogStatus=='create'" type="primary" @click="createData">确认</el-button>
<el-button size="mini" v-else type="primary" @click="updateData">确认</el-button>
</div>
</el-dialog>
</div>
</div>
</template>
<script>
import * as {TableName}s from '@/api/{TableName}s'
import waves from '@/directive/waves' // 水波纹指令
import Sticky from '@/components/Sticky'
import permissionBtn from '@/components/PermissionBtn'
import Pagination from '@/components/Pagination'
import elDragDialog from '@/directive/el-dragDialog'
import extend from "@/extensions/delRows.js"
export default {
name: '{TableName}',
components: { Sticky, permissionBtn, Pagination },
mixins: [extend],
directives: {
waves,
elDragDialog
},
data() {
return {
multipleSelection: [], // 列表checkbox选中的值
tableKey: 0,
list: null,
total: 0,
listLoading: true,
listQuery: { // 查询条件
page: 1,
limit: 20,
key: undefined,
appId: undefined
},
statusOptions: [
{ key: true, display_name: '停用' },
{ key: false, display_name: '正常' }
],
temp: {
{Temp}
},
dialogFormVisible: false,
dialogStatus: '',
textMap: {
update: '编辑',
create: '添加'
},
dialogPvVisible: false,
pvData: [],
rules: {
name: [{ required: true, message: '名称不能为空', trigger: 'blur' }]
},
downloadLoading: false,
headerList: []
}
},
filters: {
statusFilter(disable) {
const statusMap = {
false: 'color-success',
true: 'color-danger'
}
return statusMap[disable]
}
},
created() {
this.getList()
},
methods: {
rowClick(row) {
this.$refs.mainTable.clearSelection()
this.$refs.mainTable.toggleRowSelection(row)
},
handleSelectionChange(val) {
this.multipleSelection = val
},
onBtnClicked: function(domId) {
console.log('you click:' + domId)
switch (domId) {
case 'btnAdd':
this.handleCreate()
break
case 'btnEdit':
if (this.multipleSelection.length !== 1) {
this.$message({
message: '只能选中一个进行编辑',
type: 'error'
})
return
}
this.handleUpdate(this.multipleSelection[0])
break
case 'btnDel':
if (this.multipleSelection.length < 1) {
this.$message({
message: '至少删除一个',
type: 'error'
})
return
}
this.handleDelete(this.multipleSelection)
break
default:
break
}
},
getList() {
this.listLoading = true
{TableName}s.getList(this.listQuery).then(response => {
this.list = response.data
response.columnHeaders.forEach((item) => {
item.key = item.key.substring(0, 1).toLowerCase() + item.key.substring(1)
})
this.headerList = response.columnHeaders.filter(u => u.browsable)
this.total = response.count
this.listLoading = false
})
},
handleFilter() {
this.listQuery.page = 1
this.getList()
},
handleSizeChange(val) {
this.listQuery.limit = val
this.getList()
},
handleCurrentChange(val) {
this.listQuery.page = val.page
this.listQuery.limit = val.limit
this.getList()
},
handleModifyStatus(row, disable) { // 模拟修改状态
this.$message({
message: '操作成功',
type: 'success'
})
row.disable = disable
},
resetTemp() {
this.temp = {
{Temp}
}
},
handleCreate() { // 弹出添加框
this.resetTemp()
this.dialogStatus = 'create'
this.dialogFormVisible = true
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
},
createData() { // 保存提交
this.$refs['dataForm'].validate((valid) => {
if (valid) {
{TableName}s.add(this.temp).then(() => {
this.list.unshift(this.temp)
this.dialogFormVisible = false
this.$notify({
title: '成功',
message: '创建成功',
type: 'success',
duration: 2000
})
})
}
})
},
handleUpdate(row) { // 弹出编辑框
this.temp = Object.assign({}, row) // copy obj
this.dialogStatus = 'update'
this.dialogFormVisible = true
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
},
updateData() { // 更新提交
this.$refs['dataForm'].validate((valid) => {
if (valid) {
const tempData = Object.assign({}, this.temp)
{TableName}s.update(tempData).then(() => {
for (const v of this.list) {
if (v.id === this.temp.id) {
const index = this.list.indexOf(v)
this.list.splice(index, 1, this.temp)
break
}
}
this.dialogFormVisible = false
this.$notify({
title: '成功',
message: '更新成功',
type: 'success',
duration: 2000
})
})
}
})
},
handleDelete(rows) { // 多行删除
this.delrows({TableName}s, rows)
}
}
}
</script>
<style>
.dialog-mini .el-select{
width:100%;
}
</style>

View File

@ -0,0 +1,414 @@
<!--
* @description: 入库订单界面
* @author: liyubao | xufuxing
* @version: 1.0
* @updateDate: 代码生成器自动生成
-->
<template>
<div class="flex-column">
<sticky :className="'sub-navbar'">
<div class="filter-container">
<el-input @keyup.enter.native="handleFilter" size="mini" style="width: 200px;" class="filter-item" :placeholder="'名称'" v-model="firstQuery.key"> </el-input>
<el-button class="filter-item" size="mini" v-waves icon="el-icon-search" @click="handleFilter">搜索</el-button>
<permission-btn size="mini" v-on:btn-event="onBtnClicked"></permission-btn>
</div>
</sticky>
<div class="app-container flex-item flex-column">
<div class="flex-item">
<el-card shadow="nerver" class="demo-card fh">
<auth-table style="height:calc(100% - 52px)" ref="mainTable" :select-type="'radio'" :table-fields="firstHeaderList" :data="mainList" :v-loading="listLoading" @row-click="rowClickFirstTable"></auth-table>
<pagination v-show="firstTotal > 0" :total="firstTotal" :page.sync="firstQuery.page" :limit.sync="firstQuery.limit" @pagination="handleCurrentChange" />
</el-card>
</div>
<el-row class="flex-item">
<el-col :span="showTitleDialog ? 12 : 0" class="fh form-card">
<el-card shadow="nerver" class="demo-card fh">
<div slot="header">
<span v-if="radio == ''">头信息</span>
<span v-else>{{ radio }}头信息</span>
</div>
<auth-form ref="dataForm" :edit-model="editModel" :form-fields="firstHeaderList" :data="firstTemp" :col-num="3"></auth-form>
</el-card>
</el-col>
<!-- 第二部分多选 -->
<el-col :span="!showTitleDialog ? 24 : 12" class="fh detail-card">
<el-card shadow="nerver" class="demo-card fh" id="secondCard">
<div slot="header">
<i class="show-title-button" :class="showTitleDialog ? 'el-icon-d-arrow-left' : 'el-icon-d-arrow-right'" :title="showTitleDialog ? '展开' : '收缩'" @click="showTitleDialog = !showTitleDialog"></i>
<span v-if="radio == ''">明细</span>
<span v-else>{{ radio }}明细</span>
<div class="edit-buttons">
<el-button v-if="editModel" class="filter-item edit-button" size="mini" v-waves icon="el-icon-plus" @click="onBtnClicked('btnAddDetail')">添加</el-button>
<el-button v-if="editModel" class="filter-item edit-button delete-button" size="mini" v-waves icon="el-icon-delete" @click="onBtnClicked('btnDelDetail')">删除</el-button>
</div>
</div>
<auth-table style="height:calc(100% - 52px - 34px)" ref="secondTable" border :editModel="editModel" :table-fields="secondHeaderList" :data="secondList" @row-click="rowClickSecondTable" @selection-change="selChangeSecondTable"></auth-table>
<pagination v-show="secondTotal > 0" :total="secondTotal" :page.sync="secondQuery.page" :limit.sync="secondQuery.limit" @pagination="handleSecondPage" />
</el-card>
</el-col>
</el-row>
<el-card shadow="nerver" v-if="editModel" style="text-align: right;padding-bottom: 10px;">
<el-row>
<el-col :span="24"
><el-button size="mini" @click="editModel = false">取消</el-button>
<el-button size="mini" v-if="dialogStatus == 'create'" type="primary" @click="createData">确认</el-button>
<el-button size="mini" v-else type="primary" @click="updateData">确认</el-button></el-col
>
</el-row>
</el-card>
</div>
</div>
</template>
<script>
import * as {FirstTableName}s from '@/api/{FirstTableName}s'
import * as {SecondTableName}s from '@/api/{SecondTableName}s'
import waves from '@/directive/waves' // 水波纹指令
import Sticky from '@/components/Sticky'
import { mapGetters } from 'vuex'
import permissionBtn from '@/components/PermissionBtn'
import Pagination from '@/components/Pagination'
import elDragDialog from '@/directive/el-dragDialog'
import { parseTime, defaultVal } from '@/utils/index'
import AuthForm from '@/components/Base/AuthForm'
import AuthTable from '@/components/Base/AuthTable'
export default {
name: '{FirstTableName}',
components: {
Sticky,
permissionBtn,
Pagination,
AuthForm,
AuthTable
},
directives: {
waves,
elDragDialog
},
data() {
return {
// ------------------------主列表数据(头)-----------------------------
firstHeaderList: [], // 主列表列定义
radio: '', // 主列表选中项
firstQuery: {
// 主列表查询条件
page: 1,
limit: 20,
key: undefined,
appId: undefined
},
mainList: null, // 主列表值
firstTotal: 0, // 主列表总条数
listLoading: true, // 主列表记录总数
tableKey: 0,
showTitleDialog: true,
editModel: false, // 是否为编辑模式
editType: 'edit', // 编辑类型
dialogStatus: '', // 主修改对话框状态create/update
selectRow: {},
firstTemp: {}, // 当前选中的头信息
// ------------------------明细列表数据-------------------------------------
secondHeaderList: [], // 明细列表列定义
secondList: [], // 明细列表值
secondQuery: {}, // 明细列表的过滤条件,如页码、每页条数,搜索关键字等
secondTotal: 0, // 明细列表总条数
multipleSelection: [], // 明细列表checkbox选中的值,
// ------------------------通用数据项-------------------------------------
textMap: {
update: '编辑',
create: '添加'
}
}
},
computed: {
...mapGetters(['defaultorgid'])
},
created() {
this.firstHeaderList = [
{FirstHeaderList}
]
this.secondHeaderList = [
{SecondHeaderList}
]
this.getList()
},
methods: {
// ------------------------通用处理函数-------------------------------------
onBtnClicked: function(domId, callback) {
console.log('you click:' + domId)
switch (domId) {
case 'btnAdd': // 添加新记录
this.resetFirstTemp()
this.secondList = []
this.dialogStatus = 'create'
this.editModel = true
this.editType = 'add'
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
break
case 'btnEdit': // 编辑头
this.firstTemp = Object.assign({}, this.selectRow)
if (this.firstTemp.id === '') {
this.editModel = false
this.$message({
message: '请选择要修改的项',
type: 'error'
})
return
}
this.dialogStatus = 'update'
this.editModel = true
this.editType = 'edit'
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
break
case 'btnDel': // 删除主表
if (this.firstTemp.id === '') {
this.$message({
message: '请选择要删除的项',
type: 'error'
})
return
}
this.handleFirstDel(this.firstTemp)
break
case 'btnAddDetail': // 添加明细行
this.handleAddOrderDetail()
break
case 'btnDelDetail': // 删除明细行
if (this.multipleSelection.length < 1) {
this.$message({
message: '至少删除一个',
type: 'error'
})
return
}
this.handleSecondDel(this.multipleSelection)
break
case 'btnExport':
this.$refs.mainTable.exportExcel(`订单${parseTime(new Date())}`, callback)
break
default:
break
}
},
// ------------------------主数据列表处理------------------------------------
getList() {
this.listLoading = true
{FirstTableName}s.getList(this.firstQuery).then((response) => {
this.mainList = response.data
this.firstTotal = response.count
if (this.firstTotal > 0) {
this.rowClickFirstTable(this.mainList[0])
}
this.listLoading = false
})
},
rowClickFirstTable(row) {
// 点击行
this.radio = row.id
this.secondQuery.page = 1
this.secondQuery.limit = 10
this.querySecondList(this.radio)
this.showTitleDetail(row)
},
handleFilter() {
this.firstQuery.page = 1
this.getList()
},
handleSizeChange(val) {
this.firstQuery.limit = val
this.getList()
},
handleCurrentChange(val) {
this.firstQuery.page = val.page
this.firstQuery.limit = val.limit
this.getList()
},
resetFirstTemp() {
this.firstHeaderList.forEach((item) => {
this.firstTemp[item.columnName] = defaultVal(item.entityType)
})
},
createData() {
// 保存提交
this.$refs['dataForm'].validate(() => {
let tempData = Object.assign({}, this.firstTemp)
tempData = this.setDetails(tempData)
tempData.OrgId = this.defaultorgid
{FirstTableName}s.add(tempData).then(() => {
this.mainList.unshift(this.firstTemp)
this.editModel = false
this.$notify({
title: '成功',
message: '创建成功',
type: 'success',
duration: 2000
})
})
})
},
showTitleDetail(row) {
// 弹出编辑框
this.selectRow = Object.assign({}, row) // 新增订单时保存当前选中行
this.firstTemp = Object.assign({}, row) // copy obj
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
},
setDetails(tempData) {
// 处理明细
tempData.{SecondTableName}Reqs = []
this.secondList.length > 0 &&
this.secondList.forEach((item) => {
const obj = {}
this.secondHeaderList.forEach((header) => {
obj[header.columnName] = item[header.columnName] || defaultVal(header.entityType)
})
tempData.{SecondTableName}Reqs.push(obj)
})
return tempData
},
updateData() {
// 更新提交
this.$refs['dataForm'].validate(() => {
let tempData = Object.assign({}, this.firstTemp)
tempData = this.setDetails(tempData)
{FirstTableName}s.update(tempData).then(() => {
for (const v of this.mainList) {
if (v.id === this.firstTemp.id) {
const index = this.mainList.indexOf(v)
this.mainList.splice(index, 1, this.firstTemp)
break
}
}
this.editModel = false
this.$notify({
title: '成功',
message: '更新成功',
type: 'success',
duration: 2000
})
})
})
},
handleFirstDel(row) {
// 删除头
{FirstTableName}s.del([row.id]).then(() => {
this.$notify({
title: '成功',
message: '删除成功',
type: 'success',
duration: 2000
})
this.mainList = this.mainList.filter((item) => item.id !== row.id)
this.resetFirstTemp()
this.secondList = []
})
},
// ------------------------明细列表处理-------------------------------------
handleSecondPage(e) {
this.secondQuery = e
this.querySecondList(this.radio)
},
querySecondList(id) {
{SecondTableName}s
.getList({
{ParentTableId}: id,
page: this.secondQuery.page,
limit: this.secondQuery.limit,
key: this.secondQuery.customerKey
})
.then((res) => {
this.secondTotal = res.count
this.secondList = res.data
})
},
rowClickSecondTable(row) {
// 行点击事件
this.$refs.secondTable.clearSelection()
this.$refs.secondTable.toggleRowSelection(row)
},
handleSecondDel(rows) {
// 删除明细时,只删除前端
rows.forEach((row) => {
this.secondList = this.secondList.filter((item) => item.id !== row.id)
})
},
selChangeSecondTable(val) {
// 明细选中事件
this.multipleSelection = val
},
handleAddOrderDetail() {
// 添加明细
const obj = {}
this.secondHeaderList.forEach((header) => {
obj[header.columnName] = defaultVal(header.entityType)
})
obj.{ParentTableId} = this.firstTemp.id
this.secondList.push(Object.assign({}, obj))
}
}
}
</script>
<style lang="scss">
.nomal-form label {
font-weight: 500 !important;
}
.demo-card .el-card__header {
padding: 10px !important;
line-height: 1;
position: relative;
}
.el-card__body {
padding: 10px 10px 0 10px !important;
height: 100%;
}
.form-card .el-card__body {
padding-right: 0 !important;
}
.form-card .el-form {
padding-right: 5px;
}
.dialog-small .el-dialog__header {
padding: 10px;
border-bottom: 1px solid #efefef;
}
.dialog-small .el-dialog__headerbtn {
top: 15px;
}
.dialog-small .el-dialog__body {
padding: 10px;
}
.el-form-item__error {
padding-top: 0;
}
.edit-buttons {
position: absolute !important;
top: 2px;
right: 10px;
}
</style>

View File

@ -0,0 +1,416 @@
<!--
* @description: 入库订单界面
* @author: liyubao | xufuxing
* @version: 1.0
* @updateDate: 代码生成器自动生成
-->
<template>
<div class="flex-column">
<sticky :className="'sub-navbar'">
<div class="filter-container">
<el-input @keyup.enter.native="handleFilter" size="mini" style="width: 200px;" class="filter-item" :placeholder="'名称'" v-model="firstQuery.key"> </el-input>
<el-button class="filter-item" size="mini" v-waves icon="el-icon-search" @click="handleFilter">搜索</el-button>
<permission-btn size="mini" v-on:btn-event="onBtnClicked"></permission-btn>
</div>
</sticky>
<div class="app-container flex-item flex-column">
<div class="flex-item">
<el-card shadow="nerver" class="demo-card fh">
<auth-table style="height:calc(100% - 52px)" ref="mainTable" :select-type="'radio'" :table-fields="firstHeaderList" :data="mainList" :v-loading="listLoading" @row-click="rowClickFirstTable"></auth-table>
<pagination v-show="firstTotal > 0" :total="firstTotal" :page.sync="firstQuery.page" :limit.sync="firstQuery.limit" @pagination="handleCurrentChange" />
</el-card>
</div>
<el-row class="flex-item">
<el-col :span="showTitleDialog ? 12 : 0" class="fh form-card">
<el-card shadow="nerver" class="demo-card fh">
<div slot="header">
<span v-if="radio == ''">头信息</span>
<span v-else>{{ radio }}头信息</span>
</div>
<auth-form ref="dataForm" :edit-model="editModel" :form-fields="firstHeaderList" :data="firstTemp" :col-num="3"></auth-form>
</el-card>
</el-col>
<!-- 第二部分多选 -->
<el-col :span="!showTitleDialog ? 24 : 12" class="fh detail-card">
<el-card shadow="nerver" class="demo-card fh" id="secondCard">
<div slot="header">
<i class="show-title-button" :class="showTitleDialog ? 'el-icon-d-arrow-left' : 'el-icon-d-arrow-right'" :title="showTitleDialog ? '展开' : '收缩'" @click="showTitleDialog = !showTitleDialog"></i>
<span v-if="radio == ''">明细</span>
<span v-else>{{ radio }}明细</span>
<div class="edit-buttons">
<el-button v-if="editModel" class="filter-item edit-button" size="mini" v-waves icon="el-icon-plus" @click="onBtnClicked('btnAddDetail')">添加</el-button>
<el-button v-if="editModel" class="filter-item edit-button delete-button" size="mini" v-waves icon="el-icon-delete" @click="onBtnClicked('btnDelDetail')">删除</el-button>
</div>
</div>
<auth-table style="height:calc(100% - 52px - 34px)" ref="secondTable" border :editModel="editModel" :table-fields="secondHeaderList" :data="secondList" @row-click="rowClickSecondTable" @selection-change="selChangeSecondTable"></auth-table>
<pagination v-show="secondTotal > 0" :total="secondTotal" :page.sync="secondQuery.page" :limit.sync="secondQuery.limit" @pagination="handleSecondPage" />
</el-card>
</el-col>
</el-row>
<el-card shadow="nerver" v-if="editModel" style="text-align: right;padding-bottom: 10px;">
<el-row>
<el-col :span="24"
><el-button size="mini" @click="editModel = false">取消</el-button>
<el-button size="mini" v-if="dialogStatus == 'create'" type="primary" @click="createData">确认</el-button>
<el-button size="mini" v-else type="primary" @click="updateData">确认</el-button></el-col
>
</el-row>
</el-card>
</div>
</div>
</template>
<script>
import * as {FirstTableName}s from '@/api/{FirstTableName}s'
import * as {SecondTableName}s from '@/api/{SecondTableName}s'
import waves from '@/directive/waves' // 水波纹指令
import Sticky from '@/components/Sticky'
import { mapGetters } from 'vuex'
import permissionBtn from '@/components/PermissionBtn'
import Pagination from '@/components/Pagination'
import elDragDialog from '@/directive/el-dragDialog'
import { parseTime, defaultVal } from '@/utils/index'
import AuthForm from '@/components/Base/AuthForm'
import AuthTable from '@/components/Base/AuthTable'
export default {
name: '{FirstTableName}',
components: {
Sticky,
permissionBtn,
Pagination,
AuthForm,
AuthTable
},
directives: {
waves,
elDragDialog
},
data() {
return {
// ------------------------主列表数据(头)-----------------------------
firstHeaderList: [], // 主列表列定义
radio: '', // 主列表选中项
firstQuery: {
// 主列表查询条件
page: 1,
limit: 20,
key: undefined,
appId: undefined
},
mainList: null, // 主列表值
firstTotal: 0, // 主列表总条数
listLoading: true, // 主列表记录总数
tableKey: 0,
showTitleDialog: true,
editModel: false, // 是否为编辑模式
editType: 'edit', // 编辑类型
dialogStatus: '', // 主修改对话框状态create/update
selectRow: {},
firstTemp: {}, // 当前选中的头信息
// ------------------------明细列表数据-------------------------------------
secondHeaderList: [], // 明细列表列定义
secondList: [], // 明细列表值
secondQuery: {}, // 明细列表的过滤条件,如页码、每页条数,搜索关键字等
secondTotal: 0, // 明细列表总条数
multipleSelection: [], // 明细列表checkbox选中的值,
// ------------------------通用数据项-------------------------------------
textMap: {
update: '编辑',
create: '添加'
}
}
},
computed: {
...mapGetters(['defaultorgid'])
},
created() {
this.getList()
},
methods: {
// ------------------------通用处理函数-------------------------------------
onBtnClicked: function(domId, callback) {
console.log('you click:' + domId)
switch (domId) {
case 'btnAdd': // 添加新记录
this.resetFirstTemp()
this.secondList = []
this.dialogStatus = 'create'
this.editModel = true
this.editType = 'add'
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
break
case 'btnEdit': // 编辑头
this.firstTemp = Object.assign({}, this.selectRow)
if (this.firstTemp.id === '') {
this.editModel = false
this.$message({
message: '请选择要修改的项',
type: 'error'
})
return
}
this.dialogStatus = 'update'
this.editModel = true
this.editType = 'edit'
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
break
case 'btnDel': // 删除主表
if (this.firstTemp.id === '') {
this.$message({
message: '请选择要删除的项',
type: 'error'
})
return
}
this.handleFirstDel(this.firstTemp)
break
case 'btnAddDetail': // 添加明细行
this.handleAddOrderDetail()
break
case 'btnDelDetail': // 删除明细行
if (this.multipleSelection.length < 1) {
this.$message({
message: '至少删除一个',
type: 'error'
})
return
}
this.handleSecondDel(this.multipleSelection)
break
case 'btnExport':
this.$refs.mainTable.exportExcel(`订单${parseTime(new Date())}`, callback)
break
default:
break
}
},
// ------------------------主数据列表处理------------------------------------
getList() {
this.listLoading = true
{FirstTableName}s.getList(this.firstQuery).then((response) => {
response.columnFields.forEach((item) => {
// 首字母小写
item.columnName = item.columnName.substring(0, 1).toLowerCase() + item.columnName.substring(1)
})
this.firstHeaderList = response.columnFields
this.mainList = response.data
this.firstTotal = response.count
if (this.firstTotal > 0) {
this.rowClickFirstTable(this.mainList[0])
}
this.listLoading = false
})
},
rowClickFirstTable(row) {
// 点击行
this.radio = row.id
this.secondQuery.page = 1
this.secondQuery.limit = 10
this.querySecondList(this.radio)
this.showTitleDetail(row)
},
handleFilter() {
this.firstQuery.page = 1
this.getList()
},
handleSizeChange(val) {
this.firstQuery.limit = val
this.getList()
},
handleCurrentChange(val) {
this.firstQuery.page = val.page
this.firstQuery.limit = val.limit
this.getList()
},
resetFirstTemp() {
this.firstHeaderList.forEach((item) => {
this.firstTemp[item.columnName] = defaultVal(item.entityType)
})
},
createData() {
// 保存提交
this.$refs['dataForm'].validate(() => {
let tempData = Object.assign({}, this.firstTemp)
tempData = this.setDetails(tempData)
tempData.OrgId = this.defaultorgid
{FirstTableName}s.add(tempData).then(() => {
this.mainList.unshift(this.firstTemp)
this.editModel = false
this.$notify({
title: '成功',
message: '创建成功',
type: 'success',
duration: 2000
})
})
})
},
showTitleDetail(row) {
// 弹出编辑框
this.selectRow = Object.assign({}, row) // 新增订单时保存当前选中行
this.firstTemp = Object.assign({}, row) // copy obj
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
},
setDetails(tempData) {
// 处理明细
tempData.{SecondTableName}Reqs = []
this.secondList.length > 0 &&
this.secondList.forEach((item) => {
const obj = {}
this.secondHeaderList.forEach((header) => {
obj[header.columnName] = item[header.columnName] || defaultVal(header.entityType)
})
tempData.{SecondTableName}Reqs.push(obj)
})
return tempData
},
updateData() {
// 更新提交
this.$refs['dataForm'].validate(() => {
let tempData = Object.assign({}, this.firstTemp)
tempData = this.setDetails(tempData)
{FirstTableName}s.update(tempData).then(() => {
for (const v of this.mainList) {
if (v.id === this.firstTemp.id) {
const index = this.mainList.indexOf(v)
this.mainList.splice(index, 1, this.firstTemp)
break
}
}
this.editModel = false
this.$notify({
title: '成功',
message: '更新成功',
type: 'success',
duration: 2000
})
})
})
},
handleFirstDel(row) {
// 删除头
{FirstTableName}s.del([row.id]).then(() => {
this.$notify({
title: '成功',
message: '删除成功',
type: 'success',
duration: 2000
})
this.mainList = this.mainList.filter((item) => item.id !== row.id)
this.resetFirstTemp()
this.secondList = []
})
},
// ------------------------明细列表处理-------------------------------------
handleSecondPage(e) {
this.secondQuery = e
this.querySecondList(this.radio)
},
querySecondList(id) {
{SecondTableName}s
.getList({
{ParentTableId}: id,
page: this.secondQuery.page,
limit: this.secondQuery.limit,
key: this.secondQuery.customerKey
})
.then((res) => {
res.columnFields.forEach((item) => {
// 首字母小写
item.columnName = item.columnName.substring(0, 1).toLowerCase() + item.columnName.substring(1)
})
this.secondHeaderList = res.columnFields
this.secondTotal = res.count
this.secondList = res.data
})
},
rowClickSecondTable(row) {
// 行点击事件
this.$refs.secondTable.clearSelection()
this.$refs.secondTable.toggleRowSelection(row)
},
handleSecondDel(rows) {
// 删除明细时,只删除前端
rows.forEach((row) => {
this.secondList = this.secondList.filter((item) => item.id !== row.id)
})
},
selChangeSecondTable(val) {
// 明细选中事件
this.multipleSelection = val
},
handleAddOrderDetail() {
// 添加明细
const obj = {}
this.secondHeaderList.forEach((header) => {
obj[header.columnName] = defaultVal(header.entityType)
})
obj.{ParentTableId} = this.firstTemp.id
this.secondList.push(Object.assign({}, obj))
}
}
}
</script>
<style lang="scss">
.nomal-form label {
font-weight: 500 !important;
}
.demo-card .el-card__header {
padding: 10px !important;
line-height: 1;
position: relative;
}
.el-card__body {
padding: 10px 10px 0 10px !important;
height: 100%;
}
.form-card .el-card__body {
padding-right: 0 !important;
}
.form-card .el-form {
padding-right: 5px;
}
.dialog-small .el-dialog__header {
padding: 10px;
border-bottom: 1px solid #efefef;
}
.dialog-small .el-dialog__headerbtn {
top: 15px;
}
.dialog-small .el-dialog__body {
padding: 10px;
}
.el-form-item__error {
padding-top: 0;
}
.edit-buttons {
position: absolute !important;
top: 2px;
right: 10px;
}
</style>

View File

@ -0,0 +1,68 @@
using System;
using System.Linq;
using System.Threading.Tasks;
using Infrastructure;
using OpenAuth.App.Interface;
using OpenAuth.App.Request;
using OpenAuth.App.Response;
using OpenAuth.Repository;
using OpenAuth.Repository.Domain;
using OpenAuth.Repository.Interface;
namespace OpenAuth.App
{
public class {ModuleCode} : {BaseAppName}<{ClassName},OpenAuthDBContext>
{
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(Query{ClassName}ListReq request)
{
var loginContext = _auth.GetCurrentUser();
if (loginContext == null)
{
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
}
var result = new TableData();
var objs = GetDataPrivilege("u");
if (!string.IsNullOrEmpty(request.key))
{
//增加筛选条件,如:
//objs = objs.Where(u => u.Name.Contains(request.key));
}
{ForeignKeyTemplate}
result.data = objs.OrderBy(u => u.Id)
.Skip((request.page - 1) * request.limit)
.Take(request.limit);
result.count = objs.Count();
return result;
}
public void Add(AddOrUpdate{ClassName}Req obj)
{
//程序类型取入口应用的名称,可以根据自己需要调整
var addObj = obj.MapTo<{ClassName}>();
//addObj.Time = DateTime.Now;
Repository.Add(addObj);
}
public void Update(AddOrUpdate{ClassName}Req obj)
{
UnitWork.Update<{ClassName}>(u => u.Id == obj.Id, u => new {ClassName}
{
//todo:要修改的字段赋值
});
}
public {ModuleCode}(IUnitWork<OpenAuthDBContext> unitWork, IRepository<{ClassName},OpenAuthDBContext> repository, IAuth auth) : base(unitWork, repository, auth)
{
}
}
}

View File

@ -23,26 +23,27 @@ namespace OpenAuth.App
var loginContext = _auth.GetCurrentUser();
if (loginContext == null)
{
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
}
var properties = loginContext.GetProperties("{ClassName}");
if (properties == null || properties.Count == 0)
var columnFields = loginContext.GetTableColumns("{ClassName}");
if (columnFields == null || columnFields.Count == 0)
{
throw new Exception("当前登录用户没有访问该模块字段的权限,请联系管理员配置");
throw new Exception("请在代码生成界面配置Resource表的字段属性");
}
var result = new TableData();
var objs = GetDataPrivilege("u");
if (!string.IsNullOrEmpty(request.key))
{
//增加筛选条件,如:
//objs = objs.Where(u => u.Name.Contains(request.key));
//增加筛选条件,如:
//objs = objs.Where(u => u.Name.Contains(request.key));
}
var propertyStr = string.Join(',', properties.Select(u => u.Key));
result.columnHeaders = properties;
{ForeignKeyTemplate}
var propertyStr = string.Join(',', columnFields.Select(u => u.ColumnName));
result.columnFields = columnFields;
result.data = objs.OrderBy(u => u.Id)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).Select($"new ({propertyStr})");

View File

@ -0,0 +1,234 @@
<!--
* @description: 代码生成器自动生成
* @author: liyubao | xufuxing
* @version: 1.0
-->
<template>
<div class="flex-column">
<sticky :className="'sub-navbar'">
<div class="filter-container">
<el-input @keyup.enter.native="handleFilter" size="mini" style="width: 200px;" class="filter-item" :placeholder="'名称'" v-model="listQuery.key"> </el-input>
<el-button class="filter-item" size="mini" v-waves icon="el-icon-search" @click="handleFilter">搜索</el-button>
<permission-btn size="mini" v-on:btn-event="onBtnClicked"></permission-btn>
</div>
</sticky>
<div class="app-container flex-item">
<div class="bg-white" style="height: 100%;">
<auth-table
style="height:calc(100% - 60px)"
ref="mainTable"
:select-type="'checkbox'"
:table-fields="headerList"
:data="list"
:v-loading="listLoading"
@row-click="rowClick"
@selection-change="handleSelectionChange"
></auth-table>
<pagination v-show="total > 0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="handleCurrentChange" />
</div>
<el-dialog v-el-drag-dialog class="dialog-mini" width="500px" :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
<auth-form ref="dataForm" :rules="rules" :edit-model="true" :form-fields="headerList" :data="temp" :col-num="2"></auth-form>
<div slot="footer">
<el-button size="mini" @click="dialogFormVisible = false">取消</el-button>
<el-button size="mini" v-if="dialogStatus == 'create'" type="primary" @click="createData">确认</el-button>
<el-button size="mini" v-else type="primary" @click="updateData">确认</el-button>
</div>
</el-dialog>
</div>
</div>
</template>
<script>
import * as {TableName}s from '@/api/{TableName}s'
import waves from '@/directive/waves' // 水波纹指令
import Sticky from '@/components/Sticky'
import permissionBtn from '@/components/PermissionBtn'
import Pagination from '@/components/Pagination'
import elDragDialog from '@/directive/el-dragDialog'
import { defaultVal } from '@/utils/index'
import extend from '@/extensions/delRows.js'
import AuthForm from '../../components/Base/AuthForm.vue'
import AuthTable from '../../components/Base/AuthTable.vue'
import ColumnDefine from '@/interface/columnDefine'
export default {
name: '{TableName}',
components: { Sticky, permissionBtn, Pagination, AuthTable, AuthForm, },
directives: {
waves,
elDragDialog,
},
mixins: [extend],
data() {
return {
headerList: [], // 主列表列定义
multipleSelection: [], // 列表checkbox选中的值
tableKey: 0,
list: null,
total: 0,
listLoading: true,
listQuery: {
// 查询条件
page: 1,
limit: 20,
key: undefined,
},
temp: { },
dialogFormVisible: false,
dialogStatus: '',
textMap: {
update: '编辑',
create: '添加',
},
rules: {
name: [{ required: true, message: '名称不能为空', trigger: 'blur' }],
},
}
},
created() {
this.headerList = [
{HeaderList}
]
this.getList()
},
methods: {
rowClick(row) {
this.$refs.mainTable.clearSelection()
this.$refs.mainTable.toggleRowSelection(row)
},
handleSelectionChange(val) {
this.multipleSelection = val
},
onBtnClicked: function(domId,callback) {
console.log('you click:' + domId)
switch (domId) {
case 'btnAdd':
this.handleCreate()
break
case 'btnEdit':
if (this.multipleSelection.length !== 1) {
this.$message({
message: '只能选中一个进行编辑',
type: 'error',
})
return
}
this.handleUpdate(this.multipleSelection[0])
break
case 'btnDel':
if (this.multipleSelection.length < 1) {
this.$message({
message: '至少删除一个',
type: 'error',
})
return
}
this.handleDelete(this.multipleSelection)
break
case 'btnExport':
this.$refs.mainTable.exportExcel('资源文件',callback)
break
default:
break
}
},
getList() {
this.listLoading = true
{TableName}s.getList(this.listQuery).then((response) => {
this.list = response.data
this.total = response.count
this.listLoading = false
})
},
handleFilter() {
this.listQuery.page = 1
this.getList()
},
handleSizeChange(val) {
this.listQuery.limit = val
this.getList()
},
handleCurrentChange(val) {
this.listQuery.page = val.page
this.listQuery.limit = val.limit
this.getList()
},
handleModifyStatus(row, disable) {
// 模拟修改状态
this.$message({
message: '操作成功',
type: 'success',
})
row.disable = disable
},
resetTemp() {
this.headerList.forEach((item) => {
this.temp[item.columnName] = defaultVal(item.entityType)
})
},
handleCreate() {
// 弹出添加框
this.resetTemp()
this.dialogStatus = 'create'
this.dialogFormVisible = true
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
},
createData() {
// 保存提交
this.$refs['dataForm'].validate(() => {
{TableName}s.add(this.temp).then(() => {
this.list.unshift(this.temp)
this.dialogFormVisible = false
this.$notify({
title: '成功',
message: '创建成功',
type: 'success',
duration: 2000,
})
})
})
},
handleUpdate(row) {
// 弹出编辑框
this.temp = Object.assign({}, row) // copy obj
this.dialogStatus = 'update'
this.dialogFormVisible = true
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
},
updateData() {
// 更新提交
this.$refs['dataForm'].validate(() => {
const tempData = Object.assign({}, this.temp)
{TableName}s.update(tempData).then(() => {
for (const v of this.list) {
if (v.id === this.temp.id) {
const index = this.list.indexOf(v)
this.list.splice(index, 1, this.temp)
break
}
}
this.dialogFormVisible = false
this.$notify({
title: '成功',
message: '更新成功',
type: 'success',
duration: 2000,
})
})
})
},
handleDelete(rows) {
// 多行删除
this.delrows({TableName}s, rows)
},
},
}
</script>
<style>
.dialog-mini .el-select {
width: 100%;
}
</style>

View File

@ -0,0 +1,235 @@
<!--
* @description: 代码生成器自动生成
* @author: liyubao | xufuxing
* @version: 1.0
-->
<template>
<div class="flex-column">
<sticky :className="'sub-navbar'">
<div class="filter-container">
<el-input @keyup.enter.native="handleFilter" size="mini" style="width: 200px;" class="filter-item" :placeholder="'名称'" v-model="listQuery.key"> </el-input>
<el-button class="filter-item" size="mini" v-waves icon="el-icon-search" @click="handleFilter">搜索</el-button>
<permission-btn size="mini" v-on:btn-event="onBtnClicked"></permission-btn>
</div>
</sticky>
<div class="app-container flex-item">
<div class="bg-white" style="height: 100%;">
<auth-table
style="height:calc(100% - 60px)"
ref="mainTable"
:select-type="'checkbox'"
:table-fields="headerList"
:data="list"
:v-loading="listLoading"
@row-click="rowClick"
@selection-change="handleSelectionChange"
></auth-table>
<pagination v-show="total > 0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="handleCurrentChange" />
</div>
<el-dialog v-el-drag-dialog class="dialog-mini" width="500px" :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
<auth-form ref="dataForm" :rules="rules" :edit-model="true" :form-fields="headerList" :data="temp" :col-num="2"></auth-form>
<div slot="footer">
<el-button size="mini" @click="dialogFormVisible = false">取消</el-button>
<el-button size="mini" v-if="dialogStatus == 'create'" type="primary" @click="createData">确认</el-button>
<el-button size="mini" v-else type="primary" @click="updateData">确认</el-button>
</div>
</el-dialog>
</div>
</div>
</template>
<script>
import * as {TableName}s from '@/api/{TableName}s'
import waves from '@/directive/waves' // 水波纹指令
import Sticky from '@/components/Sticky'
import permissionBtn from '@/components/PermissionBtn'
import Pagination from '@/components/Pagination'
import elDragDialog from '@/directive/el-dragDialog'
import { defaultVal } from '@/utils/index'
import extend from '@/extensions/delRows.js'
import AuthForm from '../../components/Base/AuthForm.vue'
import AuthTable from '../../components/Base/AuthTable.vue'
export default {
name: '{TableName}',
components: { Sticky, permissionBtn, Pagination, AuthTable, AuthForm, },
directives: {
waves,
elDragDialog,
},
mixins: [extend],
data() {
return {
headerList: [], // 主列表列定义
multipleSelection: [], // 列表checkbox选中的值
tableKey: 0,
list: null,
total: 0,
listLoading: true,
listQuery: {
// 查询条件
page: 1,
limit: 20,
key: undefined,
},
temp: { },
dialogFormVisible: false,
dialogStatus: '',
textMap: {
update: '编辑',
create: '添加',
},
rules: {
name: [{ required: true, message: '名称不能为空', trigger: 'blur' }],
},
}
},
created() {
this.getList()
},
methods: {
rowClick(row) {
this.$refs.mainTable.clearSelection()
this.$refs.mainTable.toggleRowSelection(row)
},
handleSelectionChange(val) {
this.multipleSelection = val
},
onBtnClicked: function(domId,callback) {
console.log('you click:' + domId)
switch (domId) {
case 'btnAdd':
this.handleCreate()
break
case 'btnEdit':
if (this.multipleSelection.length !== 1) {
this.$message({
message: '只能选中一个进行编辑',
type: 'error',
})
return
}
this.handleUpdate(this.multipleSelection[0])
break
case 'btnDel':
if (this.multipleSelection.length < 1) {
this.$message({
message: '至少删除一个',
type: 'error',
})
return
}
this.handleDelete(this.multipleSelection)
break
case 'btnExport':
this.$refs.mainTable.exportExcel('资源文件',callback)
break
default:
break
}
},
getList() {
this.listLoading = true
{TableName}s.getList(this.listQuery).then((response) => {
this.list = response.data
response.columnFields.forEach((item) => {
// 首字母小写
item.columnName = item.columnName.substring(0, 1).toLowerCase() + item.columnName.substring(1)
})
this.headerList = response.columnFields
this.total = response.count
this.listLoading = false
})
},
handleFilter() {
this.listQuery.page = 1
this.getList()
},
handleSizeChange(val) {
this.listQuery.limit = val
this.getList()
},
handleCurrentChange(val) {
this.listQuery.page = val.page
this.listQuery.limit = val.limit
this.getList()
},
handleModifyStatus(row, disable) {
// 模拟修改状态
this.$message({
message: '操作成功',
type: 'success',
})
row.disable = disable
},
resetTemp() {
this.headerList.forEach((item) => {
this.temp[item.columnName] = defaultVal(item.entityType)
})
},
handleCreate() {
// 弹出添加框
this.resetTemp()
this.dialogStatus = 'create'
this.dialogFormVisible = true
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
},
createData() {
// 保存提交
this.$refs['dataForm'].validate(() => {
{TableName}s.add(this.temp).then(() => {
this.list.unshift(this.temp)
this.dialogFormVisible = false
this.$notify({
title: '成功',
message: '创建成功',
type: 'success',
duration: 2000,
})
})
})
},
handleUpdate(row) {
// 弹出编辑框
this.temp = Object.assign({}, row) // copy obj
this.dialogStatus = 'update'
this.dialogFormVisible = true
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
},
updateData() {
// 更新提交
this.$refs['dataForm'].validate(() => {
const tempData = Object.assign({}, this.temp)
{TableName}s.update(tempData).then(() => {
for (const v of this.list) {
if (v.id === this.temp.id) {
const index = this.list.indexOf(v)
this.list.splice(index, 1, this.temp)
break
}
}
this.dialogFormVisible = false
this.$notify({
title: '成功',
message: '更新成功',
type: 'success',
duration: 2000,
})
})
})
},
handleDelete(rows) {
// 多行删除
this.delrows({TableName}s, rows)
},
},
}
</script>
<style>
.dialog-mini .el-select {
width: 100%;
}
</style>

View File

@ -52,9 +52,20 @@ CREATE TABLE `buildertable` (
`UpdateUserId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人ID',
`UpdateUserName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人姓名',
`CreateUserName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人姓名',
`ForeignKey` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '字表外键',
`IsDynamicHeader` tinyint(4) NULL DEFAULT 0 COMMENT '是否动态加载表头信息',
`ParentTableId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '主表Id如果为空则默认为主表',
PRIMARY KEY (`Id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '代码生成器的表信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of buildertable
-- ----------------------------
INSERT INTO `buildertable` VALUES ('03761b53-e229-4e0e-b7b1-2831bdc84384', 'Stock', '请在自己的电脑测试,服务器是看不出效果的', '', '', 'Stock', 'OpenAuth.Repository.Domain', 'StockApp', '仓储', 'D:/OpenAuth.Pro/Client', '', '', '', '2020-09-29 00:52:58', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:32:09', '00000000-0000-0000-0000-000000000000', '超级管理员', '超级管理员', '', 1, NULL);
INSERT INTO `buildertable` VALUES ('7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', '入库订单头表', 'wmsinboundorderdtbl', '', 'wmsinboundordertbl', 'OpenAuth.Repository.Domain', 'WmsInApp', '入库模块', 'D:/OpenAuth.Pro/Client', '', '', '', '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 01:17:34', '00000000-0000-0000-0000-000000000000', '超级管理员', '超级管理员', '', 0, NULL);
INSERT INTO `buildertable` VALUES ('de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', '', '', '', 'Resource', 'OpenAuth.Repository.Domain', 'ResourceApp', '资源管理', 'D:/OpenAuth.Pro/Client', '', '', '', '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:50:17', '00000000-0000-0000-0000-000000000000', '超级管理员', '超级管理员', '', 1, NULL);
INSERT INTO `buildertable` VALUES ('f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', '', '', '', 'wmsinboundorderdtbl', 'OpenAuth.Repository.Domain', 'wmsinboundorderdtbl', '入库订单模块子表', 'D:/OpenAuth.Pro/Client', '', '', '', '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 01:09:27', '00000000-0000-0000-0000-000000000000', '超级管理员', '超级管理员', 'OrderId', 1, '7f0ca2fd-7fa0-4316-a466-22733d466dd2');
-- ----------------------------
-- Table structure for buildertablecolumn
-- ----------------------------
@ -77,6 +88,7 @@ CREATE TABLE `buildertablecolumn` (
`IsQuery` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否查询字段',
`QueryType` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '查询方式(等于、不等于、大于、小于、范围)',
`HtmlType` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)',
`DataSource` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '数据源(用于下拉框、复选框等取值)',
`EditType` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '编辑类型(文本框、文本域、下拉框、复选框、单选框、日期控件)',
`Sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序',
`CreateTime` datetime(0) NOT NULL COMMENT '创建时间',
@ -91,6 +103,85 @@ CREATE TABLE `buildertablecolumn` (
PRIMARY KEY (`Id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '代码生成器的字段信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of buildertablecolumn
-- ----------------------------
INSERT INTO `buildertablecolumn` VALUES ('01fab5d4-f004-47e7-909a-c548c0949f04', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'HoldNum', '占用数量', 'decimal', 'decimal', 'HoldNum', 0, 0, 1, 1, 1, 1, 0, '', '', NULL, 'number', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:48:02', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('03129db7-5ba9-4410-b43e-b77ac9fe7929', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'CreateUserId', '创建人ID', 'varchar', 'string', 'CreateUserId', 0, 0, 0, 0, 0, 0, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:57:46', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('08e80261-e4ae-4a6f-adf5-09ad5267a975', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'GoodsBatch', '商品批号', 'varchar', 'string', 'GoodsBatch', 0, 0, 1, 1, 1, 1, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-11 22:54:21', '', NULL, NULL, '', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('0ff3a09e-5a37-459f-be55-49ad2b90d934', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'Id', '入库通知单号', 'varchar', 'string', 'Id', 1, 0, 1, 1, 1, 1, 0, '', '', NULL, 'text', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:45:59', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('10462120-3731-4b3d-a44e-f8ee039b3b26', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'Disable', '是否禁用', 'tinyint', 'bool', 'Disable', 0, 0, 1, 1, 1, 1, 0, '', '', '', 'switch', 93, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-29 11:39:46', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('11997d76-06da-480f-9505-d7b6ed824d30', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'OrgId', '所属部门', 'varchar', 'string', 'OrgId', 0, 0, 0, 1, 0, 0, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 01:50:35', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('17cf3076-9b38-4ac8-a05a-07b1f5b4a309', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'Remark', '备注', 'varchar', 'string', 'Remark', 0, 0, 0, 1, 1, 1, 0, '', '', NULL, 'textarea', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:49:42', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 128);
INSERT INTO `buildertablecolumn` VALUES ('18f07476-eaa9-4f5e-a4fd-14a8e1bd4c87', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'CreateUserName', '创建人', 'varchar', 'string', 'CreateUserName', 0, 0, 1, 1, 0, 1, 0, '', '', NULL, '', 80, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-29 00:59:35', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 200);
INSERT INTO `buildertablecolumn` VALUES ('2105d04e-8c65-4a21-9701-76f64ac119d3', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'OrderId', '入库单号', 'varchar', 'string', 'OrderId', 1, 0, 1, 1, 1, 1, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 03:06:40', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('28bd8b85-b62a-4fa3-a50d-a78b015897be', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'OwnerId', '货主编号', 'varchar', 'string', 'OwnerId', 0, 0, 1, 1, 1, 1, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-11 22:54:21', '', NULL, NULL, '', '超级管理员', 32);
INSERT INTO `buildertablecolumn` VALUES ('2bc4953d-a863-492e-845f-36bff59bc107', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'UpdateUserId', '更新人ID', 'varchar', 'string', 'UpdateUserId', 0, 0, 0, 1, 0, 0, 0, '', '', NULL, '', 0, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:51:27', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('2bed33d9-c8bf-46ea-8a35-99a6b079da66', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'UpdateTime', '更新时间', 'datetime', 'DateTime', 'UpdateTime', 0, 0, 0, 0, 0, 1, 0, '', '', NULL, 'datetime', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 03:06:47', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('33a8a1bd-ea81-4942-9469-4f20a037bf94', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'AppName', '应用名称', 'varchar', 'string', 'AppName', 0, 0, 0, 1, 1, 1, 0, '', '', NULL, '', 90, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:51:44', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('3508e108-6fb3-44f2-aa61-4c61a42f5f38', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'CreateTime', '创建时间', 'datetime', 'DateTime', 'CreateTime', 0, 0, 1, 1, 0, 1, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 01:09:47', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('37219218-c8a1-40a8-be28-77d423a019b7', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'AppId', '应用ID', 'varchar', 'string', 'AppId', 0, 0, 0, 1, 1, 0, 0, '', '', 'PLATFORM', 'select', 0, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:51:49', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('3b96bd7f-38a6-4188-9205-5f6340e29548', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'UpdateTime', '最后更新时间', 'datetime', 'DateTime', 'UpdateTime', 0, 0, 0, 1, 0, 0, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 01:52:29', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('3d1b1192-aad3-4a6f-9770-ecf486bc4cc0', '03761b53-e229-4e0e-b7b1-2831bdc84384', 'Stock', 'Status', '出库/入库', 'int', 'int', 'Status', 0, 0, 1, 1, 1, 1, 0, '', '', 'COMMON_STATUS', 'select', 7, '2020-09-29 00:52:58', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:30:15', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('3e0dcc3c-3978-4615-bfe9-e65b78e67f4e', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'CreateTime', '创建时间', 'datetime', 'DateTime', 'CreateTime', 0, 0, 0, 0, 0, 1, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:51:57', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('430a695a-7975-4c63-bf57-13c9614d086d', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'TaxRate', '税率', 'decimal', 'decimal', 'TaxRate', 0, 0, 0, 1, 1, 1, 0, '', '', NULL, 'decimal', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:49:47', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('4922ec7f-8730-4c48-913b-a1c110c1e8c4', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'ScheduledInboundTime', '预定入库时间', 'datetime', 'DateTime', 'ScheduledInboundTime', 0, 0, 0, 1, 1, 0, 0, '', '', NULL, 'date', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 01:51:12', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('4b52a996-4f4d-4a7c-b068-091d1a378b4c', '03761b53-e229-4e0e-b7b1-2831bdc84384', 'Stock', 'OrgId', '组织ID', 'varchar', 'string', 'OrgId', 0, 0, 0, 1, 0, 0, 0, '', '', NULL, '', 20, '2020-09-29 00:52:58', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:30:02', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('4c44c915-d771-44b5-8030-f1c242425c7d', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'Id', '入库通知单明细号', 'varchar', 'string', 'Id', 1, 0, 1, 1, 1, 1, 0, '', '', NULL, 'text', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:48:11', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('4ddd9669-84c6-4fd4-ae2b-fc72eb2aecf7', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'Description', '描述', 'varchar', 'string', 'Description', 0, 0, 1, 1, 1, 1, 0, '', '', NULL, '', 85, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-29 00:59:28', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 500);
INSERT INTO `buildertablecolumn` VALUES ('4e967746-afe2-431c-b549-3ffbe982c25a', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'TypeName', '分类名称', 'varchar', 'string', 'TypeName', 0, 0, 0, 1, 1, 1, 0, '', '', NULL, '', 0, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-29 00:27:29', '', NULL, NULL, '', '超级管理员', 20);
INSERT INTO `buildertablecolumn` VALUES ('50cf4640-ef20-4122-b21e-c4a6562813f3', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'SortNo', '排序号', 'int', 'int', 'SortNo', 0, 0, 1, 1, 1, 1, 0, '', '', NULL, 'text', 0, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-29 00:31:48', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('54954a8b-b34b-41c3-a2bf-46cf5c3f1afa', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'UpdateTime', '更新时间', 'datetime', 'DateTime', 'UpdateTime', 0, 0, 0, 1, 0, 1, 0, '', '', NULL, '', 0, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:51:24', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('56f222a5-bce9-4ae9-acfc-a6c7de0c6dfa', '03761b53-e229-4e0e-b7b1-2831bdc84384', 'Stock', 'Name', '产品名称', 'text', 'string', 'Name', 0, 0, 1, 1, 1, 1, 0, '', '', NULL, 'text', 40, '2020-09-29 00:52:58', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:29:52', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 0);
INSERT INTO `buildertablecolumn` VALUES ('5d372a7e-09f8-480c-9f05-0b28d24b713b', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'ShipperId', '承运人编号', 'varchar', 'string', 'ShipperId', 0, 0, 0, 1, 1, 1, 0, '', '', NULL, 'text', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:45:44', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('6383b218-2658-4981-9f62-4690f398c1f2', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'Price', '含税单价', 'decimal', 'decimal', 'Price', 0, 0, 0, 1, 1, 1, 0, '', '', NULL, 'decimal', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:49:05', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('67137a1d-f572-40ed-8c67-7fd570b63f42', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'UpdateUserName', '最后更新人', 'varchar', 'string', 'UpdateUserName', 0, 0, 0, 0, 0, 1, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:52:05', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 200);
INSERT INTO `buildertablecolumn` VALUES ('67a497dd-19b5-44d6-9804-6b8c0769cef0', '03761b53-e229-4e0e-b7b1-2831bdc84384', 'Stock', 'Viewable', '可见范围', 'varchar', 'string', 'Viewable', 0, 0, 1, 1, 1, 1, 0, '', '', NULL, '', 1, '2020-09-29 00:52:58', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:30:25', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('6bd63965-6353-47f8-bf46-eaa507457669', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'OrderType', '入库类型', 'varchar', 'string', 'OrderType', 0, 0, 1, 1, 1, 1, 0, '', '', 'SYS_INBOUNDTYPE', 'select', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:45:23', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('6e6c331c-31ff-40cf-bddc-f331f936c982', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'Name', '名称', 'varchar', 'string', 'Name', 0, 0, 1, 1, 1, 1, 0, '', '', NULL, '', 95, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-29 00:58:42', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 255);
INSERT INTO `buildertablecolumn` VALUES ('6ec4c6b1-7a5f-4000-bf69-a2511b0febb2', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'ExternalType', '相关单据类型', 'varchar', 'string', 'ExternalType', 0, 0, 0, 0, 0, 0, 0, '', '', 'SYS_ORDERTYPE', 'select', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 01:13:21', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('7000e82f-da5d-4d5e-ac4b-eda825ae40c7', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'GoodsType', '商品类别', 'varchar', 'string', 'GoodsType', 0, 0, 0, 1, 1, 1, 0, '', '', 'SYS_GOODSTYPE', 'select', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 01:10:28', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('73759b1d-df4a-4c88-879e-503196604f67', '03761b53-e229-4e0e-b7b1-2831bdc84384', 'Stock', 'Time', '操作时间', 'datetime', 'DateTime', 'Time', 0, 0, 1, 1, 0, 1, 0, '', '', NULL, 'date', 5, '2020-09-29 00:52:58', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:30:19', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('7bc33f75-16dc-49b7-822d-32be5aae904b', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'OrderNum', '通知数量', 'decimal', 'decimal', 'OrderNum', 0, 0, 1, 1, 1, 1, 0, '', '', NULL, 'number', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:48:58', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('85ebb3a8-1a19-44f8-9706-acac1c8bdc44', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'AsnStatus', '到货状况', 'int', 'int', 'AsnStatus', 0, 0, 1, 1, 1, 1, 0, '', '', 'SYS_STATUS', 'select', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:47:30', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('861ca9ab-e81e-4fa8-8b56-375127a8cb59', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'LeaveNum', '剩余数量', 'decimal', 'decimal', 'LeaveNum', 0, 0, 1, 1, 1, 1, 0, '', '', NULL, 'number', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:48:44', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('8a43f4d1-73a7-408d-b3cc-02be321b8ef9', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'OwnerId', '货主编号', 'varchar', 'string', 'OwnerId', 0, 0, 0, 1, 1, 1, 0, '', '', NULL, 'text', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:45:33', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('8c0836e9-6da1-4510-a59b-ccc94f4c2c14', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'GoodsId', '商品编号', 'varchar', 'string', 'GoodsId', 0, 0, 1, 1, 1, 1, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-11 22:54:21', '', NULL, NULL, '', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('8effdc32-477a-44a4-a0e6-3e58c5631307', '03761b53-e229-4e0e-b7b1-2831bdc84384', 'Stock', 'Price', '产品单价', 'decimal', 'decimal', 'Price', 0, 0, 1, 1, 1, 1, 0, '', '', NULL, 'text', 10, '2020-09-29 00:52:58', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:31:44', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('95b6e356-3687-4001-9ffb-1271c3baf31e', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'Id', '标识', 'varchar', 'string', 'Id', 1, 0, 1, 1, 1, 1, 0, '', '', NULL, 'text', 99, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:52:12', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('96083a87-d21b-4b25-98c6-780156d68b08', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'ParentName', '父节点名称', 'varchar', 'string', 'ParentName', 0, 0, 0, 1, 0, 1, 0, '', '', NULL, '', 0, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:50:16', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('9864568d-9816-47e6-ae35-992a3b10bae2', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'ReturnBoxNum', '销退箱数', 'decimal', 'decimal', 'ReturnBoxNum', 0, 0, 1, 1, 1, 1, 0, '', '', NULL, 'number', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:44:24', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('9b140a3f-4d00-4a94-80d4-c7fac7be15cb', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'UpdateUserId', '最后更新人ID', 'varchar', 'string', 'UpdateUserId', 0, 0, 0, 1, 0, 0, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 01:49:42', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('9cdf9bd0-a017-49d3-8724-843fe98c2c41', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'CascadeId', '节点语义ID', 'varchar', 'string', 'CascadeId', 0, 0, 1, 1, 0, 1, 0, '', '', NULL, 'text', 0, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:36:14', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 255);
INSERT INTO `buildertablecolumn` VALUES ('9ce375d3-6087-467d-8b59-7f45ac0b68a6', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'UpdateUserId', '最后更新人ID', 'varchar', 'string', 'UpdateUserId', 0, 0, 0, 0, 0, 0, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:52:05', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('9f689acf-84ac-4840-b1c7-39bb82ba47a9', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'Remark', '备注', 'varchar', 'string', 'Remark', 0, 0, 0, 1, 1, 0, 0, '', '', NULL, 'textarea', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:44:30', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 256);
INSERT INTO `buildertablecolumn` VALUES ('a131adb2-9410-40ed-879e-b42af5d29c8c', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'Enable', '有效标志', 'tinyint', 'bool', 'Enable', 0, 0, 1, 1, 1, 1, 0, '', '', NULL, 'switch', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:46:03', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('a32c75ea-4095-458a-97b6-815db63d951e', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'TransferType', '承运方式', 'varchar', 'string', 'TransferType', 0, 0, 0, 1, 1, 1, 0, '', '', 'SYS_SHIPTYPE', 'select', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 01:17:20', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('a33882d0-89f1-4d21-b740-051b1742e33c', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'QualityFlg', '品质', 'varchar', 'string', 'QualityFlg', 0, 0, 1, 1, 1, 1, 0, '', '', 'SYS_GOODSTYPE', 'select', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:51:39', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('a5f9c89e-474f-4047-9e18-a8a31050a952', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'SupplierId', '供应商编号', 'varchar', 'string', 'SupplierId', 0, 0, 0, 1, 0, 0, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 01:13:11', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('a6e98eac-afd5-4465-9b60-206cfdeab9e1', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'CreateUserId', '创建人ID', 'varchar', 'string', 'CreateUserId', 0, 0, 1, 1, 0, 0, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 01:09:56', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('a8249275-9be3-4a92-ae3e-fa135233ef76', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'InNum', '到货数量', 'decimal', 'decimal', 'InNum', 0, 0, 1, 1, 1, 1, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-11 22:54:21', '', NULL, NULL, '', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('acbae3d8-fb55-404b-8680-53cb02b02927', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'UpdateUserName', '最后更新人', 'varchar', 'string', 'UpdateUserName', 0, 0, 0, 1, 0, 0, 0, '', '', NULL, '', 0, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-29 00:56:36', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 200);
INSERT INTO `buildertablecolumn` VALUES ('b0898ec0-ff90-46a6-9129-bd67aad6a547', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'CreateTime', '创建时间', 'datetime', 'DateTime', 'CreateTime', 0, 0, 1, 1, 0, 1, 0, '', '', NULL, 'datetime', 0, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-29 00:28:32', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('b1d3a4ef-ca85-48af-abdb-ca8b02a67b5e', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'PriceNoTax', '无税单价', 'decimal', 'decimal', 'PriceNoTax', 0, 0, 0, 1, 1, 1, 0, '', '', NULL, 'decimal', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:49:09', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('b7f96e95-0adf-4dfe-a153-5048f778a518', '03761b53-e229-4e0e-b7b1-2831bdc84384', 'Stock', 'Number', '产品数量', 'int', 'int', 'Number', 0, 0, 1, 1, 1, 1, 0, '', '', NULL, 'number', 30, '2020-09-29 00:52:58', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:29:55', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('b8a74c6e-4ad9-44b2-9c66-a799f6c3feb6', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'CreateUserName', '创建人', 'varchar', 'string', 'CreateUserName', 0, 0, 1, 1, 0, 1, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 01:09:57', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 200);
INSERT INTO `buildertablecolumn` VALUES ('b98e4da3-32c0-48bd-b09a-e56b4521504d', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'TypeId', '分类ID', 'varchar', 'string', 'TypeId', 0, 0, 0, 1, 1, 0, 0, '', '', 'APP_TYPE', 'select', 0, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-29 00:32:40', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('bcf8079e-f046-4fba-b98f-3f840c59edd3', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'CreateUserName', '创建人', 'varchar', 'string', 'CreateUserName', 0, 0, 0, 0, 0, 1, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:51:58', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 200);
INSERT INTO `buildertablecolumn` VALUES ('bd084fcd-b00b-41b1-85c4-ea856eda4bc1', '03761b53-e229-4e0e-b7b1-2831bdc84384', 'Stock', 'Id', '数据ID', 'varchar', 'string', 'Id', 1, 0, 1, 1, 0, 0, 0, '', '', NULL, '', 50, '2020-09-29 00:52:58', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:31:36', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('c084f056-fd43-4b47-8fea-d668d2aef488', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'PurchaseNo', '采购单号', 'varchar', 'string', 'PurchaseNo', 0, 0, 0, 1, 1, 1, 0, '', '', NULL, 'text', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:45:39', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 30);
INSERT INTO `buildertablecolumn` VALUES ('cac9af55-805e-4af8-8936-8a2ef0f886f5', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'InBondedArea', '是否保税', 'tinyint', 'bool', 'InBondedArea', 0, 0, 1, 1, 1, 1, 0, '', '', NULL, 'switch', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:45:12', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('d2366b5d-992f-4f68-b08d-ebd01962c55c', '03761b53-e229-4e0e-b7b1-2831bdc84384', 'Stock', 'User', '操作人', 'varchar', 'string', 'User', 0, 0, 1, 1, 0, 1, 0, '', '', NULL, '', 3, '2020-09-29 00:52:58', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:30:22', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('d73b377d-c6a3-4f74-b608-0e0223dbbd0a', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'CreateUserId', '创建人ID', 'varchar', 'string', 'CreateUserId', 0, 0, 1, 1, 0, 0, 0, '', '', NULL, '', 0, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-29 00:28:40', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('d8913d5b-c62f-4cb5-aedc-60b652a41427', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'UpdateUserName', '最后更新人', 'varchar', 'string', 'UpdateUserName', 0, 0, 0, 1, 0, 1, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 01:49:50', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 200);
INSERT INTO `buildertablecolumn` VALUES ('dfbb6dd4-d03a-452a-8f9e-b6747b585819', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'ExternalNo', '相关单据号', 'varchar', 'string', 'ExternalNo', 0, 0, 0, 0, 0, 0, 0, '', '', NULL, 'text', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:46:16', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
INSERT INTO `buildertablecolumn` VALUES ('ea35d6b5-aa14-495f-ba36-d51eb73125ac', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'ExpireDate', '失效日期', 'varchar', 'string', 'ExpireDate', 0, 0, 0, 1, 1, 1, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-11 22:54:21', '', NULL, NULL, '', '超级管理员', 30);
INSERT INTO `buildertablecolumn` VALUES ('ec8aac16-7f9c-4b19-977c-aecede234910', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'Status', '入库通知单状态', 'int', 'int', 'Status', 0, 0, 0, 0, 0, 0, 0, '', '', 'COMMON_STATUS', 'select', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 01:14:30', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('ecab3cf5-312c-46a9-aa82-87c34396ea90', '7f0ca2fd-7fa0-4316-a466-22733d466dd2', 'wmsinboundordertbl', 'StockId', '仓库编号', 'varchar', 'string', 'StockId', 0, 0, 0, 0, 0, 0, 0, '', '', NULL, '', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 01:14:39', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 12);
INSERT INTO `buildertablecolumn` VALUES ('ee53d454-c8f9-48d3-9bc1-b4a1fdf6c390', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'InStockStatus', '是否收货中', 'tinyint', 'bool', 'InStockStatus', 0, 0, 1, 1, 1, 1, 0, '', 'switch', NULL, 'switch', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:48:30', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', NULL);
INSERT INTO `buildertablecolumn` VALUES ('f8392fe0-0591-4ca7-8ebe-c8f69a8a30f0', 'f07df6d0-eb47-4f00-9167-79d88bcace36', 'wmsinboundorderdtbl', 'ProdDate', '生产日期', 'varchar', 'string', 'ProdDate', 0, 0, 0, 1, 1, 1, 0, '', '', NULL, 'datetime', 0, '2021-08-11 22:54:21', '00000000-0000-0000-0000-000000000000', '2021-08-23 02:49:17', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 30);
INSERT INTO `buildertablecolumn` VALUES ('f8d7f45a-8754-46a1-8ce4-9a8992801f68', 'de4a5527-0d8c-4493-b668-39fc9c555df1', 'Resource', 'ParentId', '父节点ID', 'varchar', 'string', 'ParentId', 0, 0, 0, 1, 1, 0, 0, '', '', '/Resources/Load', 'selectDynamic', 0, '2021-08-29 00:27:29', '00000000-0000-0000-0000-000000000000', '2021-08-30 00:51:13', '00000000-0000-0000-0000-000000000000', NULL, NULL, '超级管理员', '超级管理员', 50);
-- ----------------------------
-- Table structure for category
-- ----------------------------
@ -99,17 +190,17 @@ CREATE TABLE `category` (
`Id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`Name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ' ' COMMENT '分类名称或描述',
`DtCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '分类标识',
`DtValue` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '通常与分类标识一致,但万一有不一样的情况呢?',
`DtValue` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '通常与分类标识一致,但万一有不一样的情况呢?',
`Enable` tinyint(1) NOT NULL DEFAULT 0,
`SortNo` int(11) NOT NULL DEFAULT 0 COMMENT '排序号',
`Description` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`TypeId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`CreateTime` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`Description` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`TypeId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`CreateTime` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`CreateUserId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '创建人ID',
`CreateUserName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '创建人',
`UpdateTime` datetime(0) DEFAULT NULL COMMENT '最后更新时间',
`UpdateUserId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '最后更新人ID',
`UpdateUserName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '最后更新人',
`UpdateTime` datetime(0) NULL DEFAULT NULL COMMENT '最后更新时间',
`UpdateUserId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '最后更新人ID',
`UpdateUserName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '最后更新人',
PRIMARY KEY (`Id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '分类表,也可用作数据字典。表示一个全集,比如:男、女、未知。关联的分类类型表示按什么进行的分类,如:按照性别对人类对象集' ROW_FORMAT = Compact;
@ -117,33 +208,30 @@ CREATE TABLE `category` (
-- Records of category
-- ----------------------------
INSERT INTO `category` VALUES ('01a2736c-cebe-43a2-8068-7e3f88fa7c23', '审核', 'SYS_ORDERSTATUS_CHECK', 'SYS_ORDERSTATUS_CHECK', 1, 0, '', 'SYS_ORDERSTATUS', '2019-10-29 21:20:40', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-10-29 21:20:40', '', '');
INSERT INTO `category` VALUES ('07d21d6d-3bce-4b73-8273-c9f948f468fe', '释放', 'PICKSTATUS_RELEASE', 'PICKSTATUS_RELEASE', 1, 0, '', 'SYS_PICKSTATUS', '2019-10-29 21:29:35', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-10-29 21:29:35', '', '');
INSERT INTO `category` VALUES ('08776116-d1bf-40d1-b7ff-78b7392f4aef', '自提', 'SYS_SHIPTYPE_NORMAL', 'SYS_SHIPTYPE_NORMAL', 1, 0, '', 'SYS_SHIPTYPE', '2019-11-07 01:19:12', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-11-07 01:19:12', '', '');
INSERT INTO `category` VALUES ('10a13e57-0ba7-4cce-a6d9-9fffe9f1c8fb', 'XXX管理平台', 'XXXPLATFORM', 'XXXPLATFORM', 1, 0, '', 'PLATFORM', '2021-08-30 00:57:50', '00000000-0000-0000-0000-000000000000', '超级管理员', '2021-08-30 00:57:50', '', '');
INSERT INTO `category` VALUES ('1979955b-901d-4394-8a3c-f81c32970365', '中药材', 'SYS_GOODSTYPE_TCM', 'SYS_GOODSTYPE_TCM', 1, 0, '', 'SYS_GOODSTYPE', '2019-11-07 01:17:36', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-11-07 01:17:36', '', '');
INSERT INTO `category` VALUES ('2615b6bf-7fc3-46e1-8105-708dda0e6c42', '发货完成', 'PICKSTATUS_OUTSTOCK', 'PICKSTATUS_OUTSTOCK', 1, 0, '', 'SYS_PICKSTATUS', '2019-10-29 21:32:02', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-10-29 21:32:02', '', '');
INSERT INTO `category` VALUES ('354f50b7-0d93-43d6-a721-a4931c650ea3', '创建', 'SYS_ORDERSTATUS_CREATE', 'SYS_ORDERSTATUS_CREATE', 1, 0, '', 'SYS_ORDERSTATUS', '2019-10-29 21:20:02', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-10-29 21:20:02', '', '');
INSERT INTO `category` VALUES ('400c37f2-52d6-4854-956d-4e6d08cdf643', '正常', 'COMMON_STATUS_OK', '0', 0, 0, '', 'COMMON_STATUS', '2020-09-29 00:54:24', '00000000-0000-0000-0000-000000000000', '超级管理员', '2020-09-29 00:54:24', '', '');
INSERT INTO `category` VALUES ('43303bfb-11e3-4e12-8cdd-2ef090017e4c', '样品入库', 'SYS_INBOUNDTYPE_SAMPLE', 'SYS_INBOUNDTYPE_SAMPLE', 1, 0, '', 'SYS_INBOUNDTYPE', '2019-11-07 00:51:26', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-11-07 00:51:26', '', '');
INSERT INTO `category` VALUES ('4de1cf0d-b1f5-44f7-a329-4b5fcff73ca6', '普药', 'SYS_GOODSTYPE_COMMON', 'SYS_GOODSTYPE_COMMON', 1, 0, '', 'SYS_GOODSTYPE', '2019-11-07 01:15:35', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-11-07 01:15:35', '', '');
INSERT INTO `category` VALUES ('52f662c3-39bc-4f5a-9730-107cf26b12f0', '直送', 'SYS_SHIPTYPE_DIRECT', 'SYS_SHIPTYPE_DIRECT', 1, 0, '', 'SYS_SHIPTYPE', '2019-11-07 01:19:41', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-11-07 01:19:41', '', '');
INSERT INTO `category` VALUES ('74f7bcc8-50a3-4c02-9a25-ee2fa4575e25', '集货完成', 'PICKSTATUS_STAGED', 'PICKSTATUS_STAGED', 1, 0, '', 'SYS_PICKSTATUS', '2019-10-29 21:31:11', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-10-29 21:31:11', '', '');
INSERT INTO `category` VALUES ('5a0bf590-77bb-49a9-be8f-20eb451f8731', '安卓应用', 'APP_TYPE_ANDROID', 'APP_TYPE_ANDROID', 1, 0, '', 'APP_TYPE', '2021-08-30 00:34:43', '00000000-0000-0000-0000-000000000000', '超级管理员', '2021-08-30 00:34:43', '', '');
INSERT INTO `category` VALUES ('77a7f565-cb5c-4876-a139-7901e54b5dde', '正常', 'SYS_STATUS_OK', '0', 0, 0, '', 'SYS_STATUS', '2019-11-06 10:38:46', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-11-06 10:38:46', '', '');
INSERT INTO `category` VALUES ('7fbeb155-8fbb-44ce-a726-2a6fea7920d5', '异常', 'SYS_STATUS_ERROR', '1', 1, 0, '', 'SYS_STATUS', '2019-11-06 10:39:24', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-11-06 10:39:24', '', '');
INSERT INTO `category` VALUES ('845ef9f2-4d33-4887-acf0-6d45fdf5e05c', 'EMS', 'SYS_SHIPTYPE_EMS', 'SYS_SHIPTYPE_EMS', 1, 0, '', 'SYS_SHIPTYPE', '2019-11-07 01:20:45', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-11-07 01:20:45', '', '');
INSERT INTO `category` VALUES ('8641c594-e43e-4469-a5b5-5da06a53eaf9', '打包完成', 'PICKSTATUS_PACK', 'PICKSTATUS_PACK', 1, 0, '', 'SYS_PICKSTATUS', '2019-10-29 21:31:50', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-10-29 21:31:50', '', '');
INSERT INTO `category` VALUES ('86b8d963-63b6-4936-87b1-af248cd26c44', '已完成', 'SYS_ORDERSTATUS_FINISHED', 'SYS_ORDERSTATUS_FINISHED', 1, 0, '', 'SYS_ORDERSTATUS', '2019-10-29 21:27:32', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-10-29 21:27:32', '', '');
INSERT INTO `category` VALUES ('8dcbc59a-c045-4e06-ad13-095cfe9a3209', '销退入库', 'SYS_INBOUNDTYPE_RETURN', 'SYS_INBOUNDTYPE_RETURN', 1, 0, '', 'SYS_INBOUNDTYPE', '2019-11-07 00:52:04', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-11-07 00:52:04', '', '');
INSERT INTO `category` VALUES ('9bddbcfd-f41e-429f-b112-76db0c1bf0f3', '复核完成', 'PICKSTATUS_CHECKED', 'PICKSTATUS_CHECKED', 1, 0, '', 'SYS_PICKSTATUS', '2019-10-29 21:30:37', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-10-29 21:30:37', '', '');
INSERT INTO `category` VALUES ('a4017f4d-c113-4ec9-bdcb-d9c49019a916', '生物制品', 'SYS_GOODSTYPE_BIOLPROD', 'SYS_GOODSTYPE_BIOLPROD', 1, 0, '', 'SYS_GOODSTYPE', '2019-11-07 01:16:59', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-11-07 01:16:59', '', '');
INSERT INTO `category` VALUES ('b1d4301b-2378-4598-9b96-8592afbb64d1', '缓存完成', 'PICKSTATUS_CACHE', 'PICKSTATUS_CACHE', 1, 0, '', 'SYS_PICKSTATUS', '2019-10-29 21:30:53', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-10-29 21:30:53', '', '');
INSERT INTO `category` VALUES ('b42043b2-edd0-40e2-9bb4-13dc5be15ab7', '移动前端', 'APP_TYPE_H5', 'APP_TYPE_H5', 1, 0, '', 'APP_TYPE', '2021-08-30 00:34:19', '00000000-0000-0000-0000-000000000000', '超级管理员', '2021-08-30 00:34:19', '', '');
INSERT INTO `category` VALUES ('b44bb9f4-166c-4c59-a693-baacd01d2db4', '4+7集中采购', 'SYS_SHIPTYPE_FREIGHT', 'SYS_SHIPTYPE_FREIGHT', 1, 0, '', 'SYS_SHIPTYPE', '2019-11-07 01:20:21', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-11-07 01:20:21', '', '');
INSERT INTO `category` VALUES ('b77f4a7d-0d22-47dd-97d1-7f8ccd9e5f77', '采购入库', 'SYS_INBOUNDTYPE_PURCHASE', 'SYS_INBOUNDTYPE_PURCHASE', 1, 0, '', 'SYS_INBOUNDTYPE', '2019-11-07 00:50:51', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-11-07 00:50:51', '', '');
INSERT INTO `category` VALUES ('c3ce85b1-0115-47d4-b562-1bbcc51105e2', '食品', 'SYS_GOODSTYPE_FOOD', 'SYS_GOODSTYPE_FOOD', 1, 0, '', 'SYS_GOODSTYPE', '2019-11-07 01:17:58', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-11-07 01:17:58', '', '');
INSERT INTO `category` VALUES ('d2dd6a7f-797e-4ff2-96cc-56bf9fbfc24b', '装车完成', 'PICKSTATUS_CAR', 'PICKSTATUS_CAR', 1, 0, '', 'SYS_PICKSTATUS', '2019-10-29 21:31:27', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-10-29 21:31:27', '', '');
INSERT INTO `category` VALUES ('d8152952-cf55-40ba-af81-0d4863247d6a', '拣选完成', 'PICKSTATUS_PICKFINISH', 'PICKSTATUS_PICKFINISH', 1, 0, '', 'SYS_PICKSTATUS', '2019-10-29 21:30:16', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-10-29 21:30:16', '', '');
INSERT INTO `category` VALUES ('de4ccb7b-19e4-4203-a092-b2d8bafe3131', '拣选执行中', 'PICKSTATUS_PICKEXECUTE', 'PICKSTATUS_PICKEXECUTE', 1, 0, '', 'SYS_PICKSTATUS', '2019-10-29 21:29:55', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-10-29 21:29:55', '', '');
INSERT INTO `category` VALUES ('e6292744-a6e8-4a6f-b077-14bd35e31a27', '创建', 'PICKSTATUS_CREATE', 'PICKSTATUS_CREATE', 1, 0, '', 'SYS_PICKSTATUS', '2019-10-29 21:29:18', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-10-29 21:29:18', '', '');
INSERT INTO `category` VALUES ('cd6cf8ee-9e17-48f2-af4b-9072fbd43713', 'OpenAuth.Net', 'OPENAUTHNET', 'OPENAUTHNET', 1, 0, '', 'PLATFORM', '2021-08-30 00:57:23', '00000000-0000-0000-0000-000000000000', '超级管理员', '2021-08-30 00:57:23', '', '');
INSERT INTO `category` VALUES ('eac7f2d0-2817-40bf-bd89-2f0dd064fd69', '网站', 'APP_TYPE_WEB', 'APP_TYPE_WEB', 1, 0, '', 'APP_TYPE', '2021-08-30 00:35:00', '00000000-0000-0000-0000-000000000000', '超级管理员', '2021-08-30 00:35:00', '', '');
INSERT INTO `category` VALUES ('faef67e8-48e4-44e5-981c-eebb78d79a0f', '已处理', 'SYS_ORDERSTATUS_DISPOSED', 'SYS_ORDERSTATUS_DISPOSED', 1, 0, '', 'SYS_ORDERSTATUS', '2019-10-29 21:27:05', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-10-29 21:27:05', '', '');
INSERT INTO `category` VALUES ('fe1f7181-d3d0-4b0e-b9b3-5d05b503ff0e', '医疗器械', 'SYS_GOODSTYPE_MEDINSTR', 'SYS_GOODSTYPE_MEDINSTR', 1, 0, '', 'SYS_GOODSTYPE', '2019-11-07 01:16:02', '00000000-0000-0000-0000-000000000000', '超级管理员', '2019-11-07 01:16:02', '', '');
INSERT INTO `category` VALUES ('ffbb5c54-9ee1-4eb8-89dc-79fde3b4824c', '异常', 'COMMON_STATUS_ERROR', '1', 0, 1, '', 'COMMON_STATUS', '2020-09-29 00:54:51', '00000000-0000-0000-0000-000000000000', '超级管理员', '2020-09-29 00:54:51', '', '');
-- ----------------------------
-- Table structure for categorytype
@ -159,12 +247,14 @@ CREATE TABLE `categorytype` (
-- ----------------------------
-- Records of categorytype
-- ----------------------------
INSERT INTO `categorytype` VALUES ('APP_TYPE', '应用分类', '2021-08-30 00:33:15');
INSERT INTO `categorytype` VALUES ('COMMON_STATUS', '状态', '2020-09-29 00:53:40');
INSERT INTO `categorytype` VALUES ('PLATFORM', '平台分类', '2021-08-30 00:56:22');
INSERT INTO `categorytype` VALUES ('SYS_CUSTTYPE', '客户类型', '2019-11-07 00:49:50');
INSERT INTO `categorytype` VALUES ('SYS_GOODSTYPE', '商品类别', '2019-11-07 00:48:47');
INSERT INTO `categorytype` VALUES ('SYS_INBOUNDTYPE', '入库类型', '2019-11-07 00:48:08');
INSERT INTO `categorytype` VALUES ('SYS_ORDERSTATUS', '订单状态', '2019-10-29 21:18:56');
INSERT INTO `categorytype` VALUES ('SYS_ORDERTYPE', '订单类型', '2019-10-29 21:18:32');
INSERT INTO `categorytype` VALUES ('SYS_PICKSTATUS', '拣选任务状态', '2019-10-29 21:28:50');
INSERT INTO `categorytype` VALUES ('SYS_SHIPTYPE', '承运方式', '2019-11-07 00:47:36');
INSERT INTO `categorytype` VALUES ('SYS_STATUS', '系统状态', '2019-11-06 10:38:17');
INSERT INTO `categorytype` VALUES ('USERTYPE', '按用户类型分类', '2017-11-29 21:27:42');

File diff suppressed because one or more lines are too long