iWara.SCADA.Code/DF22001YiQi.Wms.sln | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
iWara.SCADA.Code/iWare.Wms.Application/Service/AccessInterface/AccessInterfaceService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
iWara.SCADA.Code/iWare.Wms.Application/Service/AccessInterfaceLogForRequest/AccessInterfaceLogForRequestService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
iWara.SCADA.Code/iWare.Wms.Application/Service/AccessInterfaceLogForRequest/Dto/AddAccessInterfaceLogForRequestInput.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
iWara.SCADA.Code/iWare.Wms.Application/Service/AccessInterfaceLogForRequest/IAccessInterfaceLogForRequestService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
iWara.SCADA.Code/iWare.Wms.Application/iWare.Wms.Application.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
iWara.SCADA.Code/iWare.Wms.Core/Entity/Access/AccessInterfaceLogForRequest.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
iWara.SCADA.Code/DF22001YiQi.Wms.sln
@@ -13,7 +13,7 @@ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "iWare.Wms.Application", "iWare.Wms.Application\iWare.Wms.Application.csproj", "{3E8EEE42-C8BF-4B63-992C-A87CB8996B19}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iWare.Wms.Web.Core", "iWare.Wms.Web.Core\iWare.Wms.Web.Core.csproj", "{17D730E6-E41F-4F4C-BFC2-9E95A61F10BC}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "iWare.Wms.Web.Core", "iWare.Wms.Web.Core\iWare.Wms.Web.Core.csproj", "{17D730E6-E41F-4F4C-BFC2-9E95A61F10BC}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution iWara.SCADA.Code/iWare.Wms.Application/Service/AccessInterface/AccessInterfaceService.cs
@@ -48,6 +48,7 @@ private readonly IHttpContextAccessor _httpContextAccessor; private readonly IRepository<WorkPieceProcess, MasterDbContextLocator> _workPieceProcessRep; private readonly IAccessInterfaceLogService _accessInterfaceLog; private readonly IAccessInterfaceLogForRequestService _accessInterfaceLogForRequest; private readonly IRepository<WorkPieceInfoLog, MasterDbContextLocator> _WorkPieceInfoLog; private readonly IRepository<EquipmentCurrentMonitor, MasterDbContextLocator> _equipmentCurrentMonitorRep; private readonly IRepository<EquipmentBaseInfo, MasterDbContextLocator> _equipmentBaseInfoRep; @@ -63,7 +64,9 @@ /// <param name="workPieceInfoRep"></param> /// <param name="httpContextAccessor"></param> /// <param name="accessInterfaceLog"></param> public AccessInterfaceService(IRepository<QualityDataInfo, MasterDbContextLocator> qualityDataInfoRep, public AccessInterfaceService( IAccessInterfaceLogForRequestService accessInterfaceLogForRequest, IRepository<QualityDataInfo, MasterDbContextLocator> qualityDataInfoRep, IRepository<QualityDataInfoLog, MasterDbContextLocator> qualityDataInfoLogRep, IRepository<WorkPieceInfo, MasterDbContextLocator> workPieceInfoRep, IHttpContextAccessor httpContextAccessor, @@ -77,6 +80,7 @@ , IRepository<ProductionPlanInfo, MasterDbContextLocator> productionPlanInfoRep , IRepository<ShiftInfo, MasterDbContextLocator> shiftInfoRep) { _accessInterfaceLogForRequest = accessInterfaceLogForRequest; _qualityDataInfoRep = qualityDataInfoRep; _qualityDataInfoLogRep = qualityDataInfoLogRep; _workPieceInfoRep = workPieceInfoRep; @@ -300,8 +304,8 @@ { try { addLog.WorkPieceID = input.WorkPieceID; addLog.WorkingProcedureCurrent = input.WorkingProcedure; addLog.WorkPieceID = input?.WorkPieceID; addLog.WorkingProcedureCurrent = input?.WorkingProcedure; await _accessInterfaceLog.AddInterfaceLogAsync(addLog); } @@ -323,7 +327,7 @@ [HttpGet("GetWorkingProcedureForID")] public async Task<AccessWorPieceInfoOutput> GetWorkingProcedureForID([FromQuery] AccessWorkPieceInfoInput input) { AddAccessInterfaceLogInput addLog = new(); AddAccessInterfaceLogForRequestInput addLog = new(); addLog.JsonString = JsonConvert.SerializeObject(input); addLog.Action = 2; addLog.Key = input.WorkPieceID; @@ -337,7 +341,9 @@ if (input == null || string.IsNullOrEmpty(input.WorkPieceID)) { addLog.Result = "ä¼ å ¥åæ°å¼å¸¸ï¼å·¥ä»¶å·ä¸è½ä¸ºç©ºï¼"; await _accessInterfaceLog.AddInterfaceLogAsync(addLog); //await _accessInterfaceLog.AddInterfaceLogAsync(addLog); //æ¿æ¢[Editby shaocx,2024-09-04] await _accessInterfaceLogForRequest.AddInterfaceLogForRequestAsync(addLog); throw Oops.Oh(addLog.Result); } @@ -346,14 +352,18 @@ if (workPieceInfo == null) { addLog.Result = $"ä¼ å ¥åæ°å¼å¸¸ï¼å·¥ä»¶å·{input.WorkPieceID}ä¸è½æ¾å°æå®å·¥ä»¶ï¼"; await _accessInterfaceLog.AddInterfaceLogAsync(addLog); //await _accessInterfaceLog.AddInterfaceLogAsync(addLog); //æ¿æ¢[Editby shaocx,2024-09-04] await _accessInterfaceLogForRequest.AddInterfaceLogForRequestAsync(addLog); throw Oops.Oh(addLog.Result); } var re = workPieceInfo.Adapt<AccessWorPieceInfoOutput>(); addLog.Result = re; await _accessInterfaceLog.AddInterfaceLogAsync(addLog); //await _accessInterfaceLog.AddInterfaceLogAsync(addLog); //æ¿æ¢[Editby shaocx,2024-09-04] await _accessInterfaceLogForRequest.AddInterfaceLogForRequestAsync(addLog); return re; } @@ -807,7 +817,7 @@ var workPieceInfo = await _workPieceInfoRep.DetachedEntities .FirstOrDefaultAsync(w => w.WorkPieceID == input.WorkPieceID.Trim()); AddAccessInterfaceLogInput addLog = new(); AddAccessInterfaceLogForRequestInput addLog = new(); addLog.JsonString = JsonConvert.SerializeObject(input); addLog.Action = 2; addLog.Key = input.WorkPieceID; @@ -818,7 +828,9 @@ addLog.IpAddress = ipAddress.MapToIPv4().ToString(); } addLog.OperateAddress = $"{_httpContextAccessor.HttpContext.Request.Path}";// {_httpContextAccessor.HttpContext.Request.QueryString}"; //_httpContextAccessor.HttpContext.Request.GetEncodedUrl(); await _accessInterfaceLog.AddInterfaceLogAsync(addLog); //æ¿æ¢[Editby shaocx,2024-09-04] // await _accessInterfaceLog.AddInterfaceLogAsync(addLog); await _accessInterfaceLogForRequest.AddInterfaceLogForRequestAsync(addLog); return workPieceInfo == null ? null : workPieceInfo.Adapt<AccessWorPieceInfoOutput>(); } @@ -865,13 +877,15 @@ await _threadStatusMonitorRep.UpdateAsync(threadStatusMonitor); } } AddAccessInterfaceLogInput addLog = new(); AddAccessInterfaceLogForRequestInput addLog = new(); addLog.JsonString = JsonConvert.SerializeObject(input); addLog.Action = 1; addLog.Key = input.Threadcode; addLog.IpAddress = _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString(); addLog.OperateAddress = $"{_httpContextAccessor.HttpContext.Request.Path}{_httpContextAccessor.HttpContext.Request.QueryString}"; await _accessInterfaceLog.AddInterfaceLogAsync(addLog); //æ¿æ¢[Editby shaocx,2024-09-04] // await _accessInterfaceLog.AddInterfaceLogAsync(addLog); await _accessInterfaceLogForRequest.AddInterfaceLogForRequestAsync(addLog); } #endregion } iWara.SCADA.Code/iWare.Wms.Application/Service/AccessInterfaceLogForRequest/AccessInterfaceLogForRequestService.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,139 @@ using Furion.DatabaseAccessor; using Furion.DependencyInjection; using Furion.DynamicApiController; using iWare.Wms.Core; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json.Linq; using StackExchange.Redis; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Text.Json; using System.Threading.Tasks; using System.Xml.Linq; namespace iWare.Wms.Application { /// <summary> /// å¤é¨è®¿é®æ¥å£æ¥å¿ /// </summary> //[ApiDescriptionSettings("å¤é¨è®¿é®æ¥å£æ¥å¿", Name = "AccessInterfaceLogForRequest", Order = 100)] //[Route("api/[Controller]")] public class AccessInterfaceLogForRequestService : IAccessInterfaceLogForRequestService, IDynamicApiController, ITransient { private readonly IRepository<AccessInterfaceLogForRequest, MasterDbContextLocator> _AccessInterfaceLogForRequestRep; /// <summary> /// å¤é¨è®¿é®æ¥å£æ¥å¿æé /// </summary> /// <param name="AccessInterfaceLogForRequestRep"></param> public AccessInterfaceLogForRequestService(IRepository<AccessInterfaceLogForRequest, MasterDbContextLocator> AccessInterfaceLogForRequestRep) { _AccessInterfaceLogForRequestRep = AccessInterfaceLogForRequestRep; } /// <summary> /// æ·»å æ¥å¿ /// </summary> /// <param name="input"></param> /// <returns></returns> //[HttpPost("Add")] public async Task AddInterfaceLogForRequestAsync(AddAccessInterfaceLogForRequestInput input) { AccessInterfaceLogForRequest log = new(); log.WorkPieceID = input.WorkPieceID; log.WorkingProcedureCurrent = input.WorkingProcedureCurrent; log.Id = input.Id; log.ParaJSON = input.JsonString; log.Action = input.Action; log.IPAddress = input.IpAddress; log.OperateAddress = input.OperateAddress; log.OperateUserId = input.OperateUserId; log.OperateUserName = input.OperateUserName; try { // å¤ç请æ±åæ° JObject jsonObject = JObject.Parse(input.JsonString); int count = 0; foreach (JProperty property in jsonObject.Properties()) { switch (count) { case 0: log.Param1 = property.Value.ToString(); count++; break; case 1: log.Param2 = property.Value.ToString(); count++; break; case 2: log.Param3 = property.Value.ToString(); count++; break; default: break; } } } catch { log.Param1 = "è§£æå¤±è´¥"; } // å¤çè¿åç»æ var keys = new List<string>(); try { //if (input.Result!=null&&input.Result.GetType().IsGenericType && input.Result.GetType().GetGenericTypeDefinition() == typeof(List<>) ) //{ // PropertyInfo property = input.Result.GetType().GetProperty("Item"); // if (property != null) // { // IEnumerable collection = input.Result as IEnumerable; // foreach (var item in collection) // { // PropertyInfo idProperty = item.GetType().GetProperty($"{input.Key}"); // if (idProperty == null) continue; // var idValue = idProperty.GetValue(item); // keys.Add(idValue.ToString()); // } // } //} //else if(input.Result != null) //{ // PropertyInfo idProperty = input.Result.GetType().GetProperty($"{input.Key}"); // if (idProperty == null) // { // var idValue = idProperty.GetValue(input.Result); // keys.Add(idValue.ToString()); // } //} //log.Keys = string.Join(", ", keys); if (input.Result.GetType().Name.Equals("String")) { log.ResultJson = input.Result.ToString(); } else { log.ResultJson = JsonSerializer.Serialize(input.Result); } } catch { log.ResultJson = "æ¥å¿å¼å¸¸"; } //return log; await _AccessInterfaceLogForRequestRep.InsertNowAsync(log); } } } iWara.SCADA.Code/iWare.Wms.Application/Service/AccessInterfaceLogForRequest/Dto/AddAccessInterfaceLogForRequestInput.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,71 @@ using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace iWare.Wms.Application { /// <summary> /// æ·»å å¤é¨è®¿é®æ¥å¿åæ° /// </summary> public class AddAccessInterfaceLogForRequestInput { /// <summary> /// å·¥ä»¶å· /// </summary> [Comment("工件å·")] public string WorkPieceID { get; set; } /// <summary> /// å½åå·¥åº;è¿å ¥ä¸ä¸å·¥åºåï¼æ¤å·¥åºä¸åå /// </summary> [Comment("å½åå·¥åº")] public string WorkingProcedureCurrent { get; set; } public long Id { get; set; } /// <summary> /// 请æ±åæ°Jsonå符串 /// </summary> public string JsonString { get; set; } = null; /// <summary> /// è¯·æ±æ¥å£è¿åç»æ /// </summary> public object Result { get; set; } =null; /// <summary> /// æä½ç±»å1--æå ¥ï¼2--æ¥è¯¢ï¼3--æ´æ° /// </summary> public int Action { get; set; } /// <summary> /// å ³é®å /// </summary> public string Key { get; set; } /// <summary> /// è°ç¨æ¹Ip /// </summary> public string IpAddress { get; set; } = ""; /// <summary> /// æä½çæ¥å£å°å /// </summary> public string OperateAddress { get; set; } = ""; /// <summary> /// æä½äººId /// </summary> public string OperateUserId { get; set; } = null; /// <summary> /// æä½äººåç§° /// </summary> public string OperateUserName { get; set; } = null; } } iWara.SCADA.Code/iWare.Wms.Application/Service/AccessInterfaceLogForRequest/IAccessInterfaceLogForRequestService.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace iWare.Wms.Application { /// <summary> /// å¤é¨è®¿é®æ¥å£æ¥å¿ /// </summary> public interface IAccessInterfaceLogForRequestService { /// <summary> /// æ·»å æ¥å¿ /// </summary> /// <param name="input"></param> /// <returns></returns> Task AddInterfaceLogForRequestAsync(AddAccessInterfaceLogForRequestInput input); } } iWara.SCADA.Code/iWare.Wms.Application/iWare.Wms.Application.xml
@@ -4,6 +4,91 @@ <name>iWare.Wms.Application</name> </assembly> <members> <member name="T:iWare.Wms.Application.AccessInterfaceLogForRequestService"> <summary> å¤é¨è®¿é®æ¥å£æ¥å¿ </summary> </member> <member name="M:iWare.Wms.Application.AccessInterfaceLogForRequestService.#ctor(Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.AccessInterfaceLogForRequest,Furion.DatabaseAccessor.MasterDbContextLocator})"> <summary> å¤é¨è®¿é®æ¥å£æ¥å¿æé </summary> <param name="AccessInterfaceLogForRequestRep"></param> </member> <member name="M:iWare.Wms.Application.AccessInterfaceLogForRequestService.AddInterfaceLogForRequestAsync(iWare.Wms.Application.AddAccessInterfaceLogForRequestInput)"> <summary> æ·»å æ¥å¿ </summary> <param name="input"></param> <returns></returns> </member> <member name="T:iWare.Wms.Application.AddAccessInterfaceLogForRequestInput"> <summary> æ·»å å¤é¨è®¿é®æ¥å¿åæ° </summary> </member> <member name="P:iWare.Wms.Application.AddAccessInterfaceLogForRequestInput.WorkPieceID"> <summary> å·¥ä»¶å· </summary> </member> <member name="P:iWare.Wms.Application.AddAccessInterfaceLogForRequestInput.WorkingProcedureCurrent"> <summary> å½åå·¥åº;è¿å ¥ä¸ä¸å·¥åºåï¼æ¤å·¥åºä¸åå </summary> </member> <member name="P:iWare.Wms.Application.AddAccessInterfaceLogForRequestInput.JsonString"> <summary> 请æ±åæ°Jsonå符串 </summary> </member> <member name="P:iWare.Wms.Application.AddAccessInterfaceLogForRequestInput.Result"> <summary> è¯·æ±æ¥å£è¿åç»æ </summary> </member> <member name="P:iWare.Wms.Application.AddAccessInterfaceLogForRequestInput.Action"> <summary> æä½ç±»å1--æå ¥ï¼2--æ¥è¯¢ï¼3--æ´æ° </summary> </member> <member name="P:iWare.Wms.Application.AddAccessInterfaceLogForRequestInput.Key"> <summary> å ³é®å </summary> </member> <member name="P:iWare.Wms.Application.AddAccessInterfaceLogForRequestInput.IpAddress"> <summary> è°ç¨æ¹Ip </summary> </member> <member name="P:iWare.Wms.Application.AddAccessInterfaceLogForRequestInput.OperateAddress"> <summary> æä½çæ¥å£å°å </summary> </member> <member name="P:iWare.Wms.Application.AddAccessInterfaceLogForRequestInput.OperateUserId"> <summary> æä½äººId </summary> </member> <member name="P:iWare.Wms.Application.AddAccessInterfaceLogForRequestInput.OperateUserName"> <summary> æä½äººåç§° </summary> </member> <member name="T:iWare.Wms.Application.IAccessInterfaceLogForRequestService"> <summary> å¤é¨è®¿é®æ¥å£æ¥å¿ </summary> </member> <member name="M:iWare.Wms.Application.IAccessInterfaceLogForRequestService.AddInterfaceLogForRequestAsync(iWare.Wms.Application.AddAccessInterfaceLogForRequestInput)"> <summary> æ·»å æ¥å¿ </summary> <param name="input"></param> <returns></returns> </member> <member name="T:iWare.Wms.Application.AccessInterfaceLogService"> <summary> å¤é¨è®¿é®æ¥å£æ¥å¿ @@ -94,7 +179,7 @@ å¤é¨è®¿é®æ¥å£ </summary> </member> <member name="M:iWare.Wms.Application.AccessInterfaceService.#ctor(Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.QualityDataInfo,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.QualityDataInfoLog,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.WorkPieceInfo,Furion.DatabaseAccessor.MasterDbContextLocator},Microsoft.AspNetCore.Http.IHttpContextAccessor,iWare.Wms.Application.IAccessInterfaceLogService,Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.ThreadStatusMonitor,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.DataCaptureConfig,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.WorkPieceProcess,Furion.DatabaseAccessor.MasterDbContextLocator},iWare.Wms.Application.WorkPieceInfoService,Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.WorkPieceInfoLog,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.EquipmentCurrentMonitor,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.EquipmentBaseInfo,Furion.DatabaseAccessor.MasterDbContextLocator},iWare.Wms.Application.ISysDictTypeService,Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.ProductionPlanInfo,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.ShiftInfo,Furion.DatabaseAccessor.MasterDbContextLocator})"> <member name="M:iWare.Wms.Application.AccessInterfaceService.#ctor(iWare.Wms.Application.IAccessInterfaceLogForRequestService,Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.QualityDataInfo,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.QualityDataInfoLog,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.WorkPieceInfo,Furion.DatabaseAccessor.MasterDbContextLocator},Microsoft.AspNetCore.Http.IHttpContextAccessor,iWare.Wms.Application.IAccessInterfaceLogService,Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.ThreadStatusMonitor,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.DataCaptureConfig,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.WorkPieceProcess,Furion.DatabaseAccessor.MasterDbContextLocator},iWare.Wms.Application.WorkPieceInfoService,Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.WorkPieceInfoLog,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.EquipmentCurrentMonitor,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.EquipmentBaseInfo,Furion.DatabaseAccessor.MasterDbContextLocator},iWare.Wms.Application.ISysDictTypeService,Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.ProductionPlanInfo,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.ShiftInfo,Furion.DatabaseAccessor.MasterDbContextLocator})"> <summary> å¤é¨è®¿é®æé 彿° </summary> iWara.SCADA.Code/iWare.Wms.Core/Entity/Access/AccessInterfaceLogForRequest.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,96 @@ using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace iWare.Wms.Core { public class AccessInterfaceLogForRequest : DEntityBase { /// <summary> /// å·¥ä»¶å· /// </summary> [Comment("工件å·")] public string WorkPieceID { get; set; } /// <summary> /// å½åå·¥åº;è¿å ¥ä¸ä¸å·¥åºåï¼æ¤å·¥åºä¸åå /// </summary> [Comment("å½åå·¥åº")] public string WorkingProcedureCurrent { get; set; } /// <summary> /// è°ç¨è¡ä¸º /// </summary> [Comment("è°ç¨è¡ä¸º")] [Required] public int Action { get; set; } /// <summary> /// æä½æ¥å£ /// </summary> [Comment("æä½æ¥å£")] [MaxLength(200)] public string OperateAddress { get; set; } [Comment("æä½äººId")] [MaxLength(200)] public string OperateUserId { get; set; } [Comment("æä½äººåç§°")] [MaxLength(200)] public string OperateUserName { get; set; } /// <summary> /// æä½Ip /// </summary> [Comment("æä½Ip")] [MaxLength(50)] public string IPAddress { get; set; } /// <summary> /// åæ°1 /// </summary> [Comment("åæ°1")] [MaxLength(200)] public string Param1 { get; set; } /// <summary> /// åæ°2 /// </summary> [Comment("åæ°2")] [MaxLength(200)] public string Param2 { get; set; } /// <summary> /// åæ°3 /// </summary> [Comment("åæ°3")] [MaxLength(200)] public string Param3 { get; set; } /// <summary> /// 请æ±åæ°json /// </summary> [Comment("请æ±åæ°json")] public string ParaJSON { get; set; } /// <summary> /// è¿åç»æ /// </summary> [Comment("è¿åç»æ")] public string ResultJson { get; set; } /// <summary> /// å ³é®åéå /// </summary> [Comment("å ³é®åéå")] public string Keys { get; set; } } }