From 639f5a744312de88aa27fbba2e7f27eb52287ed6 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期三, 10 四月 2024 15:38:32 +0800
Subject: [PATCH] 代码优化
---
项目资料/技术协议/方案介绍.pptx | 0
代码管理/WMS/WMS_Server/WIDESEA_WMS/ToMes/GetStation.cs | 49 ++++++++++++
代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/RestockHCJ.cs | 2
代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs | 15 +++
代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs | 2
项目资料/技术协议/信息化部分.docx | 0
代码管理/WMS/WMS_Server/WIDESEA_WMS/ToMes/agvTransferList.cs | 4
代码管理/WMS/WMS_Server/WIDESEA_WMS/ToMes/shiftingparking.cs | 107 ++++++++++++++++++++++++++
代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToWms/ToWMSController.cs | 39 ++++++++-
9 files changed, 207 insertions(+), 11 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/RestockHCJ.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/RestockHCJ.cs"
index 787ff0d..410a9c6 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/RestockHCJ.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/RestockHCJ.cs"
@@ -36,7 +36,7 @@
{
if (task.agv_tasktype == "TaskType_EmptyPallet")//绌烘墭浠诲姟
{
- if (task.agv_fromaddress == "")
+ if (task.agv_fromaddress == "" && DateTime.Now - task.agv_createtime >= TimeSpan.FromMinutes(5))
{
var Pipeline_client = PLCClient.Clients.FirstOrDefault(t => t.PLCName == "閾炬潯鏈�");
if (Pipeline_client == null) throw new Exception("閾炬潯鏈鸿皟搴︽湇鍔℃湭寮�鍚紒");
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs"
index 71cfa50..b1824b5 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs"
@@ -67,7 +67,18 @@
/// <param name="task"></param>
public static void Updateinventory(dt_agvtask task)
{
- if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString())
+ VOLContext context = new VOLContext();
+ Idt_inventoryRepository inventoryRepository = new dt_inventoryRepository(context);
+ if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Carry.ToString())
+ {
+ var inventorys = inventoryRepository.Find(x => x.stationCode == task.agv_fromaddress).ToList();
+ foreach (var inventory in inventorys)
+ {
+ inventory.stationCode = task.agv_toaddress;
+ inventoryRepository.Update(inventory, true);
+ }
+ }
+ else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString())
{
string[] bindSNs = task.bindSN.Split(",");
int count = 0;
@@ -171,7 +182,7 @@
station2.stationType = task.agv_materielid;
station2.tray_status = task.agv_TrayStatus;//妯斁/绔栨斁
station2.tray_type = task.agv_Traytype;
- station2.lastUpdateTime=DateTime.Now;
+ station2.lastUpdateTime = DateTime.Now;
stationinfoRepository.Update(station2, true);
}
else if (task.agv_taskstate == AGVTaskStateEnum.Complete.ToString())
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/GetStation.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/GetStation.cs"
new file mode 100644
index 0000000..013431f
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/GetStation.cs"
@@ -0,0 +1,49 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.EFDbContext;
+using WIDESEA_Core.Utilities;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_WMS.IRepositories;
+using WIDESEA_WMS.Repositories;
+
+namespace WIDESEA_WMS
+{
+ public partial class ToMesServer
+ {
+ /// <summary>
+ /// 閫氳繃SN鍙疯幏鍙栬揣浣�
+ /// </summary>
+ /// <param name="saveModel"></param>
+ /// <returns></returns>
+ public WebResponseContent GetStation(SaveModel saveModel)
+ {
+ WebResponseContent content = new WebResponseContent();
+ VOLContext context = new VOLContext();
+ Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context);
+ Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context);
+ Idt_inventoryRepository inventoryRepository = new dt_inventoryRepository(context);
+ try
+ {
+ string sn = saveModel.MainData["from_address"].ToString();
+ dt_inventory inventory = inventoryRepository.Find(x => x.SN.Contains(sn)).FirstOrDefault();
+ if (inventory == null)
+ {
+ return content.Error($"鏈壘鍒皗sn}搴撳瓨淇℃伅,璇锋牳鏌ュ簱瀛樿褰�!");
+ }
+ var station = stationinfoRepository.Find(x => x.stationCode == inventory.stationCode).FirstOrDefault();
+ if (agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode || x.agv_toaddress == station.stationCode).Any())
+ return content.Error($"搴撲綅{station.stationCode}瀛樺湪AGV浠诲姟锛岃鏍稿疄锛�");
+ content.Code = station.stationCode;
+ content.OK();
+ }
+ catch (Exception ex)
+ {
+
+ }
+ return content;
+ }
+ }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/agvTransferList.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/agvTransferList.cs"
index 4be7204..933f469 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/agvTransferList.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/agvTransferList.cs"
@@ -54,8 +54,8 @@
return content.Error($"鏃犳杞﹁疆{sn}SN鍙�,璇锋牳鏌ュ簱瀛樿褰�!");
}
var station = stationinfoRepository.Find(x => x.stationCode == inventory.stationCode).FirstOrDefault();
- if (!station.enable) return content.Error($"搴撲綅{station.stationCode}鏈惎鐢紝璇锋牳瀹烇紒");
- if (agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode).Any())
+ //if (!station.enable) return content.Error($"搴撲綅{station.stationCode}鏈惎鐢紝璇锋牳瀹烇紒");
+ if (agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode || x.agv_toaddress == station.stationCode).Any())
return content.Error($"搴撲綅{station.stationCode}瀛樺湪AGV浠诲姟锛岃鏍稿疄锛�");
List<detail> list = new List<detail>(); //杞﹁疆淇℃伅
foreach (var item in station.bindSN.Split(","))
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/shiftingparking.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/shiftingparking.cs"
new file mode 100644
index 0000000..dfc9c30
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/shiftingparking.cs"
@@ -0,0 +1,107 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Comm;
+using WIDESEA_Comm.TaskNo;
+using WIDESEA_Common;
+using WIDESEA_Core.EFDbContext;
+using WIDESEA_Core.Utilities;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_WMS.IRepositories;
+using WIDESEA_WMS.Repositories;
+using static FreeSql.Internal.GlobalFilter;
+using static System.Collections.Specialized.BitVector32;
+
+namespace WIDESEA_WMS
+{
+ public partial class ToMesServer
+ {
+ /// <summary>
+ /// 搴撳唴绉诲簱
+ /// </summary>
+ /// <param name="saveModel"></param>
+ /// <returns></returns>
+ /// <exception cref="NotImplementedException"></exception>
+ public WebResponseContent shiftingparking(SaveModel saveModel)
+ {
+ WebResponseContent content = new WebResponseContent();
+ VOLContext context = new VOLContext();
+ Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context);
+ Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context);
+ Idt_inventoryRepository inventoryRepository = new dt_inventoryRepository(context);
+ try
+ {
+ string user = saveModel.MainData["creator"].ToString();
+ string from_address = saveModel.MainData["from_address"].ToString();
+ string to_address = saveModel.MainData["to_address"].ToString();
+ var station1 = stationinfoRepository.Find(t => t.stationCode == from_address).FirstOrDefault();
+ if (station1 == null) return content.Error("璇疯緭鍏ユ纭殑璧风偣鍦板潃锛�");
+ var station2 = stationinfoRepository.Find(t => t.stationCode == to_address).FirstOrDefault();
+ if (station2 == null) return content.Error("璇疯緭鍏ユ纭殑璧风偣鍦板潃锛�");
+ if (!station1.tray_type.Contains("Small") && station2.area != "4")
+ throw new Exception($"澶ф墭鐩樺彧鑳藉瓨鏀惧湪搴撳尯4锛�");
+ if (agvtaskRepository.Find(x => x.agv_fromaddress.Contains(from_address) || x.agv_toaddress.Contains(from_address)).Any())
+ throw new Exception($"璧风偣{from_address}宸插瓨鍦ㄤ换鍔★紒");
+ if (agvtaskRepository.Find(x => x.agv_fromaddress.Contains(to_address) || x.agv_toaddress.Contains(to_address)).Any())
+ throw new Exception($"缁堢偣{to_address}宸插瓨鍦ㄤ换鍔★紒");
+ if (station1.location_state != LocationStateEnum.Stroge.ToString())
+ throw new Exception($"璧风偣{from_address}涓嶆槸鏈夎揣锛�");
+ if (station2.location_state != LocationStateEnum.Empty.ToString())
+ throw new Exception($"缁堢偣{to_address}涓嶆槸绌鸿揣浣嶏紒");
+ if (string.IsNullOrEmpty(station1.stationType))
+ throw new Exception($"璧风偣{from_address}鏈粦瀹氱墿鏂欑被鍨嬶紒");
+
+ if (station2.area == "1")
+ {
+ if (stationinfoRepository.Find(x => x.area == station2.area && x.column == station2.column && x.location_state != LocationStateEnum.Empty.ToString() && x.stationType != station1.stationType).Any())
+ throw new Exception($"缁堢偣{to_address}鍚屽垪瀛樺湪涓庤捣鐐圭墿鏂欑被鍨嬩笉鍖归厤锛�");
+ }
+ else
+ {
+ if (stationinfoRepository.Find(x => x.area == station2.area && x.line == station2.line && x.location_state != LocationStateEnum.Empty.ToString() && x.stationType != station1.stationType).Any())
+ throw new Exception($"缁堢偣{to_address}鍚岃瀛樺湪涓庤捣鐐圭墿鏂欑被鍨嬩笉鍖归厤锛�");
+ }
+ var inventory = inventoryRepository.Find(x => x.stationCode == station1.stationCode).FirstOrDefault();
+ if (inventory == null) throw new Exception($"璧风偣{from_address}鏈壘鍒板簱瀛樹俊鎭紒");
+
+ dt_agvtask agvtask = new dt_agvtask()
+ {
+ agv_fromaddress = station1.stationCode,
+ agv_id = Guid.NewGuid(),
+ agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
+ agv_grade = 1,
+ agv_createtime = DateTime.Now,
+ agv_taskstate = "Create",
+ agv_materielid = station1.stationType,
+ agv_qty = station1.quantity,
+ agv_tasktype = AGVTaskTypeEnum.TaskType_Carry.ToString(),
+ agv_toaddress = station2.stationCode,
+ agv_userid = user,//"绯荤粺",
+ jobID = station1.Number,// mes_head.jobID,
+ bindSN = station1.bindSN,
+ agv_worktype = 0, //Convert.ToInt32(mes_head.processCode),
+ agv_materbarcode = inventory.materialCode,
+ agv_Traytype = station1.tray_type,
+ agv_TrayStatus = station1.tray_status
+ };
+ agvtaskRepository.Add(agvtask, true);
+ station1.location_state = LocationStateEnum.OutBusy.ToString();
+ stationinfoRepository.Update(station1, true);
+ station2.location_state = LocationStateEnum.InBusy.ToString();
+ station2.heatNumber = station1.heatNumber;
+ station2.Number = station1.Number;
+ station2.stationType = station1.stationType;
+ stationinfoRepository.Update(station2, true);
+ content.OK();
+
+ }
+ catch (Exception ex)
+ {
+ content.Error($"鍛煎彨AGV澶辫触:{ex.Message}");
+ }
+ return content;
+ }
+ }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs"
index 371f541..16b2404 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs"
@@ -12,7 +12,7 @@
[Invoke(Begin = "2024-01-01 00:00", Interval = 1000 * 5, /*IsEnabled = true,*/ SkipWhileExecuting = true)]
public void TaskTime()
{
- AGVServer.SendAgvTask();
+ //AGVServer.SendAgvTask();
}
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToWms/ToWMSController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToWms/ToWMSController.cs"
index a486605..605c66e 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToWms/ToWMSController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToWms/ToWMSController.cs"
@@ -12,7 +12,9 @@
public class ToWMSController : ControllerBase
{
private static readonly object OutsourceInboundobj = new object();
- private static readonly object agvTransferListbj = new object();
+ private static readonly object agvTransferListobj = new object();
+ private static readonly object shiftingparkingobj = new object();
+ private static readonly object GetStationobj = new object();
/// <summary>
/// 绉诲簱锛堟墜鍔紝涓存椂锛�
/// </summary>
@@ -24,22 +26,49 @@
return new ToMesServer().AddToFloat3(request);
}
-
/// <summary>
- /// 澶栧崗绉诲簱
+ /// 绉诲簱澶栧崗
/// </summary>
- /// <param name="request"></param>
+ /// <param name="saveModel"></param>
/// <returns></returns>
[HttpPost, Route("agvTransferList")]
public WebResponseContent agvTransferList([FromBody] SaveModel saveModel)
{
- lock (agvTransferListbj)
+ lock (agvTransferListobj)
{
return new ToMesServer().agvTransferList(saveModel);
}
}
/// <summary>
+ /// 鑾峰彇璐т綅
+ /// </summary>
+ /// <param name="request"></param>
+ /// <returns></returns>
+ [HttpPost, Route("GetStation")]
+ public WebResponseContent GetStation([FromBody] SaveModel saveModel)
+ {
+ lock (GetStationobj)
+ {
+ return new ToMesServer().GetStation(saveModel);
+ }
+ }
+
+ /// <summary>
+ /// 搴撳唴绉诲簱
+ /// </summary>
+ /// <param name="request"></param>
+ /// <returns></returns>
+ [HttpPost, Route("shiftingparking")]
+ public WebResponseContent shiftingparking([FromBody] SaveModel saveModel)
+ {
+ lock (shiftingparkingobj)
+ {
+ return new ToMesServer().shiftingparking(saveModel);
+ }
+ }
+
+ /// <summary>
/// 澶栧崗鍑哄簱(妫�娴嬩笂鏂�)
/// </summary>
/// <param name="request"></param>
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\212\200\346\234\257\345\215\217\350\256\256/\344\277\241\346\201\257\345\214\226\351\203\250\345\210\206.docx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\212\200\346\234\257\345\215\217\350\256\256/\344\277\241\346\201\257\345\214\226\351\203\250\345\210\206.docx"
new file mode 100644
index 0000000..6da1f40
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\212\200\346\234\257\345\215\217\350\256\256/\344\277\241\346\201\257\345\214\226\351\203\250\345\210\206.docx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\212\200\346\234\257\345\215\217\350\256\256/\346\226\271\346\241\210\344\273\213\347\273\215.pptx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\212\200\346\234\257\345\215\217\350\256\256/\346\226\271\346\241\210\344\273\213\347\273\215.pptx"
new file mode 100644
index 0000000..24f33a5
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\212\200\346\234\257\345\215\217\350\256\256/\346\226\271\346\241\210\344\273\213\347\273\215.pptx"
Binary files differ
--
Gitblit v1.9.3