| Controllers/Simple/SimpleController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Dto/Simple/BiViewDto.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Dto/Simple/ChildrenDto.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Dto/Simple/MesSimpleDto.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Dto/Simple/ResultDto.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Dto/Simple/TreeViewDto.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| appsettings.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| entity/MesSimple.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| entity/MesSimpleCcb.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| service/Simple/SimpleManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Controllers/Simple/SimpleController.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,127 @@ using Microsoft.AspNetCore.Mvc; using NewPdaSqlServer.Dto.Simple; using NewPdaSqlServer.service.Simple; namespace NewPdaSqlServer.Controllers.Simple; /// <summary> /// çæ¿ç®å½æ¥å£æ§å¶å¨ /// è·¯ç±åç¼: /simple (ä¸Javaçæ¬å®å ¨ä¸è´) /// å®ç°ä¸Java SimpleControllerå®å ¨ç¸åçæ¥å£ /// </summary> [Route("simple")] [ApiController] public class SimpleController : ControllerBase { private readonly SimpleManager _simpleManager = new(); /// <summary> /// è·åæ å½¢èå /// 对åºJava: @PostMapping("/getTree") /// </summary> /// <returns>æ å½¢èåæ°æ®</returns> /// <remarks> /// 请æ±ç¤ºä¾: /// POST /simple/getTree /// Content-Type: application/json /// /// è¿åæ°æ®ç»æ: /// { /// "code": 0, /// "msg": "è¯·æ±æå", /// "count": 2, /// "data": [ /// { /// "id": 1, /// "title": "çäº§çæ¿", /// "field": "production", /// "spread": true, /// "children": [...] /// } /// ] /// } /// </remarks> /// <response code="200">æåè·åæ å½¢èå</response> [HttpPost("getTree")] public ResultDto<List<TreeViewDto>> GetTree() { return _simpleManager.GetTree(); } /// <summary> /// è·åèåå表 /// 对åºJava: @PostMapping("/list") /// 注æ: æ¤æ¥å£å·²åºæ¬åºå¼ï¼å端æ¹ç¨æ å½¢èåæ¹å¼å±ç¤º /// </summary> /// <returns>èååè¡¨æ°æ®</returns> /// <remarks> /// 请æ±ç¤ºä¾: /// POST /simple/list /// Content-Type: application/json /// /// è¿åæ°æ®ç»æ: /// { /// "code": 0, /// "msg": "è¯·æ±æå", /// "count": 5, /// "data": [ /// { /// "id": 1, /// "isTop": 1, /// "fid": 0, /// "title": "ç产æççæ¿", /// "field": "efficiency", /// "href": "http://bi.example.com/dashboard1", /// "spread": 0, /// "disabled": 0, /// "lbtime": 10 /// } /// ] /// } /// </remarks> /// <response code="200">æåè·åèåå表</response> [HttpPost("list")] public ResultDto<List<MesSimpleDto>> GetList() { return _simpleManager.GetMenuList(); } /// <summary> /// æ ¹æ®èåIDè·åBIè§å¾å表 /// 对åºJava: @GetMapping("/listByMenuId/{menuId}") /// æ ¸å¿æ¥å£ï¼ç¨äºè·åè½®æé¡µé¢çBIçæ¿é¾æ¥å表 /// </summary> /// <param name="menuId">èåID (è·¯å¾åæ°)</param> /// <returns>BIè§å¾å表</returns> /// <remarks> /// 请æ±ç¤ºä¾: /// GET /simple/listByMenuId/102 /// /// è¿åæ°æ®ç»æ: /// { /// "code": 0, /// "msg": "è¯·æ±æå", /// "count": 3, /// "data": [ /// { /// "id": 1001, /// "pid": 102, /// "name": "è´¨éè¶å¿åæ", /// "href": "http://bi.example.com/quality/trend", /// "lbtime": 10 /// } /// ] /// } /// /// ä¸å¡è¯´æ: /// - è¿åæå®èå䏿æçBIçæ¿é¾æ¥ /// - lbtimeåæ®µä»ç¶èåç»§æ¿ï¼MES_SIMPLEè¡¨ï¼ /// - åç«¯ä½¿ç¨æ¤æ°æ®å建iframeè¿è¡è½®æå±ç¤º /// </remarks> /// <response code="200">æåè·åBIè§å¾å表</response> [HttpGet("listByMenuId/{menuId}")] public ResultDto<List<BiViewDto>> GetBiViews(int menuId) { return _simpleManager.GetBiViewsByMenuId(menuId); } } Dto/Simple/BiViewDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,39 @@ using Newtonsoft.Json; namespace NewPdaSqlServer.Dto.Simple; /// <summary> /// BIè§å¾DTO - ç¨äºè½®æé¡µé¢çè§å¾æ°æ® /// </summary> public class BiViewDto { /// <summary> /// BIè§å¾ä¸»é®ID /// </summary> [JsonProperty("id")] public int Id { get; set; } /// <summary> /// æå±ç¶èåID /// </summary> [JsonProperty("pid")] public int? Pid { get; set; } /// <summary> /// BIè§å¾åç§° /// </summary> [JsonProperty("name")] public string? Name { get; set; } /// <summary> /// BIçæ¿ç宿´URLå°å /// </summary> [JsonProperty("href")] public string? Href { get; set; } /// <summary> /// è½®ææ¶é´é´é(ç§) /// </summary> [JsonProperty("lbtime")] public int? Lbtime { get; set; } } Dto/Simple/ChildrenDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,35 @@ using Newtonsoft.Json; namespace NewPdaSqlServer.Dto.Simple; /// <summary> /// åèå项 - æ å½¢ç»æçåèç¹ /// </summary> public class ChildrenDto { /// <summary> /// åèåID /// </summary> [JsonProperty("id")] public long Id { get; set; } /// <summary> /// åèååç§° /// </summary> [JsonProperty("title")] public string? Title { get; set; } /// <summary> /// è±ææ è¯ /// </summary> [JsonProperty("field")] public string? Field { get; set; } /// <summary> /// è·³è½¬é¾æ¥ /// 妿å¼ä¸º"è½®æ"ï¼åèªå¨çæbi_view.html龿¥ /// å¦åä½¿ç¨æ°æ®åºä¸é ç½®çåå§href /// </summary> [JsonProperty("href")] public string? Href { get; set; } } Dto/Simple/MesSimpleDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,64 @@ using Newtonsoft.Json; namespace NewPdaSqlServer.Dto.Simple; /// <summary> /// èåå®ä½DTO - ç¨äºå表å±ç¤º /// ä¸Javaçæ¬MesSimplesimpleåæ®µå®å ¨ä¸è´ /// </summary> public class MesSimpleDto { /// <summary> /// èªå¢ä¸»é®ID /// </summary> [JsonProperty("id")] public long Id { get; set; } /// <summary> /// æ¯å¦ä¸ºæ ¹èç¹ (0è¡¨ç¤ºä¸ºæ ¹èç¹) /// </summary> [JsonProperty("isTop")] public int? IsTop { get; set; } /// <summary> /// ç¶èç¹id /// </summary> [JsonProperty("fid")] public long? Fid { get; set; } /// <summary> /// åç§° /// </summary> [JsonProperty("title")] public string? Title { get; set; } /// <summary> /// è±æå /// </summary> [JsonProperty("field")] public string? Field { get; set; } /// <summary> /// å°å /// </summary> [JsonProperty("href")] public string? Href { get; set; } /// <summary> /// èç¹æ¯å¦åå§å±å¼ (0为ä¸å±å¼ï¼1为å±å¼) /// </summary> [JsonProperty("spread")] public int? Spread { get; set; } /// <summary> /// èç¹æ¯å¦ä¸ºå±ç¤º (0为å±ç¤ºï¼1为ä¸å±ç¤º) /// </summary> [JsonProperty("disabled")] public int? Disabled { get; set; } /// <summary> /// è½®ææ¶é´(ç§) /// </summary> [JsonProperty("lbtime")] public int? Lbtime { get; set; } } Dto/Simple/ResultDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,68 @@ using Newtonsoft.Json; namespace NewPdaSqlServer.Dto.Simple; /// <summary> /// ç»ä¸è¿åç»æå°è£ - ä¸Javaçæ¬å®å ¨å ¼å®¹ /// åæ®µå使ç¨code/msg/count/dataä»¥ä¿æåç«¯å ¼å®¹ /// </summary> /// <typeparam name="T">æ°æ®ç±»å</typeparam> public class ResultDto<T> { /// <summary> /// ç¶æç : 0=æå, 500=失败 /// </summary> [JsonProperty("code")] public int Code { get; set; } /// <summary> /// è¿åæ¶æ¯ /// </summary> [JsonProperty("msg")] public string? Msg { get; set; } /// <summary> /// è¿åçæ°æ® /// </summary> [JsonProperty("data")] public T? Data { get; set; } /// <summary> /// æ°æ®æ»æ° /// </summary> [JsonProperty("count")] public int Count { get; set; } /// <summary> /// æåè¿å /// </summary> /// <param name="data">æ°æ®</param> /// <param name="count">æ°æ®æ»æ°</param> /// <returns>æåç»æ</returns> public static ResultDto<T> Ok(T data, int count) { return new ResultDto<T> { Code = 0, Msg = "è¯·æ±æå", Data = data, Count = count }; } /// <summary> /// 失败è¿å /// </summary> /// <param name="message">é误信æ¯</param> /// <returns>å¤±è´¥ç»æ</returns> public static ResultDto<T> Error(string message) { return new ResultDto<T> { Code = 500, Msg = message, Data = default, Count = 0 }; } } Dto/Simple/TreeViewDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,39 @@ using Newtonsoft.Json; namespace NewPdaSqlServer.Dto.Simple; /// <summary> /// æ å½¢è§å¾ - ç¨äºLayui Treeç»ä»¶æ¸²æ /// </summary> public class TreeViewDto { /// <summary> /// èå项ID /// </summary> [JsonProperty("id")] public long Id { get; set; } /// <summary> /// èåæ¾ç¤ºåç§° /// </summary> [JsonProperty("title")] public string? Title { get; set; } /// <summary> /// èåè±ææ è¯ /// </summary> [JsonProperty("field")] public string? Field { get; set; } /// <summary> /// æ¯å¦é»è®¤å±å¼åèç¹ /// </summary> [JsonProperty("spread")] public bool Spread { get; set; } /// <summary> /// åèåå表 /// </summary> [JsonProperty("children")] public List<ChildrenDto>? Children { get; set; } } appsettings.json
@@ -10,7 +10,7 @@ "TestErpUrl": "http://192.168.1.149:8066/WebService1.asmx/MesToErpinfoTest", "ProductionErpUrl": "http://192.168.1.149:8066/WebService1.asmx/MesToErpinfoTest", //"DataBaseConn": "Data Source=192.168.1.146,12468;Initial Catalog=TEST_MES;User ID=testUser;Password =qixi1qaz@WSXtest;Encrypt=True;TrustServerCertificate=True;" "DataBaseConn": "Data Source=192.168.8.8;Initial Catalog=YS_MES;User ID=sa;Password =JianHui@2025;Encrypt=True;TrustServerCertificate=True;" "DataBaseConn": "Data Source=192.168.8.8;Initial Catalog=GS_MES;User ID=sa;Password =JianHui@2025;Encrypt=True;TrustServerCertificate=True;" }, "Version": "1.0.0", "X-KDApi-AcctID": "6244701c616bff", entity/MesSimple.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,64 @@ using SqlSugar; namespace NewPdaSqlServer.entity; /// <summary> /// èåç»´æ¤è¡¨ /// </summary> [SugarTable("MES_SIMPLE")] public class MesSimple { /// <summary> /// èªå¢åä¸»é® /// </summary> [SugarColumn(ColumnName = "id", IsPrimaryKey = true, IsIdentity = true)] public long Id { get; set; } /// <summary> /// æ¯å¦ä¸ºæ ¹èç¹ (0è¡¨ç¤ºä¸ºæ ¹èç¹) /// </summary> [SugarColumn(ColumnName = "is_top")] public int? IsTop { get; set; } /// <summary> /// ç¶èç¹id /// </summary> [SugarColumn(ColumnName = "fid")] public long? Fid { get; set; } /// <summary> /// åç§° /// </summary> [SugarColumn(ColumnName = "title")] public string? Title { get; set; } /// <summary> /// è±æå /// </summary> [SugarColumn(ColumnName = "field")] public string? Field { get; set; } /// <summary> /// å°å /// </summary> [SugarColumn(ColumnName = "href")] public string? Href { get; set; } /// <summary> /// èç¹æ¯å¦åå§å±å¼ (0为ä¸å±å¼ï¼1为å±å¼) /// </summary> [SugarColumn(ColumnName = "spread")] public int? Spread { get; set; } /// <summary> /// èç¹æ¯å¦ä¸ºå±ç¤º (0为å±ç¤ºï¼1为ä¸å±ç¤º) /// </summary> [SugarColumn(ColumnName = "disabled")] public int? Disabled { get; set; } /// <summary> /// è½®ææ¶é´(ç§) /// </summary> [SugarColumn(ColumnName = "lbtime")] public int? Lbtime { get; set; } } entity/MesSimpleCcb.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,40 @@ using SqlSugar; namespace NewPdaSqlServer.entity; /// <summary> /// BIè§å¾è¡¨ - å卿¯ä¸ªèåä¸å ·ä½çBIçæ¿é¾æ¥ /// </summary> [SugarTable("MES_SIMPLE_CCB")] public class MesSimpleCcb { /// <summary> /// 主é®ID /// </summary> [SugarColumn(ColumnName = "id", IsPrimaryKey = true)] public int Id { get; set; } /// <summary> /// ç¶èç¹ID (å ³èMES_SIMPLE.id) /// </summary> [SugarColumn(ColumnName = "pid")] public int? Pid { get; set; } /// <summary> /// BIè§å¾åç§° /// </summary> [SugarColumn(ColumnName = "name")] public string? Name { get; set; } /// <summary> /// BIçæ¿å®æ´URLå°å /// </summary> [SugarColumn(ColumnName = "href")] public string? Href { get; set; } /// <summary> /// è½®ææ¶é´(ç§) - å®é ä½¿ç¨æ¶ä¼è¢«ç¶èåçlbtimeè¦ç /// </summary> [SugarColumn(ColumnName = "lbtime")] public int? Lbtime { get; set; } } service/Simple/SimpleManager.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,212 @@ using NewPdaSqlServer.DB; using NewPdaSqlServer.Dto.Simple; using NewPdaSqlServer.entity; using SqlSugar; namespace NewPdaSqlServer.service.Simple; /// <summary> /// çæ¿èåä¸å¡ç®¡çå¨ /// å®ç°ä¸Javaçæ¬MesSimpleServiceImplå®å ¨ä¸è´çä¸å¡é»è¾ /// </summary> public class SimpleManager : Repository<MesSimple> { /// <summary> /// è·åæ å½¢èå /// 对åºJava: getTree() /// </summary> /// <returns>æ å½¢èåæ°æ®</returns> public ResultDto<List<TreeViewDto>> GetTree() { try { var tree = ToTree(); return ResultDto<List<TreeViewDto>>.Ok(tree, tree.Count); } catch (Exception ex) { return ResultDto<List<TreeViewDto>>.Error(ex.Message); } } /// <summary> /// 转æ¢ä¸ºæ å½¢ç»æ /// 对åºJava: toTree() /// </summary> /// <returns>æ å½¢è§å¾å表</returns> public List<TreeViewDto> ToTree() { return ConvertToTreeViewList(GetTopList()); } /// <summary> /// è·åèåå表 /// 对åºJava: getMenuList() /// æ¥è¯¢æ¡ä»¶: disabled=0 ä¸ isTop>0 (æé¤æ ¹èç¹) /// </summary> /// <returns>èåå表</returns> public ResultDto<List<MesSimpleDto>> GetMenuList() { try { var list = Db.Queryable<MesSimple>() .Where(m => m.Disabled == 0 && m.IsTop > 0) .Select(m => new MesSimpleDto { Id = m.Id, IsTop = m.IsTop, Fid = m.Fid, Title = m.Title, Field = m.Field, Href = m.Href, Spread = m.Spread, Disabled = m.Disabled, Lbtime = m.Lbtime }) .ToList(); return ResultDto<List<MesSimpleDto>>.Ok(list, list.Count); } catch (Exception ex) { return ResultDto<List<MesSimpleDto>>.Error(ex.Message); } } /// <summary> /// æ ¹æ®èåIDè·åBIè§å¾å表 /// 对åºJava: getBiViewsByMenuId() /// </summary> /// <param name="menuId">èåID</param> /// <returns>BIè§å¾å表</returns> public ResultDto<List<BiViewDto>> GetBiViewsByMenuId(int menuId) { try { // æ¥è¯¢æå®èåä¸çææBIè§å¾ var list = Db.Queryable<MesSimpleCcb>() .Where(b => b.Pid == menuId && b.Href != null) .Select(b => new BiViewDto { Id = b.Id, Pid = b.Pid, Name = b.Name, Href = b.Href, Lbtime = b.Lbtime }) .ToList(); // å¦æææ°æ®ï¼è·åç¶èåçè½®ææ¶é´é 置并èµå¼ç»ææBIè§å¾ if (list.Count > 0) { var simple = Db.Queryable<MesSimple>() .Where(m => m.Id == menuId) .First(); if (simple != null) { // å°ç¶èåçlbtimeèµå¼ç»ææBIè§å¾ list.ForEach(biView => biView.Lbtime = simple.Lbtime); } } return ResultDto<List<BiViewDto>>.Ok(list, list.Count); } catch (Exception ex) { return ResultDto<List<BiViewDto>>.Error(ex.Message); } } #region ç§ææ¹æ³ /// <summary> /// è·åæ ¹èç¹å表 /// æ¥è¯¢æ¡ä»¶: isTop=0 ä¸ disabled=0 /// </summary> /// <returns>æ ¹èç¹å表</returns> private List<MesSimple> GetTopList() { return Db.Queryable<MesSimple>() .Where(m => m.IsTop == 0 && m.Disabled == 0) .ToList(); } /// <summary> /// 转æ¢ä¸ºæ å½¢è§å¾å表 /// 对åºJava: convertToTreeViewList() /// 使ç¨å¹¶è¡å¤çæåæ§è½ /// </summary> /// <param name="mesSimpleList">æ ¹èç¹å表</param> /// <returns>æ å½¢è§å¾å表</returns> private List<TreeViewDto> ConvertToTreeViewList(List<MesSimple> mesSimpleList) { // 使ç¨Parallel.ForEachå®ç°å¹¶è¡å¤çï¼ç±»ä¼¼JavaçCompletableFuture var treeViews = new List<TreeViewDto>(); var lockObj = new object(); Parallel.ForEach(mesSimpleList, mesSimple => { var treeView = ConvertToTreeView(mesSimple); lock (lockObj) { treeViews.Add(treeView); } }); return treeViews; } /// <summary> /// 转æ¢å个èå项为æ å½¢è§å¾ /// 对åºJava: convertToTreeView() /// </summary> /// <param name="mesSimple">èåå®ä½</param> /// <returns>æ å½¢è§å¾</returns> private TreeViewDto ConvertToTreeView(MesSimple mesSimple) { var treeView = new TreeViewDto { Id = mesSimple.Id, Title = mesSimple.Title, Field = mesSimple.Field, Spread = mesSimple.Spread == 1 }; // æ¥è¯¢åèç¹ var childList = Db.Queryable<MesSimple>() .Where(m => m.Disabled == 0 && m.Fid == mesSimple.Id) .ToList(); // 转æ¢åèç¹ var childrenList = new List<ChildrenDto>(); foreach (var child in childList) { var children = new ChildrenDto { Id = child.Id, Title = child.Title, Field = child.Field }; // å¤çhrefåæ®µ // 妿hrefå¼ä¸º"è½®æ"ï¼åèªå¨çæè½®æé¡µé¢é¾æ¥ if ("è½®æ".Equals(child.Href)) { children.Href = $"bi_view.html?menuId={child.Id}&lbsj={child.Lbtime}"; } else { children.Href = child.Href; } childrenList.Add(children); } treeView.Children = childrenList; return treeView; } #endregion }