From a1bb51e7a4c60de2000eaddc5fbc862d3aa0c3b8 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期二, 30 四月 2024 15:14:20 +0800 Subject: [PATCH] MES实体更新 --- Tiger.Business/MES/Biz.Route.cs | 18 Tiger.Model.Net/Entitys/MES/MES_OPERATION.cs | 38 ++ Tiger.Model.Net/Tiger.Model.Net.csproj | 3 Tiger.Business/BizSettings.json | 10 Tiger.Model.Net/Entitys/MES/MES_FACTORY.cs | 94 +++--- Tiger.Model.Net/Entitys/MES/MES_ROUTE_NODE_ACT.cs | 169 ++++++++++++ Tiger.Model.Net/Entitys/MES/MES_ROUTE_EDGE.cs | 61 +++- Tiger.Model.Net/Entitys/MES/BIZ_MES_WO.cs | 0 Tiger.Model.Net/Entitys/MES/node.cs | 4 Tiger.Model.Net/Entitys/MES/edge.cs | 4 Tiger.Model.Net/Entitys/MES/MES_SHIFT_SYS.cs | 18 + Tiger.Model.Net/Entitys/MES/MES_ROUTE.cs | 42 ++- Tiger.Model.Net/Entitys/MES/MES_SHIFT_PERIOD.cs | 97 ++++++ Tiger.Model.Net/Entitys/MES/MES_POSITION.cs | 60 ++- Tiger.Model.Net/Entitys/MES/MES_SHIFT.cs | 20 + Tiger.Model.Net/Entitys/MES/MES_LINE.cs | 54 ++- Tiger.Model.Net/Entitys/MES/MES_WORKSHOP.cs | 52 ++- Tiger.Model.Net/Entitys/MES/MES_ROUTE_NODE.cs | 57 +++- 18 files changed, 632 insertions(+), 169 deletions(-) diff --git a/Tiger.Business/BizSettings.json b/Tiger.Business/BizSettings.json index 6cd30c5..3afe0cd 100644 --- a/Tiger.Business/BizSettings.json +++ b/Tiger.Business/BizSettings.json @@ -34,7 +34,10 @@ //"ConnectionString": "server=172.18.8.55;database=wms;uid=root;pwd=Share@123;charset='utf8';SslMode=None;AllowLoadLocalInfile=true;" "DbType": "MySql", //"ConnectionString": "server=172.18.8.57;database=wms;uid=root;pwd=Share@123;charset='utf8';SslMode=None;AllowLoadLocalInfile=true;" - "ConnectionString": "server=47.115.28.255;port=3308;database=wms;uid=tiger;pwd=p@ssw0rd@t1ger;charset='utf8';SslMode=None;AllowLoadLocalInfile=true;" + //"ConnectionString": "server=172.18.8.55;database=wms;uid=root;pwd=Share@123;charset='utf8';SslMode=None;AllowLoadLocalInfile=true;" + //"ConnectionString": "server=47.115.28.255;port=3308;database=wms;uid=tiger;pwd=p@ssw0rd@t1ger;charset='utf8';SslMode=None;AllowLoadLocalInfile=true;" + "ConnectionString": "server=47.115.28.255;port=3308;database=tigerdb;uid=tiger;pwd=p@ssw0rd@t1ger;charset='utf8';SslMode=None;AllowLoadLocalInfile=true;" + //"ConnectionString": "server=localhost;port=3306;database=mqdb;uid=benlin;pwd=benlin@123;charset='utf8';SslMode=None;AllowLoadLocalInfile=true;" }, "Test": { //"DbType": "SqlServer", @@ -52,6 +55,7 @@ "DbType": "MySql", //"ConnectionString": "server=172.18.8.57;database=wms;uid=root;pwd=Share@123;charset='utf8';SslMode=None;AllowLoadLocalInfile=true;" "ConnectionString": "server=47.115.28.255;port=3308;database=wms;uid=tiger;pwd=p@ssw0rd@t1ger;charset='utf8';SslMode=None;AllowLoadLocalInfile=true;" + //"ConnectionString": "server=172.18.8.55;database=wms;uid=root;pwd=Share@123;charset='utf8';SslMode=None;AllowLoadLocalInfile=true;" }, "MES": { "DbType": "MySql", @@ -77,8 +81,8 @@ //榛樿璇█ "DefaultLanguage": "zh-CN", //褰撳墠椤圭洰 - "CurrentProject": "Sharetronic", + "CurrentProject": "MqBarcode", "JuDian": "XCSJ", "IsTestServer": false, - "IsUseDbCache": true + "IsUseDbCache": false } \ No newline at end of file diff --git a/Tiger.Business/MES/Biz.Route.cs b/Tiger.Business/MES/Biz.Route.cs index ad36fd3..9a5f25b 100644 --- a/Tiger.Business/MES/Biz.Route.cs +++ b/Tiger.Business/MES/Biz.Route.cs @@ -48,9 +48,9 @@ /// <summary> /// 鑾峰彇宸ヨ壓璺嚎鍥惧舰鏁版嵁 /// </summary> - /// <param name="routerCode"></param> + /// <param name="routerId"></param> /// <returns></returns> - public async Task<ApiAction<RouteData>> GetRouteData(string routerCode) + public async Task<ApiAction<RouteData>> GetRouteData(string routerId) { var res = new ApiAction<RouteData>(); RouteData rotData = new RouteData(); @@ -58,12 +58,12 @@ { //宸ヨ壓璺嚎 var route = await Db.Queryable<MES_ROUTE>() - .WhereIF(!string.IsNullOrEmpty(routerCode), x => x.ROT_CODE.Equals(routerCode)) + .WhereIF(!string.IsNullOrEmpty(routerId), x => x.ROT_CODE.Equals(routerId)) .OrderBy(x => x.CREATE_TIME).FirstAsync(); rotData.route = route; //鑺傜偣 var nodes = await Db.Queryable<MES_ROUTE_NODE>() - .WhereIF(!string.IsNullOrEmpty(routerCode), x => x.ROT_CODE.Equals(routerCode)) + .WhereIF(!string.IsNullOrEmpty(routerId), x => x.ROT_ID.Equals(routerId)) .ToListAsync(); foreach (var node in nodes) { @@ -86,7 +86,7 @@ //杈� var edges = await Db.Queryable<MES_ROUTE_EDGE>() - .WhereIF(!string.IsNullOrEmpty(routerCode), x => x.ROT_CODE.Equals(routerCode)) + .WhereIF(!string.IsNullOrEmpty(routerId), x => x.ROT_ID.Equals(routerId)) .ToListAsync(); foreach (var edge in edges) { @@ -144,10 +144,10 @@ var dbTran = db.UseTran(() => { var y = db.Storageable(routeEdge) - .WhereColumns(t => new { t.EDGE_CODE, t.GHOST_ROW }) + .WhereColumns(t => new { t.ID, t.GHOST_ROW }) .ToStorage(); y.AsInsertable.ExecuteCommand(); - y.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); + y.AsUpdateable.ExecuteCommand(); }); if (!dbTran.IsSuccess) { @@ -176,10 +176,10 @@ var dbTran = db.UseTran(() => { var y = db.Storageable(routeNode) - .WhereColumns(t => new { t.NODE_CODE, t.GHOST_ROW }) + .WhereColumns(t => new { t.ID, t.GHOST_ROW }) .ToStorage(); y.AsInsertable.ExecuteCommand(); - y.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); + y.AsUpdateable.ExecuteCommand(); }); if (!dbTran.IsSuccess) { diff --git a/Tiger.Model.Net/Entitys/MES/BIZ_MES_WO.cs b/Tiger.Model.Net/Entitys/MES/BIZ_MES_WO.cs new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Tiger.Model.Net/Entitys/MES/BIZ_MES_WO.cs diff --git a/Tiger.Model.Net/Entitys/MES/MES_FACTORY.cs b/Tiger.Model.Net/Entitys/MES/MES_FACTORY.cs index edc6994..83ce775 100644 --- a/Tiger.Model.Net/Entitys/MES/MES_FACTORY.cs +++ b/Tiger.Model.Net/Entitys/MES/MES_FACTORY.cs @@ -7,97 +7,107 @@ namespace Tiger.Model { /// <summary> - /// 瀹炰綋锛氬伐鍘� + /// 实体:工厂 /// </summary> [Description("Primary:ID")] [Serializable] [SugarTable("MES_FACTORY")] public class MES_FACTORY : DbEntityWithAuth - { - #region 鏋勯�犲嚱鏁� + { + #region 构造函数 /// <summary> - /// 瀹炰綋锛氬伐鍘� + /// 实体:工厂 /// </summary> public MES_FACTORY() {} #endregion - #region 鍏叡灞炴�� + #region 公共属性 /// <summary> - /// 宸ュ巶浠g爜 + /// 工厂编码 /// </summary> public string FTY_CODE { get; set; } /// <summary> - /// 宸ュ巶鍚嶇О + /// 工厂名称 /// </summary> public string FTY_NAME { get; set; } /// <summary> - /// 宸ュ巶绠�绉� + /// 工厂简称 /// </summary> public string SHORT_NAME { get; set; } /// <summary> - /// 宸ュ巶鍖哄煙 + /// 工厂区域 /// </summary> public string FTY_AREA { get; set; } /// <summary> - /// 宸ュ巶鑱旂郴浜� + /// 工厂联系人 /// </summary> public string FTY_CONTACT { get; set; } /// <summary> - /// 宸ュ巶鍦板潃 + /// 工厂地址 /// </summary> public string FTY_ADDRESS { get; set; } /// <summary> - /// 宸ュ巶鐢佃瘽 + /// 工厂电话 /// </summary> public string FTY_TEL { get; set; } /// <summary> - /// 缁勭粐浠g爜 + /// 组织编码 /// </summary> public string ORG_CODE { get; set; } /// <summary> - /// 鏄惁鍚敤(Y/N) + /// 是否启用(Y/N) /// </summary> public string IS_ACTIVE { get; set; } - /// <summary> - /// MES API 鍦板潃 - /// </summary> - public string MES_API { get; set; } - /// <summary> - /// AGV API 鍦板潃 - /// </summary> - public string AGV_API { get; set; } - /// <summary> - /// 璐ф灦 API 鍦板潃 - /// </summary> - public string SHELF_API { get; set; } - /// <summary> - /// 澶囨敞 - /// </summary> - public string REMARK { get; set; } - #endregion + /// <summary> + /// MES API 地址 + /// </summary> + public string MES_API { get; set; } + /// <summary> + /// AGV API 地址 + /// </summary> + public string AGV_API { get; set; } + /// <summary> + /// 备注 + /// </summary> + public string REMARK { get; set; } + #endregion - #region 铏氭嫙灞炴�� - /*渚嬪瓙 + #region 虚拟属性 + /*例子 [SugarColumn(IsIgnore = true)] public string FieldName { get; set; } */ - #endregion + #endregion - #region 鏋氫妇鍙橀噺 - /*渚嬪瓙 + #region 外键属性 + /*例子 + //一对一外键导航 + [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_FACTORY类里面的外键ID字段 + public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null + //一对多外键导航 + [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_FACTORYId))]//ClassA表中的MES_FACTORYId + public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null + //多对多外键导航 + [Navigate(typeof(MappingClass), nameof(MappingClass.MES_FACTORYId), nameof(MappingClass.ClassAId))]//注意顺序 + public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null + */ + #endregion + + #region 枚举变量 + /*例子 public enum FieldNames { - [Description("鏋氫妇鎻忚堪0")] + [Description("枚举描述0")] Enum0, - [Description("鏋氫妇鎻忚堪1")] + [Description("枚举描述1")] Enum1, } */ - #endregion + #endregion - #region 鍏叡鏂规硶 + #region 公共方法 - #endregion + #endregion - }//endClass + }//endClass } \ No newline at end of file diff --git a/Tiger.Model.Net/Entitys/MES/MES_LINE.cs b/Tiger.Model.Net/Entitys/MES/MES_LINE.cs index a0fc2f7..cba7aa5 100644 --- a/Tiger.Model.Net/Entitys/MES/MES_LINE.cs +++ b/Tiger.Model.Net/Entitys/MES/MES_LINE.cs @@ -7,75 +7,89 @@ namespace Tiger.Model { /// <summary> - /// 瀹炰綋锛氫骇绾� + /// 实体:产线 /// </summary> [Description("Primary:ID")] [Serializable] [SugarTable("MES_LINE")] public class MES_LINE : DbEntityWithAuth - { - #region 鏋勯�犲嚱鏁� + { + #region 构造函数 /// <summary> - /// 瀹炰綋锛氫骇绾� + /// 实体:产线 /// </summary> public MES_LINE() {} #endregion - #region 鍏叡灞炴�� + #region 公共属性 /// <summary> - /// 浜х嚎浠g爜 + /// 产线编码 /// </summary> public string LINE_CODE { get; set; } /// <summary> - /// 浜х嚎鍚嶇О + /// 产线名称 /// </summary> public string LINE_NAME { get; set; } /// <summary> - /// 浜х嚎绠�绉� + /// 产线简称 /// </summary> public string SHORT_NAME { get; set; } /// <summary> - /// 浜х嚎绫诲瀷 + /// 产线类型 /// </summary> public string LINE_TYPE { get; set; } /// <summary> - /// 杞﹂棿浠g爜 + /// 车间编码 /// </summary> public string WS_CODE { get; set; } /// <summary> - /// 缁勭粐浠g爜 + /// 组织编码 /// </summary> public string ORG_CODE { get; set; } /// <summary> - /// 鏄惁鍚敤(Y/N) + /// 是否启用(Y/N) /// </summary> public string IS_ACTIVE { get; set; } /// <summary> - /// 澶囨敞 + /// 备注 /// </summary> public string REMARK { get; set; } #endregion - #region 铏氭嫙灞炴�� - /*渚嬪瓙 + #region 虚拟属性 + /*例子 [SugarColumn(IsIgnore = true)] public string FieldName { get; set; } */ #endregion - #region 鏋氫妇鍙橀噺 - /*渚嬪瓙 + #region 外键属性 + /*例子 + //一对一外键导航 + [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_LINE类里面的外键ID字段 + public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null + //一对多外键导航 + [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_LINEId))]//ClassA表中的MES_LINEId + public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null + //多对多外键导航 + [Navigate(typeof(MappingClass), nameof(MappingClass.MES_LINEId), nameof(MappingClass.ClassAId))]//注意顺序 + public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null + */ + #endregion + + #region 枚举变量 + /*例子 public enum FieldNames { - [Description("鏋氫妇鎻忚堪0")] + [Description("枚举描述0")] Enum0, - [Description("鏋氫妇鎻忚堪1")] + [Description("枚举描述1")] Enum1, } */ #endregion - #region 鍏叡鏂规硶 + #region 公共方法 #endregion diff --git a/Tiger.Model.Net/Entitys/MES/MES_OPERATION.cs b/Tiger.Model.Net/Entitys/MES/MES_OPERATION.cs index b56f2c1..f53e0e3 100644 --- a/Tiger.Model.Net/Entitys/MES/MES_OPERATION.cs +++ b/Tiger.Model.Net/Entitys/MES/MES_OPERATION.cs @@ -12,7 +12,7 @@ [Description("Primary:ID")] [Serializable] [SugarTable("MES_OPERATION")] - public class MES_OPERATION : DbEntity + public class MES_OPERATION : DbEntityWithAuth { #region 构造函数 /// <summary> @@ -23,7 +23,7 @@ #region 公共属性 /// <summary> - /// 工序代码 + /// 工序编码 /// </summary> public string OPER_CODE { get; set; } /// <summary> @@ -47,6 +47,26 @@ /// </summary> public string IS_ACTIVE { get; set; } /// <summary> + /// 设置值1 + /// </summary> + public string OPTION_1 { get; set; } + /// <summary> + /// 设置值2 + /// </summary> + public string OPTION_2 { get; set; } + /// <summary> + /// 设置值3 + /// </summary> + public string OPTION_3 { get; set; } + /// <summary> + /// 设置值4 + /// </summary> + public string OPTION_4 { get; set; } + /// <summary> + /// 设置值5 + /// </summary> + public string OPTION_5 { get; set; } + /// <summary> /// 备注 /// </summary> public string REMARK { get; set; } @@ -59,6 +79,20 @@ */ #endregion + #region 外键属性 + /*例子 + //一对一外键导航 + [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_OPERATION类里面的外键ID字段 + public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null + //一对多外键导航 + [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_OPERATIONId))]//ClassA表中的MES_OPERATIONId + public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null + //多对多外键导航 + [Navigate(typeof(MappingClass), nameof(MappingClass.MES_OPERATIONId), nameof(MappingClass.ClassAId))]//注意顺序 + public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null + */ + #endregion + #region 枚举变量 /*例子 public enum FieldNames diff --git a/Tiger.Model.Net/Entitys/MES/MES_POSITION.cs b/Tiger.Model.Net/Entitys/MES/MES_POSITION.cs index 5c93224..6f54e89 100644 --- a/Tiger.Model.Net/Entitys/MES/MES_POSITION.cs +++ b/Tiger.Model.Net/Entitys/MES/MES_POSITION.cs @@ -7,79 +7,93 @@ namespace Tiger.Model { /// <summary> - /// 瀹炰綋锛氬矖浣� + /// 实体:岗位 /// </summary> [Description("Primary:ID")] [Serializable] [SugarTable("MES_POSITION")] public class MES_POSITION : DbEntityWithAuth { - #region 鏋勯�犲嚱鏁� + #region 构造函数 /// <summary> - /// 瀹炰綋锛氬矖浣� + /// 实体:岗位 /// </summary> public MES_POSITION() {} #endregion - #region 鍏叡灞炴�� + #region 公共属性 /// <summary> - /// 宀椾綅浠g爜 + /// 岗位编码 /// </summary> - public string POS_CODE { get; set; } + public string POST_CODE { get; set; } /// <summary> - /// 宀椾綅鍚嶇О + /// 岗位名称 /// </summary> - public string POS_NAME { get; set; } + public string POST_NAME { get; set; } /// <summary> - /// 宀椾綅绠�绉� + /// 岗位简称 /// </summary> public string SHORT_NAME { get; set; } /// <summary> - /// 宀椾綅绫诲瀷 + /// 岗位类型 /// </summary> - public string POS_TYPE { get; set; } + public string POST_TYPE { get; set; } /// <summary> - /// 浜х嚎浠g爜 + /// 产线编码 /// </summary> public string LINE_CODE { get; set; } /// <summary> - /// 宸ュ簭缂栫爜 + /// 工序编码 /// </summary> public string OPER_CODE { get; set; } /// <summary> - /// 缁勭粐浠g爜 + /// 组织编码 /// </summary> public string ORG_CODE { get; set; } /// <summary> - /// 鏄惁鍚敤(Y/N) + /// 是否启用(Y/N) /// </summary> public string IS_ACTIVE { get; set; } /// <summary> - /// 澶囨敞 + /// 备注 /// </summary> public string REMARK { get; set; } #endregion - #region 铏氭嫙灞炴�� - /*渚嬪瓙 + #region 虚拟属性 + /*例子 [SugarColumn(IsIgnore = true)] public string FieldName { get; set; } */ #endregion - #region 鏋氫妇鍙橀噺 - /*渚嬪瓙 + #region 外键属性 + /*例子 + //一对一外键导航 + [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_POSITION类里面的外键ID字段 + public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null + //一对多外键导航 + [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_POSITIONId))]//ClassA表中的MES_POSITIONId + public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null + //多对多外键导航 + [Navigate(typeof(MappingClass), nameof(MappingClass.MES_POSITIONId), nameof(MappingClass.ClassAId))]//注意顺序 + public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null + */ + #endregion + + #region 枚举变量 + /*例子 public enum FieldNames { - [Description("鏋氫妇鎻忚堪0")] + [Description("枚举描述0")] Enum0, - [Description("鏋氫妇鎻忚堪1")] + [Description("枚举描述1")] Enum1, } */ #endregion - #region 鍏叡鏂规硶 + #region 公共方法 #endregion diff --git a/Tiger.Model.Net/Entitys/MES/MES_ROUTE.cs b/Tiger.Model.Net/Entitys/MES/MES_ROUTE.cs index 00f0836..4cc05f0 100644 --- a/Tiger.Model.Net/Entitys/MES/MES_ROUTE.cs +++ b/Tiger.Model.Net/Entitys/MES/MES_ROUTE.cs @@ -12,7 +12,7 @@ [Description("Primary:ID")] [Serializable] [SugarTable("MES_ROUTE")] - public class MES_ROUTE : DbEntity + public class MES_ROUTE : DbEntityWithAuth { #region 构造函数 /// <summary> @@ -23,7 +23,7 @@ #region 公共属性 /// <summary> - /// 工艺路线代码 + /// 工艺路线编码 /// </summary> public string ROT_CODE { get; set; } /// <summary> @@ -31,13 +31,13 @@ /// </summary> public string ROT_NAME { get; set; } /// <summary> - /// 工艺路线类型 + /// 工艺路线类型(0Normal默认|1Rework返工) /// </summary> public int ROT_TYPE { get; set; } /// <summary> /// 工艺路线版本 /// </summary> - public string ROT_VER { get; set; } + public double ROT_VER { get; set; } /// <summary> /// 是否启用(Y/N) /// </summary> @@ -46,17 +46,31 @@ /// 备注 /// </summary> public string REMARK { get; set; } - #endregion + #endregion - #region 虚拟属性 - /*例子 + #region 虚拟属性 + /*例子 [SugarColumn(IsIgnore = true)] public string FieldName { get; set; } */ - #endregion + #endregion - #region 枚举变量 - /*例子 + #region 外键属性 + /*例子 + //一对一外键导航 + [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_ROUTE类里面的外键ID字段 + public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null + //一对多外键导航 + [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_ROUTEId))]//ClassA表中的MES_ROUTEId + public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null + //多对多外键导航 + [Navigate(typeof(MappingClass), nameof(MappingClass.MES_ROUTEId), nameof(MappingClass.ClassAId))]//注意顺序 + public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null + */ + #endregion + + #region 枚举变量 + /*例子 public enum FieldNames { [Description("枚举描述0")] @@ -72,13 +86,13 @@ [Description("返工")] Rework, } - #endregion + #endregion - #region 公共方法 + #region 公共方法 - #endregion + #endregion - }//endClass + }//endClass public class RouteData { diff --git a/Tiger.Model.Net/Entitys/MES/MES_ROUTE_EDGE.cs b/Tiger.Model.Net/Entitys/MES/MES_ROUTE_EDGE.cs index 66ef73d..b0bcc25 100644 --- a/Tiger.Model.Net/Entitys/MES/MES_ROUTE_EDGE.cs +++ b/Tiger.Model.Net/Entitys/MES/MES_ROUTE_EDGE.cs @@ -12,7 +12,7 @@ [Description("Primary:ID")] [Serializable] [SugarTable("MES_ROUTE_EDGE")] - public class MES_ROUTE_EDGE : DbEntity + public class MES_ROUTE_EDGE : DbEntityWithAuth { #region 构造函数 /// <summary> @@ -23,23 +23,19 @@ #region 公共属性 /// <summary> - /// 连线代码 - /// </summary> - public string EDGE_CODE { get; set; } - /// <summary> /// 连线名称 /// </summary> public string EDGE_NAME { get; set; } /// <summary> - /// 工艺路线代码 + /// 工艺路线ID /// </summary> - public string ROT_CODE { get; set; } + public string ROT_ID { get; set; } /// <summary> - /// 源节点代码 + /// 源节点编码 /// </summary> public string SRC_NODE { get; set; } /// <summary> - /// 目标节点代码 + /// 目标节点编码 /// </summary> public string TGT_NODE { get; set; } /// <summary> @@ -49,19 +45,19 @@ /// <summary> /// 绘图属性:startPoint: x /// </summary> - public decimal GPH_SRC_X { get; set; } + public double GPH_SRC_X { get; set; } /// <summary> /// 绘图属性:startPoint: y /// </summary> - public decimal GPH_SRC_Y { get; set; } + public double GPH_SRC_Y { get; set; } /// <summary> /// 绘图属性:endPoint: x /// </summary> - public decimal GPH_TGT_X { get; set; } + public double GPH_TGT_X { get; set; } /// <summary> /// 绘图属性:endPoint: y /// </summary> - public decimal GPH_TGT_Y { get; set; } + public double GPH_TGT_Y { get; set; } /// <summary> /// 绘图属性:properties /// </summary> @@ -70,6 +66,30 @@ /// 绘图属性:pointsList /// </summary> public string GPH_POTS { get; set; } + /// <summary> + /// 连线类型(0Normal默认连线|1BackFlow回流连线|2Repair维修连线) + /// </summary> + public int EDGE_TYPE { get; set; } + /// <summary> + /// 设置值1 + /// </summary> + public string OPTION_1 { get; set; } + /// <summary> + /// 设置值2 + /// </summary> + public string OPTION_2 { get; set; } + /// <summary> + /// 设置值3 + /// </summary> + public string OPTION_3 { get; set; } + /// <summary> + /// 设置值4 + /// </summary> + public string OPTION_4 { get; set; } + /// <summary> + /// 设置值5 + /// </summary> + public string OPTION_5 { get; set; } /// <summary> /// 备注 /// </summary> @@ -81,7 +101,6 @@ [SugarColumn(IsIgnore = true)] public string FieldName { get; set; } */ - /// <summary> /// 边 /// </summary> @@ -89,6 +108,20 @@ public edge edge { get; set; } #endregion + #region 外键属性 + /*例子 + //一对一外键导航 + [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_ROUTE_EDGE类里面的外键ID字段 + public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null + //一对多外键导航 + [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_ROUTE_EDGEId))]//ClassA表中的MES_ROUTE_EDGEId + public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null + //多对多外键导航 + [Navigate(typeof(MappingClass), nameof(MappingClass.MES_ROUTE_EDGEId), nameof(MappingClass.ClassAId))]//注意顺序 + public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null + */ + #endregion + #region 枚举变量 /*例子 public enum FieldNames diff --git a/Tiger.Model.Net/Entitys/MES/MES_ROUTE_NODE.cs b/Tiger.Model.Net/Entitys/MES/MES_ROUTE_NODE.cs index 3bb11ba..4cea1d0 100644 --- a/Tiger.Model.Net/Entitys/MES/MES_ROUTE_NODE.cs +++ b/Tiger.Model.Net/Entitys/MES/MES_ROUTE_NODE.cs @@ -12,7 +12,7 @@ [Description("Primary:ID")] [Serializable] [SugarTable("MES_ROUTE_NODE")] - public class MES_ROUTE_NODE : DbEntity + public class MES_ROUTE_NODE : DbEntityWithAuth { #region 构造函数 /// <summary> @@ -23,23 +23,19 @@ #region 公共属性 /// <summary> - /// 节点代码 - /// </summary> - public string NODE_CODE { get; set; } - /// <summary> /// 节点名称 /// </summary> public string NODE_NAME { get; set; } /// <summary> - /// 工艺路线代码 + /// 工艺路线ID /// </summary> - public string ROT_CODE { get; set; } + public string ROT_ID { get; set; } /// <summary> /// 工段 /// </summary> public string SEGMENT { get; set; } /// <summary> - /// 工序代码 + /// 工序编码 /// </summary> public string OPER_CODE { get; set; } /// <summary> @@ -49,11 +45,11 @@ /// <summary> /// 绘图属性:x /// </summary> - public decimal GPH_X { get; set; } + public double GPH_X { get; set; } /// <summary> /// 绘图属性:y /// </summary> - public decimal GPH_Y { get; set; } + public double GPH_Y { get; set; } /// <summary> /// 绘图属性:properties /// </summary> @@ -75,6 +71,26 @@ /// </summary> public string CAN_SKIP { get; set; } /// <summary> + /// 设置值1 + /// </summary> + public string OPTION_1 { get; set; } + /// <summary> + /// 设置值2 + /// </summary> + public string OPTION_2 { get; set; } + /// <summary> + /// 设置值3 + /// </summary> + public string OPTION_3 { get; set; } + /// <summary> + /// 设置值4 + /// </summary> + public string OPTION_4 { get; set; } + /// <summary> + /// 设置值5 + /// </summary> + public string OPTION_5 { get; set; } + /// <summary> /// 备注 /// </summary> public string REMARK { get; set; } @@ -85,14 +101,27 @@ [SugarColumn(IsIgnore = true)] public string FieldName { get; set; } */ - - /// <summary> - /// 节点 - /// </summary> + /// <summary> + /// 节点 + /// </summary> [SugarColumn(IsIgnore = true)] public node node { get; set; } #endregion + #region 外键属性 + /*例子 + //一对一外键导航 + [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_ROUTE_NODE类里面的外键ID字段 + public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null + //一对多外键导航 + [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_ROUTE_NODEId))]//ClassA表中的MES_ROUTE_NODEId + public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null + //多对多外键导航 + [Navigate(typeof(MappingClass), nameof(MappingClass.MES_ROUTE_NODEId), nameof(MappingClass.ClassAId))]//注意顺序 + public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null + */ + #endregion + #region 枚举变量 /*例子 public enum FieldNames diff --git a/Tiger.Model.Net/Entitys/MES/MES_ROUTE_NODE_ACT.cs b/Tiger.Model.Net/Entitys/MES/MES_ROUTE_NODE_ACT.cs new file mode 100644 index 0000000..9c0d1dd --- /dev/null +++ b/Tiger.Model.Net/Entitys/MES/MES_ROUTE_NODE_ACT.cs @@ -0,0 +1,169 @@ +using System; +using SqlSugar; +using System.Linq; +using System.ComponentModel; +using System.Collections.Generic; + +namespace Tiger.Model +{ + /// <summary> + /// 实体:工序行为 + /// </summary> + [Description("Primary:ID")] + [Serializable] + [SugarTable("MES_ROUTE_NODE_ACT")] + public class MES_ROUTE_NODE_ACT : DbEntityWithAuth + { + #region 构造函数 + /// <summary> + /// 实体:工序行为 + /// </summary> + public MES_ROUTE_NODE_ACT() {} + #endregion + + #region 公共属性 + /// <summary> + /// 行为名称 + /// </summary> + public string ACT_NAME { get; set; } + /// <summary> + /// 工艺路线ID + /// </summary> + public string ROT_ID { get; set; } + /// <summary> + /// 工艺路线节点ID + /// </summary> + public string NODE_ID { get; set; } + /// <summary> + /// 工序编码 + /// </summary> + public string OPER_CODE { get; set; } + /// <summary> + /// 行为类型(0Normal默认行为|1Scan扫码验证|2Assy组装上料|3Test产品测试|4Audit产品抽检|5Print标签打印) + /// </summary> + public int ACT_TYPE { get; set; } + /// <summary> + /// 绘图属性:type + /// </summary> + public string GPH_TYPE { get; set; } + /// <summary> + /// 绘图属性:x + /// </summary> + public double GPH_X { get; set; } + /// <summary> + /// 绘图属性:y + /// </summary> + public double GPH_Y { get; set; } + /// <summary> + /// 绘图属性:properties + /// </summary> + public string GPH_PROP { get; set; } + /// <summary> + /// 绘图属性:text + /// </summary> + public string GPH_TEXT { get; set; } + /// <summary> + /// 自定义方法类型(0ServerMethod服务端方法|1WebApiWebApi方法|1StoredProcedure存储过程) + /// </summary> + public int DO_TYPE { get; set; } + /// <summary> + /// 自定义方法(调用方法的全名) + /// </summary> + public string DO_METHOD { get; set; } + /// <summary> + /// 通过时执行(调用方法的全名) + /// </summary> + public string DO_IF_PASS { get; set; } + /// <summary> + /// 失败时执行(调用方法的全名) + /// </summary> + public string DO_IF_FAIL { get; set; } + /// <summary> + /// 扫码验证:条码规则 + /// </summary> + public string RULE_CODE { get; set; } + /// <summary> + /// 组装上料:物料料号 + /// </summary> + public string ITEM_CODE { get; set; } + /// <summary> + /// 产品测试/抽检:产品料号 + /// </summary> + public string PROD_CODE { get; set; } + /// <summary> + /// 产品测试:检验项目编码 + /// </summary> + public string TEST_CODE { get; set; } + /// <summary> + /// 产品抽检:抽样规则编码 + /// </summary> + public string SAPL_CODE { get; set; } + /// <summary> + /// 标签打印:标签模板编码 + /// </summary> + public string LABEL_CODE { get; set; } + /// <summary> + /// 设置值1 + /// </summary> + public string OPTION_1 { get; set; } + /// <summary> + /// 设置值2 + /// </summary> + public string OPTION_2 { get; set; } + /// <summary> + /// 设置值3 + /// </summary> + public string OPTION_3 { get; set; } + /// <summary> + /// 设置值4 + /// </summary> + public string OPTION_4 { get; set; } + /// <summary> + /// 设置值5 + /// </summary> + public string OPTION_5 { get; set; } + /// <summary> + /// 备注 + /// </summary> + public string REMARK { get; set; } + #endregion + + #region 虚拟属性 + /*例子 + [SugarColumn(IsIgnore = true)] + public string FieldName { get; set; } + */ + #endregion + + #region 外键属性 + /*例子 + //一对一外键导航 + [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_ROUTE_NODE_ACT类里面的外键ID字段 + public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null + //一对多外键导航 + [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_ROUTE_NODE_ACTId))]//ClassA表中的MES_ROUTE_NODE_ACTId + public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null + //多对多外键导航 + [Navigate(typeof(MappingClass), nameof(MappingClass.MES_ROUTE_NODE_ACTId), nameof(MappingClass.ClassAId))]//注意顺序 + public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null + */ + #endregion + + #region 枚举变量 + /*例子 + public enum FieldNames + { + [Description("枚举描述0")] + Enum0, + [Description("枚举描述1")] + Enum1, + } + */ + #endregion + + #region 公共方法 + + #endregion + + }//endClass +} \ No newline at end of file diff --git a/Tiger.Model.Net/Entitys/MES/MES_SHIFT.cs b/Tiger.Model.Net/Entitys/MES/MES_SHIFT.cs index 28b5836..3a5e66f 100644 --- a/Tiger.Model.Net/Entitys/MES/MES_SHIFT.cs +++ b/Tiger.Model.Net/Entitys/MES/MES_SHIFT.cs @@ -12,7 +12,7 @@ [Description("Primary:ID")] [Serializable] [SugarTable("MES_SHIFT")] - public class MES_SHIFT : DbEntity + public class MES_SHIFT : DbEntityWithAuth { #region 构造函数 /// <summary> @@ -23,7 +23,7 @@ #region 公共属性 /// <summary> - /// 班次代码 + /// 班次编码 /// </summary> public string SFT_CODE { get; set; } /// <summary> @@ -31,7 +31,7 @@ /// </summary> public string SFT_NAME { get; set; } /// <summary> - /// 班制代码 + /// 班制编码 /// </summary> public string SFTS_CODE { get; set; } /// <summary> @@ -59,6 +59,20 @@ */ #endregion + #region 外键属性 + /*例子 + //一对一外键导航 + [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_SHIFT类里面的外键ID字段 + public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null + //一对多外键导航 + [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_SHIFTId))]//ClassA表中的MES_SHIFTId + public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null + //多对多外键导航 + [Navigate(typeof(MappingClass), nameof(MappingClass.MES_SHIFTId), nameof(MappingClass.ClassAId))]//注意顺序 + public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null + */ + #endregion + #region 枚举变量 /*例子 public enum FieldNames diff --git a/Tiger.Model.Net/Entitys/MES/MES_SHIFT_PERIOD.cs b/Tiger.Model.Net/Entitys/MES/MES_SHIFT_PERIOD.cs new file mode 100644 index 0000000..2aa3fe7 --- /dev/null +++ b/Tiger.Model.Net/Entitys/MES/MES_SHIFT_PERIOD.cs @@ -0,0 +1,97 @@ +using System; +using SqlSugar; +using System.Linq; +using System.ComponentModel; +using System.Collections.Generic; + +namespace Tiger.Model +{ + /// <summary> + /// 实体:班次时段 + /// </summary> + [Description("Primary:ID")] + [Serializable] + [SugarTable("MES_SHIFT_PERIOD")] + public class MES_SHIFT_PERIOD : DbEntityWithAuth + { + #region 构造函数 + /// <summary> + /// 实体:班次时段 + /// </summary> + public MES_SHIFT_PERIOD() {} + #endregion + + #region 公共属性 + /// <summary> + /// 时段编码 + /// </summary> + public string PRD_CODE { get; set; } + /// <summary> + /// 时段名称 + /// </summary> + public string PRD_NAME { get; set; } + /// <summary> + /// 班次编码 + /// </summary> + public string SFT_CODE { get; set; } + /// <summary> + /// 时段开始时间 + /// </summary> + public int SFT_BEGIN { get; set; } + /// <summary> + /// 时段结束时间 + /// </summary> + public int SFT_END { get; set; } + /// <summary> + /// 时段排序 + /// </summary> + public int SEQ { get; set; } + /// <summary> + /// 是否跨天(Y/N) + /// </summary> + public string IS_ACROSS_DAY { get; set; } + /// <summary> + /// 备注 + /// </summary> + public string REMARK { get; set; } + #endregion + + #region 虚拟属性 + /*例子 + [SugarColumn(IsIgnore = true)] + public string FieldName { get; set; } + */ + #endregion + + #region 外键属性 + /*例子 + //一对一外键导航 + [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_SHIFT_PERIOD类里面的外键ID字段 + public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null + //一对多外键导航 + [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_SHIFT_PERIODId))]//ClassA表中的MES_SHIFT_PERIODId + public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null + //多对多外键导航 + [Navigate(typeof(MappingClass), nameof(MappingClass.MES_SHIFT_PERIODId), nameof(MappingClass.ClassAId))]//注意顺序 + public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null + */ + #endregion + + #region 枚举变量 + /*例子 + public enum FieldNames + { + [Description("枚举描述0")] + Enum0, + [Description("枚举描述1")] + Enum1, + } + */ + #endregion + + #region 公共方法 + + #endregion + + }//endClass +} \ No newline at end of file diff --git a/Tiger.Model.Net/Entitys/MES/MES_SHIFT_SYS.cs b/Tiger.Model.Net/Entitys/MES/MES_SHIFT_SYS.cs index 0556549..ea8a202 100644 --- a/Tiger.Model.Net/Entitys/MES/MES_SHIFT_SYS.cs +++ b/Tiger.Model.Net/Entitys/MES/MES_SHIFT_SYS.cs @@ -12,7 +12,7 @@ [Description("Primary:ID")] [Serializable] [SugarTable("MES_SHIFT_SYS")] - public class MES_SHIFT_SYS : DbEntity + public class MES_SHIFT_SYS : DbEntityWithAuth { #region 构造函数 /// <summary> @@ -23,7 +23,7 @@ #region 公共属性 /// <summary> - /// 班制代码 + /// 班制编码 /// </summary> public string SFTS_CODE { get; set; } /// <summary> @@ -47,6 +47,20 @@ */ #endregion + #region 外键属性 + /*例子 + //一对一外键导航 + [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_SHIFT_SYS类里面的外键ID字段 + public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null + //一对多外键导航 + [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_SHIFT_SYSId))]//ClassA表中的MES_SHIFT_SYSId + public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null + //多对多外键导航 + [Navigate(typeof(MappingClass), nameof(MappingClass.MES_SHIFT_SYSId), nameof(MappingClass.ClassAId))]//注意顺序 + public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null + */ + #endregion + #region 枚举变量 /*例子 public enum FieldNames diff --git a/Tiger.Model.Net/Entitys/MES/MES_WORKSHOP.cs b/Tiger.Model.Net/Entitys/MES/MES_WORKSHOP.cs index 069d373..5969ef3 100644 --- a/Tiger.Model.Net/Entitys/MES/MES_WORKSHOP.cs +++ b/Tiger.Model.Net/Entitys/MES/MES_WORKSHOP.cs @@ -7,71 +7,85 @@ namespace Tiger.Model { /// <summary> - /// 瀹炰綋锛氳溅闂� + /// 实体:车间 /// </summary> [Description("Primary:ID")] [Serializable] [SugarTable("MES_WORKSHOP")] public class MES_WORKSHOP : DbEntityWithAuth - { - #region 鏋勯�犲嚱鏁� + { + #region 构造函数 /// <summary> - /// 瀹炰綋锛氳溅闂� + /// 实体:车间 /// </summary> public MES_WORKSHOP() {} #endregion - #region 鍏叡灞炴�� + #region 公共属性 /// <summary> - /// 杞﹂棿浠g爜 + /// 车间编码 /// </summary> public string WS_CODE { get; set; } /// <summary> - /// 杞﹂棿鍚嶇О + /// 车间名称 /// </summary> public string WS_NAME { get; set; } /// <summary> - /// 杞﹂棿绠�绉� + /// 车间简称 /// </summary> public string SHORT_NAME { get; set; } /// <summary> - /// 宸ュ巶浠g爜 + /// 工厂编码 /// </summary> public string FTY_CODE { get; set; } /// <summary> - /// 缁勭粐浠g爜 + /// 组织编码 /// </summary> public string ORG_CODE { get; set; } /// <summary> - /// 鏄惁鍚敤(Y/N) + /// 是否启用(Y/N) /// </summary> public string IS_ACTIVE { get; set; } /// <summary> - /// 澶囨敞 + /// 备注 /// </summary> public string REMARK { get; set; } #endregion - #region 铏氭嫙灞炴�� - /*渚嬪瓙 + #region 虚拟属性 + /*例子 [SugarColumn(IsIgnore = true)] public string FieldName { get; set; } */ #endregion - #region 鏋氫妇鍙橀噺 - /*渚嬪瓙 + #region 外键属性 + /*例子 + //一对一外键导航 + [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_WORKSHOP类里面的外键ID字段 + public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null + //一对多外键导航 + [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_WORKSHOPId))]//ClassA表中的MES_WORKSHOPId + public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null + //多对多外键导航 + [Navigate(typeof(MappingClass), nameof(MappingClass.MES_WORKSHOPId), nameof(MappingClass.ClassAId))]//注意顺序 + public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null + */ + #endregion + + #region 枚举变量 + /*例子 public enum FieldNames { - [Description("鏋氫妇鎻忚堪0")] + [Description("枚举描述0")] Enum0, - [Description("鏋氫妇鎻忚堪1")] + [Description("枚举描述1")] Enum1, } */ #endregion - #region 鍏叡鏂规硶 + #region 公共方法 #endregion diff --git a/Tiger.Model.Net/Entitys/MES/edge.cs b/Tiger.Model.Net/Entitys/MES/edge.cs index d8846f8..526f866 100644 --- a/Tiger.Model.Net/Entitys/MES/edge.cs +++ b/Tiger.Model.Net/Entitys/MES/edge.cs @@ -20,7 +20,7 @@ public class point { - public decimal x { get; set; } - public decimal y { get; set; } + public double x { get; set; } + public double y { get; set; } } } diff --git a/Tiger.Model.Net/Entitys/MES/node.cs b/Tiger.Model.Net/Entitys/MES/node.cs index cf11ef7..6cab35d 100644 --- a/Tiger.Model.Net/Entitys/MES/node.cs +++ b/Tiger.Model.Net/Entitys/MES/node.cs @@ -10,8 +10,8 @@ { public string id { get; set; } public string type { get; set; } - public decimal x { get; set; } - public decimal y { get; set; } + public double x { get; set; } + public double y { get; set; } public string properties { get; set; } public nodeText text { get; set; } } diff --git a/Tiger.Model.Net/Tiger.Model.Net.csproj b/Tiger.Model.Net/Tiger.Model.Net.csproj index c485ec0..30596eb 100644 --- a/Tiger.Model.Net/Tiger.Model.Net.csproj +++ b/Tiger.Model.Net/Tiger.Model.Net.csproj @@ -87,9 +87,12 @@ <Compile Include="Entitys\DigitalTwin\Sharetronic\OperateConfigConfirmEntity.cs" /> <Compile Include="Entitys\DigitalTwin\Sharetronic\OperateConfigEntity.cs" /> <Compile Include="Entitys\DigitalTwin\Sharetronic\ShelfApiResult.cs" /> + <Compile Include="Entitys\MES\BIZ_MES_WO.cs" /> <Compile Include="Entitys\MES\C_Stock_Info_t.cs" /> <Compile Include="Entitys\MES\C_Stock_Pallet_T.cs" /> <Compile Include="Entitys\MES\edge.cs" /> + <Compile Include="Entitys\MES\MES_ROUTE_NODE_ACT.cs" /> + <Compile Include="Entitys\MES\MES_SHIFT_PERIOD.cs" /> <Compile Include="Entitys\MES\node.cs" /> <Compile Include="Entitys\MES\R_Wip_Tracking_T.cs" /> <Compile Include="Entitys\SYS\LOG_CS_LOGIN.cs" /> -- Gitblit v1.9.3