using DS.Module.Core;
using DS.Module.DjyServiceStatus;
using DS.WMS.Core.Op.Dtos;
using DS.WMS.Core.TaskPlat.Dtos;
using DS.WMS.Core.TaskPlat.Interface;
using DS.WMS.Core.TaskPlat.Method;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Owin.Security.Provider;
namespace DS.WMS.TaskApi.Controllers
{
///
/// 任务台-BC子任务相关接口
///
public class TaskManageBCController : ApiController
{
private readonly ITaskManageBCService _taskManageBCService;
public TaskManageBCController(ITaskManageBCService taskManageBCService)
{
_taskManageBCService = taskManageBCService;
}
///
/// 通过任务主键获取BC详情
///
/// BC任务主键
[HttpPost("GetInfoByTaskId")]
public async Task> GetInfoByTaskId(long taskId)
{
var result = await _taskManageBCService.GetInfoByTaskId(taskId);
return result;
}
///
/// 通过任务信息(BC)生成订舱或舱位
///
/// 生成订舱或者舱位请求
/// 返回回执
[HttpPost("CreateBookingAndSlot")]
public async Task> CreateBookingAndSlot([FromBody] BookingOrSlotGenerateDto model)
{
var result = await _taskManageBCService.CreateBookingAndSlot(model);
return result;
}
#region 获取当前比对结果
///
/// 获取当前比对结果
///
/// BC任务主键
/// 返回回执
[HttpGet("GetCompareResult")]
public async Task>> GetCompareResult(long taskId)
{
return await _taskManageBCService.GetCompareResult(taskId);
}
#endregion
#region 同步舱位变更
///
/// 同步舱位变更
///
/// BC任务主键
/// 返回回执
[HttpGet("SyncBookingSlotChange")]
public async Task SyncBookingSlotChange(long taskPKId)
{
return await _taskManageBCService.SyncBookingSlotChange(taskPKId);
}
#endregion
#region 读取BC详情
///
/// 读取BC详情
///
/// 船公司代码
/// BC文件
/// 返回解析详情
[HttpPost("GetReadBC")]
public async Task> GetReadBC(string carrierCode, IFormFile file)
{
return await _taskManageBCService.GetReadBC(carrierCode, file);
}
#endregion
#region 读取BC擦写后文件流
///
/// 读取BC擦写后文件流
///
/// 船公司代码
/// BC文件
/// 返回解析详情
[HttpPost("GetModifyBCFile")]
public async Task> GetModifyBCFile(string carrierCode, IFormFile file)
{
return await _taskManageBCService.GetModifyBCFile(carrierCode, file);
}
#endregion
#region 上传BC文件并触发执行BC任务
///
/// 上传BC文件并触发执行BC任务
///
/// 船公司代码
/// 任务主键
/// BC文件
[HttpPost("UploadBcThenRunTask")]
public async Task UploadBcThenRunTask([FromQuery] string carrierCode, [FromQuery] long taskId, IFormFile file)
{
return await _taskManageBCService.UploadBcThenRunTask(carrierCode, taskId, file);
}
#endregion
}
}