From 008e1327f186c793508cb6f61b11ef6b5323ad89 Mon Sep 17 00:00:00 2001
From: chengsc <Demo@DESKTOP-CPA90BF>
Date: 星期五, 13 九月 2024 14:28:22 +0800
Subject: [PATCH] 修改输送线交互问题
---
Admin.NET/WCS.Application/PLC/PLCService.cs | 16 +-
Admin.NET/WCS.Application/Util/HttpService.cs | 189 ++++++-------------------------------
Admin.NET/WCS.Application/PLC/PLCCommon.cs | 21 +++-
Admin.NET/WCS.Application/Model/TaskRequest.cs | 54 ++++++++++
4 files changed, 106 insertions(+), 174 deletions(-)
diff --git a/Admin.NET/WCS.Application/Model/TaskRequest.cs b/Admin.NET/WCS.Application/Model/TaskRequest.cs
index 7587e00..1ae0b35 100644
--- a/Admin.NET/WCS.Application/Model/TaskRequest.cs
+++ b/Admin.NET/WCS.Application/Model/TaskRequest.cs
@@ -10,12 +10,62 @@
public class ResponseTasks
{
public string StatusCode { get; set; }
- public string Success { get; set; }
+ public int Success { get; set; }
public string Message { get; set; }
- public WcsTask TaskList { get; set; }
+ public ResponseTasksModel TaskList { get; set; }
}
+
+public class ResponseTasksModel
+{
+ /// <summary>
+ /// 浠诲姟鍙�
+ /// </summary>
+ public string TaskNo { get; set; }
+
+ /// <summary>
+ /// 浠诲姟绫诲瀷
+ /// </summary>
+ public string TaskType { get; set; }
+
+ /// <summary>
+ /// 鎵樼洏鍙�
+ /// </summary>
+ public string PalletNo { get; set; }
+
+ /// <summary>
+ /// 璧峰浣嶇疆
+ /// </summary>
+ public string StartLocate { get; set; }
+
+ /// <summary>
+ /// 璧峰宸烽亾
+ /// </summary>
+ public string StartRoadway { get; set; }
+
+ /// <summary>
+ /// 缁撴潫浣嶇疆
+ /// </summary>
+ public string EndLocate { get; set; }
+
+ /// <summary>
+ /// 鐩爣宸烽亾
+ /// </summary>
+ public string EndRoadway { get; set; }
+
+ /// <summary>
+ /// 鍑哄簱鍙�
+ /// </summary>
+ public string OutMode { get; set; }
+
+ /// <summary>
+ /// 椤哄簭-浼樺厛绾�
+ /// </summary>
+ public int Order { get; set; }
+
+}
+
/// <summary>
/// 鐢宠鍏ュ簱浠诲姟 宸烽亾鎴栧偍浣�
/// </summary>
diff --git a/Admin.NET/WCS.Application/PLC/PLCCommon.cs b/Admin.NET/WCS.Application/PLC/PLCCommon.cs
index 8b64865..7407266 100644
--- a/Admin.NET/WCS.Application/PLC/PLCCommon.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCCommon.cs
@@ -552,19 +552,28 @@
public static string GetRoadwayByStationNew(string StationNum)
{
string value = "";
- var conveyList1 = new List<string>() { "147", "145", "139", "137", "129", "127", "121", "119", "111", "109", "103", "101", "093", "091", "085", "083", "075", "073", "067", "065" };
- var conveyList2 = new List<string>() { "252", "254", "260", "262", "272", "270", "278", "280", "288", "290", "294", "301", "307", "309", "315", "317", "325", "327", "331", "337" };
- var conveyList3 = new List<string>() { "401", "402", "405", "406", "409", "410", "413", "414", "417", "418", "421", "422", "425", "426", "429", "430", "433", "434", "437", "438" };
+ //var conveyList1 = new List<string>() { "147", "145", "139", "137", "129", "127", "121", "119", "111", "109", "103", "101", "093", "091", "085", "083", "075", "073", "067", "065" };
+ //var conveyList2 = new List<string>() { "252", "254", "260", "262", "272", "270", "278", "280", "288", "290", "294", "301", "307", "309", "315", "317", "325", "327", "331", "337" };
+ //var conveyList3 = new List<string>() { "401", "402", "405", "406", "409", "410", "413", "414", "417", "418", "421", "422", "425", "426", "429", "430", "433", "434", "437", "438" };
- if (conveyList1.Contains(StationNum))
+ var ipInfo = _db.Queryable<WcsPlc>().Where(s => s.Type == PLCTypeEnum.StackingMachine || s.Type == PLCTypeEnum.ConveyorLine || s.Type == PLCTypeEnum.BoxConveyorLine);
+ var ip1 = ipInfo.First(m=>m.Text == "1灞傛墭鐩樿緭閫佺嚎");
+ var ip2 = ipInfo.First(m=>m.Text == "2灞傛墭鐩樿緭閫佺嚎");
+ var ip3 = ipInfo.First(m=>m.Text == "3灞傛墭鐩樿緭閫佺嚎");
+
+ var dev1 = PLCTaskAction.plcDevices.Where(m => m.IsDelete == false && m.PlcId == ip1.Id).Select(m=>m.StationNum).ToList();
+ var dev2 = PLCTaskAction.plcDevices.Where(m => m.IsDelete == false && m.PlcId == ip2.Id).Select(m => m.StationNum).ToList();
+ var dev3 = PLCTaskAction.plcDevices.Where(m => m.IsDelete == false && m.PlcId == ip3.Id).Select(m => m.StationNum).ToList();
+
+ if (dev1.Contains(StationNum))
{
value = "1";
}
- else if (conveyList2.Contains(StationNum))
+ else if (dev2.Contains(StationNum))
{
value = "2";
}
- else if (conveyList3.Contains(StationNum))
+ else if (dev3.Contains(StationNum))
{
value = "3";
}
diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index 9a7df32..aefbb9f 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -735,7 +735,7 @@
}
string pallet = palletVal.ToString();
// 鑾峰彇浠诲姟淇℃伅
- var modTask = _db.Queryable<WcsTask>().First(s => s.IsDelete == false && s.PalletNo == pallet && (s.Status == TaskStatusEnum.Wait || s.Status == TaskStatusEnum.Doing) && s.TaskType == TaskTypeEnum.In && s.StartRoadway == modDevice.StationNum);
+ var modTask = _db.Queryable<WcsTask>().First(s => s.IsDelete == false && s.PalletNo == pallet && (s.Status == TaskStatusEnum.Wait || s.Status == TaskStatusEnum.Doing) && s.TaskType == TaskTypeEnum.In);
if (modTask == null)
{
// 姝ゆ墭鐩樻病鏈夊搴旂殑杞Щ浠诲姟 led鏄剧ず
@@ -749,8 +749,9 @@
// 浠诲姟鍙枫�佷换鍔$被鍨嬨�佹墭鐩樺彿
var modPosTask = modDevice.listStation.FirstOrDefault(s => s.Text == "浠诲姟鍙�");
listResult.Add(plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, modTask.TaskNo));
- var modPosTaskType = modDevice.listStation.FirstOrDefault(s => s.Text == "浠诲姟鍙�");
- listResult.Add(plcConn.SetPlcDBValue(modPosTaskType.PosType, modDevice.DbNumber, modPosTaskType.PlcPos, modTask.TaskType.ToString()));
+ var modPosTaskType = modDevice.listStation.FirstOrDefault(s => s.Text == "浠诲姟绫诲瀷");
+ var taskTypeStr = (int)modTask.TaskType;
+ listResult.Add(plcConn.SetPlcDBValue(modPosTaskType.PosType, modDevice.DbNumber, modPosTaskType.PlcPos, taskTypeStr.ToString()));
var modPosPalletNo = modDevice.listStation.FirstOrDefault(s => s.Text == "鎵樼洏鐮�");
listResult.Add(plcConn.SetPlcDBValue(modPosPalletNo.PosType, modDevice.DbNumber, modPosPalletNo.PlcPos, modTask.PalletNo));
// 璧峰宸ヤ綅銆佺洰鐨勫伐浣�
@@ -880,7 +881,7 @@
// 鑾峰彇宸ヤ綅鎵樼洏鐮佷俊鎭�
var modPosPallet = modDevice.listStation.FirstOrDefault(m => m.Text == "鎵樼洏鐮�");
var (res, palletVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosPallet.PlcPos);
- // 鑾峰彇宸ヤ綅鎵樼洏鐮佷俊鎭�
+ // 鑾峰彇宸ヤ綅浠诲姟鍙蜂俊鎭�
var modPosTaskNo = modDevice.listStation.FirstOrDefault(m => m.Text == "浠诲姟鍙�");
var (taskRes, taskNoVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosTaskNo.PlcPos);
if (!res.IsSucceed || !taskRes.IsSucceed )
@@ -941,12 +942,13 @@
var modPosTask = djInfos.FirstOrDefault(s => s.Text == "浠诲姟鍙�");
listResult.Add(plcStackeConn.SetPlcDBValue(modPosTask.PosType, djMod.DbNumber, modPosTask.PlcPos, modTask.TaskNo));
var modPosTaskType = djInfos.FirstOrDefault(s => s.Text == "浠诲姟绫诲瀷");
- listResult.Add(plcStackeConn.SetPlcDBValue(modPosTaskType.PosType, djMod.DbNumber, modPosTaskType.PlcPos, modTask.TaskType.ToString()));
+ var taskTypeStr = (int)modTask.TaskType;
+ listResult.Add(plcStackeConn.SetPlcDBValue(modPosTaskType.PosType, djMod.DbNumber, modPosTaskType.PlcPos, taskTypeStr.ToString()));
var modPosPalletNo = djInfos.FirstOrDefault(s => s.Text == "鎵樼洏鍙�");
- listResult.Add(plcStackeConn.SetPlcDBValue(modPosPallet.PosType, djMod.DbNumber, modPosPallet.PlcPos, modTask.PalletNo));
+ listResult.Add(plcStackeConn.SetPlcDBValue(modPosPalletNo.PosType, djMod.DbNumber, modPosPalletNo.PlcPos, modTask.PalletNo));
//璧峰宸ヤ綅
- var modPosStrStationNum = djInfos.FirstOrDefault(s => s.Text == "鍙栬揣鎺�");
+ var modPosStrStationNum = djInfos.FirstOrDefault(s => s.Text == "璧峰宸ヤ綅");
listResult.Add(plcStackeConn.SetPlcDBValue(modPosStrStationNum.PosType, djMod.DbNumber, modPosStrStationNum.PlcPos, modDevice.StationNum));
//鍙栬揣鎺掋�佸垪銆佸眰
diff --git a/Admin.NET/WCS.Application/Util/HttpService.cs b/Admin.NET/WCS.Application/Util/HttpService.cs
index 9509fb6..1119c0f 100644
--- a/Admin.NET/WCS.Application/Util/HttpService.cs
+++ b/Admin.NET/WCS.Application/Util/HttpService.cs
@@ -1,4 +1,5 @@
-锘縰sing Furion.Logging;
+锘縰sing Elastic.Clients.Elasticsearch;
+using Furion.Logging;
using Furion.RemoteRequest.Extensions;
using Newtonsoft.Json;
using System.Text;
@@ -46,14 +47,16 @@
string url = Urls.WMSAddress + ":" + Urls.WMSPort;
var result = (url + "/api/DownAPi/RequestRoadWay").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>().Result;
Log.Information("璋冪敤WMS鎺ュ彛鍙嶉浠诲姟鎺ュ彛" + result.ToJson());
- if (result.StatusCode == "0")
+ if (result.Success == 0)
{
var taskAdd = new WcsTask()
{
TaskType = TaskTypeEnum.In,
+ Status = TaskStatusEnum.Wait,
Origin = "WMS",
StartLocate = startLocat,
+ PalletNo = palletNo,
TaskNo = result.TaskList.TaskNo,
EndLocate = result.TaskList.EndLocate,
EndRoadway = result.TaskList.EndRoadway
@@ -80,153 +83,6 @@
endLocat = PLCCommon.RoadwayToStationNum(endLocat, ceng);
return returnStr;
- // 纭畾鐩爣宸ヤ綅//闇�娣诲姞灞傛暟纭
- //switch (endLocat)
- //{
- // case "R01":
- // if (ceng == "1")
- // {
- // endLocat = "145";
- // }
- // else if (ceng == "2")
- // {
- // endLocat = "252";
- // }
- // else if (ceng == "3")
- // {
- // endLocat = "101";
- // }
- // break;
- // case "R02":
- // if (ceng == "1")
- // {
- // endLocat = "137";
- // }
- // else if (ceng == "2")
- // {
- // endLocat = "260";
- // }
- // else if (ceng == "3")
- // {
- // endLocat = "405";
- // }
- // break;
- // case "R03":
- // if (ceng == "1")
- // {
- // endLocat = "127";
- // }
- // else if (ceng == "2")
- // {
- // endLocat = "270";
- // }
- // else if (ceng == "3")
- // {
- // endLocat = "409";
- // }
- // break;
- // case "R04":
- // if (ceng == "1")
- // {
- // endLocat = "119";
- // }
- // else if (ceng == "2")
- // {
- // endLocat = "278";
- // }
- // else if (ceng == "3")
- // {
- // endLocat = "413";
- // }
- // break;
- // case "R05":
- // if (ceng == "1")
- // {
- // endLocat = "109";
- // }
- // else if (ceng == "2")
- // {
- // endLocat = "288";
- // }
- // else if (ceng == "3")
- // {
- // endLocat = "417";
- // }
- // break;
- // case "R06":
- // if (ceng == "1")
- // {
- // endLocat = "101";
- // }
- // else if (ceng == "2")
- // {
- // endLocat = "301";
- // }
- // else if (ceng == "3")
- // {
- // endLocat = "421";
- // }
- // break;
- // case "R07":
- // if (ceng == "1")
- // {
- // endLocat = "091";
- // }
- // else if (ceng == "2")
- // {
- // endLocat = "307";
- // }
- // else if (ceng == "3")
- // {
- // endLocat = "425";
- // }
- // break;
- // case "R08":
- // if (ceng == "1")
- // {
- // endLocat = "083";
- // }
- // else if (ceng == "2")
- // {
- // endLocat = "315";
- // }
- // else if (ceng == "3")
- // {
- // endLocat = "429";
- // }
- // break;
- // case "R09":
- // if (ceng == "1")
- // {
- // endLocat = "073";
- // }
- // else if (ceng == "2")
- // {
- // endLocat = "325";
- // }
- // else if (ceng == "3")
- // {
- // endLocat = "433";
- // }
- // break;
- // case "R10":
- // if (ceng == "1")
- // {
- // endLocat = "065";
- // }
- // else if (ceng == "2")
- // {
- // endLocat = "337";
- // }
- // else if (ceng == "3")
- // {
- // endLocat = "437";
- // }
- // break;
- //}
-
-
-
}
/// <summary>
@@ -258,20 +114,35 @@
string url = Urls.WMSAddress + ":" + Urls.WMSPort;
var result = (url + "/api/DownAPi/RequestLocation").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>().Result;
Log.Information("璋冪敤WMS鐢宠鍌ㄤ綅鎺ュ彛鍙嶉浠诲姟鎺ュ彛" + result.ToJson());
- if (result.StatusCode == "0")
+ if (result.Success == 0)
{
- var taskAdd = new WcsTask()
+
+ var taskUp = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && m.TaskNo == result.TaskList.TaskNo);
+ if (taskUp == null)
{
- TaskType = TaskTypeEnum.In,
- Origin = "WMS",
- StartLocate = startLocat,
- TaskNo = result.TaskList.TaskNo,
- EndLocate = result.TaskList.EndLocate,
- EndRoadway = result.TaskList.EndRoadway
- };
+ var taskAdd = new WcsTask()
+ {
+ TaskNo = result.TaskList.TaskNo,
+ TaskType = TaskTypeEnum.In,
+ Status = TaskStatusEnum.Wait,
+ //IsSuccess =TaskSuccessEnum.Success,
+ Origin = "WMS",
+ StartLocate = startLocat,
+ PalletNo = palletNo,
+ EndLocate = result.TaskList.EndLocate,
+ EndRoadway = result.TaskList.EndRoadway
+ };
+ _db.Insertable(taskAdd).ExecuteCommand();
+ }
+ else
+ {
+ taskUp.EndRoadway = result.TaskList.EndRoadway;
+ taskUp.EndLocate = result.TaskList.EndLocate;
+ _db.Updateable(taskUp).ExecuteCommand();
+ }
- _db.Updateable(taskAdd).ExecuteCommand();
+
returnStr = result.TaskList.EndLocate;
taskNo = result.TaskList.TaskNo;
}
--
Gitblit v1.8.0