From b88ee5645e19de8e43254d5c312b97adae5c9897 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 13 六月 2024 15:55:30 +0800
Subject: [PATCH] 新增协议

---
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs |   27 ++++++++++++++++++++-------
 1 files changed, 20 insertions(+), 7 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
index 6230dc3..befac78 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
@@ -28,6 +28,7 @@
 using WIDESEA_Comm;
 using WIDESEA_Comm.TaskNo;
 using WIDESEA_Common;
+using static FreeSql.Internal.GlobalFilter;
 
 namespace WIDESEA_WMS.Services
 {
@@ -111,20 +112,25 @@
             VOLContext context = new VOLContext();
             Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context);
             IVV_Mes_WorkinfoRepository workinfoRepository = new VV_Mes_WorkinfoRepository(context);
-            string completor = UserContext.Current.UserName;
             foreach (var Key in saveModel.DelKeys)
             {
                 try
                 {
                     var station = repository.Find(x => x.id.ToString() == Key.ToString()).FirstOrDefault();
-                    if (!station.stationCode.Contains("X")) throw new Exception($"鏃爗station.stationCode}浣跨敤鏉冮檺锛�");
+                    if (!station.stationCode.Contains("X") && !station.stationCode.Contains("W01001004") && !station.stationCode.Contains("W01001005")) throw new Exception($"鏃爗station.stationCode}浣跨敤鏉冮檺锛�");
                     if (!station.enable) throw new Exception($"{station.stationCode}鏈惎鐢紒");
                     if (station.location_state == LocationStateEnum.Abnormal.ToString()) throw new Exception($"{station.stationCode}鐘舵�佸紓甯革紒");
                     if (station.location_state == LocationStateEnum.Empty.ToString()) throw new Exception($"{station.stationCode}鐘舵�佷负绌猴紒");
                     if (station.remark == "妗佹灦涓嬫枡") throw new Exception($"{station.stationCode}妗佹灦姝e湪涓嬫枡锛�");
-                    if (agvtaskRepository.Find(x => x.agv_toaddress == station.stationCode).Any()) throw new Exception($"{station.stationCode}瀛樺湪浠诲姟锛�");
-                    
-                    if (!agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode).Any())
+
+                    var task = agvtaskRepository.Find(x => x.agv_toaddress == station.stationCode).FirstOrDefault();
+                    if (task != null)
+                    {
+                        if (task.agv_taskstate != AGVTaskStateEnum.Queue.ToString()) throw new Exception($"{station.stationCode}瀛樺湪浠诲姟锛�");
+                        task.agv_Traytype = station.tray_type == TrayTypeEnum.SmallTray.ToString() ? TrayTypeEnum.LargeTray.ToString() : TrayTypeEnum.SmallTray.ToString();
+                        agvtaskRepository.Update(task, x => new { x.agv_Traytype }, true);
+                    }
+                    else if (!agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode).Any())
                     {
                         #region 涓虹┖鎵樺苟涓旀暟閲忎负0,鍒涘缓鍙栫┖鎵樹换鍔�
                         if (station.tray_status == TrayStateEnum.EmptyTray.ToString() && station.quantity == 0)
@@ -194,6 +200,7 @@
                     webResponse.Error(webResponse.Message += ex.Message);
                 }
             }
+            WriteDBLog.Write($"鎵嬪姩鍒囨崲鎵樼洏 ", new { 淇℃伅 = webResponse.Message }, LogState.Sucess, "WMS", UserContext.Current.UserName);
             return webResponse;
         }
         /// <summary>
@@ -208,6 +215,7 @@
             Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context);
             IVV_Mes_WorkinfoRepository workinfoRepository = new VV_Mes_WorkinfoRepository(context);
             string completor = UserContext.Current.UserName;
+            //List<object> jsons = null;
             foreach (var Key in saveModel.DelKeys)
             {
                 try
@@ -224,6 +232,9 @@
                     if (agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode || x.agv_fromaddress == station.stationCode).Any()) throw new Exception($"{station.stationCode}瀛樺湪浠诲姟锛�");
                     var Work = workinfoRepository.Find(x => x.workOrder == station.Number && x.processCode == "17").FirstOrDefault();
                     if (Work == null) throw new Exception($"鏈壘鍒拌揣浣峽station.stationCode}鐨勬満鍔犲伐宸ュ崟淇℃伅锛�");
+                    string tasktype = AGVTaskTypeEnum.TaskType_Inbound.ToString();
+                    if (!string.IsNullOrEmpty(Work.area) || station.stationCode.Contains("3"))
+                        tasktype = AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString();
                     dt_agvtask agvtask = new dt_agvtask()
                     {
                         agv_fromaddress = station.stationCode,
@@ -234,9 +245,9 @@
                         agv_taskstate = AGVTaskStateEnum.Queue.ToString(),
                         agv_materielid = station.stationType,
                         agv_qty = station.quantity,
-                        agv_tasktype = station.stationCode.Contains("3") ? AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString() : AGVTaskTypeEnum.TaskType_Inbound.ToString(),
+                        agv_tasktype = tasktype,
                         agv_toaddress = "",
-                        agv_userid = UserContext.Current.UserName,
+                        agv_userid = completor,
                         bindSN = station.bindSN,
                         agv_worktype = Convert.ToInt32(Work.processCode),
                         agv_materbarcode = Work.materialCode,
@@ -244,6 +255,7 @@
                         jobID = station.Number,
                         agv_TrayStatus = station.tray_status
                     };
+                    //jsons.Add(agvtask);
                     agvtaskRepository.Add(agvtask, true);
                     station.location_state = LocationStateEnum.InBusy.ToString();
                     repository.Update(station, x => new { x.location_state }, true);
@@ -254,6 +266,7 @@
                     webResponse.Error(webResponse.Message += ex.Message);
                 }
             }
+            WriteDBLog.Write($"鎵嬪姩涓嬫枡浠诲姟 ", new { 淇℃伅 = webResponse.Message }, LogState.Sucess, "WMS", completor);
             return webResponse;
         }
 

--
Gitblit v1.9.3