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、内衬、帘布、胎圈/三角胶) /// 2.抽检出库 /// /// /// [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反馈货位状态 /// /// /// [HttpPost] /* [Route("notifyAlarm")]*/ public ReturnResult locStateFeedBack(LocStateFeedBackModel model) { LogHelper.Info("locStateFeedBack 入参:" + JsonConvert.SerializeObject(model), "WMS"); ReturnResult result = new ReturnResult(); bool bo = ApiHelper.locStateFeedBack(model); if (!bo) { result.ResultCode = 1; } LogHelper.Info("locStateFeedBack 出参:" + 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.同步条码状态信息 /// /// /// [HttpPost] /*[Route("notifyTaskStatus")]*/ public ReturnResult synBarcodeStatus(SynUpdateMatlStatusModel model) { LogHelper.Info("【10.同步条码状态表信息】Request:" + JsonConvert.SerializeObject(model), "GT"); var result = ApiHelper.synBarcodeStatus(model.updateMatlStatuses); LogHelper.Info("【10.同步条码状态表信息】response:" + JsonConvert.SerializeObject(result), "GT"); return result; } /// /// 11.同步抽检状态表信息 /// /// /// [HttpPost] /*[Route("notifyTaskStatus")]*/ public ReturnResult synSamplingStatus(SynUpdateMatlStatusModel model) { LogHelper.Info("【11.同步抽检状态表信息】Request:" + JsonConvert.SerializeObject(model), "GT"); var result = ApiHelper.synSamplingStatus(model.updateMatlStatuses); LogHelper.Info("【11.同步抽检状态表信息】response:" + JsonConvert.SerializeObject(result), "GT"); return result; } /// /// 11.查询中间表最后的同步时间 /// 业务场景:记录物料条码信息同步、物料状态信息同步时间 /// /// /// [HttpPost] /*[Route("notifyTaskStatus")]*/ public ReturnResult findDataLastSynTime(SynTableModel model) { LogHelper.Info("【11.查询上一次的数据同步时间】Request:" + JsonConvert.SerializeObject(model), "GT"); var result = ApiHelper.findDataLastSynTime(model.tableType); LogHelper.Info("【11.查询上一次的数据同步时间】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 LocStateFeedBackModel { public string reqId { get; set; } public string reqTime { get; set; } public string loc_code { get; set; } // 站台编码 public string type { get; set; } // 请求类型 1 允许取货 2 允许放货 public string req_no { get; set; } // 任务号 } public class SynTableModel { public int tableType { get; set; } // 1.半制品条码信息表 2.条码状态表 3.抽检状态表 } public class SynUpdateMatlStatusModel { public List updateMatlStatuses { get; set; } } public class UpdateMatlStatus { public string bc_entried { get; set; } public string mcngrp { get; set; } public string jdge { get; set; } public string last_modify_time { get; set; } } public class SynMatlInformationModel { public List matlInformationList { get; set; } } } }