From 73a926018601d9a5a5a3d3f4c051537f45a8eff4 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 14 三月 2024 09:33:38 +0800
Subject: [PATCH] 优化代码逻辑
---
代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/OutboundTask.cs | 195 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 152 insertions(+), 43 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/OutboundTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/OutboundTask.cs"
index 63bafd4..ff73eea 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/OutboundTask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/OutboundTask.cs"
@@ -31,53 +31,162 @@
var mes_heads = freeDB.Select<dt_mes_head>().Where(x => x.processCode == "28").OrderBy(x => x.expectedStartTime).ToList();
foreach (var mes_head in mes_heads)
{
- //var inventorys = freeDB.Select<dt_inventory>().Where(x => x.FigureNumber == mes_head.drawingNo).OrderBy.ToList();
- var station = stationinfoRepository.Find(x => x.stationType == mes_head.drawingNo && x.line != x.line).OrderBy(x => x.line).ThenByDescending(x => x.column).FirstOrDefault();
- bool ok = false;
- List<string> list = new List<string>();
- if (station != null && station.location_state == LocationStateEnum.Stroge.ToString() && station.enable)
+ #region 鏍规嵁搴撳瓨鍏ュ簱鏃堕棿鏈�鏅氭煡璇�
+ var inventory = freeDB.Select<dt_inventory>().Where(x => x.FigureNumber == mes_head.drawingNo).OrderByDescending(x => x.OnlineTime).First();
+ if (inventory != null)
{
- var SNS = station.bindSN.Split(",");
- foreach (var SN in SNS)
+ var Station = stationinfoRepository.Find(x => x.stationCode == inventory.stationCode).FirstOrDefault();
+ if (Station != null)
{
- if (!string.IsNullOrEmpty(SN))
- list.Add(SN);
+ var stationinfo = stationinfoRepository.Find(x => x.line == Station.line && x.area == Station.area && x.enable).OrderByDescending(x => x.column).FirstOrDefault();
+ if (stationinfo != null)
+ {
+ if (stationinfo.bindSN == null)
+ throw new Exception(stationinfo.stationCode + "杞﹁疆SN鍙蜂俊鎭紓甯�!");
+ List<string> lists = new List<string>();
+ var SNS = stationinfo.bindSN.Split(",");
+ foreach (var SN in SNS)
+ {
+ if (!string.IsNullOrEmpty(SN))
+ lists.Add(SN);
+ }
+ foreach (var item in lists)
+ {
+ if (freeDB.Select<dt_mes_detail>().Where(x => x.jobID == mes_head.jobID && x.SN == item).Any())
+ {
+ dt_agvtask agvtask = new dt_agvtask()
+ {
+ agv_fromaddress = stationinfo.stationCode,
+ agv_id = Guid.NewGuid(),
+ agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
+ agv_grade = 1,
+ agv_createtime = DateTime.Now,
+ agv_taskstate = "Queue",
+ agv_materielid = stationinfo.stationType,
+ agv_qty = stationinfo.quantity,
+ agv_tasktype = "TaskType_Outbound",
+ agv_toaddress = "",
+ agv_userid = "绯荤粺",
+ bindSN = stationinfo.bindSN,
+ agv_worktype = Convert.ToInt32(mes_head.processCode),
+ agv_materbarcode = mes_head.materialCode,
+ agv_Traytype = stationinfo.tray_type,
+ agv_TrayStatus = stationinfo.tray_status
+ };
+ dt_stationinfo TargetLocation = GetEmptyLocation(stationinfoRepository);
+ if (TargetLocation != null)
+ {
+ agvtask.agv_taskstate = "Create";
+ agvtask.agv_toaddress = TargetLocation.stationCode;
+ TargetLocation.location_state = LocationStateEnum.Busy.ToString();
+ freeDB.Update(TargetLocation);
+ }
+ freeDB.Add(agvtask);
+ return;
+ }
+ }
+ }
+ stationinfo = stationinfoRepository.Find(x => x.stationType == mes_head.drawingNo && x.line != Station.line).OrderBy(x => x.line).ThenByDescending(x => x.column).FirstOrDefault();
+ if (stationinfo != null && stationinfo.enable)
+ {
+ if (stationinfo.bindSN == null)
+ throw new Exception(stationinfo.stationCode + "杞﹁疆SN鍙蜂俊鎭紓甯�!");
+ List<string> lists = new List<string>();
+ var SNS = stationinfo.bindSN.Split(",");
+ foreach (var SN in SNS)
+ {
+ if (!string.IsNullOrEmpty(SN))
+ lists.Add(SN);
+ }
+ foreach (var item in lists)
+ {
+ if (freeDB.Select<dt_mes_detail>().Where(x => x.jobID == mes_head.jobID && x.SN == item).Any())
+ {
+ dt_agvtask agvtask = new dt_agvtask()
+ {
+ agv_fromaddress = stationinfo.stationCode,
+ agv_id = Guid.NewGuid(),
+ agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
+ agv_grade = 1,
+ agv_createtime = DateTime.Now,
+ agv_taskstate = "Queue",
+ agv_materielid = stationinfo.stationType,
+ agv_qty = stationinfo.quantity,
+ agv_tasktype = "TaskType_Outbound",
+ agv_toaddress = "",
+ agv_userid = "绯荤粺",
+ bindSN = stationinfo.bindSN,
+ agv_worktype = Convert.ToInt32(mes_head.processCode),
+ agv_materbarcode = mes_head.materialCode,
+ agv_Traytype = stationinfo.tray_type,
+ agv_TrayStatus = stationinfo.tray_status
+ };
+ dt_stationinfo TargetLocation = GetEmptyLocation(stationinfoRepository);
+ if (TargetLocation != null)
+ {
+ agvtask.agv_taskstate = "Create";
+ agvtask.agv_toaddress = TargetLocation.stationCode;
+ TargetLocation.location_state = LocationStateEnum.Busy.ToString();
+ freeDB.Update(TargetLocation);
+ }
+ freeDB.Add(agvtask);
+ return;
+ }
+ }
+ }
}
}
- foreach (var SN in list)
- {
- if (ok = freeDB.Select<dt_mes_detail>().Where(x => x.jobID == mes_head.jobID && x.SN == SN).Any()) continue;
- }
- if (ok)
- {
- dt_agvtask agvtask = new dt_agvtask()
- {
- agv_fromaddress = station.stationCode,
- agv_id = Guid.NewGuid(),
- agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
- agv_grade = 1,
- agv_createtime = DateTime.Now,
- agv_taskstate = "Queue",
- agv_materielid = station.stationType,
- agv_qty = station.quantity,
- agv_tasktype = "TaskType_Outbound",
- agv_toaddress = "",
- agv_userid = "绯荤粺",
- bindSN = station.bindSN,
- agv_worktype = Convert.ToInt32(mes_head.processCode),
- agv_materbarcode = mes_head.materialCode,
- agv_barcode = station.tray_type
- };
- dt_stationinfo TargetLocation = GetEmptyLocation(stationinfoRepository);
- if (TargetLocation != null)
- {
- agvtask.agv_taskstate = "Create";
- agvtask.agv_toaddress = TargetLocation.stationCode;
- TargetLocation.location_state = LocationStateEnum.Busy.ToString();
- freeDB.Update(TargetLocation);
- }
- freeDB.Add(agvtask);
- }
+ #endregion
+
+ #region MyRegion
+ //var station = stationinfoRepository.Find(x => x.stationType == mes_head.drawingNo && x.line != x.line).OrderBy(x => x.line).ThenByDescending(x => x.column).FirstOrDefault();
+ //bool ok = false;
+ //List<string> list = new List<string>();
+ //if (station != null && station.location_state == LocationStateEnum.Stroge.ToString() && station.enable)
+ //{
+ // var SNS = station.bindSN.Split(",");
+ // foreach (var SN in SNS)
+ // {
+ // if (!string.IsNullOrEmpty(SN))
+ // list.Add(SN);
+ // }
+ //}
+ //foreach (var SN in list)
+ //{
+ // if (ok = freeDB.Select<dt_mes_detail>().Where(x => x.jobID == mes_head.jobID && x.SN == SN).Any()) continue;
+ //}
+ //if (ok)
+ //{
+ // dt_agvtask agvtask = new dt_agvtask()
+ // {
+ // agv_fromaddress = station.stationCode,
+ // agv_id = Guid.NewGuid(),
+ // agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
+ // agv_grade = 1,
+ // agv_createtime = DateTime.Now,
+ // agv_taskstate = "Queue",
+ // agv_materielid = station.stationType,
+ // agv_qty = station.quantity,
+ // agv_tasktype = "TaskType_Outbound",
+ // agv_toaddress = "",
+ // agv_userid = "绯荤粺",
+ // bindSN = station.bindSN,
+ // agv_worktype = Convert.ToInt32(mes_head.processCode),
+ // agv_materbarcode = mes_head.materialCode,
+ // agv_barcode = station.tray_type
+ // };
+ // dt_stationinfo TargetLocation = GetEmptyLocation(stationinfoRepository);
+ // if (TargetLocation != null)
+ // {
+ // agvtask.agv_taskstate = "Create";
+ // agvtask.agv_toaddress = TargetLocation.stationCode;
+ // TargetLocation.location_state = LocationStateEnum.Busy.ToString();
+ // freeDB.Update(TargetLocation);
+ // }
+ // freeDB.Add(agvtask);
+ //}
+ #endregion
+
}
}
catch (Exception)
--
Gitblit v1.9.3