diff --git a/WeiCloud.Fusion/AlarmService/Alarm.Application/Alarm.Application.csproj b/WeiCloud.Fusion/AlarmService/Alarm.Application/Alarm.Application.csproj index b234dd2..8c42f53 100644 --- a/WeiCloud.Fusion/AlarmService/Alarm.Application/Alarm.Application.csproj +++ b/WeiCloud.Fusion/AlarmService/Alarm.Application/Alarm.Application.csproj @@ -7,8 +7,12 @@ - - + + + + + + diff --git a/WeiCloud.Fusion/AspireApp/Manage.AppHost.AppHost/AppHost.cs b/WeiCloud.Fusion/AspireApp/Manage.AppHost.AppHost/AppHost.cs index 6e0bce7..6290bda 100644 --- a/WeiCloud.Fusion/AspireApp/Manage.AppHost.AppHost/AppHost.cs +++ b/WeiCloud.Fusion/AspireApp/Manage.AppHost.AppHost/AppHost.cs @@ -5,10 +5,12 @@ var apiService = builder.AddProject("apiserv var videoapi = builder.AddProject("videoapi"); var alarmapi = builder.AddProject("alarmapi"); +var thirdpartyapi = builder.AddProject("thirdpartyapi"); builder.AddProject("webfrontend") .WithReference(videoapi) .WithReference(alarmapi) + .WithReference(thirdpartyapi) .WithExternalHttpEndpoints() .WithHttpHealthCheck("/health") diff --git a/WeiCloud.Fusion/AspireApp/Manage.AppHost.AppHost/Manage.AppHost.AppHost.csproj b/WeiCloud.Fusion/AspireApp/Manage.AppHost.AppHost/Manage.AppHost.AppHost.csproj index 716dcc0..8498e6c 100644 --- a/WeiCloud.Fusion/AspireApp/Manage.AppHost.AppHost/Manage.AppHost.AppHost.csproj +++ b/WeiCloud.Fusion/AspireApp/Manage.AppHost.AppHost/Manage.AppHost.AppHost.csproj @@ -13,6 +13,7 @@ + diff --git a/WeiCloud.Fusion/WeiCloud.Core/BaseModels/ApiResult.cs b/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/BaseModels/ApiResult.cs similarity index 96% rename from WeiCloud.Fusion/WeiCloud.Core/BaseModels/ApiResult.cs rename to WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/BaseModels/ApiResult.cs index c7a80b6..e085d3d 100644 --- a/WeiCloud.Fusion/WeiCloud.Core/BaseModels/ApiResult.cs +++ b/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/BaseModels/ApiResult.cs @@ -1,4 +1,4 @@ -namespace WeiCloud.Core.BaseModels +namespace Common.Shared.Application.BaseModels { public class ApiResult { diff --git a/WeiCloud.Fusion/WeiCloud.Core/BaseModels/LoggerWarp.cs b/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/BaseModels/LoggerWarp.cs similarity index 95% rename from WeiCloud.Fusion/WeiCloud.Core/BaseModels/LoggerWarp.cs rename to WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/BaseModels/LoggerWarp.cs index 08370f4..cb1f52d 100644 --- a/WeiCloud.Fusion/WeiCloud.Core/BaseModels/LoggerWarp.cs +++ b/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/BaseModels/LoggerWarp.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Text; -namespace WeiCloud.Core.BaseModels +namespace Common.Shared.Application.BaseModels { public class LoggerWarp { diff --git a/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/BaseModels/SafeEnum.cs b/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/BaseModels/SafeEnum.cs new file mode 100644 index 0000000..f2c5993 --- /dev/null +++ b/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/BaseModels/SafeEnum.cs @@ -0,0 +1,46 @@ +using System.ComponentModel; + +namespace Common.Shared.Application.BaseModels +{ + /// + /// 获取事后分析警情指标请求实体中日期类型的枚举 + /// + public enum QueryTimeEnum + { + /// + /// 按日 + /// + [Description("按日")] + Daily = 1, + + /// + /// 按月 + /// + [Description("按月")] + Monthly = 2, + + /// + /// 按年 + /// + [Description("按年")] + Yearly = 3, + + /// + /// 自定义 + /// + [Description("自定义")] + Custom = 0, + + /// + /// 小时 + /// + [Description("小时")] + Hours = 5, + + /// + /// 周 + /// + [Description("周")] + Week = 6, + } +} \ No newline at end of file diff --git a/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/DaHua/ReadMe.md b/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/DaHua/ReadMe.md new file mode 100644 index 0000000..62760b0 --- /dev/null +++ b/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/DaHua/ReadMe.md @@ -0,0 +1,2 @@ +# 这是大华公司的ICC平台,涉及到的请求和响应DTO类 +https://open-icc.dahuatech.com/#/home \ No newline at end of file diff --git a/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/SafetyFirePro/ReadMe.md b/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/SafetyFirePro/ReadMe.md new file mode 100644 index 0000000..b088746 --- /dev/null +++ b/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/SafetyFirePro/ReadMe.md @@ -0,0 +1 @@ +*这是安消项目下的请求和响应DTO文件夹,这里不需要根据某个第三方来切割,后续可以根据项目来切割不同的文件夹* \ No newline at end of file diff --git a/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/SafetyFirePro/RequestDto/SunPalaceBoardReqDto.cs b/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/SafetyFirePro/RequestDto/SunPalaceBoardReqDto.cs new file mode 100644 index 0000000..3e36f2b --- /dev/null +++ b/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/SafetyFirePro/RequestDto/SunPalaceBoardReqDto.cs @@ -0,0 +1,23 @@ +using Common.Shared.Application.BaseModels; + +namespace Common.Shared.Application.SafetyFirePro.RequestDto +{ + /// + /// 查询基类 + /// + public class SecSituationQueryDto + { + /// + /// 查询时间 + /// + public int? QueryTimeType { get; set; } = (int)QueryTimeEnum.Daily; + + public DateTime? StartTime { get; set; } + public DateTime? EndTime { get; set; } + + /// + /// 项目id + /// + public long? ProjectId { get; set; } + } +} \ No newline at end of file diff --git a/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/SafetyFirePro/ResponseDto/SunPalaceBoardResDto.cs b/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/SafetyFirePro/ResponseDto/SunPalaceBoardResDto.cs new file mode 100644 index 0000000..742e725 --- /dev/null +++ b/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/SafetyFirePro/ResponseDto/SunPalaceBoardResDto.cs @@ -0,0 +1,242 @@ +using System.Text.Json.Serialization; + +namespace Common.Shared.Application.SafetyFirePro.ResponseDto +{ + #region 太阳宫看板-综合安全态势返回体 + + /// + /// 第三方风险点数据 + /// + public class DangerRiskAreaResDto + { + /// + /// 获得单位风险点汇总数据 + /// + [JsonPropertyName("existingRisks")] + public List? ProductionRiskStats { get; set; } + + /// + /// 隐患数据 + /// + public List? DangerInfos { get; set; } + } + + /// + /// 生产风险识别 + /// + public class ProductionRiskStatsResDto + { + /// + /// 风险名称(如 "重大风险") + /// + [JsonPropertyName("name")] + public string Name { get; set; } // + + /// + /// 风险数量 + /// + [JsonPropertyName("count")] + public int Count { get; set; } // + + /// + /// 颜色编码(如 "#ff0000") + /// + [JsonPropertyName("color")] + public string Color { get; set; } // + } + + /// + /// 安全隐患信息列表 + /// + public class DangerInfo + { + /// + /// 隐患状态 + /// + public string? Status { get; set; } //隐患状态:0待核查,1待整改,2待验收,3待排查 + + /// + /// 隐患状态数量 + /// + public int StatusCount { get; set; } = 0; + + /// + /// 隐患等级数量 + /// + public int DangerLevelCount { get; set; } = 0; + } + + #endregion 太阳宫看板-综合安全态势返回体 + + #region 太阳宫看板-设备设施态势返回体 + + /// + /// 资产仪表盘 + /// + public class AssetOverviewResDto + { + /// + /// 排序 + /// + public int OrderBy { get; set; } = 1; + + /// + /// 资产名字 + /// + public string Name { get; set; } = default!; + + /// + /// 资产总数 + /// + public double TotalAssetCount { get; set; } + + /// + /// 所有百分比的 + /// + public double? TotalAssetCountGrowthRate { get; set; } + + ///// + ///// 总资产数 + ///// + //public int TotalAssetCount { get; set; } + + ///// + ///// 总资产数较上月增长百分比(如 5.2 表示增长 5.2%) + ///// + //public double TotalAssetCountGrowthRate { get; set; } + + ///// + ///// 总资产价值(单位:万元) + ///// + //public double TotalAssetValue { get; set; } + + ///// + ///// 总资产价值较上月增长百分比 + ///// + //public decimal TotalAssetValueGrowthRate { get; set; } + + ///// + ///// 资产盘点进度(如 0.92 表示 92%) + ///// + //public decimal InventoryProgressRate { get; set; } + + ///// + ///// 资产分布楼层数 + ///// + //public int AssetFloorCoverage { get; set; } + + ///// + ///// 在保资产数量 + ///// + //public int InsuredAssetCount { get; set; } + + ///// + ///// 在保资产较上月减少百分比(如 -2.1 表示减少 2.1%) + ///// + //public decimal InsuredAssetChangeRate { get; set; } + + ///// + ///// 待维修资产数量 + ///// + //public int RepairPendingAssetCount { get; set; } + + ///// + ///// 待维修资产较上月增长百分比 + ///// + //public decimal RepairPendingGrowthRate { get; set; } + + ///// + ///// 本月折旧金额(单位:元) + ///// + //public decimal DepreciationThisMonth { get; set; } + + ///// + ///// 折旧金额较上月增长百分比 + ///// + //public decimal DepreciationGrowthRate { get; set; } + + ///// + ///// 今日报警数量(待处理) + ///// + //public int TodayAlarmCount { get; set; } + } + + /// + /// 资产类型统计返回体 + /// + public class AssetTypeResDto + { + /// + /// 类型名 + /// + public string AssetType { get; set; } = default!; + + /// + /// 数量 + /// + public int AssetCount { get; set; } = 0; + } + + /// + /// 折旧率对比 + /// + public class AvgDepreciationResDto + { + /// + /// 设备名 + /// + public string DeviceName { get; set; } = default!; + + /// + /// 折旧率 + /// + public double TotalAssetCount + { + get; set; + } + } + + /// + /// 资产报警分析 + /// + public class AssetAlarmTrendResDto + { + /// + /// 资产名字 + /// + public string? AssetName { get; set; } + + /// + /// 月份 + /// + public int Monthly { get; set; } + + /// + /// 资产数量 + /// + public int AssetCount { get; set; } = 0; + } + + /// + /// 合规证件预警 + /// + public class IdCardAlarmResDto + { + /// + /// 证件名称 + /// + public string CardName { get; set; } = default!; + + /// + /// 有效期 + /// + public DateTime ValidityPeriod { get; set; } = default!; + + /// + /// 剩余天数 + /// + public int RemainingDays { get; set; } = 0; + } + + #endregion 太阳宫看板-设备设施态势返回体 +} \ No newline at end of file diff --git a/WeiCloud.Fusion/Common.SharedService/Common.Shared.DomainService/MqttClient/MQTTClient.cs b/WeiCloud.Fusion/Common.SharedService/Common.Shared.DomainService/MqttClient/MQTTClient.cs index 6890e0d..fd0d462 100644 --- a/WeiCloud.Fusion/Common.SharedService/Common.Shared.DomainService/MqttClient/MQTTClient.cs +++ b/WeiCloud.Fusion/Common.SharedService/Common.Shared.DomainService/MqttClient/MQTTClient.cs @@ -1,8 +1,8 @@ -using Microsoft.Extensions.Logging; +using Common.Shared.Application.BaseModels; +using Microsoft.Extensions.Logging; using MQTTnet; using MQTTnet.Client; using MQTTnet.Protocol; -using WeiCloud.Core.BaseModels; namespace Common.Shared.DomainService { diff --git a/WeiCloud.Fusion/ParkingLotService/ParkLotInfoService/ParkingLotDataService.cs b/WeiCloud.Fusion/ParkingLotService/ParkLotInfoService/ParkingLotDataService.cs index ce10510..b594916 100644 --- a/WeiCloud.Fusion/ParkingLotService/ParkLotInfoService/ParkingLotDataService.cs +++ b/WeiCloud.Fusion/ParkingLotService/ParkLotInfoService/ParkingLotDataService.cs @@ -1,33 +1,21 @@ -using Microsoft.AspNetCore.Components; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; -using MongoDB.Bson; -using Newtonsoft.Json.Serialization; using Newtonsoft.Json; +using Newtonsoft.Json.Serialization; +using ParkingLotEntity.DB; using ParkingLotEntity.ParkingLotModelDto; using ParkingLotEntity.ParkingLotModelDto.BaseModels; using ParkingLotEntity.ParkingLotModels; +using Pipelines.Sockets.Unofficial.Arenas; +using System.Net.NetworkInformation; +using System.Text; +using System.Text.Encodings.Web; using System.Text.Json; using WeiCloud.Core; -using WeiCloud.Utils.EncodeTools; -using WeiCloudAPP.Core; -using NewLife.Serialization; -using WeiCloud.Utils.Common; -using Microsoft.Extensions.Configuration; -using System.Net.Http; -using System.Text.Encodings.Web; -using System.Text; -using System.Net.NetworkInformation; -using NPOI.SS.UserModel; -using ParkingLotEntity.DB; -using NewLife.Reflection; using WeiCloud.Utils; -using static QRCoder.PayloadGenerator; -using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; -using Pipelines.Sockets.Unofficial.Arenas; -using System.Threading; -using Microsoft.EntityFrameworkCore; -using NewLife.IP; - +using WeiCloud.Utils.Common; +using WeiCloud.Utils.EncodeTools; namespace ParkLotInfoService { @@ -39,11 +27,14 @@ namespace ParkLotInfoService private readonly IDictionaryService _dictionaryService; private readonly IConfiguration _configuration; private readonly string liFangkey = "cmVmb3JtZXJyZWZvcm1lcg=="; + private JsonSerializerSettings settings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }; + private readonly IHttpClientFactory _httpClientFactory; + public ParkingLotDataService(ILogger logger, WeiCloudFusionContext context, IConfiguration configuration, IHttpClientFactory httpClientFactory, WeiCloudDbAxyjptContext dBContext, IDictionaryService dictionaryService) { _logger = logger; @@ -53,7 +44,9 @@ namespace ParkLotInfoService _dBContext = dBContext; _dictionaryService = dictionaryService; } + #region 停车场 + /// /// 上传停车场信息 /// @@ -63,7 +56,7 @@ namespace ParkLotInfoService { ApiResult result = new ApiResult() { Code = RequestBackStatuEnum.success.Value, Msg = "接口请求成功" }; //ParkingAccessRecordDto dto=new ParkingAccessRecordDto(); - long projectId = 0; + long projectId = 0; try { var projectIdStr = _configuration["PorjectId"]; @@ -90,8 +83,8 @@ namespace ParkLotInfoService _logger.LogError(ex, $"PostParkingLots 上传停车场信息失败:{ex.Message}"); } return result; - } + /// /// 获取停车场信息 /// @@ -123,7 +116,6 @@ namespace ParkLotInfoService return result; } result.Data = model; - } catch (Exception ex) { @@ -133,6 +125,7 @@ namespace ParkLotInfoService } return result; } + /// /// 获取立方接口数据 /// @@ -141,7 +134,6 @@ namespace ParkLotInfoService /// private async Task GetLifangData(string apiName, object parmJson) { - string resStr = string.Empty; //立方,目前只能本地测试 var url = _configuration["ThirdApi:LifangParkLotApiAddress"] + apiName; @@ -157,33 +149,34 @@ namespace ParkLotInfoService var content = new StringContent(json, Encoding.UTF8, "application/json"); //_ = Task.Run(async () => //{ - try - { - var httpResponse = client.PostAsync(url, content); - var response = await httpResponse; - if (response.IsSuccessStatusCode) - { - resStr = await response.Content.ReadAsStringAsync(); - } - // 处理响应... - } - catch (TaskCanceledException) - { - _logger.LogError(this.GetType().FullName + " PostSearchResult", string.Format("抛出了异常信息: 请求超时,但主进程不受影响;")); - //Console.WriteLine("请求超时,但主进程不受影响"); - } - catch (Exception ex) + try + { + var httpResponse = client.PostAsync(url, content); + var response = await httpResponse; + if (response.IsSuccessStatusCode) { - _logger.LogError(this.GetType().FullName + " PostSearchResult", string.Format("抛出了异常信息: 请求超时,请求失败;{0}", ex.Message)); + resStr = await response.Content.ReadAsStringAsync(); } - // }); + // 处理响应... + } + catch (TaskCanceledException) + { + _logger.LogError(this.GetType().FullName + " PostSearchResult", string.Format("抛出了异常信息: 请求超时,但主进程不受影响;")); + //Console.WriteLine("请求超时,但主进程不受影响"); + } + catch (Exception ex) + { + _logger.LogError(this.GetType().FullName + " PostSearchResult", string.Format("抛出了异常信息: 请求超时,请求失败;{0}", ex.Message)); + } + // }); return resStr; } + public async Task> GetIpPing() { ApiResult result = new ApiResult() { Code = RequestBackStatuEnum.success.Value, Msg = "接口请求成功!" }; - int timeout = 1000; // 超时时间(毫秒) + int timeout = 1000; // 超时时间(毫秒) try { //立方停车场摄像头 @@ -196,9 +189,9 @@ namespace ParkLotInfoService } var ptIpsLabel = ips.Select(d => new { Ip = d, LabelCode = "太阳宫车场识别仪Ip_" + d }).ToList(); //识别仪ip所在的识别仪设备 - var pthings =await _dBContext.PtThingMapLabels.Where(a => ptIpsLabel.Select(b => b.LabelCode).Contains(a.LabelCode)).ToListAsync(); + var pthings = await _dBContext.PtThingMapLabels.Where(a => ptIpsLabel.Select(b => b.LabelCode).Contains(a.LabelCode)).ToListAsync(); //所有识别仪状态点位 - var statePtthings =await _dBContext.PtThings.Where(a => pthings.Select(b => b.ThingId).Contains(a.ParentId) && a.ParamCode == "AX_ChannelState").ToListAsync(); + var statePtthings = await _dBContext.PtThings.Where(a => pthings.Select(b => b.ThingId).Contains(a.ParentId) && a.ParamCode == "AX_ChannelState").ToListAsync(); foreach (var item in ptIpsLabel) { //识别仪状态 0关闭 1开启 @@ -221,7 +214,6 @@ namespace ParkLotInfoService state = 1; //Console.WriteLine($"来自 {reply.Address} 的回复: 字节={reply.Buffer.Length} 时间={reply.RoundtripTime}ms TTL={reply.Options?.Ttl ?? 0}"); } - } //redis中更新识别仪状态 RealDataOnlyValueBo real = new RealDataOnlyValueBo() { Id = stateId.GetValueOrDefault(), Realvalue = state.ToString(), Updatetime = DateTime.Now }; @@ -240,8 +232,11 @@ namespace ParkLotInfoService } return result; } - #endregion + + #endregion 停车场 + #region 门禁 + /// /// 提交门禁状态记录 /// @@ -254,16 +249,16 @@ namespace ParkLotInfoService try { //项目id - string proStr = _configuration["PorjectId"]; + string proStr = _configuration["PorjectId"]; if (!string.IsNullOrEmpty(proStr)) { projectId = long.Parse(proStr); } - - DoorStateRecord door = new DoorStateRecord() { Id = UidGenerator.Uid(),DoorId = dto.doorId, State =(short) dto.typeId, StateTime =DateTime.Parse(dto.date) , DoorName = dto.doorName, StateDesc = dto.typeName,CreateTime = DateTime.Now , ProjectId = projectId }; + + DoorStateRecord door = new DoorStateRecord() { Id = UidGenerator.Uid(), DoorId = dto.doorId, State = (short)dto.typeId, StateTime = DateTime.Parse(dto.date), DoorName = dto.doorName, StateDesc = dto.typeName, CreateTime = DateTime.Now, ProjectId = projectId }; _context.DoorStateRecords.Add(door); - _logger.LogError(this.GetType().FullName + " PostDoorControlRecord 入库前", string.Format("入库请求;{0}",_context.DoorStateRecords.Count())); - var res= await _context.SaveChangesAsync(); + _logger.LogError(this.GetType().FullName + " PostDoorControlRecord 入库前", string.Format("入库请求;{0}", _context.DoorStateRecords.Count())); + var res = await _context.SaveChangesAsync(); if (res > 0) { _logger.LogError(this.GetType().FullName + " PostDoorControlRecord 入库后", string.Format("入库成功息: 请求超时,请求失败;{0}", door.Id)); @@ -272,7 +267,7 @@ namespace ParkLotInfoService result.Suc = 200; } else - { + { result.Ret = "FAIL"; result.Suc = 2005; } @@ -282,8 +277,8 @@ namespace ParkLotInfoService _logger.LogError(this.GetType().FullName + " PostDoorControlRecord 保存记录--", string.Format("抛出了异常信息: 请求超时,请求失败;{0}", ex.Message)); } return result; - } + /// /// 门禁设备状态 /// @@ -303,30 +298,30 @@ namespace ParkLotInfoService } //门禁的设备状态写入redis //找出所有的门禁设备 - var data=await _dBContext.PtThings.ToListAsync(); - var eqPthings=await _dBContext.PtThings.Where(a => a.ParamCode == "AccessControl").Select(d=>d.Id).ToListAsync(); + var data = await _dBContext.PtThings.ToListAsync(); + var eqPthings = await _dBContext.PtThings.Where(a => a.ParamCode == "AccessControl").Select(d => d.Id).ToListAsync(); if (eqPthings == null || eqPthings.Count == 0) { return result; } - - var doorlocks =await _dBContext.PtThingMapLabels.Where(m => eqPthings.Contains(m.ThingId)&& m.LabelCode.Contains("安消门禁Id_")).Select(d=> new { Id = d.ThingId, DeciveId = int.Parse(d.LabelCode.Substring(d.LabelCode.LastIndexOf("_") + 1)) }).ToListAsync(); + + var doorlocks = await _dBContext.PtThingMapLabels.Where(m => eqPthings.Contains(m.ThingId) && m.LabelCode.Contains("安消门禁Id_")).Select(d => new { Id = d.ThingId, DeciveId = int.Parse(d.LabelCode.Substring(d.LabelCode.LastIndexOf("_") + 1)) }).ToListAsync(); if (doorlocks == null || doorlocks.Count == 0) - { + { return result; } if (doorlocks == null || doorlocks.Count == 0) - { + { return result; } //找出当前订阅推送的门禁id对应的设备 - var doorLock=doorlocks.Where(a => a.DeciveId == dto.deviceld).FirstOrDefault(); + var doorLock = doorlocks.Where(a => a.DeciveId == dto.deviceld).FirstOrDefault(); if (doorLock == null) { return result; } //找出当前门禁的状态点位 - var realId=_dBContext.PtThings.Where(a =>a.ParentId== doorLock.Id && a.ParamCode == "AX_AcessState").FirstOrDefault()?.Id; - if (realId==0) + var realId = _dBContext.PtThings.Where(a => a.ParentId == doorLock.Id && a.ParamCode == "AX_AcessState").FirstOrDefault()?.Id; + if (realId == 0) { return result; } @@ -339,8 +334,8 @@ namespace ParkLotInfoService _logger.LogError(this.GetType().FullName + " PostDoorControlRecord", string.Format("抛出了异常信息: 请求超时,请求失败;{0}", ex.Message)); } return result; - } + /// /// 门禁远程控制 /// @@ -354,8 +349,8 @@ namespace ParkLotInfoService string api = $"custom/v1/sendCommand?doorId={doorId}&command={command}"; try { - string token =await GetLifangDoorLockToken(); - var str = await GetLifangDoorLockPostData(api, null,token); + string token = await GetLifangDoorLockToken(); + var str = await GetLifangDoorLockPostData(api, null, token); if (string.IsNullOrEmpty(str)) { result.Code = RequestBackStatuEnum.diy.Value; @@ -409,7 +404,7 @@ namespace ParkLotInfoService //var client = _httpClientFactory.CreateClient(); - client.Timeout = TimeSpan.FromMinutes(1);//设置超时时间 + client.Timeout = TimeSpan.FromMinutes(1);//设置超时时间 try { var response = await client.GetAsync(apiUrl); @@ -437,13 +432,14 @@ namespace ParkLotInfoService } return token; } + /// /// 门禁调用立方接口信息 /// /// /// /// - private async Task GetLifangDoorLockPostData(string apiName, object parmJson,string token) + private async Task GetLifangDoorLockPostData(string apiName, object parmJson, string token) { string json = string.Empty; ////获取token @@ -499,18 +495,19 @@ namespace ParkLotInfoService } return resStr; } + /// /// 调用订阅接口 /// /// /// /// - + /// - public async Task> PushLifangDoorData(string tppic, string address,string token) + public async Task> PushLifangDoorData(string tppic, string address, string token) { - ApiResult result = new ApiResult() { Code=RequestBackStatuEnum.success.Value,Msg="接口请求成功!"}; - TokenDto resDto = new TokenDto() { Ret= "SUCESS",Suc= 200 }; + ApiResult result = new ApiResult() { Code = RequestBackStatuEnum.success.Value, Msg = "接口请求成功!" }; + TokenDto resDto = new TokenDto() { Ret = "SUCESS", Suc = 200 }; int expire = 0; try { @@ -526,7 +523,7 @@ namespace ParkLotInfoService return result; } PushDoorDto dto = new PushDoorDto() { uuid = uuid, expire = expire, address = address, topic = tppic }; - var res = await GetLifangDoorLockPostData(api, dto,token); + var res = await GetLifangDoorLockPostData(api, dto, token); if (string.IsNullOrEmpty(res)) { result.Code = RequestBackStatuEnum.fail.Value; @@ -538,17 +535,17 @@ namespace ParkLotInfoService { result.Code = RequestBackStatuEnum.diy.Value; result.Msg = "下空失败!"; - } result.Data = resModel; } catch (Exception ex) { - _logger.LogError(this.GetType().FullName + " PushLifangDoorData ", string.Format("抛出了异常信息:{0}",ex)); + _logger.LogError(this.GetType().FullName + " PushLifangDoorData ", string.Format("抛出了异常信息:{0}", ex)); } - - return result; + + return result; } + //public async Task> PushLifangDoorRecord(string tppic, string address) //{ // try @@ -560,6 +557,7 @@ namespace ParkLotInfoService // _logger.LogError(this.GetType().FullName + " PushLifangDoorRecord ", string.Format("抛出了异常信息:{0}", ex)); // } //} - #endregion + + #endregion 门禁 } -} +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Controllers/PuTianSuYuan/SunPalaceBoardFacilityController.cs b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Controllers/PuTianSuYuan/SunPalaceBoardFacilityController.cs new file mode 100644 index 0000000..cdede40 --- /dev/null +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Controllers/PuTianSuYuan/SunPalaceBoardFacilityController.cs @@ -0,0 +1,46 @@ +using Common.Shared.Application.SafetyFirePro.RequestDto; +using Common.Shared.Application.SafetyFirePro.ResponseDto; +using Microsoft.AspNetCore.Mvc; +using ThirdPartyServices.DomainService.PuTianSuYuan; + +namespace ThirdPartyServices.API.Controllers.PuTianSuYuan +{ + /// + /// 用于太阳宫看板的设备设施态势-普天溯源公司接口 + /// + [Route("api/[controller]/[action]")] + [ApiController] + public class SunPalaceBoardFacilityController : ControllerBase + { + private readonly ILogger _logger; + + private readonly ISunPalaceBoardFacilityService _sunPalaceBoardFacilityService; + + public SunPalaceBoardFacilityController(ILogger logger, ISunPalaceBoardFacilityService sunPalaceBoardFacilityService) + { + _logger = logger; + _sunPalaceBoardFacilityService = sunPalaceBoardFacilityService; + } + + /// + /// 资产仪表盘数据-智慧建筑的看板上使用 + /// + /// + /// + [HttpPost("assetList")] + public async Task> GetAssetDashboardEchart(SecSituationQueryDto dto) + { + return await _sunPalaceBoardFacilityService.GetAssetDashboardEchart(dto); + } + + /// + /// 资产类型-智慧建筑的看板上使用 + /// + /// + [HttpPost("assetType")] + public async Task> GetAssetTypeEchart(SecSituationQueryDto dto) + { + return await _sunPalaceBoardFacilityService.GetAssetTypeEchart(dto); + } + } +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Controllers/ShenZhouShengAn/SunPalaceBoardSafetyController.cs b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Controllers/ShenZhouShengAn/SunPalaceBoardSafetyController.cs new file mode 100644 index 0000000..fc33414 --- /dev/null +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Controllers/ShenZhouShengAn/SunPalaceBoardSafetyController.cs @@ -0,0 +1,35 @@ +using Common.Shared.Application.SafetyFirePro.ResponseDto; +using Microsoft.AspNetCore.Mvc; +using ThirdPartyServices.DomainService.ShenZhouShengAn; + +namespace ThirdPartyServices.API.Controllers.ShenZhouShengAn +{ + /// + /// 用于太阳宫看板的综合安全态势模块-神州晟安公司接口 + /// + [Route("api/[controller]/[action]")] + [ApiController] + public class SunPalaceBoardSafetyController : ControllerBase + { + private readonly ILogger _logger; + + private readonly ISunPalaceBoardSafetyService _secSituationService; + + public SunPalaceBoardSafetyController(ILogger logger, ISunPalaceBoardSafetyService secSituationService) + { + _logger = logger; + _secSituationService = secSituationService; + } + + /// + /// 生产风险识别(盾安云数据)智慧建筑的看板上使用 + /// + /// + /// + [HttpGet("productionRisk")] + public async Task GetProductionRiskEchart() + { + return await _secSituationService.GetProductionRiskEchart(); + } + } +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Infrastructure/AutoMapperProfile.cs b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Infrastructure/AutoMapperProfile.cs new file mode 100644 index 0000000..43f5e04 --- /dev/null +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Infrastructure/AutoMapperProfile.cs @@ -0,0 +1,17 @@ +using AutoMapper; + +namespace ThirdPartyServices.API.Infrastructure +{ + /// + /// AutoMapper + /// + public class AutoMapperProfile : Profile + { + /// + /// 캯 + /// + public AutoMapperProfile() + { + } + } +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Infrastructure/ConfigureAutofac.cs b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Infrastructure/ConfigureAutofac.cs new file mode 100644 index 0000000..cfb8821 --- /dev/null +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Infrastructure/ConfigureAutofac.cs @@ -0,0 +1,31 @@ +using Autofac; +using System.Reflection; + +namespace ThirdPartyServices.API.Infrastructure +{ + /// + /// autofac + /// + public class ConfigureAutofac : Autofac.Module + { + /// + /// + /// + /// + protected override void Load(ContainerBuilder builder) + { + //Assembly assemblysServices1 = Assembly.Load("WeiCloud.Core"); + //builder.RegisterAssemblyTypes(assemblysServices1).Where(t => t.Namespace != "" && t.Namespace != null && t.Name.EndsWith("Service") && t.Namespace.StartsWith("WeiCloud.Core")) + // .AsImplementedInterfaces() + // .InstancePerLifetimeScope().PropertiesAutowired(PropertyWiringOptions.AllowCircularDependencies); + + var assemblysServices = Assembly.Load("ThirdPartyServices.DomainService"); + builder.RegisterAssemblyTypes(assemblysServices) + .Where(x => x.Name.EndsWith("Service")) + .AsImplementedInterfaces() + .InstancePerLifetimeScope().PropertiesAutowired(PropertyWiringOptions.AllowCircularDependencies); + + // builder.RegisterType(typeof(GrainFactory)).PropertiesAutowired().InstancePerLifetimeScope(); + } + } +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/NLog.config b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/NLog.config new file mode 100644 index 0000000..55c5da9 --- /dev/null +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/NLog.config @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Program.cs b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Program.cs index e1b8a7c..b8f3507 100644 --- a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Program.cs +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Program.cs @@ -1,27 +1,128 @@ +using Autofac; +using Autofac.Extensions.DependencyInjection; +using Common.Shared.Application.Core; +using Microsoft.OpenApi.Models; +using NLog; +using NLog.Extensions.Logging; +using NLog.Web; +using System.Reflection; +using ThirdPartyServices.API.Infrastructure; + namespace ThirdPartyServices.API { public class Program { public static void Main(string[] args) { - var builder = WebApplication.CreateBuilder(args); + var logger = NLog.LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger(); + logger.Debug("init main"); + try + { + var builder = WebApplication.CreateBuilder(args); + + builder.Services.AddHttpContextAccessor(); + builder.Services.AddHttpClient(); + builder.Services.AddControllers(); + builder.Services.AddSingleton(builder.Configuration); + + #region Cors + + var isconfig = builder.Configuration.GetSection("IdentityClientConfig").Get(); + builder.Services.AddCors(options => + { + options.AddPolicy("_myAllowSpecificOrigins", + builder => + { + builder + //.WithOrigins(isconfig.CorsOrigins) //Դʹöŷָ + .AllowAnyOrigin() //ԴʱAPIã + .AllowAnyHeader() + .AllowAnyMethod() + .AllowCredentials() + .SetIsOriginAllowed((h) => true);//ΪSignalrӵ + }); + }); + + #endregion Cors + + #region SwaggerUI + + builder.Services.AddEndpointsApiExplorer(); + builder.Services.AddSwaggerGen(c => + { + c.SwaggerDoc("v1.0", new OpenApiInfo + { + Version = "v1.0", + Title = "WeiCloud.IoT",// + Description = "һ廯ƽ̨", + Contact = new OpenApiContact + { + Name = "hi7t", + Email = "", + Url = null + } + }); + //c.OperationFilter(); + var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; + var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); + c.IncludeXmlComments(xmlPath, true); + c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First()); + }); + + #endregion SwaggerUI + + builder.Services.AddLogging(m => { m.AddNLog(); }); + + #region Autofac - // Add services to the container. + builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()) + .ConfigureContainer(builder => + { + builder.RegisterModule(new ConfigureAutofac()); + }); - builder.Services.AddControllers(); + #endregion Autofac - var app = builder.Build(); + // ȫĬС + builder.WebHost.ConfigureKestrel(options => + { + options.Limits.MaxRequestBodySize = 200 * 1024 * 1024; // Ĭ 200MB + }); - // Configure the HTTP request pipeline. + var app = builder.Build(); - app.UseHttpsRedirection(); + if (app.Environment.IsDevelopment()) + { + app.UseSwagger(); + app.UseSwaggerUI(c => + { + c.SwaggerEndpoint("/swagger/v1.0/swagger.json", "WeiCloud.IoT-v1.0"); + }); + } - app.UseAuthorization(); + // app.UseHttpsRedirection(); + // app.UseAuthorization(); - app.MapControllers(); + app.MapControllers(); + app.MapGet("/healthz", () => Results.Ok("OK")); - app.Run(); + // Startup ʵ + var startup = new Startup(builder.Configuration); + startup.Configure(app, app.Environment, builder.Configuration); + app.Run(); + } + catch (Exception exception) + { + // NLog: catch setup errors + logger.Error(exception, "Stopped program because of exception"); + throw; + } + finally + { + // Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux) + NLog.LogManager.Shutdown(); + } } } -} +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Properties/launchSettings.json b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Properties/launchSettings.json index 6d05fc1..628c0ac 100644 --- a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Properties/launchSettings.json +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Properties/launchSettings.json @@ -13,7 +13,7 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "launchUrl": "weatherforecast", + "launchUrl": "swagger", "applicationUrl": "http://localhost:5053", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" @@ -23,7 +23,7 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "launchUrl": "weatherforecast", + "launchUrl": "swagger", "applicationUrl": "https://localhost:7195;http://localhost:5053", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" @@ -32,10 +32,10 @@ "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, - "launchUrl": "weatherforecast", + "launchUrl": "swagger", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } -} +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Startup.cs b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Startup.cs new file mode 100644 index 0000000..62a87b9 --- /dev/null +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Startup.cs @@ -0,0 +1,19 @@ +using WeiCloud.Utils.Common; + +namespace ThirdPartyServices.API +{ + public class Startup + { + public Startup(IConfiguration configuration) + { + Configuration = configuration; + } + + public IConfiguration Configuration { get; } + + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IConfiguration configuration) + { + ServiceLocator.Instance = app.ApplicationServices; + } + } +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/ThirdPartyServices.API.csproj b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/ThirdPartyServices.API.csproj index ad9cab4..7ad1732 100644 --- a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/ThirdPartyServices.API.csproj +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/ThirdPartyServices.API.csproj @@ -4,12 +4,23 @@ net8.0 enable enable + True - - + + + + + + + + + + + + diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/appsettings.json b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/appsettings.json index 10f68b8..d8ef202 100644 --- a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/appsettings.json +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/appsettings.json @@ -5,5 +5,17 @@ "Microsoft.AspNetCore": "Warning" } }, + //太阳宫大屏的第三方配置 + "ThirdParty": { + "AssetWeb": { + "ServiceUrl": "http://123.56.129.171:8280/services/AssetWeb.asmx", + "TimeoutSeconds": "30", + "MaxMsgSize": "10485760", // 10 MB + "BasicAuthUser": "", + "BasicAuthPassword": "", + "TokenHeader": "" + }, + "SzdunanCode": "123456" + }, "AllowedHosts": "*" -} +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.Application/ShenZhouShengAn/RequestDto/ThirdPartyProviderQueryDto.cs b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.Application/ShenZhouShengAn/RequestDto/ThirdPartyProviderQueryDto.cs new file mode 100644 index 0000000..45a1209 --- /dev/null +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.Application/ShenZhouShengAn/RequestDto/ThirdPartyProviderQueryDto.cs @@ -0,0 +1,68 @@ +using System.Text.Json; +using System.Text.Json.Serialization; + +//盾安云第三方请求接口的参数 +namespace ThirdPartyServices.Application.ShenZhouShengAn.RequestDto +{ + /// + /// 用户信息参数 + /// + public class LoginUsersConfiguration + { + [JsonPropertyName("uid")] + public int Uid { get; set; } + + [JsonPropertyName("ubpid")] + public int Ubpid { get; set; } + + [JsonPropertyName("id")] + public int UserId { get; set; } + } + + /// + /// 单位风险点汇总数据 + /// + public class RiskAreaQueryDto + { + /// + /// 单位id + /// + public int Branch_Id { get; set; } = 0; + + /// + /// Ubpid + /// + public int Ubpid { get; set; } = 0; + + /// + /// Uid + /// + public int Uid { get; set; } = 0; + } + + /// + /// 条件组合查询隐患数据 + /// + public class DangerInfoQueryDto + { + public int? Ubpid { get; set; } + + /// + /// /隐患状态:0待核查,1待整改,2待验收,3治理完毕,4不是隐患 + /// + public string Status { get; set; } + + /// + /// 第三方定义的隐患等级2一般隐患,3重大隐患 + /// + public string? Result { get; set; } + + public int? Page { get; set; } + + public int? Branch_id { get; set; } + + public string? Start_time { get; set; } + + public string? End_time { get; set; } + } +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.Application/ShenZhouShengAn/ResponseDto/ThirdPartyProviderResDto.cs b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.Application/ShenZhouShengAn/ResponseDto/ThirdPartyProviderResDto.cs new file mode 100644 index 0000000..0a1da98 --- /dev/null +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.Application/ShenZhouShengAn/ResponseDto/ThirdPartyProviderResDto.cs @@ -0,0 +1,38 @@ +//第三方返回数据 +using System.Text.Json.Serialization; + +namespace ThirdPartyServices.Application.ShenZhouShengAn.ResponseDto +{ + /// + /// 返回token模型 + /// + public class LoginTokenDto + { + public string? Token { get; set; } + } + + /// + /// 用户单位信息参数 + /// + public class BranchResDto + { + [JsonPropertyName("branch_permissions_ids")] + public int[] BranchPermissionIds { get; set; } + } + + /// + /// 用于第三方请求的结果 + /// + /// + public class HttpClientResult + { + [JsonPropertyName("code")] + public string Code { get; set; } + + [JsonPropertyName("message")] + public string Message { get; set; } + + [JsonPropertyName("data")] + public T Data { get; set; } + } +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.Application/ThirdPartyServices.Application.csproj b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.Application/ThirdPartyServices.Application.csproj index 47eabbf..c814c41 100644 --- a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.Application/ThirdPartyServices.Application.csproj +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.Application/ThirdPartyServices.Application.csproj @@ -9,7 +9,12 @@ - + + + + + + diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/PuTianSuYuan/AssetWebClientService.cs b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/PuTianSuYuan/AssetWebClientService.cs new file mode 100644 index 0000000..61a5a51 --- /dev/null +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/PuTianSuYuan/AssetWebClientService.cs @@ -0,0 +1,2472 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,并在以下条件下丢失: +// 代码重新生成。 +// +//------------------------------------------------------------------------------ + +namespace ThirdPartyServices.DomainService.PuTianSuYuan +{ + + + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://service.webservice.fits.ptsy.com/", ConfigurationName="ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService")] + public interface StatisticsService + { + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + System.Threading.Tasks.Task assetCountAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetCount request); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetDepartStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthPutIn))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthOutReceive))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCount))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPriceResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPrice))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTypeStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetAwaitRepair))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventoryResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventory))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetClean))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCount))] + System.Threading.Tasks.Task assetCleanAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetClean1 request); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetDepartStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthPutIn))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthOutReceive))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCount))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPriceResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPrice))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTypeStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetAwaitRepair))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventoryResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventory))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetClean))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCount))] + System.Threading.Tasks.Task assetInventoryAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetInventory1 request); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetDepartStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthPutIn))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthOutReceive))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCount))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPriceResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPrice))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTypeStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetAwaitRepair))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventoryResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventory))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetClean))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCount))] + System.Threading.Tasks.Task assetAwaitRepairAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetAwaitRepair1 request); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetDepartStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthPutIn))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthOutReceive))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCount))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPriceResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPrice))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTypeStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetAwaitRepair))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventoryResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventory))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetClean))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCount))] + System.Threading.Tasks.Task assetTypeStatisticsAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetTypeStatistics1 request); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetDepartStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthPutIn))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthOutReceive))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCount))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPriceResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPrice))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTypeStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetAwaitRepair))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventoryResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventory))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetClean))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCount))] + System.Threading.Tasks.Task assetTotalPriceAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetTotalPrice1 request); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetDepartStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthPutIn))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthOutReceive))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCount))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPriceResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPrice))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTypeStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetAwaitRepair))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventoryResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventory))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetClean))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCount))] + System.Threading.Tasks.Task assetLdleCountAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetLdleCount1 request); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetDepartStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthPutIn))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthOutReceive))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCount))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPriceResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPrice))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTypeStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetAwaitRepair))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventoryResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventory))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetClean))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCount))] + System.Threading.Tasks.Task assetMonthOutReceiveAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetMonthOutReceive1 request); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetDepartStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthPutIn))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthOutReceive))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCount))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPriceResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPrice))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTypeStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetAwaitRepair))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventoryResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventory))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetClean))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCount))] + System.Threading.Tasks.Task todayAlarmAsync(ThirdPartyServices.DomainService.PuTianSuYuan.todayAlarm1 request); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetDepartStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthPutIn))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthOutReceive))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCount))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPriceResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPrice))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTypeStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetAwaitRepair))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventoryResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventory))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetClean))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCount))] + System.Threading.Tasks.Task assetPostionAlarmAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetPostionAlarm1 request); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetDepartStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthPutIn))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthOutReceive))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCount))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPriceResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPrice))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTypeStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetAwaitRepair))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventoryResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventory))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetClean))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCount))] + System.Threading.Tasks.Task assetMonthPutInAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetMonthPutIn1 request); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetDepartStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthPutIn))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetPostionAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarmResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(todayAlarm))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetMonthOutReceive))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetLdleCount))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPriceResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTotalPrice))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetTypeStatistics))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetAwaitRepair))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventoryResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetInventory))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetClean))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCountResponse))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(assetCount))] + System.Threading.Tasks.Task assetDepartStatisticsAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetDepartStatistics1 request); + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetCount", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetCount + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public string startTime; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=1)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public string endTime; + + public assetCount() + { + } + + public assetCount(string startTime, string endTime) + { + this.startTime = startTime; + this.endTime = endTime; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetCountResponse", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetCountResponse + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public int @return; + + public assetCountResponse() + { + } + + public assetCountResponse(int @return) + { + this.@return = @return; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class overhaulRecordStatistics + { + + private int countField; + + private bool countFieldSpecified; + + private string typeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public int count + { + get + { + return this.countField; + } + set + { + this.countField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool countSpecified + { + get + { + return this.countFieldSpecified; + } + set + { + this.countFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public string type + { + get + { + return this.typeField; + } + set + { + this.typeField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetDepartStatistics + { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetMonthPutIn + { + + private string startTimeField; + + private string endTimeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public string startTime + { + get + { + return this.startTimeField; + } + set + { + this.startTimeField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public string endTime + { + get + { + return this.endTimeField; + } + set + { + this.endTimeField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetPostionAlarmResponse + { + + private int returnField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public int @return + { + get + { + return this.returnField; + } + set + { + this.returnField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetPostionAlarm + { + + private string startTimeField; + + private string endTimeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public string startTime + { + get + { + return this.startTimeField; + } + set + { + this.startTimeField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public string endTime + { + get + { + return this.endTimeField; + } + set + { + this.endTimeField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class todayAlarmResponse + { + + private int returnField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public int @return + { + get + { + return this.returnField; + } + set + { + this.returnField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class todayAlarm + { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetUsageMonthStatistics + { + + private int countField; + + private bool countFieldSpecified; + + private string monthField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public int count + { + get + { + return this.countField; + } + set + { + this.countField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool countSpecified + { + get + { + return this.countFieldSpecified; + } + set + { + this.countFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public string month + { + get + { + return this.monthField; + } + set + { + this.monthField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetMonthOutReceive + { + + private string startTimeField; + + private string endTimeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public string startTime + { + get + { + return this.startTimeField; + } + set + { + this.startTimeField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public string endTime + { + get + { + return this.endTimeField; + } + set + { + this.endTimeField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetLdleCountResponse + { + + private int returnField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public int @return + { + get + { + return this.returnField; + } + set + { + this.returnField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetLdleCount + { + + private string startTimeField; + + private string endTimeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public string startTime + { + get + { + return this.startTimeField; + } + set + { + this.startTimeField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public string endTime + { + get + { + return this.endTimeField; + } + set + { + this.endTimeField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetTotalPriceResponse + { + + private double returnField; + + private bool returnFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public double @return + { + get + { + return this.returnField; + } + set + { + this.returnField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool returnSpecified + { + get + { + return this.returnFieldSpecified; + } + set + { + this.returnFieldSpecified = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetTotalPrice + { + + private string startTimeField; + + private string endTimeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public string startTime + { + get + { + return this.startTimeField; + } + set + { + this.startTimeField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public string endTime + { + get + { + return this.endTimeField; + } + set + { + this.endTimeField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetStatistics + { + + private int countField; + + private bool countFieldSpecified; + + private string nameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public int count + { + get + { + return this.countField; + } + set + { + this.countField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool countSpecified + { + get + { + return this.countFieldSpecified; + } + set + { + this.countFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public string name + { + get + { + return this.nameField; + } + set + { + this.nameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetTypeStatistics + { + + private string startTimeField; + + private string endTimeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public string startTime + { + get + { + return this.startTimeField; + } + set + { + this.startTimeField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public string endTime + { + get + { + return this.endTimeField; + } + set + { + this.endTimeField = value; + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(baseData))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(asset))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class tableField + { + + private string[] tidsField; + + /// + [System.Xml.Serialization.XmlElementAttribute("tids", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=true, Order=0)] + public string[] tids + { + get + { + return this.tidsField; + } + set + { + this.tidsField = value; + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(asset))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class baseData : tableField + { + + private int currentPageField; + + private bool currentPageFieldSpecified; + + private int pageSizeField; + + private bool pageSizeFieldSpecified; + + private int userIdField; + + private bool userIdFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public int currentPage + { + get + { + return this.currentPageField; + } + set + { + this.currentPageField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool currentPageSpecified + { + get + { + return this.currentPageFieldSpecified; + } + set + { + this.currentPageFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public int pageSize + { + get + { + return this.pageSizeField; + } + set + { + this.pageSizeField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool pageSizeSpecified + { + get + { + return this.pageSizeFieldSpecified; + } + set + { + this.pageSizeFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)] + public int userId + { + get + { + return this.userIdField; + } + set + { + this.userIdField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool userIdSpecified + { + get + { + return this.userIdFieldSpecified; + } + set + { + this.userIdFieldSpecified = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class asset : baseData + { + + private int applyForDepartIdField; + + private bool applyForDepartIdFieldSpecified; + + private int applyForUserIdField; + + private bool applyForUserIdFieldSpecified; + + private System.DateTime createdTimeField; + + private bool createdTimeFieldSpecified; + + private int departIdField; + + private bool departIdFieldSpecified; + + private int deviceIdField; + + private bool deviceIdFieldSpecified; + + private int disposeDepartIdField; + + private bool disposeDepartIdFieldSpecified; + + private int disposeUserIdField; + + private bool disposeUserIdFieldSpecified; + + private int idField; + + private bool idFieldSpecified; + + private string imageIdField; + + private string locationField; + + private string moneyField; + + private string nameField; + + private string receiptsField; + + private int receiveField; + + private bool receiveFieldSpecified; + + private string seriaNumberField; + + private string sourceField; + + private int statusField; + + private bool statusFieldSpecified; + + private int typeField; + + private bool typeFieldSpecified; + + private string unitField; + + private System.DateTime updatedTimeField; + + private bool updatedTimeFieldSpecified; + + private int useDepartIdField; + + private bool useDepartIdFieldSpecified; + + private int useUserIdField; + + private bool useUserIdFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public int applyForDepartId + { + get + { + return this.applyForDepartIdField; + } + set + { + this.applyForDepartIdField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool applyForDepartIdSpecified + { + get + { + return this.applyForDepartIdFieldSpecified; + } + set + { + this.applyForDepartIdFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public int applyForUserId + { + get + { + return this.applyForUserIdField; + } + set + { + this.applyForUserIdField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool applyForUserIdSpecified + { + get + { + return this.applyForUserIdFieldSpecified; + } + set + { + this.applyForUserIdFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)] + public System.DateTime createdTime + { + get + { + return this.createdTimeField; + } + set + { + this.createdTimeField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool createdTimeSpecified + { + get + { + return this.createdTimeFieldSpecified; + } + set + { + this.createdTimeFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=3)] + public int departId + { + get + { + return this.departIdField; + } + set + { + this.departIdField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool departIdSpecified + { + get + { + return this.departIdFieldSpecified; + } + set + { + this.departIdFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=4)] + public int deviceId + { + get + { + return this.deviceIdField; + } + set + { + this.deviceIdField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool deviceIdSpecified + { + get + { + return this.deviceIdFieldSpecified; + } + set + { + this.deviceIdFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=5)] + public int disposeDepartId + { + get + { + return this.disposeDepartIdField; + } + set + { + this.disposeDepartIdField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool disposeDepartIdSpecified + { + get + { + return this.disposeDepartIdFieldSpecified; + } + set + { + this.disposeDepartIdFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=6)] + public int disposeUserId + { + get + { + return this.disposeUserIdField; + } + set + { + this.disposeUserIdField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool disposeUserIdSpecified + { + get + { + return this.disposeUserIdFieldSpecified; + } + set + { + this.disposeUserIdFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=7)] + public int id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool idSpecified + { + get + { + return this.idFieldSpecified; + } + set + { + this.idFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=8)] + public string imageId + { + get + { + return this.imageIdField; + } + set + { + this.imageIdField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=9)] + public string location + { + get + { + return this.locationField; + } + set + { + this.locationField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=10)] + public string money + { + get + { + return this.moneyField; + } + set + { + this.moneyField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=11)] + public string name + { + get + { + return this.nameField; + } + set + { + this.nameField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=12)] + public string receipts + { + get + { + return this.receiptsField; + } + set + { + this.receiptsField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=13)] + public int receive + { + get + { + return this.receiveField; + } + set + { + this.receiveField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool receiveSpecified + { + get + { + return this.receiveFieldSpecified; + } + set + { + this.receiveFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=14)] + public string seriaNumber + { + get + { + return this.seriaNumberField; + } + set + { + this.seriaNumberField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=15)] + public string source + { + get + { + return this.sourceField; + } + set + { + this.sourceField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=16)] + public int status + { + get + { + return this.statusField; + } + set + { + this.statusField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool statusSpecified + { + get + { + return this.statusFieldSpecified; + } + set + { + this.statusFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=17)] + public int type + { + get + { + return this.typeField; + } + set + { + this.typeField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool typeSpecified + { + get + { + return this.typeFieldSpecified; + } + set + { + this.typeFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=18)] + public string unit + { + get + { + return this.unitField; + } + set + { + this.unitField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=19)] + public System.DateTime updatedTime + { + get + { + return this.updatedTimeField; + } + set + { + this.updatedTimeField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool updatedTimeSpecified + { + get + { + return this.updatedTimeFieldSpecified; + } + set + { + this.updatedTimeFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=20)] + public int useDepartId + { + get + { + return this.useDepartIdField; + } + set + { + this.useDepartIdField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool useDepartIdSpecified + { + get + { + return this.useDepartIdFieldSpecified; + } + set + { + this.useDepartIdFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=21)] + public int useUserId + { + get + { + return this.useUserIdField; + } + set + { + this.useUserIdField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool useUserIdSpecified + { + get + { + return this.useUserIdFieldSpecified; + } + set + { + this.useUserIdFieldSpecified = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetAwaitRepair + { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetInventoryResponse + { + + private assetInventoryResponseEntry[] _returnField; + + /// + [System.Xml.Serialization.XmlArrayAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + [System.Xml.Serialization.XmlArrayItemAttribute("entry", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=false)] + public assetInventoryResponseEntry[] _return + { + get + { + return this._returnField; + } + set + { + this._returnField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetInventoryResponseEntry + { + + private object keyField; + + private object valueField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public object key + { + get + { + return this.keyField; + } + set + { + this.keyField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public object value + { + get + { + return this.valueField; + } + set + { + this.valueField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetInventory + { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetClean + { + + private string startTimeField; + + private string endTimeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public string startTime + { + get + { + return this.startTimeField; + } + set + { + this.startTimeField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public string endTime + { + get + { + return this.endTimeField; + } + set + { + this.endTimeField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetCountResponse1 + { + + private int returnField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public int @return + { + get + { + return this.returnField; + } + set + { + this.returnField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://service.webservice.fits.ptsy.com/")] + public partial class assetCount1 + { + + private string startTimeField; + + private string endTimeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public string startTime + { + get + { + return this.startTimeField; + } + set + { + this.startTimeField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public string endTime + { + get + { + return this.endTimeField; + } + set + { + this.endTimeField = value; + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetClean", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetClean1 + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public string startTime; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=1)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public string endTime; + + public assetClean1() + { + } + + public assetClean1(string startTime, string endTime) + { + this.startTime = startTime; + this.endTime = endTime; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetCleanResponse", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetCleanResponse + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public ThirdPartyServices.DomainService.PuTianSuYuan.overhaulRecordStatistics[] @return; + + public assetCleanResponse() + { + } + + public assetCleanResponse(ThirdPartyServices.DomainService.PuTianSuYuan.overhaulRecordStatistics[] @return) + { + this.@return = @return; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetInventory", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetInventory1 + { + + public assetInventory1() + { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetInventoryResponse", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetInventoryResponse1 + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlArrayAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + [System.Xml.Serialization.XmlArrayItemAttribute("entry", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=false)] + public ThirdPartyServices.DomainService.PuTianSuYuan.assetInventoryResponseEntry[] _return; + + public assetInventoryResponse1() + { + } + + public assetInventoryResponse1(ThirdPartyServices.DomainService.PuTianSuYuan.assetInventoryResponseEntry[] _return) + { + this._return = _return; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetAwaitRepair", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetAwaitRepair1 + { + + public assetAwaitRepair1() + { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetAwaitRepairResponse", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetAwaitRepairResponse + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public ThirdPartyServices.DomainService.PuTianSuYuan.asset[] @return; + + public assetAwaitRepairResponse() + { + } + + public assetAwaitRepairResponse(ThirdPartyServices.DomainService.PuTianSuYuan.asset[] @return) + { + this.@return = @return; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetTypeStatistics", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetTypeStatistics1 + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public string startTime; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=1)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public string endTime; + + public assetTypeStatistics1() + { + } + + public assetTypeStatistics1(string startTime, string endTime) + { + this.startTime = startTime; + this.endTime = endTime; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetTypeStatisticsResponse", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetTypeStatisticsResponse + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public ThirdPartyServices.DomainService.PuTianSuYuan.assetStatistics[] @return; + + public assetTypeStatisticsResponse() + { + } + + public assetTypeStatisticsResponse(ThirdPartyServices.DomainService.PuTianSuYuan.assetStatistics[] @return) + { + this.@return = @return; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetTotalPrice", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetTotalPrice1 + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public string startTime; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=1)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public string endTime; + + public assetTotalPrice1() + { + } + + public assetTotalPrice1(string startTime, string endTime) + { + this.startTime = startTime; + this.endTime = endTime; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetTotalPriceResponse", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetTotalPriceResponse1 + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public double @return; + + public assetTotalPriceResponse1() + { + } + + public assetTotalPriceResponse1(double @return) + { + this.@return = @return; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetLdleCount", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetLdleCount1 + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public string startTime; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=1)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public string endTime; + + public assetLdleCount1() + { + } + + public assetLdleCount1(string startTime, string endTime) + { + this.startTime = startTime; + this.endTime = endTime; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetLdleCountResponse", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetLdleCountResponse1 + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public int @return; + + public assetLdleCountResponse1() + { + } + + public assetLdleCountResponse1(int @return) + { + this.@return = @return; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetMonthOutReceive", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetMonthOutReceive1 + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public string startTime; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=1)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public string endTime; + + public assetMonthOutReceive1() + { + } + + public assetMonthOutReceive1(string startTime, string endTime) + { + this.startTime = startTime; + this.endTime = endTime; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetMonthOutReceiveResponse", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetMonthOutReceiveResponse + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public ThirdPartyServices.DomainService.PuTianSuYuan.assetUsageMonthStatistics[] @return; + + public assetMonthOutReceiveResponse() + { + } + + public assetMonthOutReceiveResponse(ThirdPartyServices.DomainService.PuTianSuYuan.assetUsageMonthStatistics[] @return) + { + this.@return = @return; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="todayAlarm", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class todayAlarm1 + { + + public todayAlarm1() + { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="todayAlarmResponse", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class todayAlarmResponse1 + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public int @return; + + public todayAlarmResponse1() + { + } + + public todayAlarmResponse1(int @return) + { + this.@return = @return; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetPostionAlarm", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetPostionAlarm1 + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public string startTime; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=1)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public string endTime; + + public assetPostionAlarm1() + { + } + + public assetPostionAlarm1(string startTime, string endTime) + { + this.startTime = startTime; + this.endTime = endTime; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetPostionAlarmResponse", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetPostionAlarmResponse1 + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public int @return; + + public assetPostionAlarmResponse1() + { + } + + public assetPostionAlarmResponse1(int @return) + { + this.@return = @return; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetMonthPutIn", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetMonthPutIn1 + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public string startTime; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=1)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public string endTime; + + public assetMonthPutIn1() + { + } + + public assetMonthPutIn1(string startTime, string endTime) + { + this.startTime = startTime; + this.endTime = endTime; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetMonthPutInResponse", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetMonthPutInResponse + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public ThirdPartyServices.DomainService.PuTianSuYuan.assetUsageMonthStatistics[] @return; + + public assetMonthPutInResponse() + { + } + + public assetMonthPutInResponse(ThirdPartyServices.DomainService.PuTianSuYuan.assetUsageMonthStatistics[] @return) + { + this.@return = @return; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetDepartStatistics", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetDepartStatistics1 + { + + public assetDepartStatistics1() + { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="assetDepartStatisticsResponse", WrapperNamespace="http://service.webservice.fits.ptsy.com/", IsWrapped=true)] + public partial class assetDepartStatisticsResponse + { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.webservice.fits.ptsy.com/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public ThirdPartyServices.DomainService.PuTianSuYuan.assetStatistics[] @return; + + public assetDepartStatisticsResponse() + { + } + + public assetDepartStatisticsResponse(ThirdPartyServices.DomainService.PuTianSuYuan.assetStatistics[] @return) + { + this.@return = @return; + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + public interface StatisticsServiceChannel : ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService, System.ServiceModel.IClientChannel + { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "8.0.0")] + public partial class StatisticsServiceClient : System.ServiceModel.ClientBase, ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService + { + + /// + /// 实现此分部方法,配置服务终结点。 + /// + /// 要配置的终结点 + /// 客户端凭据 + static partial void ConfigureEndpoint(System.ServiceModel.Description.ServiceEndpoint serviceEndpoint, System.ServiceModel.Description.ClientCredentials clientCredentials); + + public StatisticsServiceClient() : + base(StatisticsServiceClient.GetDefaultBinding(), StatisticsServiceClient.GetDefaultEndpointAddress()) + { + this.Endpoint.Name = EndpointConfiguration.StatisticsImplPort.ToString(); + ConfigureEndpoint(this.Endpoint, this.ClientCredentials); + } + + public StatisticsServiceClient(EndpointConfiguration endpointConfiguration) : + base(StatisticsServiceClient.GetBindingForEndpoint(endpointConfiguration), StatisticsServiceClient.GetEndpointAddress(endpointConfiguration)) + { + this.Endpoint.Name = endpointConfiguration.ToString(); + ConfigureEndpoint(this.Endpoint, this.ClientCredentials); + } + + public StatisticsServiceClient(EndpointConfiguration endpointConfiguration, string remoteAddress) : + base(StatisticsServiceClient.GetBindingForEndpoint(endpointConfiguration), new System.ServiceModel.EndpointAddress(remoteAddress)) + { + this.Endpoint.Name = endpointConfiguration.ToString(); + ConfigureEndpoint(this.Endpoint, this.ClientCredentials); + } + + public StatisticsServiceClient(EndpointConfiguration endpointConfiguration, System.ServiceModel.EndpointAddress remoteAddress) : + base(StatisticsServiceClient.GetBindingForEndpoint(endpointConfiguration), remoteAddress) + { + this.Endpoint.Name = endpointConfiguration.ToString(); + ConfigureEndpoint(this.Endpoint, this.ClientCredentials); + } + + public StatisticsServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) + { + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService.assetCountAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetCount request) + { + return base.Channel.assetCountAsync(request); + } + + public System.Threading.Tasks.Task assetCountAsync(string startTime, string endTime) + { + ThirdPartyServices.DomainService.PuTianSuYuan.assetCount inValue = new ThirdPartyServices.DomainService.PuTianSuYuan.assetCount(); + inValue.startTime = startTime; + inValue.endTime = endTime; + return ((ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService)(this)).assetCountAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService.assetCleanAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetClean1 request) + { + return base.Channel.assetCleanAsync(request); + } + + public System.Threading.Tasks.Task assetCleanAsync(string startTime, string endTime) + { + ThirdPartyServices.DomainService.PuTianSuYuan.assetClean1 inValue = new ThirdPartyServices.DomainService.PuTianSuYuan.assetClean1(); + inValue.startTime = startTime; + inValue.endTime = endTime; + return ((ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService)(this)).assetCleanAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService.assetInventoryAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetInventory1 request) + { + return base.Channel.assetInventoryAsync(request); + } + + public System.Threading.Tasks.Task assetInventoryAsync() + { + ThirdPartyServices.DomainService.PuTianSuYuan.assetInventory1 inValue = new ThirdPartyServices.DomainService.PuTianSuYuan.assetInventory1(); + return ((ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService)(this)).assetInventoryAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService.assetAwaitRepairAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetAwaitRepair1 request) + { + return base.Channel.assetAwaitRepairAsync(request); + } + + public System.Threading.Tasks.Task assetAwaitRepairAsync() + { + ThirdPartyServices.DomainService.PuTianSuYuan.assetAwaitRepair1 inValue = new ThirdPartyServices.DomainService.PuTianSuYuan.assetAwaitRepair1(); + return ((ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService)(this)).assetAwaitRepairAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService.assetTypeStatisticsAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetTypeStatistics1 request) + { + return base.Channel.assetTypeStatisticsAsync(request); + } + + public System.Threading.Tasks.Task assetTypeStatisticsAsync(string startTime, string endTime) + { + ThirdPartyServices.DomainService.PuTianSuYuan.assetTypeStatistics1 inValue = new ThirdPartyServices.DomainService.PuTianSuYuan.assetTypeStatistics1(); + inValue.startTime = startTime; + inValue.endTime = endTime; + return ((ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService)(this)).assetTypeStatisticsAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService.assetTotalPriceAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetTotalPrice1 request) + { + return base.Channel.assetTotalPriceAsync(request); + } + + public System.Threading.Tasks.Task assetTotalPriceAsync(string startTime, string endTime) + { + ThirdPartyServices.DomainService.PuTianSuYuan.assetTotalPrice1 inValue = new ThirdPartyServices.DomainService.PuTianSuYuan.assetTotalPrice1(); + inValue.startTime = startTime; + inValue.endTime = endTime; + return ((ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService)(this)).assetTotalPriceAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService.assetLdleCountAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetLdleCount1 request) + { + return base.Channel.assetLdleCountAsync(request); + } + + public System.Threading.Tasks.Task assetLdleCountAsync(string startTime, string endTime) + { + ThirdPartyServices.DomainService.PuTianSuYuan.assetLdleCount1 inValue = new ThirdPartyServices.DomainService.PuTianSuYuan.assetLdleCount1(); + inValue.startTime = startTime; + inValue.endTime = endTime; + return ((ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService)(this)).assetLdleCountAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService.assetMonthOutReceiveAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetMonthOutReceive1 request) + { + return base.Channel.assetMonthOutReceiveAsync(request); + } + + public System.Threading.Tasks.Task assetMonthOutReceiveAsync(string startTime, string endTime) + { + ThirdPartyServices.DomainService.PuTianSuYuan.assetMonthOutReceive1 inValue = new ThirdPartyServices.DomainService.PuTianSuYuan.assetMonthOutReceive1(); + inValue.startTime = startTime; + inValue.endTime = endTime; + return ((ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService)(this)).assetMonthOutReceiveAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService.todayAlarmAsync(ThirdPartyServices.DomainService.PuTianSuYuan.todayAlarm1 request) + { + return base.Channel.todayAlarmAsync(request); + } + + public System.Threading.Tasks.Task todayAlarmAsync() + { + ThirdPartyServices.DomainService.PuTianSuYuan.todayAlarm1 inValue = new ThirdPartyServices.DomainService.PuTianSuYuan.todayAlarm1(); + return ((ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService)(this)).todayAlarmAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService.assetPostionAlarmAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetPostionAlarm1 request) + { + return base.Channel.assetPostionAlarmAsync(request); + } + + public System.Threading.Tasks.Task assetPostionAlarmAsync(string startTime, string endTime) + { + ThirdPartyServices.DomainService.PuTianSuYuan.assetPostionAlarm1 inValue = new ThirdPartyServices.DomainService.PuTianSuYuan.assetPostionAlarm1(); + inValue.startTime = startTime; + inValue.endTime = endTime; + return ((ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService)(this)).assetPostionAlarmAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService.assetMonthPutInAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetMonthPutIn1 request) + { + return base.Channel.assetMonthPutInAsync(request); + } + + public System.Threading.Tasks.Task assetMonthPutInAsync(string startTime, string endTime) + { + ThirdPartyServices.DomainService.PuTianSuYuan.assetMonthPutIn1 inValue = new ThirdPartyServices.DomainService.PuTianSuYuan.assetMonthPutIn1(); + inValue.startTime = startTime; + inValue.endTime = endTime; + return ((ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService)(this)).assetMonthPutInAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService.assetDepartStatisticsAsync(ThirdPartyServices.DomainService.PuTianSuYuan.assetDepartStatistics1 request) + { + return base.Channel.assetDepartStatisticsAsync(request); + } + + public System.Threading.Tasks.Task assetDepartStatisticsAsync() + { + ThirdPartyServices.DomainService.PuTianSuYuan.assetDepartStatistics1 inValue = new ThirdPartyServices.DomainService.PuTianSuYuan.assetDepartStatistics1(); + return ((ThirdPartyServices.DomainService.PuTianSuYuan.StatisticsService)(this)).assetDepartStatisticsAsync(inValue); + } + + public virtual System.Threading.Tasks.Task OpenAsync() + { + return System.Threading.Tasks.Task.Factory.FromAsync(((System.ServiceModel.ICommunicationObject)(this)).BeginOpen(null, null), new System.Action(((System.ServiceModel.ICommunicationObject)(this)).EndOpen)); + } + + #if !NET6_0_OR_GREATER + public virtual System.Threading.Tasks.Task CloseAsync() + { + return System.Threading.Tasks.Task.Factory.FromAsync(((System.ServiceModel.ICommunicationObject)(this)).BeginClose(null, null), new System.Action(((System.ServiceModel.ICommunicationObject)(this)).EndClose)); + } + #endif + + private static System.ServiceModel.Channels.Binding GetBindingForEndpoint(EndpointConfiguration endpointConfiguration) + { + if ((endpointConfiguration == EndpointConfiguration.StatisticsImplPort)) + { + System.ServiceModel.BasicHttpBinding result = new System.ServiceModel.BasicHttpBinding(); + result.MaxBufferSize = int.MaxValue; + result.ReaderQuotas = System.Xml.XmlDictionaryReaderQuotas.Max; + result.MaxReceivedMessageSize = int.MaxValue; + result.AllowCookies = true; + return result; + } + throw new System.InvalidOperationException(string.Format("找不到名称为“{0}”的终结点。", endpointConfiguration)); + } + + private static System.ServiceModel.EndpointAddress GetEndpointAddress(EndpointConfiguration endpointConfiguration) + { + if ((endpointConfiguration == EndpointConfiguration.StatisticsImplPort)) + { + return new System.ServiceModel.EndpointAddress("http://123.56.129.171:8280/services/AssetWeb.asmx"); + } + throw new System.InvalidOperationException(string.Format("找不到名称为“{0}”的终结点。", endpointConfiguration)); + } + + private static System.ServiceModel.Channels.Binding GetDefaultBinding() + { + return StatisticsServiceClient.GetBindingForEndpoint(EndpointConfiguration.StatisticsImplPort); + } + + private static System.ServiceModel.EndpointAddress GetDefaultEndpointAddress() + { + return StatisticsServiceClient.GetEndpointAddress(EndpointConfiguration.StatisticsImplPort); + } + + public enum EndpointConfiguration + { + + StatisticsImplPort, + } + } +} diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/PuTianSuYuan/AssetWebContextService.cs b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/PuTianSuYuan/AssetWebContextService.cs new file mode 100644 index 0000000..d95939a --- /dev/null +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/PuTianSuYuan/AssetWebContextService.cs @@ -0,0 +1,93 @@ +using Microsoft.Extensions.Configuration; +using System.ServiceModel; +using System.ServiceModel.Channels; +using System.Xml; + +namespace ThirdPartyServices.DomainService.PuTianSuYuan +{ + //生成代码命令(需安装 dotnet-svcutil 工具): + // dotnet-svcutil http://123.56.129.171:8280/services/AssetWeb.asmx?wsdl ` + //--targetFramework net8.0 ` + //--outputFile ServiceProxies\AssetWebClientService.cs ` + //--namespace "*,ThirdPartyServices.DomainService.PuTianSuYuan" ` + //--noTypeReuse ` + //--serializer XmlSerializer + + public sealed class AssetWebContextService : IAssetWebService + { + public StatisticsServiceClient Client { get; } + + private readonly string? _tokenHeader; + private readonly IConfiguration _cfg; + + public AssetWebContextService(IConfiguration configuration) + { + _cfg = configuration; + + // ① 读取配置(全部字符串,按需转 int/TimeSpan) + var prefix = "ThirdParty:AssetWeb:"; + var serviceUrl = _cfg[$"{prefix}ServiceUrl"] + ?? throw new InvalidOperationException("ServiceUrl 缺失"); + var timeoutSecStr = _cfg[$"{prefix}TimeoutSeconds"] ?? "30"; + var maxMsgStr = _cfg[$"{prefix}MaxMsgSize"] ?? "10485760"; + + // ② 绑定 + var binding = new BasicHttpBinding( + serviceUrl.StartsWith("https", StringComparison.OrdinalIgnoreCase) + ? BasicHttpSecurityMode.Transport + : BasicHttpSecurityMode.None) + { + MaxReceivedMessageSize = int.Parse(maxMsgStr), + ReaderQuotas = XmlDictionaryReaderQuotas.Max, + SendTimeout = TimeSpan.FromSeconds(int.Parse(timeoutSecStr)), + ReceiveTimeout = TimeSpan.FromSeconds(int.Parse(timeoutSecStr)) + }; + + // ③ 端点 & 客户端 + var endpoint = new EndpointAddress(serviceUrl); + Client = new StatisticsServiceClient(binding, endpoint); + + // ④ BasicAuth(可无) + var user = _cfg[$"{prefix}BasicAuthUser"]; + var pwd = _cfg[$"{prefix}BasicAuthPassword"]; + if (!string.IsNullOrWhiteSpace(user) && !string.IsNullOrWhiteSpace(pwd)) + { + Client.ClientCredentials.UserName.UserName = user; + Client.ClientCredentials.UserName.Password = pwd; + } + + // ⑤ Token Header(可无) + _tokenHeader = _cfg[$"{prefix}TokenHeader"]; + } + + /// 如需自定义 Token Header 调用,用此包装;否则直接调 Client 方法。 + public async Task WithTokenAsync(Func> func) + { + if (string.IsNullOrEmpty(_tokenHeader)) + return await func(); + + using var scope = new OperationContextScope(Client.InnerChannel); + var hdr = MessageHeader.CreateHeader( + "SessionToken", + "http://service.webservice.fits.ptsy.com/", + _tokenHeader); + OperationContext.Current!.OutgoingMessageHeaders.Add(hdr); + + return await func(); + } + + public async ValueTask DisposeAsync() + { + try + { + if (Client.State == CommunicationState.Faulted) + Client.Abort(); + else if (Client.State != CommunicationState.Closed) + Client.Close(); + } + catch { Client.Abort(); } + + await ValueTask.CompletedTask; + } + } +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/PuTianSuYuan/IAssetWebService.cs b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/PuTianSuYuan/IAssetWebService.cs new file mode 100644 index 0000000..7794bce --- /dev/null +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/PuTianSuYuan/IAssetWebService.cs @@ -0,0 +1,7 @@ +namespace ThirdPartyServices.DomainService.PuTianSuYuan +{ + public interface IAssetWebService : IAsyncDisposable + { + StatisticsServiceClient Client { get; } + } +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/PuTianSuYuan/ISunPalaceBoardFacilityService.cs b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/PuTianSuYuan/ISunPalaceBoardFacilityService.cs new file mode 100644 index 0000000..7529172 --- /dev/null +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/PuTianSuYuan/ISunPalaceBoardFacilityService.cs @@ -0,0 +1,12 @@ +using Common.Shared.Application.SafetyFirePro.RequestDto; +using Common.Shared.Application.SafetyFirePro.ResponseDto; + +namespace ThirdPartyServices.DomainService.PuTianSuYuan +{ + public interface ISunPalaceBoardFacilityService + { + Task> GetAssetDashboardEchart(SecSituationQueryDto dto); + + Task> GetAssetTypeEchart(SecSituationQueryDto dto); + } +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/PuTianSuYuan/SunPalaceBoardFacilityService.cs b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/PuTianSuYuan/SunPalaceBoardFacilityService.cs new file mode 100644 index 0000000..749f00a --- /dev/null +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/PuTianSuYuan/SunPalaceBoardFacilityService.cs @@ -0,0 +1,196 @@ +using Common.Shared.Application.BaseModels; +using Common.Shared.Application.SafetyFirePro.RequestDto; +using Common.Shared.Application.SafetyFirePro.ResponseDto; +using Microsoft.Extensions.Logging; + +namespace ThirdPartyServices.DomainService.PuTianSuYuan +{ + public class SunPalaceBoardFacilityService : ISunPalaceBoardFacilityService + { + private readonly ILogger _logger; + + private readonly IAssetWebService _assetWebService; + + public SunPalaceBoardFacilityService(ILogger logger, IAssetWebService assetWebService) + { + _logger = logger; + _assetWebService = assetWebService; + } + + public async Task> GetAssetDashboardEchart(SecSituationQueryDto dto) + { + List result = []; + + DateTime start = DateTime.Now; + DateTime end = DateTime.Now; + + ////时间范围 + + switch (dto.QueryTimeType) + { + case (int)QueryTimeEnum.Custom: + + start = dto.StartTime.Value; + end = dto.EndTime.Value; + break; + + case (int)QueryTimeEnum.Monthly: + // 本月从 1号 00:00 到现在 + start = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1); + break; + + default: + return result; + } + try + { + List resDtos = []; + //总资产数 + + var assetCount = await _assetWebService.Client.assetCountAsync(null, null); + AssetOverviewResDto assetOverviewRes = new() + { + TotalAssetCount = assetCount.@return, + OrderBy = 1, + Name = "总资产数", + TotalAssetCountGrowthRate = 5.2 + }; + resDtos.Add(assetOverviewRes); + + //总资产价值 + var assetTotalPrice = await _assetWebService.Client.assetTotalPriceAsync(null, null); + AssetOverviewResDto assetPriceRes = new AssetOverviewResDto + { + TotalAssetCount = assetTotalPrice.@return, + OrderBy = 2, + Name = "总资产价值", + TotalAssetCountGrowthRate = 0.052 + }; + resDtos.Add(assetPriceRes); + + //资产盘点 + AssetOverviewResDto assetReviewRes = new AssetOverviewResDto + { + TotalAssetCount = 0.92, + OrderBy = 3, + Name = "资产盘点", + }; + resDtos.Add(assetReviewRes); + + //资产分布 + AssetOverviewResDto assetDistributeRes = new AssetOverviewResDto + { + TotalAssetCount = 6, + OrderBy = 4, + Name = "资产分布", + }; + resDtos.Add(assetDistributeRes); + + //在保资产 + AssetOverviewResDto assetInRes = new AssetOverviewResDto + { + TotalAssetCount = 876, + OrderBy = 5, + Name = "在保资产", + TotalAssetCountGrowthRate = 0.021 + }; + resDtos.Add(assetInRes); + + //待维修资产 + var awaitRepair = await _assetWebService.Client.assetAwaitRepairAsync(); + AssetOverviewResDto assetRepairRes = new AssetOverviewResDto + { + TotalAssetCount = awaitRepair.@return != null ? awaitRepair.@return.Length : 0, + OrderBy = 6, + Name = "待维修资产", + TotalAssetCountGrowthRate = 0.083 + }; + resDtos.Add(assetRepairRes); + + //本月折旧 + AssetOverviewResDto assetDepreciationRes = new AssetOverviewResDto + { + TotalAssetCount = 245678.5, + OrderBy = 7, + Name = "本月折旧", + TotalAssetCountGrowthRate = 0.035 + }; + resDtos.Add(assetDepreciationRes); + + //今日报警 + var todayAlarm = await _assetWebService.Client.todayAlarmAsync(); + + AssetOverviewResDto assetAlarmRes = new AssetOverviewResDto + { + TotalAssetCount = todayAlarm.@return, + OrderBy = 8, + Name = "今日报警", + }; + resDtos.Add(assetAlarmRes); + + result = resDtos; + return result; + } + catch (Exception ex) + { + _logger.LogWarning(ex, "GetAssetDashboardEchart接口出错"); + } + return result; + } + + /// + /// 资产类型图 + /// + /// + /// + public async Task> GetAssetTypeEchart(SecSituationQueryDto dto) + { + List result = []; + + DateTime start = DateTime.Now; + DateTime end = DateTime.Now; + + ////时间范围 + + switch (dto.QueryTimeType) + { + case (int)QueryTimeEnum.Custom: + + start = dto.StartTime.Value; + end = dto.EndTime.Value; + break; + + case (int)QueryTimeEnum.Monthly: + // 本月从 1号 00:00 到现在 + start = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1); + break; + + default: + return result; + } + try + { + List assetTypes = []; + var assetType = await _assetWebService.Client.assetTypeStatisticsAsync("", ""); + + if (assetType?.@return != null && assetType.@return.Length > 0) + { + foreach (var item in assetType.@return) + { + assetTypes.Add(new AssetTypeResDto + { + AssetType = item.name, + AssetCount = item.count, + }); + } + } + result = assetTypes; + } + catch (Exception ex) + { + _logger.LogWarning(ex, "GetAssetTypeEchart接口出错"); + } + return result; + } + } +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ShenZhouShengAn/ISunPalaceBoardSafetyService.cs b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ShenZhouShengAn/ISunPalaceBoardSafetyService.cs new file mode 100644 index 0000000..2d41352 --- /dev/null +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ShenZhouShengAn/ISunPalaceBoardSafetyService.cs @@ -0,0 +1,16 @@ +using Common.Shared.Application.BaseModels; +using Common.Shared.Application.SafetyFirePro.ResponseDto; + +namespace ThirdPartyServices.DomainService.ShenZhouShengAn +{ + public interface ISunPalaceBoardSafetyService + { + //Task>> GetHiddenDangerTrend(SecSituationQueryDto dto); + + //Task>> GetIdCardAlarmEchart(); + + Task GetProductionRiskEchart(); + + //Task> GetUnAlarmInfoList(AlarmEventEchartQueryDto dto); + } +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ShenZhouShengAn/IThirdPartyProviderService.cs b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ShenZhouShengAn/IThirdPartyProviderService.cs new file mode 100644 index 0000000..8a30412 --- /dev/null +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ShenZhouShengAn/IThirdPartyProviderService.cs @@ -0,0 +1,39 @@ +//盾安云第三方请求接口 +using ThirdPartyServices.Application.ShenZhouShengAn.RequestDto; +using ThirdPartyServices.Application.ShenZhouShengAn.ResponseDto; + +namespace ThirdPartyServices.DomainService.ShenZhouShengAn +{ + /// + /// 获取第三方登录的Token服务接口 + /// + public interface IThirdPartyProviderService + { + /// + /// 获取token, + /// + /// + /// + Task GetTokenAsync(string userCode); + + Task> GetUserConfiguration(string token); + + Task> GetBranchPermissions(string token, int ubpid); + + /// + /// 请求第三方接口 + /// + /// + /// + /// + /// + /// + Task SendAndParseAsync(string url, string? token, TRequest payload, + HttpMethod method); + + Task SendJsonAsync(string url, string? token, TRequest payload, + HttpMethod method); + + Task SendAndParseAsync(string url, string? token, HttpMethod method); + } +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ShenZhouShengAn/SunPalaceBoardSafetyService.cs b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ShenZhouShengAn/SunPalaceBoardSafetyService.cs new file mode 100644 index 0000000..ce27ada --- /dev/null +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ShenZhouShengAn/SunPalaceBoardSafetyService.cs @@ -0,0 +1,127 @@ +using Common.Shared.Application.SafetyFirePro.ResponseDto; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging; +using Newtonsoft.Json.Linq; +using ThirdPartyServices.Application.ShenZhouShengAn.RequestDto; +using ThirdPartyServices.Application.ShenZhouShengAn.ResponseDto; + +namespace ThirdPartyServices.DomainService.ShenZhouShengAn +{ + public class SunPalaceBoardSafetyService : ISunPalaceBoardSafetyService + { + private readonly IThirdPartyProviderService _tokenProviderService; + private readonly ILogger _logger; + private readonly IConfiguration _configuration; + + public SunPalaceBoardSafetyService(IThirdPartyProviderService thirdPartyProviderService, ILogger logger, IConfiguration configuration) + { + _tokenProviderService = thirdPartyProviderService; + _logger = logger; + _configuration = configuration; + } + + /// + /// 生产风险识别(盾安云数据)-智慧建筑的看板上使用 + /// + /// + /// + public async Task GetProductionRiskEchart() + { + var result = new DangerRiskAreaResDto() + { + DangerInfos = new List(), + ProductionRiskStats = new List() + }; + try + { + //获取token + var token = await _tokenProviderService.GetTokenAsync(_configuration["ThirdParty:SzdunanCode"]!); + if (string.IsNullOrWhiteSpace(token)) + { + _logger.LogWarning("GetProductionRiskEchart接口获取token失败"); + return result; + } + + //获取用户配置 + HttpClientResult loginUsers = await _tokenProviderService.GetUserConfiguration(token); + if (loginUsers.Code == "Error") + { + _logger.LogWarning("GetProductionRiskEchart接口获取用户配置失败"); + return result; + } + + //获取单位信息 + HttpClientResult branchs = await _tokenProviderService.GetBranchPermissions(token, loginUsers.Data.Uid); + if (branchs.Code == "Error") + { + _logger.LogWarning("GetProductionRiskEchart接口获取单位信息失败"); + + return result; + } + + //生产风险识别 + + HttpClientResult riskResult = await _tokenProviderService.SendAndParseAsync>( + "https://zrh.szdunan.cn/v1/api/home/risk/index", token, + new RiskAreaQueryDto + { + Branch_Id = branchs.Data.BranchPermissionIds[0], + Ubpid = loginUsers.Data.Ubpid, + Uid = loginUsers.Data.Uid + }, HttpMethod.Post); + + result.ProductionRiskStats = riskResult.Data.ProductionRiskStats; + + //获取隐患信息 + string[] dangerStatus = ["0", "1", "2",]; //0-待核查,1-待整改,2-待验收 + int[] dangerLevel = [3]; //2一般隐患,3重大隐患。目前只要重大隐患,如果要查询一般隐患,可以将2添加到数组中 + List dangerInfoList = []; + DangerInfo dangerInfo = new DangerInfo(); + + var tasks = new List>(); + + foreach (string status in dangerStatus) + { + tasks.Add(Task.Run(async () => + { + var info = new DangerInfo { Status = status }; + + // 1. 查该状态下的总数 + string jsonResult = await _tokenProviderService.SendJsonAsync("https://zrh.szdunan.cn/v1/api/danger/ledger/dangerInfo/new", token, new DangerInfoQueryDto { Ubpid = loginUsers.Data.Ubpid, Status = status }, HttpMethod.Post); + + var jObj = JObject.Parse(jsonResult); + int total = jObj["data"]?["total"]?.Value() ?? 0; + info.StatusCount = total; + + //// 2. 查该状态 + 等级下的总数(只要一个等级的话可以直接取) + //jsonResult = await _tokenProviderService.SendJsonAsync("https://zrh.szdunan.cn/v1/api/danger/ledger/dangerInfo/new", token, new DangerInfoQueryDto { Ubpid = loginUsers.Data.Ubpid, Status = status, Result = "3" }, HttpMethod.Post); + + //jObj = JObject.Parse(jsonResult); + //int levelTotal = jObj["data"]?["total"]?.Value() ?? 0; + //info.DangerLevelCount = levelTotal; + + return info; + })); + } + + dangerInfoList = [.. (await Task.WhenAll(tasks))]; + //3.待排查 + DateTime startTime = new DateTime(DateTime.Today.Year, 1, 1); + dangerInfo = new DangerInfo(); + var jsonBranch = await _tokenProviderService.SendJsonAsync("https://zrh.szdunan.cn/v1/api/danger/task/index_branch", token, new DangerInfoQueryDto { Status = "0", Branch_id = branchs.Data.BranchPermissionIds[0], Start_time = startTime.ToString("yyyy-MM-dd HH:mm:ss"), End_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }, HttpMethod.Post); + var jObj = JObject.Parse(jsonBranch); + int total = jObj["data"]?["total"]?.Value() ?? 0; + dangerInfo.StatusCount = total; + dangerInfo.Status = "3"; //待排查 + dangerInfoList.Add(dangerInfo); + + result.DangerInfos = dangerInfoList; + } + catch (Exception ex) + { + _logger.LogWarning(ex, "GetProductionRiskEchart接口出错"); + } + return result; + } + } +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ShenZhouShengAn/ThirdPartyProviderService.cs b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ShenZhouShengAn/ThirdPartyProviderService.cs new file mode 100644 index 0000000..21fa02a --- /dev/null +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ShenZhouShengAn/ThirdPartyProviderService.cs @@ -0,0 +1,170 @@ +using Microsoft.Extensions.Logging; +using System.Net.Http.Headers; +using System.Net.Http.Json; +using System.Text.Json; +using ThirdPartyServices.Application.ShenZhouShengAn.RequestDto; +using ThirdPartyServices.Application.ShenZhouShengAn.ResponseDto; + +namespace ThirdPartyServices.DomainService.ShenZhouShengAn +{ + /// + /// 盾安云服务 + /// + public class ThirdPartyProviderService : IThirdPartyProviderService + { + // private readonly HttpClient _httpClient; + private readonly ILogger _logger; + + private static string? _cachedToken; + private static DateTime _tokenExpiry = DateTime.MinValue; + + public ThirdPartyProviderService(HttpClient httpClient, ILogger logger) + { + // _httpClient = httpClient; + _logger = logger; + } + + /// + /// 开发测试的时候,忽略证书 + /// + private static readonly HttpClient _httpClient = new(new HttpClientHandler + { + ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator, + }); + + /// + /// 获取登录tonken + /// + /// + /// + public async Task GetTokenAsync(string userCode) + { + if (!string.IsNullOrEmpty(_cachedToken) && _tokenExpiry > DateTime.Now) + return _cachedToken; + + try + { + var loginRes = await _httpClient.PostAsJsonAsync("https://zrh.szdunan.cn/v1/api/zrh/login", new { code = userCode }); + if (!loginRes.IsSuccessStatusCode) return null; + + var loginData = await loginRes.Content.ReadFromJsonAsync>(); + if (loginData?.Code != "Success") return null; + + _cachedToken = loginData.Data.Token; + _tokenExpiry = DateTime.Now.AddMinutes(55); // 假设 token 有效期 1 小时,提前5分钟过期 + + return _cachedToken; + } + catch (Exception ex) + { + _logger.LogError(ex, "获取盾安云 token 失败"); + return null; + } + } + + /// + /// 获取用户配置 + /// + /// + /// + public async Task> GetUserConfiguration(string token) + { + HttpClientResult result = new HttpClientResult() { Code = "Success", Message = "请求成功" }; + + result = await SendAndParseAsync>( + "https://zrh.szdunan.cn/v1/api/users", + token, + HttpMethod.Post); + + return result; + } + + /// + /// 获取用户单位信息参数 + /// + /// + /// + /// + public async Task> GetBranchPermissions(string token, int ubpid) + { + HttpClientResult result = new HttpClientResult() { Code = "Success", Message = "请求成功" }; + + result = await SendAndParseAsync>( + "https://zrh.szdunan.cn/v1/api/branch/index_no_check_branch", + token, + ubpid, + HttpMethod.Post); + + return result; + } + + /// + /// 请求第三方API,发送JSON数据,不支持get和delete方法 + /// + /// + /// + /// + /// + /// + /// + public async Task SendJsonAsync(string url, string? token, TRequest? payload, HttpMethod method) + { + using var request = new HttpRequestMessage(method, url); + if (!string.IsNullOrWhiteSpace(token)) + { + request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token); + } + // 写入 JSON 请求体(POST、PUT、PATCH 等适用) + if (payload != null && method != HttpMethod.Get) + { + request.Content = JsonContent.Create(payload); // 使用 System.Net.Http.Json + } + + var response = await _httpClient.SendAsync(request); + + if (!response.IsSuccessStatusCode) + { + var error = await response.Content.ReadAsStringAsync(); + throw new Exception($"请求失败:{response.StatusCode}, 内容:{error}"); + } + + return await response.Content.ReadAsStringAsync(); + } + + /// + /// 返回强类型 + /// + /// + /// + /// + /// + /// + /// + public async Task SendAndParseAsync( + string url, + string? token, + TRequest? payload, + HttpMethod method) + { + var json = await SendJsonAsync(url, token, payload, method); + + return JsonSerializer.Deserialize(json); + } + + /// + /// 重载 + /// + /// + /// + /// + /// + /// + public Task SendAndParseAsync( + string url, + string? token, + HttpMethod method) + { + return SendAndParseAsync(url, token, null, method); + } + } +} \ No newline at end of file diff --git a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ThirdPartyServices.DomainService.csproj b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ThirdPartyServices.DomainService.csproj index 47eabbf..b28cd62 100644 --- a/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ThirdPartyServices.DomainService.csproj +++ b/WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ThirdPartyServices.DomainService.csproj @@ -8,8 +8,16 @@ - - + + + + + + + + + + diff --git a/WeiCloud.Fusion/VideoService/Video.API/Controllers/DaHua/VideoManageController.cs b/WeiCloud.Fusion/VideoService/Video.API/Controllers/DaHua/VideoManageController.cs index ae149b5..a26a010 100644 --- a/WeiCloud.Fusion/VideoService/Video.API/Controllers/DaHua/VideoManageController.cs +++ b/WeiCloud.Fusion/VideoService/Video.API/Controllers/DaHua/VideoManageController.cs @@ -2,7 +2,6 @@ using Common.Shared.DomainService; using Microsoft.AspNetCore.Mvc; using Video.DomainService; -using WeiCloud.Core.BaseModels; namespace Video.API.Controllers.DaHua { diff --git a/WeiCloud.Fusion/VideoService/Video.DomainService/Dahvision/IRootVideoPlaybackService.cs b/WeiCloud.Fusion/VideoService/Video.DomainService/Dahvision/IRootVideoPlaybackService.cs index a4b55f8..faca58a 100644 --- a/WeiCloud.Fusion/VideoService/Video.DomainService/Dahvision/IRootVideoPlaybackService.cs +++ b/WeiCloud.Fusion/VideoService/Video.DomainService/Dahvision/IRootVideoPlaybackService.cs @@ -1,5 +1,5 @@ -using Common.Shared.Application.DaHua; -using WeiCloud.Core.BaseModels; +using Common.Shared.Application.BaseModels; +using Common.Shared.Application.DaHua; namespace Video.DomainService { diff --git a/WeiCloud.Fusion/VideoService/Video.DomainService/Dahvision/RootVideoPlaybackService.cs b/WeiCloud.Fusion/VideoService/Video.DomainService/Dahvision/RootVideoPlaybackService.cs index b48d433..1008408 100644 --- a/WeiCloud.Fusion/VideoService/Video.DomainService/Dahvision/RootVideoPlaybackService.cs +++ b/WeiCloud.Fusion/VideoService/Video.DomainService/Dahvision/RootVideoPlaybackService.cs @@ -1,7 +1,7 @@ -using Common.Shared.Application.DaHua; +using Common.Shared.Application.BaseModels; +using Common.Shared.Application.DaHua; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; -using WeiCloud.Core.BaseModels; namespace Video.DomainService {