zhaowc
2025-02-16 1a39a01ff6d99ab4c98e7243aa0d3e0a264008ad
Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
@@ -1,4 +1,5 @@
using Dm.filter;
using DocumentFormat.OpenXml.Drawing.Charts;
using DocumentFormat.OpenXml.Presentation;
using Elastic.Clients.Elasticsearch;
using Furion.Logging;
@@ -398,4 +399,119 @@
        }
    }
    /// <summary>
    /// WCS接受WMS入库放货确认接口
    /// </summary>
    /// <param name="models"></param>
    /// <returns>反馈信息</returns>
    [HttpPost]
    [AllowAnonymous]
    public IsBaleModel2 HttpInConfirm(PortModel models)
    {
        try
        {
            string str = JsonConvert.SerializeObject(models);
            Log.Information("接收WMS入库放货确认,放货口:" + models.Port+"入库口");
            //检测入库口状态,120为可放,占用则修改为130
            WcsDeviceDto modDevice = new WcsDeviceDto();
            var modPosTask = modDevice.listStation.FirstOrDefault(m => m.Text == "PLC流程字");
            var plcConn = modDevice.PLCUtil;
            var (res1, val) = plcConn.GetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos);
            if (val.ToString() == "120")
            {
                modPosTask = modDevice.listStation.FirstOrDefault(m => m.Text == "WCS流程字");
                //读取成功后写入130
                var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "130");//占用此工位
                if (ret.IsSucceed)
                {
                    //回传WMS可放信号
                    return new IsBaleModel2() { Success = 0, Message = "接受成功" };
                }
            }
            return new IsBaleModel2() { Success = -1, Message = "读取PLC点位信息失败" };
        }
        catch (Exception ex)
        {
            return new IsBaleModel2() { Success = -1, Message = ex.Message };
        }
    }
    /// <summary>
    /// WCS接受WMS入库放货请求接口
    /// </summary>
    /// <param name="models"></param>
    /// <returns>反馈信息</returns>
    [HttpPost]
    [AllowAnonymous]
    public IsBaleModel2 HttpInRequest(PortRequestModel models)
    {
        try
        {
            string str = JsonConvert.SerializeObject(models);
            Log.Information("接收WMS入库放货确认,放货口:" + models.Port + "入库口");
            WcsDeviceDto modDevice = new WcsDeviceDto();
            var plcConn = modDevice.PLCUtil;
            //获取工位点位信息
            //modDevice = ......=models.Port
            var modPosTask = modDevice.listStation.FirstOrDefault(m => m.Text == "任务号");
            plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, models.TaskNo);//写入任务号
                                                                                                    //
            modPosTask = modDevice.listStation.FirstOrDefault(m => m.Text == "WCS流程字");
            var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "140");//开始放货
            if (ret.IsSucceed)
            {
                //回传WMS放货信号
                return new IsBaleModel2() { Success = 0, Message = "接受成功" };
            }
            return new IsBaleModel2() { Success = -1, Message = "读取PLC点位信息失败" };
        }
        catch (Exception ex)
        {
            return new IsBaleModel2() { Success = -1, Message = ex.Message };
        }
    }
    /// <summary>
    /// WCS接受WMS小车放完成接口
    /// </summary>
    /// <param name="models"></param>
    /// <returns>反馈信息</returns>
    [HttpPost]
    [AllowAnonymous]
    public IsBaleModel2 HttpInFinish(PortModel models)
    {
        try
        {
            string str = JsonConvert.SerializeObject(models);
            Log.Information("接收WMS入库放货确认,放货口:" + models.Port + "入库口");
            WcsDeviceDto modDevice = new WcsDeviceDto();
            //获取工位点位信息
            //modDevice = ......=models.Port
            var modPosTask = modDevice.listStation.FirstOrDefault(m => m.Text == "WCS流程字");
            var plcConn = modDevice.PLCUtil;
            var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "140");//开始放货
            if (ret.IsSucceed)
            {
                //回传WMS放货信号
                return new IsBaleModel2() { Success = 0, Message = "接受成功" };
            }
            return new IsBaleModel2() { Success = -1, Message = "读取PLC点位信息失败" };
        }
        catch (Exception ex)
        {
            return new IsBaleModel2() { Success = -1, Message = ex.Message };
        }
    }
}