From 5c272c606bdf2da3577dbaa5f48d0ee163f1e7d2 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期四, 26 三月 2026 10:35:24 +0800
Subject: [PATCH] 纸张淋膜半成品入库逻辑优化
---
项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs | 2
项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/AGV_CPExtend.cs | 2
项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/原料库/StackerCraneJob_YLSC3.cs | 1
项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs | 110 ++++++++++++++++++++++++++++++------------------------
项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/原料库/StackerCraneJob_YLSC2.cs | 1
5 files changed, 65 insertions(+), 51 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
index b2b9f9c..0afff24 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -231,7 +231,7 @@
return WebResponseContent.Instance.Error($"鏈壘鍒扮珯鍙伴厤缃俊鎭�");
}
//鑾峰彇璺敱淇℃伅
- List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && (item.SourceAddress == x.StartPosi || item.RoadWay == x.StartPosi) && x.Depth==1);
+ List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && (item.SourceAddress == x.StartPosi || item.RoadWay == x.StartPosi || stationManger.StationDeviceCode==x.StartPosi) && x.Depth==1);
router = routers.FirstOrDefault();
if (router == null)
{
@@ -251,7 +251,7 @@
}
else
{
- task.CurrentAddress = router.StartPosi;
+ task.CurrentAddress = router.StartPosi == "AGV" ? item.SourceAddress : router.StartPosi;
task.NextAddress = router.NextPosi;
task.DeviceCode = router.ChildPosiDeviceCode;
}
@@ -701,7 +701,15 @@
else
return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && x.CurrentAddress == currentAddress && x.TaskState == (int)TaskStatusEnum.SC_Execute, TaskOrderBy);
}
- private static int OldorNew = 0;
+ private static Dictionary<string, int> dict = new Dictionary<string, int>
+ {
+ { "SC01_YL", 0 },
+ { "SC02_YL", 0 },
+ { "SC03_YLDual", 0 },
+ { "SC04_YLDual", 0 },
+ { "SC05_YLDual", 0 }
+ };
+ private readonly static object lockerOldorNew = new object();
/// <summary>
/// 鍘熸枡搴撲换鍔℃煡璇�
/// </summary>
@@ -710,66 +718,70 @@
/// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄锛屽彲鑳戒负null</returns>
public Dt_Task QueryStackerYLTask(string deviceNo,TaskTypeGroup? taskTypeGroup= null)
{
- if (taskTypeGroup == null)
+ lock (lockerOldorNew)
{
- Dt_Task taskSend = BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && x.TaskState == (int)TaskStatusEnum.SC_Execute && x.TaskType != TaskTypeEnum.OldYLOutbound.ObjToInt(), TaskOrderBy);
- if (taskSend == null)
+ int OldorNew = dict[deviceNo];
+ if (taskTypeGroup == null)
{
- OldorNew = 1;
- List<Dt_Task> specificTasks = BaseDal.QueryData(t => t.DeviceCode == deviceNo && t.TaskState == (int)TaskStatusEnum.SC_Execute && t.TaskType == TaskTypeEnum.OldYLOutbound.ObjToInt()).OrderBy(t => t.CreateDate.Date)
- .ThenBy(t => t.Grade)
- .ThenBy(t => t.TaskNum)
- .ToList();
- if (specificTasks.Any())
+ Dt_Task taskSend = BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && x.TaskState == (int)TaskStatusEnum.SC_Execute && x.TaskType != TaskTypeEnum.OldYLOutbound.ObjToInt(), TaskOrderBy);
+ if (taskSend == null || OldorNew == 0)
{
- //鏍规嵁鏃堕棿绛涙煡涓ユ牸鎺掑簭
- Dt_Task taskCheck = BaseDal.QueryData(t => t.TaskState == (int)TaskStatusEnum.SC_Execute && t.TaskType == TaskTypeEnum.OldYLOutbound.ObjToInt()).OrderBy(t => t.CreateDate.Date)
- .ThenBy(t => t.Grade)
- .ThenBy(t => t.TaskNum)
- .FirstOrDefault();
- Dt_Task taskCheckSend = specificTasks.FirstOrDefault();
- if (taskCheck.CreateDate.Date == taskCheckSend.CreateDate.Date && taskCheckSend.Grade <= taskCheck.Grade)
+ dict[deviceNo] = 1;
+ List<Dt_Task> specificTasks = BaseDal.QueryData(t => t.DeviceCode == deviceNo && t.TaskState == (int)TaskStatusEnum.SC_Execute && t.TaskType == TaskTypeEnum.OldYLOutbound.ObjToInt()).OrderBy(t => t.CreateDate.Date)
+ .ThenBy(t => t.Grade)
+ .ThenBy(t => t.TaskNum)
+ .ToList();
+ if (specificTasks.Any())
{
- taskSend = taskCheckSend;
+ //鏍规嵁鏃堕棿绛涙煡涓ユ牸鎺掑簭
+ Dt_Task taskCheck = BaseDal.QueryData(t => t.TaskState == (int)TaskStatusEnum.SC_Execute && t.TaskType == TaskTypeEnum.OldYLOutbound.ObjToInt()).OrderBy(t => t.CreateDate.Date)
+ .ThenBy(t => t.Grade)
+ .ThenBy(t => t.TaskNum)
+ .FirstOrDefault();
+ Dt_Task taskCheckSend = specificTasks.FirstOrDefault();
+ if (taskCheck.CreateDate.Date == taskCheckSend.CreateDate.Date && taskCheckSend.Grade <= taskCheck.Grade)
+ {
+ taskSend = taskCheckSend;
+ }
}
}
+ else
+ {
+ dict[deviceNo] = 0;
+ }
+ return taskSend;
}
else
{
- OldorNew = 0;
- }
- return taskSend;
- }
- else
- {
- Dt_Task taskSend = null;
- if (OldorNew == 0)
- {
- OldorNew = 1;
- List<Dt_Task> specificTasks = BaseDal.QueryData(t => t.DeviceCode == deviceNo && t.TaskState == (int)TaskStatusEnum.SC_Execute && t.TaskType == TaskTypeEnum.OldYLOutbound.ObjToInt()).OrderBy(t => t.CreateDate.Date)
- .ThenBy(t => t.Grade)
- .ThenBy(t => t.TaskNum)
- .ToList();
- if (specificTasks.Any())
+ Dt_Task taskSend = null;
+ if (OldorNew == 0)
{
- //鏍规嵁鏃堕棿绛涙煡涓ユ牸鎺掑簭
- Dt_Task taskCheck = BaseDal.QueryData(t => t.TaskState == (int)TaskStatusEnum.SC_Execute && t.TaskType == TaskTypeEnum.OldYLOutbound.ObjToInt()).OrderBy(t => t.CreateDate.Date)
- .ThenBy(t => t.Grade)
- .ThenBy(t => t.TaskNum)
- .FirstOrDefault();
- Dt_Task taskCheckSend = specificTasks.FirstOrDefault();
- if (taskCheck.CreateDate.Date == taskCheckSend.CreateDate.Date && taskCheckSend.Grade <= taskCheck.Grade)
+ dict[deviceNo] = 1;
+ List<Dt_Task> specificTasks = BaseDal.QueryData(t => t.DeviceCode == deviceNo && t.TaskState == (int)TaskStatusEnum.SC_Execute && t.TaskType == TaskTypeEnum.OldYLOutbound.ObjToInt()).OrderBy(t => t.CreateDate.Date)
+ .ThenBy(t => t.Grade)
+ .ThenBy(t => t.TaskNum)
+ .ToList();
+ if (specificTasks.Any())
{
- taskSend = taskCheckSend;
+ //鏍规嵁鏃堕棿绛涙煡涓ユ牸鎺掑簭
+ Dt_Task taskCheck = BaseDal.QueryData(t => t.TaskState == (int)TaskStatusEnum.SC_Execute && t.TaskType == TaskTypeEnum.OldYLOutbound.ObjToInt()).OrderBy(t => t.CreateDate.Date)
+ .ThenBy(t => t.Grade)
+ .ThenBy(t => t.TaskNum)
+ .FirstOrDefault();
+ Dt_Task taskCheckSend = specificTasks.FirstOrDefault();
+ if (taskCheck.CreateDate.Date == taskCheckSend.CreateDate.Date && taskCheckSend.Grade <= taskCheck.Grade)
+ {
+ taskSend = taskCheckSend;
+ }
}
}
+ else
+ {
+ dict[deviceNo] = 0;
+ taskSend = BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskType != TaskTypeEnum.OldYLOutbound.ObjToInt() && x.TaskState == (int)TaskStatusEnum.SC_Execute, TaskOrderBy);
+ }
+ return taskSend;
}
- else
- {
- OldorNew = 0;
- taskSend = BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskType != TaskTypeEnum.OldYLOutbound.ObjToInt() && x.TaskState == (int)TaskStatusEnum.SC_Execute, TaskOrderBy);
- }
- return taskSend;
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\345\216\237\346\226\231\345\272\223/StackerCraneJob_YLSC2.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\345\216\237\346\226\231\345\272\223/StackerCraneJob_YLSC2.cs"
index 1a30800..7d2d674 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\345\216\237\346\226\231\345\272\223/StackerCraneJob_YLSC2.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\345\216\237\346\226\231\345\272\223/StackerCraneJob_YLSC2.cs"
@@ -307,6 +307,7 @@
{
task.ExceptionMessage = "鍑哄簱绔欏彴鏃犳硶涓嬪彂";
_taskRepository.UpdateData(task);
+ WriteInfo(task.DeviceCode, $"鍑哄簱绔欏彴鏃犳硶涓嬪彂");
}
}
else
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\345\216\237\346\226\231\345\272\223/StackerCraneJob_YLSC3.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\345\216\237\346\226\231\345\272\223/StackerCraneJob_YLSC3.cs"
index 8633163..eb621f9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\345\216\237\346\226\231\345\272\223/StackerCraneJob_YLSC3.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\345\216\237\346\226\231\345\272\223/StackerCraneJob_YLSC3.cs"
@@ -360,6 +360,7 @@
{
task.ExceptionMessage = "鍑哄簱绔欏彴鏃犳硶涓嬪彂";
_taskRepository.UpdateData(task);
+ WriteInfo(task.DeviceCode, $"鍑哄簱绔欏彴鏃犳硶涓嬪彂");
}
}
else
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs"
index 5f7ccb2..c623560 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs"
@@ -103,7 +103,7 @@
throw new Exception("鏈壘鍒癆GV绔欑偣");
}
//鍙栨斁浠诲姟妯$増
- if (stationMangerStart.StationCode.Contains("PNT") && !stationMangerEnd.StationCode.Contains("PNT") && stationMangerEnd.IsManual==0)//璇锋眰鏀�
+ if ((stationMangerStart.StationCode.Contains("PNT") || stationMangerStart.StationCode.Contains("-")) && !stationMangerEnd.StationCode.Contains("PNT") && stationMangerEnd.IsManual==0)//璇锋眰鏀�
{
agvTaskSend.TaskCode = "DUIGAO1";
if (stationMangerStart.StationType == 998 || stationMangerEnd.StationType == 998)//娼滀紡椤跺崌杞�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
index 8a4bc01..1b3794c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
@@ -2073,7 +2073,7 @@
NextAddress = "",
PalletCode = item.BarCode,
Roadway = "",
- SourceAddress = CheckPointCode.AGVStationCode,
+ SourceAddress = item.PointCode.StartsWith("YS") ? CheckPointCode.AGVStationCode : CheckPointCode.MESPointCode,
TargetAddress = "",
TaskType = 0,
TaskStatus = TaskStatusEnum.New.ObjToInt(),
--
Gitblit v1.9.3