Tiger.Api/Controllers/MES/MESController.Route.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Business/MES/Biz.Route.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.IBusiness/MES/IRoute.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Model.Net/Entitys/MES/MES_ROUTE.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Model.Net/Entitys/MES/MES_WO_EDGE.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Model.Net/Entitys/MES/MES_WO_NODE.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Model.Net/Entitys/MES/MES_WO_NODE_ACT.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Model.Net/Entitys/MES/V_MES_WO_NODE_POST.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Model.Net/Tiger.Model.Net.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Tiger.Api/Controllers/MES/MESController.Route.cs
@@ -160,6 +160,69 @@ } /// <summary> /// ä¿åå·¥åå·¥èºèç¹å²ä½èµæº /// </summary> /// <param name="action"></param> /// <returns></returns> [HttpPost] [Route("api/[controller]/[action]")] public async Task<IActionResult> SaveWoRouteNodePost([FromBody] ApiAction<List<MES_WO_NODE_POST>> action) { ApiAction response = new(); try { response = response.GetResponse(await DI.Resolve<IRoute>().SaveWoRouteNodePost(action.Data)); } catch (System.Exception ex) { response = response.GetResponse().CatchExceptionWithLog(ex); } return Ok(response); } /// <summary> /// ä¿åå·¥åå·¥èºè·¯çº¿å¾å½¢æ°æ® /// </summary> /// <param name="action"></param> /// <returns></returns> [HttpPost] [Route("api/[controller]/[action]")] public async Task<IActionResult> SaveWoRouteData([FromBody] ApiAction<WoRouteData> action) { ApiAction response = new(); try { response = response.GetResponse(await DI.Resolve<IRoute>().SaveWoRouteData(action.Data)); } catch (System.Exception ex) { response = response.GetResponse().CatchExceptionWithLog(ex); } return Ok(response); } /// <summary> /// è·åå·¥åå·¥èºè·¯çº¿å¾å½¢æ°æ® /// </summary> /// <param name="action"></param> /// <returns></returns> [HttpPost] [Route("api/[controller]/[action]")] public async Task<IActionResult> GetWoRouteData([FromBody] ApiAction action) { ApiAction response = new(); try { response = response.GetResponse(await DI.Resolve<IRoute>().GetWoRouteData(action.Data?.ToString())); } catch (System.Exception ex) { response = response.GetResponse().CatchExceptionWithLog(ex); } return Ok(response); } /// <summary> /// å é¤å·¥åç»å®çå·¥èºè·¯çº¿ /// </summary> /// <param name="action"></param> Tiger.Business/MES/Biz.Route.cs
@@ -13,6 +13,7 @@ using Microsoft.AspNetCore.Http; using Tiger.Model.Entitys.WMS.DTOS; using static Tiger.Model.BIZ_MES_WO; using Tiger.Model.Entitys.MES.Position; namespace Tiger.Business { @@ -271,11 +272,11 @@ var result = new ApiAction(); try { var _route = Db.Queryable<MES_ROUTE>().Where(x=>x.ROT_CODE == route.ROT_CODE).First(); if (_route!=null && Db.Queryable<MES_ROUTE_NODE>().Where(x=>x.ROT_ID == _route.ID).Any()) var _route = Db.Queryable<MES_ROUTE>().Where(x => x.ROT_CODE == route.ROT_CODE).First(); if (_route != null && Db.Queryable<MES_ROUTE_NODE>().Where(x => x.ROT_ID == _route.ID).Any()) { result.IsSuccessed = false; result.LocaleMsg = new($"å·¥èºè·¯çº¿å·²ç»æè®¾è®¡è®°å½ï¼ä¸è½ä¿åï¼"); result.LocaleMsg = new($"å·¥èºè·¯çº¿å·²ç»æè®¾è®¡è®°å½ï¼ä¸è½ä¿åï¼"); return result; } var db = Db; @@ -323,7 +324,7 @@ } db.Deleteable<MES_ROUTE_NODE>(false).Where(x => x.ROT_ID == routeData.route.ID).ExecuteCommand(); db.Deleteable<MES_ROUTE_EDGE>(false).Where(x => x.ROT_ID == routeData.route.ID).ExecuteCommand(); db.Deleteable<MES_ROUTE_NODE_ACT>(false).Where(x=>x.ROT_ID == routeData.route.ID).ExecuteCommand(); db.Deleteable<MES_ROUTE_NODE_ACT>(false).Where(x => x.ROT_ID == routeData.route.ID).ExecuteCommand(); if (routeData.nodes != null) { db.Insertable(routeData.nodes).ExecuteCommand(); @@ -355,7 +356,8 @@ /// </summary> /// <param name="routeId"></param> /// <returns></returns> public async Task<ApiAction> DeleteRoute(string routeId) { public async Task<ApiAction> DeleteRoute(string routeId) { var result = new ApiAction(); try { @@ -387,7 +389,8 @@ /// </summary> /// <param name="nodePost"></param> /// <returns></returns> public async Task<ApiAction> SaveRouteNodePost(List<MES_ROUTE_NODE_POST> nodePost) { public async Task<ApiAction> SaveRouteNodePost(List<MES_ROUTE_NODE_POST> nodePost) { var result = new ApiAction(); try { @@ -476,7 +479,7 @@ var result = new ApiAction(); try { var bizMesWo = await Db.Queryable<BIZ_MES_WO>().Where(x=> x.ORDER_NO == input.wo).FirstAsync(); var bizMesWo = await Db.Queryable<BIZ_MES_WO>().Where(x => x.ORDER_NO == input.wo).FirstAsync(); if (bizMesWo != null && bizMesWo.STATUS > (int)STATUSs.Imported && bizMesWo.STATUS < (int)STATUSs.Closed) { result.IsSuccessed = false; @@ -511,7 +514,8 @@ } } //妿é¤äºå é¤çå½åå·¥èºè·¯çº¿ä¸åå¨å ¶ä»ç»å®çå·¥èºè·¯çº¿ï¼åæ´æ°ç¶æ if (bizMesWo != null && !Db.Queryable<MES_WO_NODE>().Where(x => x.WORK_ORDER == input.wo && x.ROT_ID != _rotId).Any()) { if (bizMesWo != null && !Db.Queryable<MES_WO_NODE>().Where(x => x.WORK_ORDER == input.wo && x.ROT_ID != _rotId).Any()) { bizMesWo.ROUTE_STATUS = (int)ROUTE_STATUSs.WaitSet; bizMesWo.STATUS = (int)STATUSs.Init; bizMesWo.ROUTE_CODE = ""; @@ -551,6 +555,221 @@ } return result; } } } #region å·¥åå·¥èºè·¯çº¿ç¸å ³ /// <summary> /// è·åå·¥åå·¥èºè·¯çº¿å¾å½¢æ°æ® /// </summary> /// <param name="workorder"></param> /// <returns></returns> public async Task<ApiAction<WoRouteData>> GetWoRouteData(string workorder) { var res = new ApiAction<WoRouteData>(); WoRouteData rotData = new WoRouteData(); try { if (string.IsNullOrEmpty(workorder)) { res.IsSuccessed = false; res.LocaleMsg = new($"ä¼ å ¥çå·¥èºè·¯çº¿ID为空ï¼ä¸è½æ¥æ¾å·¥èºè·¯çº¿ï¼"); return res; } //å·¥èºè·¯çº¿ var route = await Db.Queryable<BIZ_MES_WO, MES_ROUTE>((q, s) => new JoinQueryInfos(JoinType.Inner, q.ROUTE_CODE == s.ROT_CODE)) .Where((q, s) => q.ID.Equals(workorder) || q.ORDER_NO == workorder).Select((q, s) => new MES_ROUTE { ID = s.ID, ROT_CODE = s.ROT_CODE, ROT_NAME = s.ROT_NAME, ROT_TYPE = s.ROT_TYPE, ROT_VER = s.ROT_VER, IS_ACTIVE = s.IS_ACTIVE, REMARK = s.REMARK, WORK_ORDER = q.ORDER_NO, PROD_CODE = q.ITEM_CODE, CUST_CODE = q.CUST_CODE, }).FirstAsync(); rotData.route = route; if (route == null) { res.IsSuccessed = false; res.LocaleMsg = new($"ä¸è½æ¥æ¾å°å·¥åå·¥èºè·¯çº¿ï¼"); return res; } //èç¹ var nodes = await Db.Queryable<MES_WO_NODE>() .WhereIF(!string.IsNullOrEmpty(route.ID), x => x.WORK_ORDER.Equals(route.WORK_ORDER)) .ToListAsync(); foreach (var node in nodes) { node.node = new() { id = node.ID, type = node.GPH_TYPE, x = node.GPH_X, y = node.GPH_Y, properties = node.GPH_PROP, text = new() { x = node.GPH_X, y = node.GPH_Y, value = node.GPH_TEXT } }; } rotData.nodes = nodes; var acts = await Db.Queryable<MES_WO_NODE_ACT>() .WhereIF(!string.IsNullOrEmpty(route.ID), x => x.WORK_ORDER.Equals(route.WORK_ORDER)) .ToListAsync(); foreach (var act in acts) { act.node = new() { id = act.ID, type = act.GPH_TYPE, x = act.GPH_X, y = act.GPH_Y, properties = act.GPH_PROP, text = new() { x = act.GPH_X, y = act.GPH_Y, value = act.GPH_TEXT } }; } rotData.acts = acts; //è¾¹ var edges = await Db.Queryable<MES_WO_EDGE>() .WhereIF(!string.IsNullOrEmpty(route.ID), x => x.WORK_ORDER.Equals(route.WORK_ORDER)) .ToListAsync(); foreach (var edge in edges) { edge.edge = new() { id = edge.ID, type = edge.GPH_TYPE, sourceNodeId = edge.SRC_NODE, targetNodeId = edge.TGT_NODE, properties = edge.GPH_PROP, startPoint = new() { x = edge.GPH_SRC_X, y = edge.GPH_SRC_Y, }, endPoint = new() { x = edge.GPH_TGT_X, y = edge.GPH_TGT_Y, }, pointsList = new() { new(){ x = edge.GPH_SRC_X, y = edge.GPH_SRC_Y, }, new(){ x = edge.GPH_TGT_X, y = edge.GPH_TGT_Y, } } }; } rotData.edges = edges; } catch (Exception ex) { res.CatchExceptionWithLog(ex, "æ¥è¯¢å¼å¸¸"); } res.Data = rotData; return res; } /// <summary> /// ä¿åå·¥åå·¥èºè·¯çº¿å¾å½¢æ°æ® /// </summary> /// <param name="routeData"></param> /// <returns></returns> public async Task<ApiAction> SaveWoRouteData(WoRouteData routeData) { var result = new ApiAction(); try { var db = Db; var dbTran = db.UseTran(() => { //if (routeData.route != null) //{ // var y = db.Storageable(routeData.route) // .WhereColumns(t => new { t.ROT_CODE, t.GHOST_ROW }) // .ToStorage(); // y.AsInsertable.ExecuteCommand(); // y.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); //} db.Deleteable<MES_WO_NODE>(false).Where(x => x.WORK_ORDER == routeData.route.WORK_ORDER).ExecuteCommand(); db.Deleteable<MES_WO_EDGE>(false).Where(x => x.WORK_ORDER == routeData.route.WORK_ORDER).ExecuteCommand(); db.Deleteable<MES_WO_NODE_ACT>(false).Where(x => x.WORK_ORDER == routeData.route.WORK_ORDER).ExecuteCommand(); if (routeData.nodes != null) { db.Insertable(routeData.nodes).ExecuteCommand(); } if (routeData.edges != null) { db.Insertable(routeData.edges).ExecuteCommand(); } if (routeData.acts != null) { db.Insertable(routeData.acts).ExecuteCommand(); } }); if (!dbTran.IsSuccess) { result.IsSuccessed = false; result.LocaleMsg = new($"ä¿åå·¥åå·¥èºè·¯çº¿å¾å½¢æ°æ®å¼å¸¸"); } } catch (Exception ex) { result.CatchExceptionWithLog(ex, "ä¿åå·¥åå·¥èºè·¯çº¿å¾å½¢æ°æ®å¼å¸¸"); } return await Task.FromResult(result); } /// <summary> /// ä¿åå·¥åå·¥èºèç¹å²ä½èµæº /// </summary> /// <param name="nodePost"></param> /// <returns></returns> public async Task<ApiAction> SaveWoRouteNodePost(List<MES_WO_NODE_POST> nodePost) { var result = new ApiAction(); try { var db = Db; var dbTran = db.UseTran(() => { var y = db.Storageable(nodePost) .ToStorage(); y.AsInsertable.ExecuteCommand(); y.AsUpdateable.ExecuteCommand(); }); if (!dbTran.IsSuccess) { result.IsSuccessed = false; result.LocaleMsg = new($"ä¿åå·¥åå·¥èºèç¹å²ä½èµæºæ°æ®å¼å¸¸"); } } catch (Exception ex) { result.CatchExceptionWithLog(ex, "ä¿åå·¥åå·¥èºèç¹å²ä½èµæºæ°æ®å¼å¸¸"); } return await Task.FromResult(result); } #endregion } //endClass Route } //endClass Biz } Tiger.IBusiness/MES/IRoute.cs
@@ -22,5 +22,8 @@ public Task<ApiAction> SaveRouteNodePost(List<MES_ROUTE_NODE_POST> nodePost); public Task<ApiAction> DeleteProdRoute(DelProdRotInput input); public Task<ApiAction> DeleteWoRoute(DelWoRotInput input); public Task<ApiAction<WoRouteData>> GetWoRouteData(string workorder); public Task<ApiAction> SaveWoRouteNodePost(List<MES_WO_NODE_POST> nodePost); public Task<ApiAction> SaveWoRouteData(WoRouteData routeData); } } Tiger.Model.Net/Entitys/MES/MES_ROUTE.cs
@@ -46,17 +46,23 @@ /// 夿³¨ /// </summary> public string REMARK { get; set; } #endregion #endregion #region èæå±æ§ /*ä¾å #region èæå±æ§ /*ä¾å [SugarColumn(IsIgnore = true)] public string FieldName { get; set; } */ #endregion [SugarColumn(IsIgnore = true)] public string WORK_ORDER { get; set; } [SugarColumn(IsIgnore = true)] public string PROD_CODE { get; set; } [SugarColumn(IsIgnore = true)] public string CUST_CODE { get; set; } #endregion #region å¤é®å±æ§ /*ä¾å #region å¤é®å±æ§ /*ä¾å //ä¸å¯¹ä¸å¤é®å¯¼èª [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//ä¸å¯¹ä¸ ClassAIdæ¯MES_ROUTEç±»éé¢çå¤é®IDåæ®µ public ClassA ClassA { get; set; } //注æç¦æ¢æå¨èµå¼ï¼åªè½æ¯null @@ -67,10 +73,10 @@ [Navigate(typeof(MappingClass), nameof(MappingClass.MES_ROUTEId), nameof(MappingClass.ClassAId))]//注æé¡ºåº public List<ClassA> ClassAList { get; set; } //注æç¦æ¢æå¨èµå¼ï¼åªè½æ¯null */ #endregion #endregion #region æä¸¾åé /*ä¾å #region æä¸¾åé /*ä¾å public enum FieldNames { [Description("æä¸¾æè¿°0")] @@ -94,6 +100,9 @@ }//endClass /// <summary> /// æ åå·¥èºè·¯çº¿å¾å®ä½ /// </summary> public class RouteData { public MES_ROUTE route { get; set; } @@ -101,4 +110,15 @@ public List<MES_ROUTE_EDGE> edges { get; set; } public List<MES_ROUTE_NODE_ACT> acts { get; set; } } /// <summary> /// å·¥åå·¥èºè·¯çº¿å¾å®ä½ /// </summary> public class WoRouteData { public MES_ROUTE route { get; set; } public List<MES_WO_NODE> nodes { get; set; } public List<MES_WO_EDGE> edges { get; set; } public List<MES_WO_NODE_ACT> acts { get; set; } } } Tiger.Model.Net/Entitys/MES/MES_WO_EDGE.cs
@@ -123,17 +123,22 @@ /// </summary> [DisplayName("夿³¨")] public string REMARK { get; set; } #endregion #endregion #region èæå±æ§ /*ä¾å #region èæå±æ§ /*ä¾å [SugarColumn(IsIgnore = true)] public string FieldName { get; set; } */ #endregion /// <summary> /// è¾¹ /// </summary> [SugarColumn(IsIgnore = true)] public edge edge { get; set; } #endregion #region å¤é®å±æ§ /*ä¾å #region å¤é®å±æ§ /*ä¾å //ä¸å¯¹ä¸å¤é®å¯¼èª [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//ä¸å¯¹ä¸ ClassAIdæ¯MES_WO_EDGEç±»éé¢çå¤é®IDåæ®µ public ClassA ClassA { get; set; } //注æç¦æ¢æå¨èµå¼ï¼åªè½æ¯null @@ -144,10 +149,10 @@ [Navigate(typeof(MappingClass), nameof(MappingClass.MES_WO_EDGEId), nameof(MappingClass.ClassAId))]//注æé¡ºåº public List<ClassA> ClassAList { get; set; } //注æç¦æ¢æå¨èµå¼ï¼åªè½æ¯null */ #endregion #endregion #region æä¸¾åé /*ä¾å #region æä¸¾åé /*ä¾å public enum FieldNames { [Description("æä¸¾æè¿°0")] @@ -156,11 +161,11 @@ Enum1, } */ #endregion #endregion #region å ¬å ±æ¹æ³ #region å ¬å ±æ¹æ³ #endregion #endregion }//endClass }//endClass } Tiger.Model.Net/Entitys/MES/MES_WO_NODE.cs
@@ -154,6 +154,11 @@ public int Sequence { get; set; } [SugarColumn(IsIgnore = true)] public List<string> PrepNodeIDs { get; set; } = new List<string>(); /// <summary> /// èç¹ /// </summary> [SugarColumn(IsIgnore = true)] public node node { get; set; } #endregion #region å¤é®å±æ§ Tiger.Model.Net/Entitys/MES/MES_WO_NODE_ACT.cs
@@ -140,6 +140,11 @@ [SugarColumn(IsIgnore = true)] public string FieldName { get; set; } */ /// <summary> /// èç¹ /// </summary> [SugarColumn(IsIgnore = true)] public node node { get; set; } #endregion #region å¤é®å±æ§ Tiger.Model.Net/Entitys/MES/V_MES_WO_NODE_POST.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,71 @@ using System; using SqlSugar; using System.Linq; using System.ComponentModel; using System.Collections.Generic; using Tiger.Model; namespace Tiger.Model { /// <summary> /// å®ä½ï¼V_MES_WO_NODE_POST /// </summary> [Serializable] [SugarTable("V_MES_WO_NODE_POST")] public class V_MES_WO_NODE_POST : iViewEntity { #region æé 彿° /// <summary> /// å®ä½ï¼V_MES_WO_NODE_POST /// </summary> public V_MES_WO_NODE_POST() {} #endregion #region å ¬å ±å±æ§ /// <summary> /// /// </summary> public string NODE_ID { get; set; } /// <summary> /// /// </summary> public string POST_CODE { get; set; } /// <summary> /// /// </summary> public string POST_NAME { get; set; } /// <summary> /// /// </summary> public string LINE_CODE { get; set; } /// <summary> /// /// </summary> public string OPER_CODE { get; set; } #endregion #region èæå±æ§ /*ä¾å [SugarColumn(IsIgnore = true)] public string FieldName { get; set; } */ #endregion #region æä¸¾åé /*ä¾å public enum FieldNames { [Description("æä¸¾æè¿°0")] Enum0, [Description("æä¸¾æè¿°1")] Enum1, } */ #endregion #region å ¬å ±æ¹æ³ #endregion }//endClass } Tiger.Model.Net/Tiger.Model.Net.csproj
@@ -179,6 +179,7 @@ <Compile Include="Entitys\MES\V_MES_ROUTE_NOE_POST.cs" /> <Compile Include="Entitys\MES\V_MES_ROUTE_PTREE.cs" /> <Compile Include="Entitys\MES\V_MES_WO_BATCH.cs" /> <Compile Include="Entitys\MES\V_MES_WO_NODE_POST.cs" /> <Compile Include="Entitys\MES\V_MES_WO_PTREE.cs" /> <Compile Include="Entitys\MES\V_SMT_TOOL.cs" /> <Compile Include="Entitys\MES\SMT_TOOL.cs" />