| | |
| | | using Elastic.Clients.Elasticsearch.Tasks; |
| | | using Furion.Logging; |
| | | using Microsoft.AspNetCore.SignalR; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical; |
| | | using RazorEngine.Compilation.ImpromptuInterface.Dynamic; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WCS.Application.Entity; |
| | | using WCS.Application.Util; |
| | | |
| | | namespace WCS.Application; |
| | | public static class PLCCommon |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据巷道和层数确定巷道口入库工位 |
| | | /// 根据目标组获取位置最优的四项车取货工位 |
| | | /// </summary> |
| | | /// <param name="endRoadway"></param> |
| | | /// <param name="ceng"></param> |
| | | /// <param name="endRoadway">目标组</param> |
| | | /// <param name="ceng">申请工位</param> |
| | | /// <returns></returns> |
| | | public static string RoadwayToStationNum(string endRoadway, string ceng) |
| | | { |
| | | string stationNum = ""; |
| | | switch (endRoadway) |
| | | { |
| | | case "R01": |
| | | if (ceng == "1") |
| | | { |
| | | stationNum = "145"; |
| | | } |
| | | if (ceng == "2") |
| | | { |
| | | stationNum = "252"; |
| | | } |
| | | if (ceng == "3") |
| | | { |
| | | stationNum = "401"; |
| | | } |
| | | break; |
| | | case "R02": |
| | | if (ceng == "1") |
| | | { |
| | | stationNum = "137"; |
| | | } |
| | | if (ceng == "2") |
| | | { |
| | | stationNum = "260"; |
| | | } |
| | | if (ceng == "3") |
| | | { |
| | | stationNum = "405"; |
| | | } |
| | | break; |
| | | case "R03": |
| | | if (ceng == "1") |
| | | { |
| | | stationNum = "127"; |
| | | } |
| | | if (ceng == "2") |
| | | { |
| | | stationNum = "270"; |
| | | } |
| | | if (ceng == "3") |
| | | { |
| | | stationNum = "409"; |
| | | } |
| | | break; |
| | | case "R04": |
| | | if (ceng == "1") |
| | | { |
| | | stationNum = "119"; |
| | | } |
| | | if (ceng == "2") |
| | | { |
| | | stationNum = "278"; |
| | | } |
| | | if (ceng == "3") |
| | | { |
| | | stationNum = "413"; |
| | | } |
| | | break; |
| | | case "R05": |
| | | if (ceng == "1") |
| | | { |
| | | stationNum = "109"; |
| | | } |
| | | if (ceng == "2") |
| | | { |
| | | stationNum = "288"; |
| | | } |
| | | if (ceng == "3") |
| | | { |
| | | stationNum = "417"; |
| | | } |
| | | break; |
| | | case "R06": |
| | | if (ceng == "1") |
| | | { |
| | | stationNum = "101"; |
| | | } |
| | | if (ceng == "2") |
| | | { |
| | | stationNum = "301"; |
| | | } |
| | | if (ceng == "3") |
| | | { |
| | | stationNum = "421"; |
| | | } |
| | | break; |
| | | case "R07": |
| | | if (ceng == "1") |
| | | { |
| | | stationNum = "091"; |
| | | } |
| | | if (ceng == "2") |
| | | { |
| | | stationNum = "307"; |
| | | } |
| | | if (ceng == "3") |
| | | { |
| | | stationNum = "425"; |
| | | } |
| | | break; |
| | | case "R08": |
| | | if (ceng == "1") |
| | | { |
| | | stationNum = "83"; |
| | | } |
| | | if (ceng == "2") |
| | | { |
| | | stationNum = "315"; |
| | | } |
| | | if (ceng == "3") |
| | | { |
| | | stationNum = "429"; |
| | | } |
| | | break; |
| | | case "R09": |
| | | if (ceng == "1") |
| | | { |
| | | stationNum = "73"; |
| | | } |
| | | if (ceng == "2") |
| | | { |
| | | stationNum = "325"; |
| | | } |
| | | if (ceng == "3") |
| | | { |
| | | stationNum = "433"; |
| | | } |
| | | break; |
| | | case "R10": |
| | | if (ceng == "1") |
| | | { |
| | | stationNum = "65"; |
| | | } |
| | | if (ceng == "2") |
| | | { |
| | | stationNum = "337"; |
| | | } |
| | | if (ceng == "3") |
| | | { |
| | | stationNum = "437"; |
| | | } |
| | | break; |
| | | |
| | | string[] lists = endRoadway.Split("R"); |
| | | var model = _db.Queryable<WcsStorageLocat>().First(m => m.RoadwayNo == endRoadway && m.IsDelete == false); |
| | | string stat = model.AisleOne; |
| | | |
| | | if (model.Layer == 1) |
| | | { // 一层 |
| | | switch (ceng) // 申请的入库口 |
| | | { |
| | | case "009": |
| | | |
| | | var path13 = Math.Abs(19 - int.Parse(stat.Substring(0,2))) + Math.Abs(6 - int.Parse(stat.Substring(2,2))); |
| | | var path14 = Math.Abs(19 - int.Parse(stat.Substring(0,2))) + Math.Abs(12 - int.Parse(stat.Substring(2,2))); |
| | | |
| | | if (path13 <= path14) |
| | | { |
| | | stationNum = "013"; |
| | | } |
| | | else |
| | | { |
| | | stationNum = "014"; |
| | | } |
| | | |
| | | ; break; |
| | | case "017": |
| | | stationNum = "002" |
| | | ; break; |
| | | case "018": |
| | | var path03 = Math.Abs(03 - int.Parse(stat.Substring(0, 2))) + Math.Abs(06 - int.Parse(stat.Substring(2, 2))); |
| | | var path05 = Math.Abs(03 - int.Parse(stat.Substring(0, 2))) + Math.Abs(12 - int.Parse(stat.Substring(2, 2))); |
| | | |
| | | if (path03 <= path05) |
| | | { |
| | | stationNum = "003"; |
| | | } |
| | | else |
| | | { |
| | | stationNum = "005"; |
| | | } |
| | | |
| | | ; break; |
| | | default: break; |
| | | } |
| | | } |
| | | else |
| | | { // 二层 |
| | | switch (ceng) // 申请的入库口 |
| | | { |
| | | case "009": |
| | | |
| | | var path15 = Math.Abs(19 - int.Parse(stat.Substring(0, 2))) + Math.Abs(6 - int.Parse(stat.Substring(2, 2))); |
| | | var path16 = Math.Abs(19 - int.Parse(stat.Substring(0, 2))) + Math.Abs(12 - int.Parse(stat.Substring(2, 2))); |
| | | |
| | | if (path15 <= path16) |
| | | { |
| | | stationNum = "015"; |
| | | } |
| | | else |
| | | { |
| | | stationNum = "016"; |
| | | } |
| | | |
| | | ; break; |
| | | case "017": |
| | | stationNum = "006" |
| | | ; break; |
| | | case "018": |
| | | var path03 = Math.Abs(03 - int.Parse(stat.Substring(0, 2))) + Math.Abs(06 - int.Parse(stat.Substring(2, 2))); |
| | | var path05 = Math.Abs(03 - int.Parse(stat.Substring(0, 2))) + Math.Abs(12 - int.Parse(stat.Substring(2, 2))); |
| | | |
| | | if (path03 <= path05) |
| | | { |
| | | stationNum = "007"; |
| | | } |
| | | else |
| | | { |
| | | stationNum = "008"; |
| | | } |
| | | |
| | | ; break; |
| | | default: break; |
| | | } |
| | | } |
| | | |
| | | return stationNum; |