|
- using System;
- using System.Collections.Generic;
-
- namespace 代码生成器
- {
- public class 列对象
- {
- public string 英文列名 { get; set; }
- public string 中文列名 { get; set; }
- public string 列类型 { get; set; }
- public string 列长度 { get; set; }
- public string 是否可空 { get; set; }
- }
- public class 表对象
- {
- public string 英文表名 { get; set; }
- public string 中文表名 { get; set; }
- public List<列对象> 列对象集合 { get; set; } = new List<列对象>();
- }
- class Program
- {
- static void Main(string[] args)
- {
-
- string 中职学校概况基础数据表 = @"中职巡课排课数据表 ods_zzxkpksj
- 数据项名 中文简称 类型 长度 约束 值空间
- gzzyqksjid 主键数据唯一性标识 C 32 O 32 位全局唯一编码字符串
- xxjgdm 学校机构代码 C 36 O 统一社会信用代码
- xxjgmc 学校机构名称 C 80 O
- ssxqbh 所属校区编号 C 80 M
- nj 年级 C 32 O 学校自定义
- bj 班级 C 60 O 学校自定义
- xn 学年 C 23 O 如:2021-2022 学年
- xq 学期 C 23 O 如:第二学期
- zc 周次 C 2 O 数字标识:1
- xqj 星期几 C 4 O 例如:星期一
- skjc 上课节次 C 32 O 数字标识:2
- skrq 上课日期 C 32 M 上课当天日期:yyyy-MM-dd
- kcmc 课程名称 C 2 M
- kcdm 课程代码 C 2 M
- jgh 教工号 C 2 O
- jxbrs 教学班人数 N 12 M 数字标识
- skkssj 上课开始时间 C 32 M 上开开始时间例如:9:00
- skjssj 上课结束时间 C 32 M 上课结束时间例如:22:00
- sdxsrs 实到学生人数 C 12 M
- jsdkqk 教师到课情况 C 2 M 1-正常 0-异常
- xkr 巡课人 C 32 O
- sjcjsj 数据采集时间 C 60 M yyyy-MM-dd hh:mm:ss
-
- ";
- string _temp = 中职学校概况基础数据表;
- //获取表明与描述
- 表对象 _表对象 = new 表对象()
- {
- 英文表名 = _temp.Split('\n')[0].Split(' ')[2],
- 中文表名 = _temp.Split('\n')[0].Split(' ')[0]
- };
- foreach (var item in _temp.Split('\n'))
- {
- var itemLst = item.Split(' ');
- if (itemLst.Length <= 5 || item.Contains("数据项名") || itemLst[0] == "" || item.Contains(_表对象.中文表名)) { continue; }
-
-
-
- 列对象 _列对象 = new 列对象();
- _列对象.英文列名 = itemLst[0];
- _列对象.中文列名 = itemLst[1];
- _列对象.列类型 = itemLst[2];
- _列对象.列长度 = itemLst[3];
- _列对象.是否可空 = itemLst[4];
- _表对象.列对象集合.Add(_列对象);
- }
- string input = $@"
- using DataSendApi.Program.CustomizeAttribute;
-
- namespace DataSendApi.Program.Model
- {{
- /// <summary>
- /// {_表对象.中文表名}
- /// </summary>
- [CustomizeTable(ChineseTableName = ""{_表对象.中文表名}"", DatabaseTableName = ""{_表对象.英文表名.ToUpper()}"")]
- public class {_表对象.英文表名.ToUpper()}Entity : BaseEntity
- {{
-
- ";
- int i = 0;
- foreach (var item in _表对象.列对象集合)
- {
- i++;
- var 列类型 = item.列类型 == "C" ? "string" : "decimal";
-
- input += $@"
- /// <summary>
- /// {item.中文列名}
- /// </summary>
- [CustomizeField(
- ChineseColumnName = ""{item.中文列名}"",
- ColumnLength = {item.列长度},
- ColumnType = ""{列类型}"",
- DatabaseColumnName = ""{item.英文列名.ToUpper()}"",
- IsDatabase = true,
- IsApi = true,
- IsExcelVerify = false,
- IsPrimaryKey = {(i == 1 ? "true" : "false")},
- IsJson = false,
- JsonName = """",
- ColumnFormat ="""",
- IsExcel = true,
- IsNull = {(item.是否可空 == "M" ? "false" : "true")}
- )]
- public {列类型} {item.英文列名.ToUpper()} {{ get; set; }}
- ";
- }
- input += $@"
- /// <summary>
- /// 是否推送(0:否 1:推送)
- /// </summary>
- [CustomizeField(
- ChineseColumnName = ""是否推送"",
- ColumnLength = 2,
- ColumnType = ""string"",
- DatabaseColumnName = ""IsPush"",
- IsDatabase = true,
- IsApi = false,
- IsExcelVerify = false,
- IsPrimaryKey = false,
- IsJson = false,
- JsonName = """",
- ColumnFormat = """",
- IsExcel = false,
- IsNull = false
- )]
- public string IsPush {{ get; set; }}
-
- }}
- }}
- ";
-
- Console.WriteLine(input);
- Console.Read();
- }
- }
- }
|