|
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
|
{
|
/// <summary>
|
/// 第三方调用的接口
|
/// </summary>
|
[RoutePrefix("api")]
|
public class WmsController : System.Web.Http.ApiController
|
{
|
/// <summary>
|
/// 1.半制品/余料/空托下发入库任务
|
/// 业务场景:
|
/// 1.带束/零度、胎侧、BEC半制品线边区到带束/胎侧/BEC立库区
|
/// 2.内衬、帘布、胎圈半制品线边到内衬/帘布/胎圈立库区
|
/// 3.成型机半托回库(带束/零度、胎侧、BEC、内衬、帘布、胎圈/三角胶)
|
/// 4.成型机空托回库(物料信息可以不填)
|
/// 5.此接口用于入库,成型机半托回库,成型机空托回库,并且成型机半托回库,成型机空托回库调用类型为PDA调用
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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;
|
}
|
|
/// <summary>
|
/// 2.空托出库
|
/// 业务场景:
|
/// 1.半制品线边呼叫空托:从立库出库流程(带束/零度、胎侧、BEC、内衬、帘布、胎圈/三角胶)
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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;
|
}
|
|
/// <summary>
|
/// 3.成型机叫料出库任务
|
/// 业务场景:
|
/// 1.成型机呼叫流程(带束/零度 、胎侧 、BEC、内衬、帘布、胎圈/三角胶)
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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;
|
}
|
|
/// <summary>
|
/// 4.人工入库任务
|
/// 业务场景:
|
/// 1.人工入库(带束/零度、胎侧、BEC、内衬、帘布、胎圈/三角胶)
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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;
|
}
|
|
/// <summary>
|
/// 5.人工出库任务
|
/// 业务场景:
|
/// 1.人工出库(带束/零度、胎侧、BEC、内衬、帘布、胎圈/三角胶)
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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;
|
}
|
|
/// <summary>
|
/// 6.下发母拖出入库任务
|
/// 业务场景:
|
/// 1.下发母拖出入库任务
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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 ----------------
|
|
/// <summary>
|
/// 7.WCS 任务状态反馈
|
/// 业务场景:WCS在执行任务时,回报任务状态
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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;
|
}
|
|
/// <summary>
|
/// 8.WCS入库读码反馈
|
/// 业务场景:WCS在执行任务时,回报任务状态
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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 --------------------------------------------------------------
|
|
/// <summary>
|
/// 9.同步GT条码物料信息
|
/// 业务场景:将GT服务器上的新增条码信息,同步到WMS服务上
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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;
|
}
|
|
/// <summary>
|
/// 10.同步更新物料状态
|
/// 业务场景:GT的状态进行更新,wms也需要同步更新
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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;
|
}
|
|
/// <summary>
|
/// 11.记录数据同步时间
|
/// 业务场景:记录物料条码信息同步、物料状态信息同步时间
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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;
|
}
|
|
/// <summary>
|
/// 12.查询上一次的数据同步时间
|
/// 业务场景:记录物料条码信息同步、物料状态信息同步时间
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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;
|
}
|
|
/// <summary>
|
/// 13.同步更新物料存放时间配置表
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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<MatlOverage> 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 DateTime 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<UpdateMatlStatus> updateMatlStatuses { get; set; }
|
}
|
|
public class UpdateMatlStatus
|
{
|
public string bc_entried { get; set; }
|
public string jdge { get; set; }
|
}
|
|
public class SynMatlInformationModel
|
{
|
public List<MatlInformation> matlInformationList { get; set; }
|
}
|
}
|
}
|