From 689dd676fc0efb31236d989334122590b7198d61 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期一, 16 三月 2026 09:30:11 +0800
Subject: [PATCH] 1

---
 Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Controllers/SimulatorInstancesController.cs |  128 ++++++++++++++++++++++++++++++++++--------
 1 files changed, 103 insertions(+), 25 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Controllers/SimulatorInstancesController.cs b/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Controllers/SimulatorInstancesController.cs
index f94fe46..d748391 100644
--- a/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Controllers/SimulatorInstancesController.cs
+++ b/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Controllers/SimulatorInstancesController.cs
@@ -25,7 +25,7 @@
         /// <summary>
         /// 鑾峰彇鎵�鏈夊疄渚嬪垪琛�
         /// </summary>
-        [HttpGet]
+        [HttpGet("GetAll")]
         [ProducesResponseType(typeof(IEnumerable<object>), StatusCodes.Status200OK)]
         public ActionResult GetAllInstances()
         {
@@ -57,10 +57,10 @@
         /// <summary>
         /// 鍒涘缓鏂板疄渚�
         /// </summary>
-        [HttpPost]
-        [ProducesResponseType(typeof(InstanceState), StatusCodes.Status201Created)]
+        [HttpPost("Create")]
+        [ProducesResponseType(typeof(object), StatusCodes.Status201Created)]
         [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        public async Task<ActionResult<InstanceState>> CreateInstance([FromBody] InstanceConfig config)
+        public async Task<ActionResult> CreateInstance([FromBody] InstanceConfig config)
         {
             try
             {
@@ -91,11 +91,24 @@
 
                 var instance = await _instanceManager.CreateInstanceAsync(config);
                 var state = instance.GetState();
+                var result = new
+                {
+                    instanceId = instance.Config.Id,
+                    name = instance.Config.Name,
+                    plcType = instance.Config.PLCType.ToString(),
+                    port = instance.Config.Port,
+                    status = state.Status.ToString(),
+                    clientCount = state.ClientCount,
+                    totalRequests = state.TotalRequests,
+                    startTime = state.StartTime,
+                    lastActivityTime = state.LastActivityTime,
+                    errorMessage = state.ErrorMessage
+                };
 
                 return CreatedAtAction(
                     nameof(GetInstance),
                     new { id = config.Id },
-                    state);
+                    result);
             }
             catch (ArgumentException ex)
             {
@@ -112,10 +125,10 @@
         /// <summary>
         /// 鑾峰彇鎸囧畾瀹炰緥璇︽儏
         /// </summary>
-        [HttpGet("{id}")]
-        [ProducesResponseType(typeof(InstanceState), StatusCodes.Status200OK)]
+        [HttpGet("GetInstance")]
+        [ProducesResponseType(typeof(object), StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status404NotFound)]
-        public ActionResult<InstanceState> GetInstance(string id)
+        public ActionResult GetInstance(string id)
         {
             try
             {
@@ -131,7 +144,20 @@
                 }
 
                 var state = instance.GetState();
-                return Ok(state);
+                var result = new
+                {
+                    instanceId = instance.Config.Id,
+                    name = instance.Config.Name,
+                    plcType = instance.Config.PLCType.ToString(),
+                    port = instance.Config.Port,
+                    status = state.Status.ToString(),
+                    clientCount = state.ClientCount,
+                    totalRequests = state.TotalRequests,
+                    startTime = state.StartTime,
+                    lastActivityTime = state.LastActivityTime,
+                    errorMessage = state.ErrorMessage
+                };
+                return Ok(result);
             }
             catch (Exception ex)
             {
@@ -143,7 +169,7 @@
         /// <summary>
         /// 鑾峰彇鎸囧畾瀹炰緥鐨勯厤缃�
         /// </summary>
-        [HttpGet("{id}/config")]
+        [HttpGet("GetInstanceConfig")]
         [ProducesResponseType(typeof(InstanceConfig), StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status404NotFound)]
         public ActionResult<InstanceConfig> GetInstanceConfig(string id)
@@ -173,11 +199,11 @@
         /// <summary>
         /// 鏇存柊瀹炰緥閰嶇疆
         /// </summary>
-        [HttpPut("{id}")]
-        [ProducesResponseType(typeof(InstanceState), StatusCodes.Status200OK)]
+        [HttpPut("Update")]
+        [ProducesResponseType(typeof(object), StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status400BadRequest)]
         [ProducesResponseType(StatusCodes.Status404NotFound)]
-        public async Task<ActionResult<InstanceState>> UpdateInstance(string id, [FromBody] InstanceConfig config)
+        public async Task<ActionResult> UpdateInstance([FromQuery] string id, [FromBody] InstanceConfig config)
         {
             try
             {
@@ -217,7 +243,20 @@
                 }
 
                 var state = newInstance.GetState();
-                return Ok(state);
+                var result = new
+                {
+                    instanceId = newInstance.Config.Id,
+                    name = newInstance.Config.Name,
+                    plcType = newInstance.Config.PLCType.ToString(),
+                    port = newInstance.Config.Port,
+                    status = state.Status.ToString(),
+                    clientCount = state.ClientCount,
+                    totalRequests = state.TotalRequests,
+                    startTime = state.StartTime,
+                    lastActivityTime = state.LastActivityTime,
+                    errorMessage = state.ErrorMessage
+                };
+                return Ok(result);
             }
             catch (ArgumentException ex)
             {
@@ -234,10 +273,10 @@
         /// <summary>
         /// 鍒犻櫎瀹炰緥
         /// </summary>
-        [HttpDelete("{id}")]
+        [HttpDelete("Delete")]
         [ProducesResponseType(StatusCodes.Status204NoContent)]
         [ProducesResponseType(StatusCodes.Status404NotFound)]
-        public async Task<IActionResult> DeleteInstance(string id, [FromQuery] bool deleteConfig = true)
+        public async Task<IActionResult> DeleteInstance(string id, bool deleteConfig = true)
         {
             try
             {
@@ -264,11 +303,11 @@
         /// <summary>
         /// 鍚姩瀹炰緥
         /// </summary>
-        [HttpPost("{id}/start")]
+        [HttpPost("start")]
         [ProducesResponseType(StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status404NotFound)]
         [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        public async Task<ActionResult<InstanceState>> StartInstance(string id)
+        public async Task<ActionResult> StartInstance([FromQuery] string id)
         {
             try
             {
@@ -290,7 +329,20 @@
 
                 var instance = _instanceManager.GetInstance(id);
                 var state = instance?.GetState();
-                return Ok(state);
+                var result = new
+                {
+                    instanceId = instance.Config.Id,
+                    name = instance.Config.Name,
+                    plcType = instance.Config.PLCType.ToString(),
+                    port = instance.Config.Port,
+                    status = state.Status.ToString(),
+                    clientCount = state.ClientCount,
+                    totalRequests = state.TotalRequests,
+                    startTime = state.StartTime,
+                    lastActivityTime = state.LastActivityTime,
+                    errorMessage = state.ErrorMessage
+                };
+                return Ok(result);
             }
             catch (Exception ex)
             {
@@ -302,10 +354,10 @@
         /// <summary>
         /// 鍋滄瀹炰緥
         /// </summary>
-        [HttpPost("{id}/stop")]
+        [HttpPost("stop")]
         [ProducesResponseType(StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status404NotFound)]
-        public async Task<ActionResult<InstanceState>> StopInstance(string id)
+        public async Task<ActionResult> StopInstance([FromQuery] string id)
         {
             try
             {
@@ -323,7 +375,20 @@
 
                 var instance = _instanceManager.GetInstance(id);
                 var state = instance?.GetState();
-                return Ok(state);
+                var result = new
+                {
+                    instanceId = instance.Config.Id,
+                    name = instance.Config.Name,
+                    plcType = instance.Config.PLCType.ToString(),
+                    port = instance.Config.Port,
+                    status = state.Status.ToString(),
+                    clientCount = state.ClientCount,
+                    totalRequests = state.TotalRequests,
+                    startTime = state.StartTime,
+                    lastActivityTime = state.LastActivityTime,
+                    errorMessage = state.ErrorMessage
+                };
+                return Ok(result);
             }
             catch (Exception ex)
             {
@@ -335,11 +400,11 @@
         /// <summary>
         /// 閲嶅惎瀹炰緥
         /// </summary>
-        [HttpPost("{id}/restart")]
+        [HttpPost("restart")]
         [ProducesResponseType(StatusCodes.Status200OK)]
         [ProducesResponseType(StatusCodes.Status404NotFound)]
         [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        public async Task<ActionResult<InstanceState>> RestartInstance(string id)
+        public async Task<ActionResult> RestartInstance([FromQuery] string id)
         {
             try
             {
@@ -361,7 +426,20 @@
 
                 var instance = _instanceManager.GetInstance(id);
                 var state = instance?.GetState();
-                return Ok(state);
+                var result = new
+                {
+                    instanceId = instance.Config.Id,
+                    name = instance.Config.Name,
+                    plcType = instance.Config.PLCType.ToString(),
+                    port = instance.Config.Port,
+                    status = state.Status.ToString(),
+                    clientCount = state.ClientCount,
+                    totalRequests = state.TotalRequests,
+                    startTime = state.StartTime,
+                    lastActivityTime = state.LastActivityTime,
+                    errorMessage = state.ErrorMessage
+                };
+                return Ok(result);
             }
             catch (Exception ex)
             {

--
Gitblit v1.9.3