dev_lx #31

Merged
LiuXin merged 3 commits from dev_lx into main 3 months ago
  1. 2
      WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/Common.Shared.Application.csproj
  2. 21
      WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/SafetyFirePro/RequestDto/SunPlaceBoardWorkOrderReqDto.cs
  3. 184
      WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/SafetyFirePro/ResponseDto/SunPlaceBoardWorkOrderResDto.cs
  4. 11
      WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.API/Controllers/ShenZhouShengAn/SunPalaceBoardSafetyController.cs
  5. 13
      WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.Application/ShenZhouShengAn/RequestDto/ThirdPartyProviderQueryDto.cs
  6. 30
      WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.Application/ShenZhouShengAn/ResponseDto/ThirdPartyProviderResDto.cs
  7. 2
      WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ShenZhouShengAn/ISunPalaceBoardSafetyService.cs
  8. 71
      WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ShenZhouShengAn/SunPalaceBoardSafetyService.cs

@ -7,7 +7,7 @@
</PropertyGroup>
<PropertyGroup>
<PackageId>Common.Shared.Application</PackageId>
<Version>2.9.0</Version>
<Version>3.0.0</Version>
<Authors>zrh-lx</Authors>
<Company>zrh-lx</Company> <!-- 可选 -->
<Description>包含所有公共使用的 DTO、契约、接口模型等,供微服务之间共享使用</Description>

@ -110,11 +110,6 @@ namespace Common.Shared.Application.SafetyFirePro.RequestDto
/// <remarks>必填项</remarks>
[JsonPropertyName("ubpid")]
public string? Ubpid { get; set; }
/// <summary>
/// 当为1的时候是统计,其他的时候查询列表
/// </summary>
public int? Type { get; set; }
}
/// <summary>
@ -162,4 +157,20 @@ namespace Common.Shared.Application.SafetyFirePro.RequestDto
/// </summary>
public string Name { get; set; }
}
/// <summary>
/// 获得本月隐患数据
/// </summary>
public class DangerHomeResDto
{
/// <summary>
/// 统计
/// </summary>
public int Total { get; set; }
/// <summary>
///
/// </summary>
public string Name { get; set; }
}
}

@ -688,7 +688,7 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
#region 隐患详情数据
/// <summary>
/// 隐患数据主对象
/// 隐患详情根实体(仅包含指定的顶级字段)
/// </summary>
public class HazardDataDto
{
@ -696,7 +696,7 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
/// 隐患核查结果信息列表
/// </summary>
[JsonPropertyName("check")]
public List<HazardCheckResult>? CheckResults { get; set; }
public List<HazardCheckItem>? CheckResults { get; set; }
/// <summary>
/// 隐患描述
@ -708,37 +708,37 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
/// 隐患相关风险点信息(如果有)
/// </summary>
[JsonPropertyName("equipment")]
public HazardEquipment? Equipment { get; set; }
public HazardEquipmentItem? Equipment { get; set; }
/// <summary>
/// 风险等级信息
/// </summary>
[JsonPropertyName("risk")]
public RiskLevelInfo? Risk { get; set; }
public RiskLevelItem? Risk { get; set; }
/// <summary>
/// 风险点责任人信息列表
/// </summary>
[JsonPropertyName("users")]
public List<ResponsiblePerson>? ResponsiblePersons { get; set; }
public List<ResponsiblePersonItem>? ResponsiblePersons { get; set; }
/// <summary>
/// 隐患整改及验收信息列表
/// </summary>
[JsonPropertyName("rectifications")]
public List<RectificationInfo>? Rectifications { get; set; }
public List<RectificationItem>? Rectifications { get; set; }
/// <summary>
/// 隐患发生区域
/// </summary>
[JsonPropertyName("region")]
public RegionInfo? Region { get; set; }
public RegionSimpleItem? Region { get; set; }
/// <summary>
/// 隐患上报情况
/// </summary>
[JsonPropertyName("register")]
public HazardRegister? Register { get; set; }
public HazardRegisterItem? Register { get; set; }
/// <summary>
/// 隐患状态,0待核查,1待整改,2待验收,3治理完毕,4不是隐患
@ -748,21 +748,21 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
}
/// <summary>
/// 隐患核查结果信息
/// 隐患核查结果单项信息
/// </summary>
public class HazardCheckResult
public class HazardCheckItem
{
/// <summary>
/// 隐患一级分类信息
/// 隐患一级分类信息(仅含名称)
/// </summary>
[JsonPropertyName("cate")]
public CategoryInfo? Category { get; set; }
public CategorySimpleItem? Category { get; set; }
/// <summary>
/// 隐患二级分类信息
/// 隐患二级分类信息(仅含名称)
/// </summary>
[JsonPropertyName("cate_sub")]
public CategoryInfo? SubCategory { get; set; }
public CategorySimpleItem? SubCategory { get; set; }
/// <summary>
/// 核查情况说明
@ -774,7 +774,7 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
/// 核查时间
/// </summary>
[JsonPropertyName("report_time")]
public DateTime ReportTime { get; set; }
public string ReportTime { get; set; } = string.Empty; // 用string避免日期格式问题,需转换可改为DateTime?
/// <summary>
/// 核查结果,0待核查,1是隐患,2不是隐患,3提交上级部门核查
@ -786,43 +786,43 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
/// 核查人信息
/// </summary>
[JsonPropertyName("user")]
public CheckUserInfo? User { get; set; }
public CheckUserItem? User { get; set; }
}
/// <summary>
/// 核查人信息
/// 核查人信息(仅含部门和姓名)
/// </summary>
public class CheckUserInfo
public class CheckUserItem
{
/// <summary>
/// 核查人部门信息列表
/// 核查人部门信息列表(仅含部门名称)
/// </summary>
[JsonPropertyName("branch")]
public List<DepartmentInfo>? Departments { get; set; }
public List<DepartmentWrapperItem>? Departments { get; set; }
/// <summary>
/// 核查人额外信息
/// 核查人额外信息(仅含姓名)
/// </summary>
[JsonPropertyName("extras")]
public UserExtras? Extras { get; set; }
public UserNameItem? Extras { get; set; }
}
/// <summary>
/// 部门信息
/// 部门信息包装(仅含部门详情)
/// </summary>
public class DepartmentInfo
public class DepartmentWrapperItem
{
/// <summary>
/// 部门详情
/// 部门详情(仅含名称)
/// </summary>
[JsonPropertyName("branch")]
public DepartmentDetail? Branch { get; set; }
public DepartmentSimpleItem? Branch { get; set; }
}
/// <summary>
/// 部门详情
/// 部门简化信息(仅含名称)
/// </summary>
public class DepartmentDetail
public class DepartmentSimpleItem
{
/// <summary>
/// 部门名称
@ -832,9 +832,9 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
}
/// <summary>
/// 用户额外信息
/// 用户姓名信息(仅含姓名)
/// </summary>
public class UserExtras
public class UserNameItem
{
/// <summary>
/// 姓名
@ -844,15 +844,15 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
}
/// <summary>
/// 隐患相关风险点信息
/// 隐患相关风险点信息(仅含指定字段)
/// </summary>
public class HazardEquipment
public class HazardEquipmentItem
{
/// <summary>
/// 责任部门
/// 责任部门(仅含名称)
/// </summary>
[JsonPropertyName("branch")]
public DepartmentDetail? Branch { get; set; }
public DepartmentSimpleItem? Branch { get; set; }
/// <summary>
/// 风险点名称
@ -861,16 +861,16 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
public string Name { get; set; } = string.Empty;
/// <summary>
/// 所在区域
/// 所在区域(仅含名称)
/// </summary>
[JsonPropertyName("region")]
public RegionInfo? Region { get; set; }
public RegionSimpleItem? Region { get; set; }
}
/// <summary>
/// 区域信息
/// 区域简化信息(仅含名称)
/// </summary>
public class RegionInfo
public class RegionSimpleItem
{
/// <summary>
/// 区域名称
@ -880,15 +880,15 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
}
/// <summary>
/// 风险等级信息
/// 风险等级信息(仅含指定字段)
/// </summary>
public class RiskLevelInfo
public class RiskLevelItem
{
/// <summary>
/// 责任部门信息
/// 责任部门信息(仅含管控层级)
/// </summary>
[JsonPropertyName("branch")]
public RiskBranchInfo? Branch { get; set; }
public RiskBranchItem? Branch { get; set; }
/// <summary>
/// 风险等级ID
@ -904,21 +904,21 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
}
/// <summary>
/// 风险点责任部门信息
/// 风险点责任部门信息(仅含管控层级)
/// </summary>
public class RiskBranchInfo
public class RiskBranchItem
{
/// <summary>
/// 风险点管控层级
/// 风险点管控层级(仅含名称)
/// </summary>
[JsonPropertyName("branch_level")]
public LevelInfo? BranchLevel { get; set; }
public LevelSimpleItem? BranchLevel { get; set; }
}
/// <summary>
/// 层级信息
/// 层级简化信息(仅含名称)
/// </summary>
public class LevelInfo
public class LevelSimpleItem
{
/// <summary>
/// 层级名称(如岗位级)
@ -928,45 +928,33 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
}
/// <summary>
/// 风险点责任人信息
/// 风险点责任人信息(仅含姓名)
/// </summary>
public class ResponsiblePerson
public class ResponsiblePersonItem
{
/// <summary>
/// 责任人详情
/// 责任人详情(仅含姓名)
/// </summary>
[JsonPropertyName("users")]
public PersonDetail? Users { get; set; }
}
/// <summary>
/// 人员详情
/// </summary>
public class PersonDetail
{
/// <summary>
/// 姓名
/// </summary>
[JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
public UserNameItem? Users { get; set; }
}
/// <summary>
/// 隐患整改及验收信息
/// 隐患整改及验收信息(仅含指定字段)
/// </summary>
public class RectificationInfo
public class RectificationItem
{
/// <summary>
/// 整改责任部门
/// 整改责任部门(仅含名称)
/// </summary>
[JsonPropertyName("branch")]
public DepartmentDetail? Branch { get; set; }
public DepartmentSimpleItem? Branch { get; set; }
/// <summary>
/// 本次整改验收信息
/// </summary>
[JsonPropertyName("check")]
public RectificationCheck? Check { get; set; }
public RectificationCheckItem? Check { get; set; }
/// <summary>
/// 整改人所选验收人姓名
@ -975,16 +963,16 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
public string CheckUser { get; set; } = string.Empty;
/// <summary>
/// 隐患整改图片列表
/// 隐患整改图片列表(仅含名称和路径)
/// </summary>
[JsonPropertyName("file")]
public List<FileInfo>? Files { get; set; }
public List<FileSimpleItem>? Files { get; set; }
/// <summary>
/// 整改完成时间
/// </summary>
[JsonPropertyName("finish_time")]
public DateTime FinishTime { get; set; }
public string FinishTime { get; set; } = string.Empty; // 用string避免日期格式问题
/// <summary>
/// 整改投入资金(元)
@ -1006,21 +994,21 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
}
/// <summary>
/// 整改验收信息
/// 整改验收信息(仅含指定字段)
/// </summary>
public class RectificationCheck
public class RectificationCheckItem
{
/// <summary>
/// 整改验收时间
/// </summary>
[JsonPropertyName("cend_time")]
public DateTime CheckEndTime { get; set; }
public string CheckEndTime { get; set; } = string.Empty; // 用string避免日期格式问题
/// <summary>
/// 验收图片或文件列表
/// 验收图片或文件列表(仅含名称和路径)
/// </summary>
[JsonPropertyName("file")]
public List<FileInfo>? Files { get; set; }
public List<FileSimpleItem>? Files { get; set; }
/// <summary>
/// 验收意见
@ -1032,7 +1020,7 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
/// 验收结果,1通过,2不通过
/// </summary>
[JsonPropertyName("status")]
public string Status { get; set; } = string.Empty;
public string Status { get; set; } = string.Empty; // 按你标注的"验收结果"设为string,可根据实际JSON改为int?
/// <summary>
/// 验收人姓名
@ -1042,9 +1030,9 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
}
/// <summary>
/// 文件信息
/// 文件简化信息(仅含名称和路径)
/// </summary>
public class FileInfo
public class FileSimpleItem
{
/// <summary>
/// 文件名称
@ -1060,21 +1048,21 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
}
/// <summary>
/// 隐患上报情况
/// 隐患上报情况(仅含指定字段)
/// </summary>
public class HazardRegister
public class HazardRegisterItem
{
/// <summary>
/// 隐患一级分类信息
/// 隐患一级分类信息(仅含名称)
/// </summary>
[JsonPropertyName("cate")]
public CategoryInfo? Category { get; set; }
public CategorySimpleItem? Category { get; set; }
/// <summary>
/// 隐患二级分类信息
/// 隐患二级分类信息(仅含名称)
/// </summary>
[JsonPropertyName("cate_sub")]
public CategoryInfo? SubCategory { get; set; }
public CategorySimpleItem? SubCategory { get; set; }
/// <summary>
/// 所选核查人姓名
@ -1083,10 +1071,10 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
public string CheckUser { get; set; } = string.Empty;
/// <summary>
/// 隐患图片列表
/// 隐患图片列表(仅含名称和路径)
/// </summary>
[JsonPropertyName("file")]
public List<FileInfo>? Files { get; set; }
public List<FileSimpleItem>? Files { get; set; }
/// <summary>
/// 隐患情况描述
@ -1095,16 +1083,16 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
public string Infos { get; set; } = string.Empty;
/// <summary>
/// 隐患上报人信息
/// 隐患上报人信息(仅含姓名)
/// </summary>
[JsonPropertyName("user")]
public ReporterInfo? User { get; set; }
public UserNameItem? User { get; set; }
}
/// <summary>
/// 分类信息
/// 分类简化信息(仅含名称)
/// </summary>
public class CategoryInfo
public class CategorySimpleItem
{
/// <summary>
/// 分类名称
@ -1113,18 +1101,6 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
public string Name { get; set; } = string.Empty;
}
/// <summary>
/// 上报人信息
/// </summary>
public class ReporterInfo
{
/// <summary>
/// 姓名
/// </summary>
[JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
}
#endregion 隐患详情数据
#region 危害辨识度数据

@ -122,5 +122,16 @@ namespace ThirdPartyServices.API.Controllers.ShenZhouShengAn
{
return await _secSituationService.GetStatistics(dto);
}
/// <summary>
/// 获得本月隐患数据
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
[HttpGet]
public async Task<ApiResult<List<DangerHomeResDto>>> GetDangerHome()
{
return await _secSituationService.GetDangerHome();
}
}
}

@ -80,7 +80,6 @@ namespace ThirdPartyServices.Application.ShenZhouShengAn.RequestDto
public int Ubpid { get; set; }
}
/// <summary>
/// 危害辨识项目数据请求参数
/// </summary>
@ -91,5 +90,15 @@ namespace ThirdPartyServices.Application.ShenZhouShengAn.RequestDto
public int Uid { get; set; }
}
/// <summary>
/// 包含ubpid参数的请求实体类
/// </summary>
public class Params
{
/// <summary>
/// 机构ID(必填)
/// </summary>
[JsonPropertyName("ubpid")]
public int Ubpid { get; set; }
}
}

@ -40,6 +40,36 @@ namespace ThirdPartyServices.Application.ShenZhouShengAn.ResponseDto
public T Data { get; set; }
}
/// <summary>
/// 原始JSON反序列化的根实体类
/// </summary>
public class DangerStatsRootResDto
{
/// <summary>
/// 风险等级数量统计(暂不使用)
/// </summary>
[JsonPropertyName("dangerLevelCount")]
public List<int>? DangerLevelCount { get; set; }
/// <summary>
/// 隐患状态数量统计(按顺序对应:待核查、待整改、待验收、整改完毕)
/// </summary>
[JsonPropertyName("dangerStatusCount")]
public List<int>? DangerStatusCount { get; set; }
/// <summary>
/// 当前总数(暂不使用)
/// </summary>
[JsonPropertyName("nowTotal")]
public int NowTotal { get; set; }
/// <summary>
/// 比率(暂不使用)
/// </summary>
[JsonPropertyName("rRate")]
public string RRate { get; set; } = string.Empty;
}
public class HttpClientResultConverter<T> : JsonConverter<HttpClientResult<T>>
{
public override HttpClientResult<T> Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

@ -41,5 +41,7 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
);
Task<ApiResult<List<StatisticsInfoDto>>> GetStatistics(WorkTaskQueryParamsDto dto);
Task<ApiResult<List<DangerHomeResDto>>> GetDangerHome();
}
}

@ -540,8 +540,7 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
dto.Ubpid = loginUsers.Data.Ubpid.ToString();
List<StatisticsInfoDto> data = [];
if (dto.Type == 1)
{
//查询未开始,status=1、2
int[] statusNot = [1, 2, 3, 4, 6, 7, 8, 11, 12, 13];
@ -599,7 +598,6 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
result.Data = MergeStatistics(data);
}
}
catch (Exception ex)
{
_logger.LogWarning(ex, "GetStatistics接口出错");
@ -652,5 +650,72 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
new() { Name = "已超时", Total = timeoutTotal }
];
}
public async Task<ApiResult<List<DangerHomeResDto>>> GetDangerHome()
{
ApiResult<List<DangerHomeResDto>> result = new ApiResult<List<DangerHomeResDto>>() { Code = 200, Msg = "接口调用成功", Data = null };
try
{
//获取token
var token = await _tokenProviderService.GetTokenAsync(_configuration["ThirdParty:SzdunanCode"]!);
if (string.IsNullOrWhiteSpace(token))
{
_logger.LogWarning("GetRegionRootInfo接口获取token失败");
return ApiResult<List<DangerHomeResDto>>.IsFail("GetRegionRootInfo接口获取token失败");
}
//获取用户配置
HttpClientResult<LoginUsersConfiguration> loginUsers = await _tokenProviderService.GetUserConfiguration(token);
if (loginUsers.Code == "Error")
{
_logger.LogWarning("GetRegionRootInfo接口获取用户配置失败");
return ApiResult<List<DangerHomeResDto>>.IsFail("GetRegionRootInfo接口获取用户配置失败");
}
Params dto = new();
dto.Ubpid = loginUsers.Data.Ubpid;
HttpClientResult<object> riskResult = await _tokenProviderService
.SendAndParseAsync<Params, HttpClientResult<object>>(
"https://zrh.szdunan.cn/v1/api/home/danger",
token, dto, HttpMethod.Get);
if (riskResult != null && riskResult.Data != null && riskResult.Data.ToString()!.Length > 10)
{
DangerStatsRootResDto httpClientResult = JsonSerializer.Deserialize<DangerStatsRootResDto>(riskResult.Data.ToString()!)!;
if (httpClientResult != null)
{
// 定义固定的状态名称(顺序必须与dangerStatusCount数组一致)
var statusNames = new List<string>
{
"待核查隐患数",
"待整改隐患数",
"待验收隐患数",
"整改完毕隐患数"
};
// 构建结果集合(处理数组长度不匹配的情况)
var resultItem = new List<DangerHomeResDto>();
for (int i = 0; i < statusNames.Count; i++)
{
resultItem.Add(new DangerHomeResDto
{
Name = statusNames[i],
Total = httpClientResult?.DangerStatusCount?.ElementAtOrDefault(i) ?? 0
});
}
result.Data = resultItem;
}
}
}
catch (Exception ex)
{
_logger.LogWarning(ex, "GetRegionRootInfo接口出错");
return ApiResult<List<DangerHomeResDto>>.IsFail($"GetRegionRootInfo接口出错{ex.Message}");
}
return result;
}
}
}
Loading…
Cancel
Save