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; } } } }