using HH.WCS.Mobox3.YNJT_BZP.dispatch;
using HH.WCS.Mobox3.YNJT_BZP.models;
using HH.WCS.Mobox3.YNJT_BZP.wms;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Web.Http;
using static HH.WCS.Mobox3.YNJT_BZP.api.ApiHelper;
using static HH.WCS.Mobox3.YNJT_BZP.api.ApiModel;
using static HH.WCS.Mobox3.YNJT_BZP.api.OtherModel;
namespace HH.WCS.Mobox3.YNJT_BZP.api
{
///
/// 第三方调用的接口
///
[RoutePrefix("api")]
public class WmsController : System.Web.Http.ApiController
{
///
/// 1.半制品/余料/空托下发入库任务
/// 业务场景:
/// 1.带束/零度、胎侧、BEC半制品线边区到带束/胎侧/BEC立库区
/// 2.内衬、帘布、胎圈半制品线边到内衬/帘布/胎圈立库区
/// 3.成型机半托回库(带束/零度、胎侧、BEC、内衬、帘布、胎圈/三角胶)
/// 4.成型机空托回库(物料信息可以不填)
/// 5.此接口用于入库,成型机半托回库,成型机空托回库,并且成型机半托回库,成型机空托回库调用类型为PDA调用
///
///
///
[HttpPost]
public ReturnResult createInOrder(CreateInOrderModel model)
{
LogHelper.Info("【1.半制品/余料/空托下发入库任务】request:" + JsonConvert.SerializeObject(model), "WMS");
var result = ApiHelper.createInOrder(model);
LogHelper.Info("【1.半制品/余料/空托下发入库任务】response:" + JsonConvert.SerializeObject(result), "WMS");
return result;
}
///
/// 2.空托出库
/// 业务场景:
/// 1.半制品线边呼叫空托:从立库出库流程(带束/零度、胎侧、BEC、内衬、帘布、胎圈/三角胶)
///
///
///
[HttpPost]
public ReturnResult emptyTrayOutOrder(EmptyTrayOutOrderModel model)
{
LogHelper.Info("【2.空托出库】request:" + JsonConvert.SerializeObject(model), "WMS");
var result = ApiHelper.emptyTrayOutOrder(model);
LogHelper.Info("【2.空托出库】response:" + JsonConvert.SerializeObject(result), "WMS");
return result;
}
///
/// 3.成型机叫料出库任务
/// 业务场景:
/// 1.成型机呼叫流程(带束/零度 、胎侧 、BEC、内衬、帘布、胎圈/三角胶)
///
///
///
[HttpPost]
public ReturnResult createOutOrder(CreateOutOrderModel model)
{
LogHelper.Info("【3.成型机叫料出库任务】request:" + JsonConvert.SerializeObject(model), "WMS");
var result = ApiHelper.createOutOrder(model);
LogHelper.Info("【3.成型机叫料出库任务】response:" + JsonConvert.SerializeObject(result), "WMS");
return result;
}
///
/// 4.人工入库任务
/// 业务场景:
/// 1.人工入库(带束/零度、胎侧、BEC、内衬、帘布、胎圈/三角胶)
///
///
///
[HttpPost]
public ReturnResult manualStorage(CreateInOrderModel model)
{
LogHelper.Info("【4.人工入库任务】request:" + JsonConvert.SerializeObject(model), "WMS");
var result = ApiHelper.manualStorage(model);
LogHelper.Info("【4.人工入库任务】response:" + JsonConvert.SerializeObject(result), "WMS");
return result;
}
///
/// 5.人工出库任务
/// 业务场景:
/// 1.人工出库(带束/零度、胎侧、BEC、内衬、帘布、胎圈/三角胶)
///
///
///
[HttpPost]
public ReturnResult manualDelivery(CreateOutOrderModel model)
{
LogHelper.Info("【5.人工出库任务】request:" + JsonConvert.SerializeObject(model), "WMS");
var result = ApiHelper.manualDelivery(model);
LogHelper.Info("【5.人工出库任务】response:" + JsonConvert.SerializeObject(result), "WMS");
return result;
}
///
/// 6.下发母拖出入库任务
/// 业务场景:
/// 1.下发母拖出入库任务
///
///
///
[HttpPost]
public ReturnResult baseTrayOutInStock(BaseTrayOutInStockModel model)
{
LogHelper.Info("【6.下发母拖出入库任务】request:" + JsonConvert.SerializeObject(model), "WMS");
ReturnResult result = new ReturnResult();
if (model.taskType == "入库")
{
result = ApiHelper.baseTrayInStock(model.locCode,model.taskNo);
}
else if (model.taskType == "出库")
{
result = ApiHelper.baseTrayOutStock(model.locCode, model.taskNo);
}
LogHelper.Info("【6.下发母拖出入库任务】response:" + JsonConvert.SerializeObject(result), "WMS");
return result;
}
// ------------------- WCS ----------------
///
/// 7.WCS 任务状态反馈
/// 业务场景:WCS在执行任务时,回报任务状态
///
///
///
[HttpPost]
/*[Route("notifyTaskStatus")]*/
public ReturnResult notifyTaskStatus(TaskStatusFeedbackModel model)
{
LogHelper.Info("【7.WCS任务状态反馈】Request:" + JsonConvert.SerializeObject(model), "WMS");
var result = ApiHelper.taskStatusFeedback(model);
LogHelper.Info("【7.WCS任务状态反馈】response:" + JsonConvert.SerializeObject(result), "WMS");
return result;
}
///
/// 8.WCS入库读码反馈
/// 业务场景:WCS在执行任务时,回报任务状态
///
///
///
[HttpPost]
/*[Route("notifyTaskStatus")]*/
public ReturnResult readCodeFeedback(ReadCodeFeedbackModel model)
{
LogHelper.Info("【8.WCS入库读码反馈】Request:" + JsonConvert.SerializeObject(model), "WMS");
var result = ApiHelper.readCodeFeedback(model);
LogHelper.Info("【8.WCS入库读码反馈】response:" + JsonConvert.SerializeObject(result), "WMS");
return result;
}
// ----------------------------------- GT --------------------------------------------------------------
///
/// 9.同步GT条码物料信息
/// 业务场景:将GT服务器上的新增条码信息,同步到WMS服务上
///
///
///
[HttpPost]
/*[Route("notifyTaskStatus")]*/
public ReturnResult synMatlInformation(SynMatlInformationModel model)
{
LogHelper.Info("【9.同步GT条码物料信息】Request:" + JsonConvert.SerializeObject(model), "GT");
var result = ApiHelper.synMatlInformation(model.matlInformationList);
LogHelper.Info("【9.同步GT条码物料信息】response:" + JsonConvert.SerializeObject(result), "GT");
return result;
}
///
/// 10.同步更新物料状态
/// 业务场景:GT的状态进行更新,wms也需要同步更新
///
///
///
[HttpPost]
/*[Route("notifyTaskStatus")]*/
public ReturnResult synUpdateMatlStatus(SynUpdateMatlStatusModel model)
{
LogHelper.Info("【10.同步更新物料状态】Request:" + JsonConvert.SerializeObject(model), "GT");
var result = ApiHelper.synUpdateMatlStatus(model.updateMatlStatuses);
LogHelper.Info("【10.同步更新物料状态】response:" + JsonConvert.SerializeObject(result), "GT");
return result;
}
///
/// 11.记录数据同步时间
/// 业务场景:记录物料条码信息同步、物料状态信息同步时间
///
///
///
[HttpPost]
/*[Route("notifyTaskStatus")]*/
public ReturnResult recordDataSynTime(RecordDataSynTimeModel model)
{
LogHelper.Info("【11.记录数据同步时间】Request:" + JsonConvert.SerializeObject(model), "GT");
var result = ApiHelper.recordDataSynTime(model);
LogHelper.Info("【11.记录数据同步时间】response:" + JsonConvert.SerializeObject(result), "GT");
return result;
}
///
/// 12.查询上一次的数据同步时间
/// 业务场景:记录物料条码信息同步、物料状态信息同步时间
///
///
///
[HttpPost]
/*[Route("notifyTaskStatus")]*/
public ReturnResult findLastDataSynTime(RecordDataSynTimeModel model)
{
LogHelper.Info("【12.查询上一次的数据同步时间】Request:" + JsonConvert.SerializeObject(model), "GT");
var result = ApiHelper.findLastDataSynTime(model.recordTable);
LogHelper.Info("【12.查询上一次的数据同步时间】response:" + JsonConvert.SerializeObject(result), "GT");
return result;
}
///
/// 13.同步更新物料存放时间配置表
///
///
///
[HttpPost]
/*[Route("notifyTaskStatus")]*/
public ReturnResult synUpdateMatlTimeConfig(MatlTimeConfigModel model)
{
LogHelper.Info("【13.同步更新物料存放时间配置表】Request:" + JsonConvert.SerializeObject(model), "GT");
var result = ApiHelper.synUpdateMatlTimeConfig(model.overages);
LogHelper.Info("【13.同步更新物料存放时间配置表】response:" + JsonConvert.SerializeObject(result), "GT");
return result;
}
public class MatlTimeConfigModel
{
public List overages { get; set; }
}
public class MatlOverage
{
public string mcngrp { get; set; } // 机器组代码 mcn字段 以 RTE 前缀=mcngrp字段=1;半制品 / mcn字段 以 RTB 前缀=mcngrp字段=0;硫化机
public string itempatt { get; set; } // 物品模式(如条码匹配规则)
public int overage { get; set; } // 剩余/超额数量
public decimal minhour { get; set; } // 最小工作时间或条件
public string flag_sts { get; set; } // 状态标记
public int recid { get; set; }
public string last_modify_time { get; set; }
}
public class RecordDataSynTimeModel
{
public string sysTime { get; set; } // 同步时间
public int synNum { get; set; } // 同步数量
public string recordTable { get; set; } // 1.物料条码记录表 2.胚胎条码状态表 3.物料存放时间配置表
}
public class SynUpdateMatlStatusModel
{
public List updateMatlStatuses { get; set; }
}
public class UpdateMatlStatus
{
public string bc_entried { get; set; }
public string jdge { get; set; }
}
public class SynMatlInformationModel
{
public List matlInformationList { get; set; }
}
}
}