using HH.WCS.Mobox3.YNJT_PT.dispatch;
using HH.WCS.Mobox3.YNJT_PT.wms;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Web.Http;
using static HH.WCS.Mobox3.YNJT_PT.api.ApiHelper;
using static HH.WCS.Mobox3.YNJT_PT.api.ApiModel;
using static HH.WCS.Mobox3.YNJT_PT.util.ExcetionHelper;
namespace HH.WCS.Mobox3.YNJT_PT.api
{
///
/// 第三方调用的接口
///
[RoutePrefix("api")]
public class WmsController : System.Web.Http.ApiController
{
///
/// 1.成型机下线记录
///
///
///
[HttpPost]
public ResponseResult cxjOffLineRecord(OffLineModel model)
{
LogHelper.Info("【1.成型机下线记录】Request:" + JsonConvert.SerializeObject(model), "WMS");
var result = ApiHelper.cxjOffLineRecord(model);
LogHelper.Info("【1.成型机下线记录】response:" + JsonConvert.SerializeObject(result), "WMS");
return result;
}
///
/// 2.设备信号反馈
/// 业务场景:WCS反馈成型机胚胎下线入库信号(注:必须两托一起上报,没有两托,则补充一个空托)
/// 逻辑:
/// 1.查询成型机下线记录表,判断RFID是否存在,状态是否OK,不存在或NG异常排出
/// 2.查询物料条码信息表(green_tire_information),保存胚胎信息
/// 3.开始计算终点,生成任务
///
///
///
[HttpPost]
public ResponseResult notifyDeviceSignal(NotifyDeviceSignalModel model)
{
LogHelper.Info("【2.设备信号反馈】notifyDeviceSignal 入参:" + JsonConvert.SerializeObject(model), "WMS");
ResponseResult responseResult = new ResponseResult();
try
{
if (model.signalType == 1)
{
responseResult = ApiHelper.offLineRequest(model);
}
else if(model.signalType == 3)
{
responseResult = ApiHelper.readCodeRequest(model);
}
}
catch (BusinessException be)
{
responseResult.code = 501;
responseResult.msg = be.Message;
}
catch (Exception ex)
{
LogHelper.Info($"WMS内部错误,错误原因:{ex.Message}", "WMS");
responseResult.code = 500;
responseResult.msg = $"WMS内部错误,请联系开发人员处理";
}
LogHelper.Info("【2.设备信号反馈】notifyDeviceSignal 出参:" + JsonConvert.SerializeObject(responseResult), "WMS");
return responseResult;
}
///
/// 3.硫化机呼叫胚胎出库
/// 逻辑:
/// 1.根据机台号查询【硫化机工单表】、【胚胎已完成的条码中间表】筛选当前班次的生产计划数量是否满足,当预计生产数量 = 实际数+在途数量 ,则停止叫料
/// 2.查询机台号在【硫化机工单表】对应的物料编码,
/// 开始计算(1.巷道不报警、2.物料状态OK、3.小于失效时间 大于等于生效时间 4.加急料先出、5.先入先出(生产时间))出库物料,生成任务
///
///
///
public ResponseResult callItemOutStock(CallItemModel model )
{
LogHelper.Info("【3.硫化机呼叫胚胎出库】callItemOutStock 入参:" + JsonConvert.SerializeObject(model), "WMS");
ResponseResult responseResult = new ResponseResult();
responseResult = ApiHelper.callItemOutStock(model);
LogHelper.Info("【3.硫化机呼叫胚胎出库】callItemOutStock 出参:" + JsonConvert.SerializeObject(responseResult), "WMS");
return responseResult;
}
public class CallItemModel
{
public string mcn { get; set; }
public List locCodes { get; set; }
}
public class NotifyDeviceSignalModel
{
public string reqId { get; set; }
public string reqTime { get; set; }
public string loc { get; set; }
public string taskNo { get; set; }
public string cntrNo { get; set; }
public int signalType { get; set; }
public List extData { get; set; }
public string deviceNo { get; set; }
}
public class BarcodeModel
{
public string rfid { get; set; }
public string barcode { get; set; }
}
/* ///
/// 3.任务状态反馈
/// 业务场景:WCS在执行任务时,回报任务状态
///
///
///
[HttpPost]
*//*[Route("notifyTaskStatus")]*//*
public ResponseResult notifyTaskStatus(TaskStatusFeedbackModel model)
{
LogHelper.Info("notifyTaskStatus 入参:" + JsonConvert.SerializeObject(model), "WMS");
var result = ApiHelper.taskStatusFeedback(model);
LogHelper.Info("notifyTaskStatus 出参:" + JsonConvert.SerializeObject(result), "WMS");
return result;
}
///
/// 3.申请终点
///
///
///
[HttpPost]
*//* [Route("applyDest")]*//*
public ResponseResult applyDest(ApplyDestinationModel model)
{
LogHelper.Info("applyDest 入参:" + JsonConvert.SerializeObject(model), "WMS");
var result = ApiHelper.applyDest(model);
LogHelper.Info("applyDest 出参:" + JsonConvert.SerializeObject(result), "WMS");
return result;
}*/
}
}