You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

249 lines
7.5 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* 版权所有 (c) 2026 WenJY 保留所有权利。
* CLR版本4.0.30319.42000
* 机器名称Mr.Wen's MacBook Pro
* 命名空间Sln.Wcs.HoistAdapter.Service.Impl
* 唯一标识E44EB57C-A5C0-49F3-9C90-602B14CF613B
*
* 创建者WenJY
* 电子邮箱:
* 创建时间2026-05-06 14:23:55
* 版本V1.0.0
* 描述:
*
*--------------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
*
* 版本V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
using Sln.Wcs.HoistAdapter.Domain.Dto.GetHoistStatus;
using Sln.Wcs.HoistAdapter.Domain.Dto.HoistTaskExecutor;
using Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistAction;
using Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistAlarm;
using Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistTask;
using Sln.Wcs.HoistAdapter.Domain.Enum;
using Sln.Wcs.HoistAdapter.Domain.Model.GetHoistStatus;
using Sln.Wcs.HoistAdapter.Domain.Model.SetHoistAction;
using Sln.Wcs.HoistAdapter.Domain.Model.SetHoistAlarm;
using Sln.Wcs.HoistAdapter.Domain.Model.SetHoistTask;
using Sln.Wcs.HoistAdapter.Util;
using Sln.Wcs.HoistSdk;
namespace Sln.Wcs.HoistAdapter.Service.Impl;
public class HoistService:IHoistService
{
private readonly IHoistSdk hoistSdk;
private readonly ApiResultCodeUtil codeUtil;
public HoistService(IHoistSdk hoistSdk, ApiResultCodeUtil codeUtil)
{
this.hoistSdk = hoistSdk;
this.codeUtil = codeUtil;
}
/// <summary>
/// 设置提升机动作
/// </summary>
/// <param name="setHoistActionDto"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public SetHoistActionResultDto SetHoistAction(SetHoistActionDto setHoistActionDto)
{
try
{
if (setHoistActionDto == null)
{
throw new ArgumentException($"输入参数为空。");
}
var data = new HoistSdk.Dto.HoistControl.SetHoistActionDto()
{
hoistCode = setHoistActionDto.hoistCode,
action = (HoistSdk.Enum.ControlAction)setHoistActionDto.action,
};
var resp = this.hoistSdk.SetHoistAction(data);
bool parseRes = this.codeUtil.parse(resp.code, resp.message, out HoistStatusEnum hoistStatusEnum);
return new SetHoistActionResultDto()
{
code = hoistStatusEnum,
msg = resp.message,
data = new SetHoistActionResultModel()
{
code = resp.code,
message = resp.message,
taskCode = resp.taskCode,
},
};
}
catch (Exception ex)
{
return new SetHoistActionResultDto()
{
code = HoistStatusEnum.SDK,
msg = ex.Message,
};
}
}
/// <summary>
/// 设置提升机任务
/// </summary>
/// <param name="setHoistTaskDto"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public SetHoistTaskResultDto SetHoistTask(SetHoistTaskDto setHoistTaskDto)
{
try
{
if (setHoistTaskDto == null)
{
throw new ArgumentException($"输入参数为空。");
}
var data = new HoistSdk.Dto.SetHoistTask.SetHoistTaskDto()
{
hoistCode = setHoistTaskDto.hoistCode,
taskCode = setHoistTaskDto.taskCode,
deviceSerialNo = setHoistTaskDto.deviceSerialNo,
startPoint = setHoistTaskDto.startPoint,
endPoint = setHoistTaskDto.endPoint,
};
var resp = this.hoistSdk.SetHoistTask(data);
bool parseRes = this.codeUtil.parse(resp.code, resp.message, out HoistStatusEnum hoistStatusEnum);
return new SetHoistTaskResultDto()
{
code = hoistStatusEnum,
msg = resp.message,
data = new SetHoistTaskResultModel()
{
code = resp.code,
message = resp.message,
taskCode = resp.taskCode,
},
};
}
catch (Exception ex)
{
return new SetHoistTaskResultDto()
{
code = HoistStatusEnum.SDK,
msg = ex.Message,
};
}
}
/// <summary>
/// 获取提升机状态
/// </summary>
/// <param name="hoistStatusDto"></param>
/// <returns></returns>
/// <exception cref="ArgumentException"></exception>
public GetHoistStatusResultDto GetHoistStatus(GetHoistStatusDto hoistStatusDto)
{
try
{
if (hoistStatusDto == null)
{
throw new ArgumentException($"输入参数为空。");
}
var data = new HoistSdk.Dto.GetHoistStatus.GetHoistStatusDto()
{
hoistCode = hoistStatusDto.hoistCode,
};
var resp = this.hoistSdk.GetHoistStatus(data);
bool parseRes = this.codeUtil.parse(resp.code, resp.message, out HoistStatusEnum hoistStatusEnum);
return new GetHoistStatusResultDto()
{
code = hoistStatusEnum,
msg = resp.message,
data = new GetHoistStatusResultModel()
{
code = resp.code,
message = resp.message,
hoistCode = resp.hoistCode,
deviceParamStr = resp.deviceParamStr
},
};
}
catch (Exception ex)
{
return new GetHoistStatusResultDto()
{
code = HoistStatusEnum.SDK,
msg = ex.Message,
};
}
}
/// <summary>
/// 设置提升机报警
/// </summary>
/// <param name="hoistAlarmDto"></param>
/// <returns></returns>
/// <exception cref="ArgumentException"></exception>
public SetHoistAlarmResultDto SetHoistAlarm(SetHoistAlarmDto hoistAlarmDto)
{
try
{
if (hoistAlarmDto == null)
{
throw new ArgumentException($"输入参数为空。");
}
var data = new HoistSdk.Dto.SetHoistAlarm.SetHoistAlarmDto()
{
hoistCode = hoistAlarmDto.hoistCode,
deviceSerialNo = hoistAlarmDto.deviceSerialNo,
key = hoistAlarmDto.key,
value = hoistAlarmDto.value,
};
var resp = this.hoistSdk.SetHoistAlarm(data);
bool parseRes = this.codeUtil.parse(resp.code, resp.message, out HoistStatusEnum hoistStatusEnum);
return new SetHoistAlarmResultDto()
{
code = hoistStatusEnum,
msg = resp.message,
data = new SetHoistAlarmResultModel()
{
code = resp.code,
message = resp.message,
},
};
}
catch (Exception ex)
{
return new SetHoistAlarmResultDto()
{
code = HoistStatusEnum.SDK,
msg = ex.Message,
};
}
}
}