From c0b82344979d5c388b8d4845757d5dd3bb7b65f0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=8C=83?= <15095123350@163.com>
Date: Mon, 22 Jul 2024 18:52:19 +0800
Subject: [PATCH] 20240722
---
.../WcsTaskApplication.cs | 273 +++++-------
src/Khd.Core.Domain/Models/WcsTask.cs | 3 +-
src/Khd.Core.Domain/Models/WmsBaseLocation.cs | 20 +-
src/Khd.Core.Plc/StaticPlcHelper.cs | 7 +-
src/Khd.Core.Wcs/MainCentralControl.cs | 5 +-
src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs | 126 +++---
src/Khd.Core.Wcs/Wcs/FirstFloor.cs | 249 ++++++-----
src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs | 260 +++---------
src/Khd.Core.Wcs/Wcs/FiveFloorBearAgv.cs | 52 +--
src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs | 129 ++----
src/Khd.Core.Wcs/Wcs/FiveFloorPoint.cs | 71 ++--
src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs | 395 ++++-------------
src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs | 251 ++++++-----
src/Khd.Core.Wcs/Wcs/SecondFloorPoint.cs | 10 +-
src/Khd.Core.Wcs/Wcs/SystemTimer.cs | 2 +-
src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs | 398 +++++-------------
src/Khd.Core.Wcs/Wcs/ThirdFloorPoint.cs | 8 +-
src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs | 10 +-
18 files changed, 791 insertions(+), 1478 deletions(-)
diff --git a/src/Khd.Core.Application/WcsTaskApplication.cs b/src/Khd.Core.Application/WcsTaskApplication.cs
index 4131d7e..b7a2000 100644
--- a/src/Khd.Core.Application/WcsTaskApplication.cs
+++ b/src/Khd.Core.Application/WcsTaskApplication.cs
@@ -54,91 +54,62 @@ namespace Khd.Core.Application
try
{
_dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
- var wcscmd = _dbContext.WcsCmd
- .Where(t => t.taskCode == agvCallbackDto.taskCode)
- .FirstOrDefault();
- if (wcscmd != null)
+ WcsTask wcsTask = _dbContext.WcsTask.FirstOrDefault(t => t.taskCode == agvCallbackDto.taskCode);
+ if (wcsTask != null)
{
- WcsTask wcsTask = _dbContext.WcsTask.FirstOrDefault(t => t.objid == wcscmd.taskId);
- if (wcsTask != null)
+ //start 开始 end结束 continue继续
+ //待取货
+ if (agvCallbackDto.method.ToLower() == "start")
{
- Console.WriteLine(agvCallbackDto.method.ToLower() + "," + wcscmd.objid + "," + wcscmd.taskCode);
- LogManager.Info(agvCallbackDto.method.ToLower() + "," + wcscmd.objid + "," + wcscmd.taskCode);
- //start 开始 end结束 continue继续
- //待取货
- if (agvCallbackDto.method.ToLower() == "start")
+ wcsTask.taskStatus = 2;
+ _dbContext.WcsTask.Update(wcsTask);
+ _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 2 });
+ _dbContext.SaveChanges();
+ reponseagvCallbackDto.code = "0";
+ reponseagvCallbackDto.message = "成功";
+ }
+ if (agvCallbackDto.method.ToLower() == "con")
+ {
+ wcsTask.taskStatus = 4;
+ _dbContext.WcsTask.Update(wcsTask);
+ _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 4 });
+ _dbContext.SaveChanges();
+ reponseagvCallbackDto.code = "0";
+ reponseagvCallbackDto.message = "成功";
+ }
+ //已取货待放货
+ if (agvCallbackDto.method.ToLower() == "continue")
+ {
+
+ wcsTask.taskStatus = 3;
+ _dbContext.WcsTask.Update(wcsTask);
+ _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 3 });
+ _dbContext.SaveChanges();
+ reponseagvCallbackDto.code = "0";
+ reponseagvCallbackDto.message = "成功";
+ }
+ //放货完成
+ if (agvCallbackDto.method.ToLower() == "end")
+ {
+ if (wcsTask.nextPointId != 10)
{
- wcscmd.cmdStatus = 2;
- wcscmd.sendFlag = 1;
- wcsTask.taskStatus = 2;
- _dbContext.WcsCmd.Update(wcscmd);
- _dbContext.WcsCmdLog.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmdLog { cmdStatus = 2 });
+ wcsTask.taskStatus = 5;
+
_dbContext.WcsTask.Update(wcsTask);
- _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 2 });
+ _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 5 });
_dbContext.SaveChanges();
reponseagvCallbackDto.code = "0";
reponseagvCallbackDto.message = "成功";
}
- if (agvCallbackDto.method.ToLower() == "con")
+ else
{
- wcscmd.sendFlag = 1;
- wcscmd.cmdStatus = 4;
- wcsTask.taskStatus = 4;
- _dbContext.WcsCmd.Update(wcscmd);
- _dbContext.WcsCmdLog.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmdLog { cmdStatus = 4 });
+ wcsTask.taskStatus = 6;
_dbContext.WcsTask.Update(wcsTask);
- _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 4 });
+ _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
_dbContext.SaveChanges();
reponseagvCallbackDto.code = "0";
reponseagvCallbackDto.message = "成功";
}
- //已取货待放货
- if (agvCallbackDto.method.ToLower() == "continue")
- {
-
- wcscmd.sendFlag = 1;
- wcscmd.cmdStatus = 3;
- wcsTask.taskStatus = 3;
- _dbContext.WcsCmd.Update(wcscmd);
- _dbContext.WcsTask.Update(wcsTask);
- _dbContext.WcsCmdLog.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmdLog { cmdStatus = 3 });
- _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 3 });
- _dbContext.SaveChanges();
- reponseagvCallbackDto.code = "0";
- reponseagvCallbackDto.message = "成功";
- }
- //放货完成
- if (agvCallbackDto.method.ToLower() == "end")
- {
- if (wcsTask.nextPointId != 10)
- {
- wcscmd.cmdStatus = 5;
- wcscmd.sendFlag = 1;
- wcsTask.taskStatus = 5;
-
- _dbContext.WcsCmd.Update(wcscmd);
- _dbContext.WcsCmdLog.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmdLog { cmdStatus = 5 });
- _dbContext.WcsTask.Update(wcsTask);
- _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 5 });
- _dbContext.SaveChanges();
- reponseagvCallbackDto.code = "0";
- reponseagvCallbackDto.message = "成功";
- }
- else
- {
- wcscmd.cmdStatus = 6;
- wcscmd.sendFlag = 1;
- wcsTask.taskStatus = 6;
- _dbContext.WcsCmd.Update(wcscmd);
- _dbContext.WcsCmdLog.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmdLog { cmdStatus = 6 });
- _dbContext.WcsTask.Update(wcsTask);
- _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
- _dbContext.SaveChanges();
- reponseagvCallbackDto.code = "0";
- reponseagvCallbackDto.message = "成功";
- }
-
- }
}
}
else
@@ -191,44 +162,29 @@ namespace Khd.Core.Application
BaseEquip baseEquip = _dbContext.BaseEquip.FirstOrDefault(t => t.equipNo == agvCompeletedRequest.endStationCode);
if (baseEquip != null)
{
- var wcsCmd = _dbContext.WcsCmd
- .Where(t => t.cmdType == 32 || t.cmdType == 48)
+ var wcsTask = _dbContext.WcsTask
+ .Where(t => t.taskType == 32 || t.taskType == 48)
.Where(t => t.nextPointId == baseEquip.objid || t.currPointId == baseEquip.objid)
.FirstOrDefault();
- if (wcsCmd != null)
+ if (wcsTask != null)
{
- WcsTask wcsTask = _dbContext.WcsTask.FirstOrDefault(t => t.objid == wcsCmd.taskId);
- if (wcsTask != null)
+ if (wcsTask.taskType != 48)
{
- if (wcsTask.taskType != 48)
- {
- wcsCmd.cmdStatus = 7;
- wcsTask.taskStatus = 7;
- _dbContext.WcsCmd.Update(wcsCmd);
- _dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(a => new WcsCmdLog { cmdStatus = 7 });
- _dbContext.WcsTask.Update(wcsTask);
- _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 7 });
- _dbContext.SaveChanges();
- agvCompeletedResponse.code = "0";
- agvCompeletedResponse.message = "成功";
- }
- else
- {
- wcsCmd.cmdStatus = 4;
- wcsTask.taskStatus = 4;
- _dbContext.WcsCmd.Update(wcsCmd);
- _dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(a => new WcsCmdLog { cmdStatus = 7 });
- _dbContext.WcsTask.Update(wcsTask);
- _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 7 });
- _dbContext.SaveChanges();
- agvCompeletedResponse.code = "0";
- agvCompeletedResponse.message = "成功";
- }
+ wcsTask.taskStatus = 7;
+ _dbContext.WcsTask.Update(wcsTask);
+ _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 7 });
+ _dbContext.SaveChanges();
+ agvCompeletedResponse.code = "0";
+ agvCompeletedResponse.message = "成功";
}
else
{
- agvCompeletedResponse.code = "1";
- agvCompeletedResponse.message = "未找到当前任务";
+ wcsTask.taskStatus = 4;
+ _dbContext.WcsTask.Update(wcsTask);
+ _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 7 });
+ _dbContext.SaveChanges();
+ agvCompeletedResponse.code = "0";
+ agvCompeletedResponse.message = "成功";
}
}
else
@@ -336,93 +292,64 @@ namespace Khd.Core.Application
try
{
_dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
- var wcscmd = _dbContext.WcsCmd
- .Where(t => t.taskCode == agvCallbackDto.taskCode)
- .FirstOrDefault();
- if (wcscmd != null)
+
+ WcsTask wcsTask = _dbContext.WcsTask.FirstOrDefault(t => t.taskCode == agvCallbackDto.taskCode);
+ if (wcsTask != null)
{
- WcsTask wcsTask = _dbContext.WcsTask.FirstOrDefault(t => t.objid == wcscmd.taskId);
- if (wcsTask != null)
+ //start 开始 end结束 continue继续
+ //待取货
+ if (agvCallbackDto.method.ToLower() == "start")
{
- //start 开始 end结束 continue继续
- //待取货
- if (agvCallbackDto.method.ToLower() == "start")
+ wcsTask.taskStatus = 2;
+ _dbContext.WcsTask.Update(wcsTask);
+ _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 2 });
+ _dbContext.SaveChanges();
+ reponseagvCallbackDto.code = "0";
+ reponseagvCallbackDto.message = "成功";
+ }
+ if (agvCallbackDto.method.ToLower() == "con")
+ {
+ wcsTask.taskStatus = 4;
+ _dbContext.WcsTask.Update(wcsTask);
+ _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 4 });
+ _dbContext.SaveChanges();
+ reponseagvCallbackDto.code = "0";
+ reponseagvCallbackDto.message = "成功";
+ }
+ //已取货待放货
+ if (agvCallbackDto.method.ToLower() == "continue")
+ {
+ if (wcsTask.taskStatus > 3)
{
- wcscmd.cmdStatus = 2;
- wcscmd.sendFlag = 1;
- wcsTask.taskStatus = 2;
- _dbContext.WcsCmd.Update(wcscmd);
- _dbContext.WcsCmdLog.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmdLog { cmdStatus = 2 });
+ wcsTask.taskStatus = 5;
_dbContext.WcsTask.Update(wcsTask);
- _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 2 });
+ _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 5 });
_dbContext.SaveChanges();
reponseagvCallbackDto.code = "0";
reponseagvCallbackDto.message = "成功";
}
- if (agvCallbackDto.method.ToLower() == "con")
+ else
{
- wcscmd.sendFlag = 1;
- wcscmd.cmdStatus = 4;
- wcsTask.taskStatus = 4;
- _dbContext.WcsCmd.Update(wcscmd);
- _dbContext.WcsCmdLog.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmdLog { cmdStatus = 4 });
+ wcsTask.taskStatus = 3;
_dbContext.WcsTask.Update(wcsTask);
- _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 4 });
- _dbContext.SaveChanges();
- reponseagvCallbackDto.code = "0";
- reponseagvCallbackDto.message = "成功";
- }
- //已取货待放货
- if (agvCallbackDto.method.ToLower() == "continue")
- {
- if (wcscmd.cmdStatus > 3)
- {
- wcscmd.sendFlag = 1;
- wcscmd.cmdStatus = 5;
- wcsTask.taskStatus = 5;
- _dbContext.WcsCmd.Update(wcscmd);
- _dbContext.WcsCmdLog.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmdLog { cmdStatus = 5 });
- _dbContext.WcsTask.Update(wcsTask);
- _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 5 });
- _dbContext.SaveChanges();
- reponseagvCallbackDto.code = "0";
- reponseagvCallbackDto.message = "成功";
- }
- else
- {
- wcscmd.sendFlag = 1;
- wcscmd.cmdStatus = 3;
- wcsTask.taskStatus = 3;
- _dbContext.WcsCmd.Update(wcscmd);
- _dbContext.WcsCmdLog.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmdLog { cmdStatus = 3 });
- _dbContext.WcsTask.Update(wcsTask);
- _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 3 });
- _dbContext.SaveChanges();
- reponseagvCallbackDto.code = "0";
- reponseagvCallbackDto.message = "成功";
- }
- }
- //放货完成
- if (agvCallbackDto.method.ToLower() == "end")
- {
- wcscmd.cmdStatus = 7;
- wcscmd.sendFlag = 1;
- wcsTask.taskStatus = 7;
- _dbContext.WcsCmd.Update(wcscmd);
- _dbContext.WcsCmdLog.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmdLog { cmdStatus = 7 });
- _dbContext.WcsTask.Update(wcsTask);
- _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 7 });
+ _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 3 });
_dbContext.SaveChanges();
reponseagvCallbackDto.code = "0";
reponseagvCallbackDto.message = "成功";
}
}
+ //放货完成
+ if (agvCallbackDto.method.ToLower() == "end")
+ {
+ wcsTask.taskStatus = 7;
+ _dbContext.WcsTask.Update(wcsTask);
+ _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 7 });
+ _dbContext.SaveChanges();
+ reponseagvCallbackDto.code = "0";
+ reponseagvCallbackDto.message = "成功";
+ }
}
- else
- {
- reponseagvCallbackDto.code = "1";
- reponseagvCallbackDto.message = "未找到当前任务";
- }
+
}
catch (Exception ex)
{
diff --git a/src/Khd.Core.Domain/Models/WcsTask.cs b/src/Khd.Core.Domain/Models/WcsTask.cs
index d531f1d..781fdd6 100644
--- a/src/Khd.Core.Domain/Models/WcsTask.cs
+++ b/src/Khd.Core.Domain/Models/WcsTask.cs
@@ -17,7 +17,8 @@ namespace Khd.Core.Domain.Models
[Table("wcs_task")]
public class WcsTask
{
-
+ [Column("taskCode")]
+ public string taskCode { get; set; }
[Column("from_floor_no")]
public int? fromFloorNo { get; set; }
diff --git a/src/Khd.Core.Domain/Models/WmsBaseLocation.cs b/src/Khd.Core.Domain/Models/WmsBaseLocation.cs
index b798228..146cd95 100644
--- a/src/Khd.Core.Domain/Models/WmsBaseLocation.cs
+++ b/src/Khd.Core.Domain/Models/WmsBaseLocation.cs
@@ -96,17 +96,17 @@ namespace Khd.Core.Domain.Models
[Column("qty_limit")]
public decimal? qtyLimit { get; set; }
- ///
- /// 入库过度库位标识(1:是,0:否)
- ///
- [Column("instock_flag")]
- public string instockFlag { get; set; }
+ /////
+ ///// 入库过度库位标识(1:是,0:否)
+ /////
+ //[Column("instock_flag")]
+ //public string instockFlag { get; set; }
- ///
- /// 出库过度库位标识(1:是,0:否)
- ///
- [Column("outstock_flag")]
- public string outstockFlag { get; set; }
+ /////
+ ///// 出库过度库位标识(1:是,0:否)
+ /////
+ //[Column("outstock_flag")]
+ //public string outstockFlag { get; set; }
///
/// 库位状态(1:正常,2:自动锁定,3:人工锁定,4:移库锁定,5:合库锁定 6出库锁定);在正常时,库位可以使用,如果是自动锁定则需要自动解锁变成正常,如果是人工锁定需要人工解锁变成正常
diff --git a/src/Khd.Core.Plc/StaticPlcHelper.cs b/src/Khd.Core.Plc/StaticPlcHelper.cs
index b2733df..98f67df 100644
--- a/src/Khd.Core.Plc/StaticPlcHelper.cs
+++ b/src/Khd.Core.Plc/StaticPlcHelper.cs
@@ -45,16 +45,15 @@ namespace Khd.Core.Plc
return null;
}
string res = Encoding.UTF8.GetString(result).Replace("\0", "").Replace("$", "").Replace("\\u", "").Trim();
-
+
if (res.Contains("JYHB"))
{
return res[res.IndexOf('J')..];
}
- else if (res.Contains('C'))
+ else if(res.Contains('C'))
{
return res[res.IndexOf('C')..];
- }
- else
+ }else
{
return "";
}
diff --git a/src/Khd.Core.Wcs/MainCentralControl.cs b/src/Khd.Core.Wcs/MainCentralControl.cs
index 602471e..524ebf6 100644
--- a/src/Khd.Core.Wcs/MainCentralControl.cs
+++ b/src/Khd.Core.Wcs/MainCentralControl.cs
@@ -1,4 +1,5 @@
-using Khd.Core.EntityFramework;
+using Khd.Core.Domain.Models;
+using Khd.Core.EntityFramework;
using Khd.Core.Wcs.Global;
using Khd.Core.Wcs.Wcs;
using Masuit.Tools.Logging;
@@ -40,7 +41,7 @@ namespace Khd.Core.Wcs
StaticData.basePlcs = dbContext.BasePlc.ToList();//陈工Agv和设备信息推送
StaticData.BaseEquip = dbContext.BaseEquip.ToList();//设备信息
StaticData.BaseDictionary = dbContext.BaseDictionary.ToList();//字典表,Agv任务模板
-
+
foreach (var plcConfig in StaticData.PlcConfigs)
{
if (!StaticData.PlcDic.Any(t => t.Key == plcConfig.Code))
diff --git a/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs b/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs
index bde643b..1c239a7 100644
--- a/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs
+++ b/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs
@@ -164,7 +164,7 @@ namespace Khd.Core.Wcs.Wcs
}
///
- /// 3楼托盘库
+ /// 3楼托盘库出库任务
///
///
private void CreateEmptyTrayLogic()
@@ -252,9 +252,9 @@ namespace Khd.Core.Wcs.Wcs
// }
//}
//else
- if (baseEquip.emptyCount == SystemData.maxTray)
+ if (baseEquip.emptyCount == SystemData.maxTray)//达到最大值
{
- var endEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 15 && t.equipStatus == 0 && t.emptyCount == 0);
+ var endEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 15 && t.equipStatus == 0 && t.emptyCount == 0);//找周转区
if (endEquip != null)
{
var wcsTask = new WcsTask()
@@ -370,8 +370,6 @@ namespace Khd.Core.Wcs.Wcs
var wmsBaseLocation = dbContext.WmsBaseLocation
.Where(t => t.warehouseId == 521)
.Where(t => t.activeFlag == "1")
- .Where(t => t.instockFlag == "0")
- .Where(t => t.outstockFlag == "0")
.Where(t => t.locationStatus == "1")
.Where(t => t.containerCode == null)
.OrderByDescending(t => t.locColumn)
@@ -422,7 +420,6 @@ namespace Khd.Core.Wcs.Wcs
};
WcsTaskLog wcsTaskLog = CoreMapper.Map(wcsTask);
wmsProductInstock.executeStatus = "1";
- wmsBaseLocation.instockFlag = "1";
wmsBaseLocation.locationStatus = "4";
dbContext.Add(wmsProductInstockDetail);
dbContext.Update(wmsProductInstock);
@@ -431,6 +428,10 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Add(wcsTaskLog);
dbContext.SaveChanges();
}
+ else
+ {
+ //报警
+ }
}
}
}
@@ -467,7 +468,7 @@ namespace Khd.Core.Wcs.Wcs
WcsTask? wcsTask = dbContext.WcsTask.FirstOrDefault(t => t.endPointId == endEquip.objid);
if (wcsTask == null)
{
- WcsTaskManual? wcsTaskManual = dbContext.WcsTaskManual.Where(t => t.taskType == 999).FirstOrDefault();
+ WcsTaskManual? wcsTaskManual = dbContext.WcsTaskManual.Where(t => t.taskType == 999).FirstOrDefault();//调接口生成的任务
if (wcsTaskManual != null)
{
var wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == wcsTaskManual.orderId);
@@ -482,11 +483,7 @@ namespace Khd.Core.Wcs.Wcs
.Where(t => t.activeFlag == "1")
.Where(t => t.delFlag == "0")
.Where(t => t.locationScrapType == "1")
- .Where(t => t.instockFlag == "0")
- .Where(t => t.outstockFlag == "0")
.Where(t => t.warehouseId == 311)
- .OrderByDescending(t => t.locRow)
- .ThenByDescending(t => t.locColumn)
.ToList();
var bill = from a in wmsBaseLocations
from b in wmsRawStocks
@@ -494,7 +491,7 @@ namespace Khd.Core.Wcs.Wcs
select new { a, b };
WmsBaseLocation? wmsBaseLocation = null;
WmsRawStock? wmsRawStock = null;
- bill = bill.OrderBy(t => t.b.instockDate);
+ bill = bill.OrderBy(t => t.b.instockDate.Value.Date);//按某个时间段
var fistbill = bill.FirstOrDefault();
if (fistbill != null)
{
@@ -517,7 +514,6 @@ namespace Khd.Core.Wcs.Wcs
{
if (lastbill.b.instockDate != null && fistbill.b.instockDate != null)
{
-
if (wmsBaseLocation.locDeep == 1)
{
int? row = 0;
@@ -581,12 +577,10 @@ namespace Khd.Core.Wcs.Wcs
qty = 1
};
toLocation.locationStatus = "4";
- toLocation.instockFlag = "1";
toLocation.updateBy = "WCS";
toLocation.updateTime = DateTime.Now;
fromBaseLocation.updateBy = "WCS";
fromBaseLocation.updateTime = DateTime.Now;
- fromBaseLocation.outstockFlag = "1";
fromBaseLocation.locationStatus = "4";
dbContext.Update(toLocation);
dbContext.Update(fromBaseLocation);
@@ -660,7 +654,6 @@ namespace Khd.Core.Wcs.Wcs
useFlag = 1,
qty = 1
};
- wmsBaseLocation.outstockFlag = "1";
wmsBaseLocation.locationStatus = "6";
dbContext.Update(wmsBaseLocation);
dbContext.Add(wmsRawOutstockDetail);
@@ -803,8 +796,6 @@ namespace Khd.Core.Wcs.Wcs
.Where(t => t.activeFlag == "1")
.Where(t => t.delFlag == "0")
.Where(t => t.locationScrapType == "1")
- .Where(t => t.instockFlag == "0")
- .Where(t => t.outstockFlag == "0")
.Where(t => t.locationStatus == "1")
.Where(t => t.warehouseId == item.warehouseId)
.Where(t => wmsproStocks.Contains(t.locationCode))
@@ -893,12 +884,10 @@ namespace Khd.Core.Wcs.Wcs
qty = 1
};
toLocation.locationStatus = "4";
- toLocation.instockFlag = "1";
toLocation.updateBy = "WCS";
toLocation.updateTime = DateTime.Now;
wmsBaseLocation.updateBy = "WCS";
wmsBaseLocation.updateTime = DateTime.Now;
- wmsBaseLocation.outstockFlag = "1";
wmsBaseLocation.locationStatus = "4";
dbContext.Update(toLocation);
dbContext.Update(wmsBaseLocation);
@@ -955,7 +944,6 @@ namespace Khd.Core.Wcs.Wcs
useFlag = 1,
qty = 1
};
- location.outstockFlag = "1";
location.locationStatus = "6";
location.updateBy = "WCS";
location.updateTime = DateTime.Now;
@@ -1029,9 +1017,7 @@ namespace Khd.Core.Wcs.Wcs
.Where(t => t.activeFlag == "1")
.Where(t => t.delFlag == "0")
.Where(t => t.locationScrapType == "1")
- .Where(t => t.instockFlag == "0")
.Where(t => t.locationStatus == "1")
- .Where(t => t.outstockFlag == "0")
.Where(t => t.warehouseId == item.warehouseId)
.Where(t => wmsproStocks.Contains(t.containerCode))
.ToList();
@@ -1111,9 +1097,9 @@ namespace Khd.Core.Wcs.Wcs
.Where(t => t.activeFlag == "1")
.Where(t => t.delFlag == "0")
.Where(t => t.locationScrapType == "1")
- .Where(t => t.instockFlag == "0")
+
.Where(t => t.locationStatus == "1")
- .Where(t => t.outstockFlag == "0")
+
.Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault();
toLocation ??= AllWmsBaseLocations.Where(t => t.warehouseId == location.warehouseId)
.Where(t => t.warehouseId != location.locationId)
@@ -1142,12 +1128,10 @@ namespace Khd.Core.Wcs.Wcs
qty = 1
};
toLocation.locationStatus = "4";
- toLocation.instockFlag = "1";
toLocation.updateBy = "WCS";
toLocation.updateTime = DateTime.Now;
wmsBaseLocation.updateBy = "WCS";
wmsBaseLocation.updateTime = DateTime.Now;
- wmsBaseLocation.outstockFlag = "1";
wmsBaseLocation.locationStatus = "4";
dbContext.Update(toLocation);
dbContext.Update(wmsBaseLocation);
@@ -1187,7 +1171,6 @@ namespace Khd.Core.Wcs.Wcs
useFlag = 1,
qty = 1
};
- location.outstockFlag = "1";
location.locationStatus = "6";
location.updateBy = "WCS";
location.updateTime = DateTime.Now;
@@ -1287,8 +1270,8 @@ namespace Khd.Core.Wcs.Wcs
// .Where(t => t.activeFlag == "1")
// .Where(t => t.delFlag == "0")
// .Where(t => t.locationScrapType == "1")
- // .Where(t => t.instockFlag == "0")
- // .Where(t => t.outstockFlag == "0")
+ //
+ //
// .Where(t => t.ContainerStatus == "1")
// .Where(t => t.warehouseId == item.warehouseId)
// .Where(t => wmsRawStocks.Contains(t.locationCode))
@@ -1421,13 +1404,15 @@ namespace Khd.Core.Wcs.Wcs
List canOut = orderList.Select(t => t.saleOrderId).ToList();
rawStock = rawStock.Where(t => canOut.Contains(t.saleOrderId)).OrderByDescending(t => t.saleOrderId).ToList();
//对物料和数量进行分组
- var list = orderList.GroupBy(t => t.materialId).Select(t => new
+ var list = orderList.GroupBy(t => new { t.materialId, t.saleOrderId }).Select(t => new
{
- MaterialId = t.Key,
+ MaterialId = t.Key.materialId,
+ SaleOrderId = t.Key.saleOrderId,
TotalAmount = t.Sum(x => x.outstockAmount),
realOutstockAmount = t.Sum(x => x.realOutstockAmount)
}
).ToList();
+ int? index = 1;
foreach (var order in list)
{
if (tasks.Count >= 6)
@@ -1435,7 +1420,7 @@ namespace Khd.Core.Wcs.Wcs
break;
}
var wmsRawStocks = rawStock
- .Where(t => t.materialId == order.MaterialId && t.warehouseId == 512)
+ .Where(t => t.materialId == order.MaterialId && t.saleOrderId == order.SaleOrderId && t.warehouseId == 512)
.Select(t => t.palletInfoCode)
.ToList();
var AllWmsBaseLocations = dbContext.WmsBaseLocation.Where(t => t.warehouseId == 512).ToList();
@@ -1443,36 +1428,65 @@ namespace Khd.Core.Wcs.Wcs
.Where(t => t.activeFlag == "1")
.Where(t => t.delFlag == "0")
.Where(t => t.locationScrapType == "1")
- .Where(t => t.instockFlag == "0")
- .Where(t => t.outstockFlag == "0")
.Where(t => t.locationStatus == "1")
.Where(t => t.warehouseId == 512)
+ .Where(t => t.ContainerStatus == "1")
.Where(t => wmsRawStocks.Contains(t.containerCode))
.ToList();
- decimal? needNumber = order.TotalAmount - order.realOutstockAmount;
+ decimal? needNumber = order.TotalAmount - order.realOutstockAmount;
+ foreach (var task in tasks)
+ {
+ WmsRawStock wmsRawStock = rawStock.Where(t => t.palletInfoCode == task.containerNo).First();
+ needNumber -= wmsRawStock.totalAmount - wmsRawStock.frozenAmount;
+ WmsBaseLocation wmsBaseLocation = AllWmsBaseLocations.Where(t => t.locationCode == wmsRawStock.locationCode).First();
+ index = wmsBaseLocation.locRow;
+ }
+ if (needNumber <= 0)
+ {
+ continue;
+ }
var bill = from a in wmsBaseLocations
from b in rawStock
where a.containerCode == b.palletInfoCode
select new { a, b };
//如果第一列满足需求,则按第一列排序,否则按最后一列排序
- if (bill.Where(t => t.a.locColumn == 1).Select(t => t.b.totalAmount - t.b.frozenAmount).Sum() >= needNumber)
+ if (bill.Where(t => t.a.locRow == index).Select(t => t.b.totalAmount - t.b.frozenAmount).Sum() >= needNumber)
{
- bill = bill.OrderBy(t => t.a.locColumn).ToList();
+ if (index == 1)
+ {
+ bill = bill.OrderBy(t => t.a.locRow).ThenBy(t => t.a.locColumn).ToList();
+ index = 2;
+ }
+ else
+ {
+ bill = bill.OrderByDescending(t => t.a.locRow).ThenBy(t => t.a.locColumn).ToList();
+ index = 1;
+ }
}
else
{
- bill = bill.OrderByDescending(t => t.a.locColumn).ToList();
+ bill = bill.OrderByDescending(t => t.a.locRow).ThenBy(t => t.a.locColumn).ToList();
+ if (index == 1)
+ {
+ bill = bill.OrderByDescending(t => t.a.locRow).ThenBy(t => t.a.locColumn).ToList();
+ index = 2;
+ }
+ else
+ {
+ bill = bill.OrderBy(t => t.a.locRow).ThenBy(t => t.a.locColumn).ToList();
+ index = 1;
+ }
}
BaseEquip ctuEquip = StaticData.BaseEquip.First(t => t.objid == 11);
BaseEquip lineEquip = StaticData.BaseEquip.First(t => t.objid == 20);
foreach (var b in bill)
{
- if (needNumber <= 0)
+ if (needNumber <= 0 || tasks.Count >= 6)
{
break;
}
- if (tasks.Where(t => t.containerNo == b.a.containerCode).Any() || tasks.Count >= 6)
+ if (tasks.Where(t => t.containerNo == b.a.containerCode).Any())//判读当前料箱是否存在出库任务
{
continue;
}
@@ -1518,7 +1532,6 @@ namespace Khd.Core.Wcs.Wcs
qty = qty
};
tasks.Add(wcsTask);
- location.outstockFlag = "1";
location.locationStatus = "6";
location.updateBy = "WCS";
location.ContainerStatus = "2";
@@ -1586,7 +1599,6 @@ namespace Khd.Core.Wcs.Wcs
dbContext.UpdateRange(orderList);
dbContext.Update(item);
}
- endStationCodeEquip.endStationCode = null;
dbContext.Update(endStationCodeEquip);
if (tasks.Count > 0)
{
@@ -1597,7 +1609,7 @@ namespace Khd.Core.Wcs.Wcs
}
}
}
- if (endEquip.equipType == 12 || endEquip.equipType == 13)//原材料到柜体验收区
+ if (endEquip.equipType == 12 || endEquip.equipType == 13)//原材料到柜体验收区,背板安装
{
bool hasTask = dbContext.WcsTask.Where(t => t.nextPointId == 28 && t.useFlag == 1 && t.taskStatus <= 5).Any();
if (!hasTask)
@@ -1617,25 +1629,16 @@ namespace Khd.Core.Wcs.Wcs
.Where(t => t.activeFlag == "1")
.Where(t => t.delFlag == "0")
.Where(t => t.locationScrapType == "1")
- .Where(t => t.instockFlag == "0")
- .Where(t => t.outstockFlag == "0")
.Where(t => t.locationStatus == "1")
.Where(t => t.warehouseId == item.warehouseId)
.Where(t => wmsRawStocks.Contains(t.containerCode))
.ToList();
decimal? needNumber = item.outstockAmount - item.realOutstockAmount;
- if (needNumber <= 0)
- {
- item.executeStatus = "2";
- dbContext.Update(item);
- dbContext.SaveChanges();
- continue;
- }
var bill = from a in wmsBaseLocations
from b in rawStock
- where a.containerCode == b.palletInfoCode
+ where a.locationCode == b.locationCode
select new { a, b };
@@ -1720,12 +1723,10 @@ namespace Khd.Core.Wcs.Wcs
qty = qty
};
toLocation.locationStatus = "4";
- toLocation.instockFlag = "1";
toLocation.updateBy = "WCS";
toLocation.updateTime = DateTime.Now;
wmsBaseLocation.updateBy = "WCS";
wmsBaseLocation.updateTime = DateTime.Now;
- wmsBaseLocation.outstockFlag = "1";
wmsBaseLocation.locationStatus = "4";
dbContext.Update(toLocation);
dbContext.Update(wmsBaseLocation);
@@ -1786,8 +1787,11 @@ namespace Khd.Core.Wcs.Wcs
outstockWay = "2",
materialProductionDate = mesBaseBarcodeInfo.productionDate
};
+ if (item.beginTime == null)
+ {
+ item.beginTime = DateTime.Now;
+ }
dbContext.Add(wmsProductOutstockDetail);
- location.outstockFlag = "1";
location.locationStatus = "6";
location.updateBy = "WCS";
location.updateTime = DateTime.Now;
@@ -1795,15 +1799,11 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Update(endEquip);
dbContext.Update(location);
dbContext.Add(wcsTask);
+ dbContext.Update(item);
dbContext.Update(stock);
dbContext.SaveChanges();
}
- if (item.beginTime == null)
- {
- item.beginTime = DateTime.Now;
- }
- dbContext.Update(item);
- dbContext.SaveChanges();
+
break;
}
}
diff --git a/src/Khd.Core.Wcs/Wcs/FirstFloor.cs b/src/Khd.Core.Wcs/Wcs/FirstFloor.cs
index fa22d9c..693c388 100644
--- a/src/Khd.Core.Wcs/Wcs/FirstFloor.cs
+++ b/src/Khd.Core.Wcs/Wcs/FirstFloor.cs
@@ -289,6 +289,7 @@ namespace Khd.Core.Wcs.Wcs
///
private void FirstFloorLine()
{
+ List BigContainerCodes = new() { "JYHB01020001", "JYHB01020002", "JYHB01020003", "JYHB01020004" };
List Outtpyes = new() { 2, 4, 8, 6 };
using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService();
@@ -306,133 +307,163 @@ namespace Khd.Core.Wcs.Wcs
BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 1);
if (Convert.ToInt32(linesignal01Value) == 1)
{
- //判断task表里没有该rfid的未完成的入库
- //信息,未下发去向
- var task = dbContext.WcsTask.Where(t => t.nextPointId == 1).OrderBy(t => t.createTime).FirstOrDefault();
- if (task == null)
+
{
- //根据托盘号获取物料码
- var material = dbContext.MesBasePalletInfo.Where(t => t.palletInfoCode == RFID001Value).FirstOrDefault();
- WcsTaskLog? taskLog = dbContext.WcsTaskLog.Where(t => t.containerNo == RFID001Value).OrderByDescending(t => t.createTime).FirstOrDefault();
-
- if (material != null)
+ //判断task表里没有该rfid的未完成的入库
+ //信息,未下发去向
+ var task = dbContext.WcsTask.Where(t => t.nextPointId == 1).OrderBy(t => t.createTime).FirstOrDefault();
+ if (task == null)
{
- if (taskLog != null)
+ if (BigContainerCodes.Contains(RFID001Value))
{
- if (taskLog.materialBarcode == material.materialBarcode)
+ var newTask = new WcsTask()
{
- if (baseEquip.containerNo == "0")
- {
- baseEquip.containerNo = null;
- dbContext.Update(baseEquip);
- dbContext.SaveChanges();
- LogManager.Info("一楼接驳位线程:托盘" + RFID001Value + "解绑信息更新成功");
- }
- else if (baseEquip.containerNo != RFID001Value)
- {
- baseEquip.containerNo = RFID001Value;
- dbContext.Update(baseEquip);
- dbContext.SaveChanges();
- LogManager.Info("一楼接驳位线程:托盘" + RFID001Value + "绑定信息更新成功");
- Console.WriteLine(DateTime.Now + ":一楼接驳位线程:托盘" + RFID001Value + "绑定信息更新成功");
- Thread.Sleep(3000);
- continue;
- }
- else
- {
- Thread.Sleep(3000);
- continue;
- }
- }
+ objid = StaticData.SnowId.NextId(),
+ serialNo = SystemData.GetSerialNo(dbContext),
+ equipmentNo = "F01",
+ taskType = 5,
+ taskStatus = 0,
+ containerNo = RFID001Value,
+ currPointId = F01,
+ currPointNo = "TSJ_01",
+ nextPointId = T01,
+ nextPointNo = "TSJ_01",
+ fromFloorNo = 1,
+ floorNo = 4,
+ useFlag = 1,
+ createBy = "一楼接驳位",
+ createTime = DateTime.Now,
+ remark = "一楼创建入库任务"
+ };
+ WcsTaskLog wcsTaskLog = CoreMapper.Map(newTask);
+ dbContext.Add(wcsTaskLog);
+ dbContext.Add(newTask);
+ dbContext.SaveChanges();
}
-
- var warehouseId = dbContext.WmsWarehouseMaterial.Where(t => t.storageType == "1" && t.storageId == material.materialId).FirstOrDefault()?.warehouseId;
- if (warehouseId != null)
+ else
{
- var TargetFloor = dbContext.WmsBaseWarehouse.Where(t => t.warehouseId == warehouseId).FirstOrDefault();
- if (TargetFloor != null)
- {
- //插入task表
+ //根据托盘号获取物料码
+ var material = dbContext.MesBasePalletInfo.Where(t => t.palletInfoCode == RFID001Value).FirstOrDefault();
+ WcsTaskLog? taskLog = dbContext.WcsTaskLog.Where(t => t.containerNo == RFID001Value).OrderByDescending(t => t.createTime).FirstOrDefault();
- var dic = StaticData.BaseDictionary.Where(t => t.dicKey == "TaskType" && t.agvType == "I" && t.dicField == TargetFloor.warehouseInstockType).FirstOrDefault();
- if (dic != null)
+ if (material != null)
+ {
+ if (taskLog != null)
{
- var newTask = new WcsTask()
+ if (taskLog.materialBarcode == material.materialBarcode)
{
- objid = StaticData.SnowId.NextId(),
- serialNo = SystemData.GetSerialNo(dbContext),
- equipmentNo = "F01",
- taskType = Convert.ToInt32(dic.dicValue),
- taskStatus = 0,
- containerNo = RFID001Value,
- materialBarcode = material.materialBarcode,
- materialId = material.materialId,
- qty = Convert.ToInt32(material.bindAmount),
- currPointId = F01,
- currPointNo = "TSJ_01",
- nextPointId = T01,
- nextPointNo = "TSJ_01",
- endPointId = warehouseId,
- fromFloorNo = 1,
- floorNo = TargetFloor.warehouseFloor,
- useFlag = 1,
- createBy = "一楼接驳位",
- createTime = DateTime.Now,
- remark = "一楼创建入库任务"
- };
- WcsTaskLog wcsTaskLog = CoreMapper.Map(newTask);
- dbContext.Add(wcsTaskLog);
- dbContext.Add(newTask);
- dbContext.SaveChanges();
+ if (baseEquip.containerNo == "0")
+ {
+ baseEquip.containerNo = null;
+ dbContext.Update(baseEquip);
+ dbContext.SaveChanges();
+ LogManager.Info("一楼接驳位线程:托盘" + RFID001Value + "解绑信息更新成功");
+ }
+ else if (baseEquip.containerNo != RFID001Value)
+ {
+ baseEquip.containerNo = RFID001Value;
+ dbContext.Update(baseEquip);
+ dbContext.SaveChanges();
+ LogManager.Info("一楼接驳位线程:托盘" + RFID001Value + "绑定信息更新成功");
+ Console.WriteLine(DateTime.Now + ":一楼接驳位线程:托盘" + RFID001Value + "绑定信息更新成功");
+ Thread.Sleep(3000);
+ continue;
+ }
+ else
+ {
+ Thread.Sleep(3000);
+ continue;
+ }
+ }
}
- }
- }
- }
- }
- else
- {
- if (string.IsNullOrEmpty(task.containerNo))//人工调出
- {
- if (task.useFlag == 1)
- {
- if (task.qty > 1)//多个托盘
- {
- if (task.endPointId != 1)
+
+ var warehouseId = dbContext.WmsWarehouseMaterial.Where(t => t.storageType == "1" && t.storageId == material.materialId).FirstOrDefault()?.warehouseId;
+ if (warehouseId != null)
{
- task.nextPointId = 6;
- dbContext.SaveChanges();
- }
- }
- else if (task.qty == 1)
- {
- if (task.endPointId != 1)
- {
- task.nextPointId = 6;
- task.containerNo = RFID001Value;
- dbContext.SaveChanges();
+ var TargetFloor = dbContext.WmsBaseWarehouse.Where(t => t.warehouseId == warehouseId).FirstOrDefault();
+ if (TargetFloor != null)
+ {
+ //插入task表
+
+ var dic = StaticData.BaseDictionary.Where(t => t.dicKey == "TaskType" && t.agvType == "I" && t.dicField == TargetFloor.warehouseInstockType).FirstOrDefault();
+ if (dic != null)
+ {
+ var newTask = new WcsTask()
+ {
+ objid = StaticData.SnowId.NextId(),
+ serialNo = SystemData.GetSerialNo(dbContext),
+ equipmentNo = "F01",
+ taskType = Convert.ToInt32(dic.dicValue),
+ taskStatus = 0,
+ containerNo = RFID001Value,
+ materialBarcode = material.materialBarcode,
+ materialId = material.materialId,
+ qty = Convert.ToInt32(material.bindAmount),
+ currPointId = F01,
+ currPointNo = "TSJ_01",
+ nextPointId = T01,
+ nextPointNo = "TSJ_01",
+ endPointId = warehouseId,
+ fromFloorNo = 1,
+ floorNo = TargetFloor.warehouseFloor,
+ useFlag = 1,
+ createBy = "一楼接驳位",
+ createTime = DateTime.Now,
+ remark = "一楼创建入库任务"
+ };
+ WcsTaskLog wcsTaskLog = CoreMapper.Map(newTask);
+ dbContext.Add(wcsTaskLog);
+ dbContext.Add(newTask);
+ dbContext.SaveChanges();
+ }
+ }
}
}
}
}
else
{
- MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == RFID001Value);
- if (mesBasePalletInfo != null)
+ if (string.IsNullOrEmpty(task.containerNo))//人工调出
{
- mesBasePalletInfo.bindAmount = null;
- mesBasePalletInfo.createBy = null;
- mesBasePalletInfo.bindAmount = null;
- mesBasePalletInfo.createTime = null;
- mesBasePalletInfo.materialBarcode = null;
- mesBasePalletInfo.materialCode = null;
- mesBasePalletInfo.materialId = null;
- mesBasePalletInfo.materialName = null;
- mesBasePalletInfo.updateBy = "WCS";
- mesBasePalletInfo.updateTime = DateTime.Now;
- dbContext.Update(mesBasePalletInfo);
- dbContext.Remove(task);
- dbContext.WcsTaskLog.Where(t => t.objid == task.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
- dbContext.SaveChanges();
+ if (task.useFlag == 1)
+ {
+ if (task.qty > 1)//多个托盘
+ {
+ if (task.endPointId != 1)
+ {
+ task.nextPointId = 6;
+ dbContext.SaveChanges();
+ }
+ }
+ else if (task.qty == 1)
+ {
+ if (task.endPointId != 1)
+ {
+ task.nextPointId = 6;
+ task.containerNo = RFID001Value;
+ dbContext.SaveChanges();
+ }
+ }
+ }
+ }
+ else
+ {
+ MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == RFID001Value);
+ if (mesBasePalletInfo != null)
+ {
+ mesBasePalletInfo.bindAmount = null;
+ mesBasePalletInfo.bindAmount = null;
+ mesBasePalletInfo.materialBarcode = null;
+ mesBasePalletInfo.materialCode = null;
+ mesBasePalletInfo.materialId = null;
+ mesBasePalletInfo.materialName = null;
+ mesBasePalletInfo.updateBy = "WCS";
+ mesBasePalletInfo.updateTime = DateTime.Now;
+ dbContext.Update(mesBasePalletInfo);
+ dbContext.Remove(task);
+ dbContext.WcsTaskLog.Where(t => t.objid == task.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
+ dbContext.SaveChanges();
+ }
}
}
}
diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs
index 4520082..45629ec 100644
--- a/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs
+++ b/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs
@@ -6,9 +6,11 @@ using Khd.Core.Plc.S7;
using Khd.Core.Wcs.Global;
using Masuit.Tools;
using Masuit.Tools.Logging;
+using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Newtonsoft.Json;
+using System.Transactions;
using Z.EntityFramework.Plus;
namespace Khd.Core.Wcs.Wcs
@@ -82,34 +84,19 @@ namespace Khd.Core.Wcs.Wcs
}
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
BaseEquip nextEquip = StaticData.BaseEquip.First(t => t.floorNo == 5 && t.equipType == 1);
- WcsCmd wcsCmd = new()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = wmsBaseLocation.agvPositionCode,
- nextPointId = item.endPointId,
- nextPointNo = nextEquip.agvPositionCode,
- };
RequestAGVTaskDto agvTask = new()
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=wmsBaseLocation.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=nextEquip.agvPositionCode,
type="00"
}
},
@@ -123,17 +110,13 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("五楼Agv下发任务成功:" + message);
- Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功:" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功:" + wmsBaseLocation.agvPositionCode + "," + nextEquip.agvPositionCode);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
lineEquip.equipStatus = 1;
dbContext.Update(lineEquip);
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -147,34 +130,19 @@ namespace Khd.Core.Wcs.Wcs
{
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == 30);
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
- WcsCmd wcsCmd = new()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = wmsBaseLocation.agvPositionCode,
- nextPointId = endEquip.objid,
- nextPointNo = endEquip.agvPositionCode,
- };
RequestAGVTaskDto agvTask = new()
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=wmsBaseLocation.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode= endEquip.agvPositionCode,
type="00"
}
},
@@ -187,15 +155,11 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("五楼Agv下发任务成功:" + message);
- Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功:" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功:" + wmsBaseLocation.agvPositionCode + "," + endEquip.agvPositionCode);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -207,34 +171,19 @@ namespace Khd.Core.Wcs.Wcs
{
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId);
BaseEquip currentEquip = StaticData.BaseEquip.First(t => t.objid == 30);
- WcsCmd wcsCmd = new()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = currentEquip.agvPositionCode,
- nextPointId = item.endPointId,
- nextPointNo = wmsBaseLocation.agvPositionCode,
- };
var agvTask = new RequestAGVTaskDto
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=currentEquip.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=wmsBaseLocation.agvPositionCode,
type="00"
}
},
@@ -247,15 +196,11 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("五楼Agv下发任务成功:" + message);
- Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功:" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功:" + currentEquip.agvPositionCode + "," + wmsBaseLocation.agvPositionCode);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -267,34 +212,19 @@ namespace Khd.Core.Wcs.Wcs
{
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
BaseEquip currentEquip = StaticData.BaseEquip.First(t => t.objid == 29);
- WcsCmd wcsCmd = new()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = wmsBaseLocation.agvPositionCode,
- nextPointId = 29,
- nextPointNo = currentEquip.agvPositionCode,
- };
RequestAGVTaskDto agvTask = new()
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=wmsBaseLocation.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=currentEquip.agvPositionCode,
type="00"
}
},
@@ -307,15 +237,11 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("五楼Agv下发任务成功:" + message);
- Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功:" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功:" + wmsBaseLocation.agvPositionCode + "," + currentEquip.agvPositionCode);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -327,34 +253,19 @@ namespace Khd.Core.Wcs.Wcs
{
BaseEquip currentEquip = StaticData.BaseEquip.First(t => t.objid == 29);
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId);
- WcsCmd wcsCmd = new()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = currentEquip.agvPositionCode,
- nextPointId = item.endPointId,
- nextPointNo = wmsBaseLocation.agvPositionCode,
- };
RequestAGVTaskDto agvTask = new()
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new()
{
- positionCode = wcsCmd.currPointNo,
+ positionCode = currentEquip.agvPositionCode,
type = "00"
},
new()
{
- positionCode = wcsCmd.nextPointNo,
+ positionCode = wmsBaseLocation.agvPositionCode,
type = "00"
}
},
@@ -368,15 +279,11 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("五楼Agv下发任务成功:" + message);
- Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功:" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功:" + currentEquip.agvPositionCode + "," + wmsBaseLocation.agvPositionCode);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -388,34 +295,19 @@ namespace Khd.Core.Wcs.Wcs
{
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == 5);
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId);
- WcsCmd wcsCmd = new WcsCmd
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = startEquip.objid,
- currPointNo = startEquip.agvPositionCode,
- nextPointId = item.endPointId,
- nextPointNo = wmsBaseLocation.agvPositionCode,
- };
var agvTask = new RequestAGVTaskDto
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode= startEquip.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=wmsBaseLocation.agvPositionCode,
type="00"
}
},
@@ -428,15 +320,11 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("五楼Agv下发任务成功:" + message);
- Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功:" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功:" + startEquip.agvPositionCode + "," + wmsBaseLocation.agvPositionCode);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -448,34 +336,19 @@ namespace Khd.Core.Wcs.Wcs
{
WmsBaseLocation fromBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
WmsBaseLocation toBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId);
- WcsCmd wcsCmd = new()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = fromBaseLocation.agvPositionCode,
- nextPointId = item.endPointId,
- nextPointNo = toBaseLocation.agvPositionCode,
- };
var agvTask = new RequestAGVTaskDto
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=fromBaseLocation.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=toBaseLocation.agvPositionCode,
type="00"
}
},
@@ -488,15 +361,11 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("五楼Agv下发任务成功:" + message);
- Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功:" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功:" + fromBaseLocation.agvPositionCode + "," + toBaseLocation.agvPositionCode);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -507,10 +376,8 @@ namespace Khd.Core.Wcs.Wcs
}
else
{
- WcsCmd? wcsCmd = dbContext.WcsCmd.FirstOrDefault(t => t.taskId == item.objid);
- if (wcsCmd != null)
{
- if (wcsCmd.cmdStatus == 3)
+ if (item.taskStatus == 3)
{
if (item.currPointId == 5)
{
@@ -535,7 +402,7 @@ namespace Khd.Core.Wcs.Wcs
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData.SnowId.NextId().ToString(),
- taskCode = wcsCmd.taskCode
+ taskCode = item.taskCode
};
string message = JsonConvert.SerializeObject(agvTask);
string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message);
@@ -543,25 +410,23 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("五楼Agv下发继续任务成功:" + message);
- Console.WriteLine(DateTime.Now + ":五楼Agv继续任务:" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
- wcsCmd.cmdStatus = 4;
+ Console.WriteLine(DateTime.Now + ":五楼Agv继续任务:" + item.currPointNo + "," + item.endPointNo);
item.taskStatus = 4;
- dbContext.Update(wcsCmd);
dbContext.Update(item);
- dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 4 });
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 });
dbContext.SaveChanges();
}
}
- else if (wcsCmd.cmdStatus == 5)
+ else if (item.taskStatus == 5)
{
- Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
- LogManager.Info("五楼Agv完成任务成功:" + wcsCmd.ToJsonString());
+ Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo);
+ LogManager.Info("五楼Agv完成任务成功:" + item.ToJsonString());
if (item.taskType == 66)//移库
{
+ using var dbContextTransaction = dbContext.Database.BeginTransaction();
try
{
- var wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == item.endPointNo).FirstOrDefault();
+ var wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == item.currPointNo).FirstOrDefault();
if (wmsRawStock != null)
{
wmsRawStock.locationCode = item.endPointNo;
@@ -578,38 +443,36 @@ namespace Khd.Core.Wcs.Wcs
}
dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).Update(t => new WmsBaseLocation
{
- outstockFlag = "0",
locationStatus = "1",
containerCode = null,
updateTime = DateTime.Now
});
dbContext.WmsBaseLocation.Where(t => t.locationId == item.endPointId).Update(t => new WmsBaseLocation
{
- instockFlag = "0",
locationStatus = "1",
containerCode = item.containerNo,
updateTime = DateTime.Now
});
- dbContext.Remove(wcsCmd);
dbContext.Remove(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 });
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog() { cmdStatus = 6 });
dbContext.SaveChanges();
+ dbContextTransaction.Commit();
}
catch (Exception ex)
{
+ dbContextTransaction.Rollback();
LogManager.Error(ex);
}
}
else if (item.taskType == 38)//出库
{
- var wmsProductOutstockDetails = dbContext.WmsProductOutstockDetail.Where(t => t.productOutstockId == item.orderId);
- var wmsProductOutstockDetail = wmsProductOutstockDetails.FirstOrDefault(t => t.executeStatus == "1" && t.locationCode == item.currPointNo);
+ var wmsProductOutstockDetail = dbContext.WmsProductOutstockDetail.FirstOrDefault(t => t.productOutstockId == item.orderId&&t.executeStatus == "1" && t.locationCode == item.currPointNo);
var wmsProductOutstock = dbContext.WmsProductOutstock.FirstOrDefault(t => t.productOutstockId == item.orderId);
if (wmsProductOutstockDetail != null && wmsProductOutstock != null)
{
wmsProductOutstockDetail.executeStatus = "2";
dbContext.Update(wmsProductOutstockDetail);
+ wmsProductOutstock.outstockQty += 1;
if (wmsProductOutstock.applyQty <= wmsProductOutstock.outstockQty)
{
wmsProductOutstock.endTime = DateTime.Now;
@@ -617,7 +480,6 @@ namespace Khd.Core.Wcs.Wcs
}
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation
.First(t => t.locationId == item.currPointId && t.warehouseFloor == 5);
- wmsBaseLocation.outstockFlag = "0";
wmsBaseLocation.locationStatus = "1";
wmsBaseLocation.containerCode = null;
wmsBaseLocation.updateTime = DateTime.Now;
@@ -637,10 +499,8 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Add(newTask);
WcsTaskLog wcsTaskLog = CoreMapper.Map(newTask);
dbContext.Add(wcsTaskLog);
- dbContext.WcsCmd.Remove(wcsCmd);
dbContext.SaveChanges();
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 });
}
}
else if (item.taskType == 33)//原材料到背板安装
@@ -655,19 +515,16 @@ namespace Khd.Core.Wcs.Wcs
wmsRawOutstock.executeStatus = "2";
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
wmsBaseLocation.locationStatus = "1";
- wmsBaseLocation.outstockFlag = "0";
- wmsBaseLocation.containerCode = "";
+ wmsBaseLocation.containerCode = null;
wmsBaseLocation.updateTime = DateTime.Now;
wmsBaseLocation.updateBy = "WCS";
dbContext.Update(wmsRawOutstock);
dbContext.Update(wmsRawOutstockDetail);
dbContext.Update(wmsBaseLocation);
dbContext.WmsRawStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).Delete();
- dbContext.WcsCmd.Remove(wcsCmd);
dbContext.WcsTask.Remove(item);
dbContext.SaveChanges();
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 });
}
}
}
@@ -675,7 +532,6 @@ namespace Khd.Core.Wcs.Wcs
{
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId);
wmsBaseLocation.locationStatus = "1";
- wmsBaseLocation.instockFlag = "0";
wmsBaseLocation.containerCode = item.containerNo;
wmsBaseLocation.updateTime = DateTime.Now;
wmsBaseLocation.updateBy = "WCS";
@@ -722,10 +578,8 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Update(startEquip);
dbContext.Add(wmsProductStock);
dbContext.Update(wmsBaseLocation);
- dbContext.WcsCmd.Remove(wcsCmd);
dbContext.WcsTask.Remove(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 });
dbContext.SaveChanges();
}
@@ -742,8 +596,6 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Update(wmsRawOutStock);
dbContext.Update(wmsRawOutstockDetail);
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
- wmsBaseLocation.outstockFlag = "0";
- wmsBaseLocation.instockFlag = "1";
wmsBaseLocation.locationStatus = "2";
wmsBaseLocation.containerCode = null;
wmsBaseLocation.updateTime = DateTime.Now;
@@ -773,7 +625,6 @@ namespace Khd.Core.Wcs.Wcs
.FirstOrDefault();
if (deepWmsLocation != null)
{
- deepWmsLocation.instockFlag = "1";
deepWmsLocation.locationStatus = "2";
dbContext.Update(deepWmsLocation);
}
@@ -791,23 +642,18 @@ namespace Khd.Core.Wcs.Wcs
newTask.taskStatus = 0;
newTask.useFlag = 0;
dbContext.Remove(item);
- dbContext.Remove(wcsCmd);
WcsTaskLog wcsTaskLog = CoreMapper.Map(newTask);
dbContext.Add(newTask);
dbContext.Add(wcsTaskLog);
dbContext.SaveChanges();
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 });
}
}
-
-
}
else if (item.taskType == 28)//柜体拆分到原材料
{
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId);
wmsBaseLocation.locationStatus = "1";
- wmsBaseLocation.instockFlag = "0";
wmsBaseLocation.containerCode = item.containerNo;
wmsBaseLocation.updateTime = DateTime.Now;
wmsBaseLocation.updateBy = "WCS";
@@ -840,22 +686,18 @@ namespace Khd.Core.Wcs.Wcs
.FirstOrDefault();
if (deepWmsLocation != null)
{
- deepWmsLocation.instockFlag = "0";
deepWmsLocation.locationStatus = "1";
dbContext.Update(deepWmsLocation);
}
}
dbContext.Remove(item);
- dbContext.Remove(wcsCmd);
dbContext.SaveChanges();
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 });
}
}
else if (item.taskType == 47)
{
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId);
- wmsBaseLocation.instockFlag = "0";
wmsBaseLocation.locationStatus = "1";
wmsBaseLocation.containerCode = item.containerNo;
var mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == item.containerNo);
@@ -895,9 +737,7 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Add(wmsRawStock);
dbContext.Update(wmsBaseLocation);
dbContext.Remove(item);
- dbContext.Remove(wcsCmd);
dbContext.SaveChanges();
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 });
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
}
}
diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorBearAgv.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorBearAgv.cs
index f4c2db5..624970f 100644
--- a/src/Khd.Core.Wcs/Wcs/FiveFloorBearAgv.cs
+++ b/src/Khd.Core.Wcs/Wcs/FiveFloorBearAgv.cs
@@ -63,21 +63,6 @@ namespace Khd.Core.Wcs.Wcs
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId);
BaseDictionary baseDictionary = dbContext.BaseDictionary.First(t => t.objid == item.taskType);
- WcsCmd wcsCmd = new()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = startEquip.agvPositionCode,
- nextPointId = item.endPointId,
- nextPointNo = endEquip.agvPositionCode,
- };
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData.SnowId.NextId().ToString(),
@@ -85,12 +70,12 @@ namespace Khd.Core.Wcs.Wcs
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=startEquip.agvPositionCode,
type=baseDictionary.agvType
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=endEquip.agvPositionCode,
type=baseDictionary.agvType
}
},
@@ -103,15 +88,11 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.code == "0")
{
LogManager.Info("五楼背负式AGV线程下发任务" + agvTask.ToJsonString());
- Console.WriteLine(DateTime.Now + ":五楼背负式AGV线程下发任务" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ Console.WriteLine(DateTime.Now + ":五楼背负式AGV线程下发任务" + startEquip.agvPositionCode + "," + endEquip.agvPositionCode);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -121,42 +102,37 @@ namespace Khd.Core.Wcs.Wcs
}
else
{
- if (item.useFlag == 1)//接料位-工位默认为1,工位到接料位需Mes通知
+ //if (item.useFlag == 1)//接料位-工位默认为1,工位到接料位需Mes通知
{
- WcsCmd? wcsCmd = dbContext.WcsCmd.FirstOrDefault(t => t.taskId == item.objid);
- if (wcsCmd != null)
{
- if (wcsCmd.cmdStatus == 4)
+ if (item.taskStatus == 4)//通知捡料完成
{
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData.SnowId.NextId().ToString(),
- taskCode = wcsCmd.taskCode
+ taskCode = item.taskCode
};
string message = JsonConvert.SerializeObject(agvTask);
string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message);
ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.message == "成功")
{
- LogManager.Info("五楼背负式AGV线程完成任务" + wcsCmd.objid);
- Console.WriteLine(DateTime.Now + ":五楼背负式AGV线程完成任务" + wcsCmd.objid);
+ LogManager.Info("五楼背负式AGV线程完成任务" + item.objid);
+ Console.WriteLine(DateTime.Now + ":五楼背负式AGV线程完成任务" + item.currPointNo + "," + item.endPointNo);
item.taskStatus = 5;
- wcsCmd.cmdStatus = 5;
dbContext.Update(item);
- dbContext.Update(wcsCmd);
dbContext.SaveChanges();
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog() { cmdStatus = 5 });
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 5 });
}
}
- else if (wcsCmd.cmdStatus == 7)
+ else if (item.taskStatus == 7)//通知拿料完成
{
- LogManager.Info("五楼背负式AGV线程完成任务" + wcsCmd.objid);
- Console.WriteLine(DateTime.Now + ":五楼背负式AGV线程完成任务" + wcsCmd.objid);
+ LogManager.Info("五楼背负式AGV线程完成任务" + item.objid);
+ Console.WriteLine(DateTime.Now + ":五楼背负式AGV线程完成任务" + item.currPointNo + "," + item.endPointNo);
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData.SnowId.NextId().ToString(),
- taskCode = wcsCmd.taskCode
+ taskCode = item.taskCode
};
string message = JsonConvert.SerializeObject(agvTask);
string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message);
@@ -172,10 +148,8 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Update(wmsRawReturn);
}
}
- dbContext.Remove(wcsCmd);
dbContext.Remove(item);
dbContext.SaveChanges();
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog() { cmdStatus = 8 });
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 });
}
}
diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs
index cb483e5..8b6b939 100644
--- a/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs
+++ b/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs
@@ -138,7 +138,6 @@ namespace Khd.Core.Wcs.Wcs
createBy = FloorNo + "楼CTU",
createTime = DateTime.Now,
};
- wmsBaseLocation.instockFlag = "1";
wmsBaseLocation.locationStatus = "2";
wmsBaseLocation.updateTime = DateTime.Now;
dbContext.Update(wmsBaseLocation);
@@ -180,7 +179,6 @@ namespace Khd.Core.Wcs.Wcs
createBy = FloorNo + "楼CTU",
createTime = DateTime.Now,
};
- wmsBaseLocation.instockFlag = "1";
wmsBaseLocation.locationStatus = "2";
wmsBaseLocation.updateTime = DateTime.Now;
dbContext.Update(wmsBaseLocation);
@@ -220,7 +218,6 @@ namespace Khd.Core.Wcs.Wcs
createBy = FloorNo + "楼CTU",
createTime = DateTime.Now,
};
- wmsBaseLocation.instockFlag = "1";
wmsBaseLocation.locationStatus = "2";
wmsBaseLocation.updateTime = DateTime.Now;
dbContext.Update(wmsBaseLocation);
@@ -393,22 +390,6 @@ namespace Khd.Core.Wcs.Wcs
{
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId);
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
- var wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼CTU",
- currPointId = wmsBaseLocation.locationId,
- currPointNo = wmsBaseLocation.agvPositionCode,
- nextPointId = endEquip.objid,
- nextPointNo = endEquip.agvPositionCode,
- taskCode = null
- };
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData.SnowId.NextId().ToString(),
@@ -416,12 +397,12 @@ namespace Khd.Core.Wcs.Wcs
{
new()
{
- positionCode = wcsCmd.currPointNo,
+ positionCode =wmsBaseLocation.agvPositionCode,
type = "05"//05库位
},
new()
{
- positionCode = wcsCmd.nextPointNo,
+ positionCode = endEquip.agvPositionCode,
type = "00"//设备
},
},
@@ -433,14 +414,12 @@ namespace Khd.Core.Wcs.Wcs
var reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.code == "0")
{
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ LogManager.Info("五楼CTU线程开始任务" + item.objid);
+ Console.WriteLine(DateTime.Now + ":五楼CTU线程开始任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.WcsCmd.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -455,22 +434,6 @@ namespace Khd.Core.Wcs.Wcs
{
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId);
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId);
- var wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼CTU",
- nextPointId = wmsBaseLocation.locationId,
- nextPointNo = wmsBaseLocation.agvPositionCode,
- currPointId = startEquip.objid,
- currPointNo = startEquip.agvPositionCode,
- };
-
var agvTask = new
{
reqCode = StaticData.SnowId.NextId().ToString(),
@@ -478,12 +441,12 @@ namespace Khd.Core.Wcs.Wcs
{
new()
{
- positionCode = wcsCmd.currPointNo,
+ positionCode = wmsBaseLocation.agvPositionCode,
type = "05"//设备
},
new()
{
- positionCode = wcsCmd.nextPointNo,
+ positionCode = startEquip.agvPositionCode,
type = "05"//库位
},
},
@@ -495,14 +458,12 @@ namespace Khd.Core.Wcs.Wcs
var reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.code == "0")
{
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ LogManager.Info("五楼CTU线程开始任务" + item.objid);
+ Console.WriteLine(DateTime.Now + ":五楼CTU线程开始任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
dbContext.Update(item);
- dbContext.Add(wcsCmd);
int ctuTaskCount = dbContext.WcsTask.Where(t => t.taskType == 29).Count();
lock (SystemData.outStockLock)
{
@@ -513,7 +474,6 @@ namespace Khd.Core.Wcs.Wcs
wcsOutstockLock.qty = 0;
wcsOutstockLock.boxStatus = 0;
dbContext.Update(wcsOutstockLock);
- //isWait = false;
}
}
dbContext.SaveChanges();
@@ -528,22 +488,6 @@ namespace Khd.Core.Wcs.Wcs
{
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId);
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
- var wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼CTU",
- currPointId = wmsBaseLocation.locationId,
- currPointNo = wmsBaseLocation.agvPositionCode,
- nextPointId = endEquip.objid,
- nextPointNo = endEquip.agvPositionCode,
- taskCode = null
- };
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData.SnowId.NextId().ToString(),
@@ -551,12 +495,12 @@ namespace Khd.Core.Wcs.Wcs
{
new()
{
- positionCode = wcsCmd.currPointNo,
+ positionCode =wmsBaseLocation.agvPositionCode,
type = "05"
},
new()
{
- positionCode = wcsCmd.nextPointNo,
+ positionCode =endEquip.agvPositionCode,
type = "00"
},
},
@@ -568,14 +512,10 @@ namespace Khd.Core.Wcs.Wcs
var reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.code == "0")
{
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.WcsCmd.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -586,10 +526,8 @@ namespace Khd.Core.Wcs.Wcs
}
else
{
- WcsCmd? wcsCmd = dbContext.WcsCmd.FirstOrDefault(t => t.taskId == item.objid);
- if (wcsCmd != null)
{
- if (wcsCmd.cmdStatus == 3)
+ if (item.taskStatus == 3)
{
if (item.taskType == 30 || item.taskType == 100)
{
@@ -599,7 +537,7 @@ namespace Khd.Core.Wcs.Wcs
var agvTask = new
{
reqCode = StaticData.SnowId.NextId().ToString(),
- taskCode = wcsCmd.taskCode,
+ taskCode = item.taskCode,
type = 2
};
string message = JsonConvert.SerializeObject(agvTask);
@@ -609,11 +547,8 @@ namespace Khd.Core.Wcs.Wcs
{
LogManager.Info("五楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
Console.WriteLine(DateTime.Now + ":五楼CTU线程继续任务" + item.currPointId + "," + item.endPointNo);
- dbContext.WcsCmd.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmd() { cmdStatus = 4 });
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog() { cmdStatus = 4 });
dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 4 });
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 });
- dbContext.SaveChanges();
}
else
{
@@ -626,7 +561,7 @@ namespace Khd.Core.Wcs.Wcs
var agvTask = new
{
reqCode = StaticData.SnowId.NextId().ToString(),
- taskCode = wcsCmd.taskCode,
+ taskCode = item.taskCode,
type = 1
};
string message = JsonConvert.SerializeObject(agvTask);
@@ -636,8 +571,6 @@ namespace Khd.Core.Wcs.Wcs
{
LogManager.Info("五楼CTU线程下发任务" + agvTask.ToJsonString() + "\n" + message);
Console.WriteLine(DateTime.Now + ":五楼CTU线程下发任务" + item.currPointId + "," + item.endPointNo);
- dbContext.WcsCmd.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmd() { cmdStatus = 4 });
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog() { cmdStatus = 4 });
dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 4 });
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 });
dbContext.SaveChanges();
@@ -648,10 +581,10 @@ namespace Khd.Core.Wcs.Wcs
}
}
}
- else if (wcsCmd.cmdStatus == 5)
+ else if (item.taskStatus == 5)
{
- LogManager.Info("五楼CTU线程完成任务" + wcsCmd.objid);
- Console.WriteLine(DateTime.Now + ":五楼CTU线程完成任务" + wcsCmd.objid);
+ LogManager.Info("五楼CTU线程完成任务" + item.objid);
+ Console.WriteLine(DateTime.Now + ":五楼CTU线程完成任务" + item.currPointNo + "," + item.endPointNo);
if (item.taskType == 30)//出库任务
{
WmsRawOutstockDetail? wmsRawOutstockDetail = dbContext.WmsRawOutstockDetail.FirstOrDefault(t => t.taskCode == item.objid.ToString());
@@ -664,16 +597,13 @@ namespace Khd.Core.Wcs.Wcs
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation
.First(t => t.locationId == item.currPointId && t.warehouseFloor == 5);
- wmsBaseLocation.outstockFlag = "0";
wmsBaseLocation.locationStatus = "1";
- wmsBaseLocation.locationStatus = "2";
+ wmsBaseLocation.ContainerStatus = "2";
dbContext.Update(wmsBaseLocation);
- dbContext.WmsRawOutstockDetail.Where(t => t.locationCode == wmsBaseLocation.locationCode).Update(t => new WmsRawOutstockDetail { executeStatus = "2" });
- dbContext.Remove(wcsCmd);
- dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 6 });
dbContext.SaveChanges();
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog() { cmdStatus = 6 });
- dbContext.WcsTaskLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsTaskLog() { taskStatus = 6 });
+ dbContext.WmsRawOutstockDetail.Where(t => t.locationCode == wmsBaseLocation.locationCode).Update(t => new WmsRawOutstockDetail { executeStatus = "2" });
+ dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 6 });
+ dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 });
int wcsTaskCount = dbContext.WcsTask.Where(t => t.taskType == 30 && t.taskStatus != 6).Count();
if (wcsTaskCount == 0)
{
@@ -684,16 +614,12 @@ namespace Khd.Core.Wcs.Wcs
{
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation
.First(t => t.locationId == item.endPointId && t.warehouseFloor == 5);
- wmsBaseLocation.instockFlag = "0";
- wmsBaseLocation.locationStatus = "1";
wmsBaseLocation.locationStatus = "1";
wmsBaseLocation.ContainerStatus = "1";
dbContext.Update(wmsBaseLocation);
- dbContext.Remove(wcsCmd);
dbContext.Remove(item);
dbContext.SaveChanges();
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog() { cmdStatus = 6 });
- dbContext.WcsTaskLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsTaskLog() { taskStatus = 6 });
+ dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 });
lock (SystemData.outStockLock)
{
WcsOutstockLock wcsOutstockLock = dbContext.WcsOutstockLock.Where(t => t.warehouseId == 512).First();
@@ -707,15 +633,12 @@ namespace Khd.Core.Wcs.Wcs
{
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation
.First(t => t.locationId == item.currPointId && t.warehouseFloor == 5);
- wmsBaseLocation.outstockFlag = "0";
wmsBaseLocation.locationStatus = "1";
- wmsBaseLocation.locationStatus = "2";
+ wmsBaseLocation.ContainerStatus = "2";
dbContext.Update(wmsBaseLocation);
- dbContext.Remove(wcsCmd);
dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 6 });
dbContext.SaveChanges();
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog() { cmdStatus = 6 });
- dbContext.WcsTaskLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsTaskLog() { taskStatus = 6 });
+ dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 });
int wcsTaskCount = dbContext.WcsTask.Where(t => (t.taskType == 30 || t.taskType == 100) && t.taskStatus != 6).Count();
if (wcsTaskCount == 0)
{
diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorPoint.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorPoint.cs
index b3182bd..9b58004 100644
--- a/src/Khd.Core.Wcs/Wcs/FiveFloorPoint.cs
+++ b/src/Khd.Core.Wcs/Wcs/FiveFloorPoint.cs
@@ -64,7 +64,7 @@ namespace Khd.Core.Wcs.Wcs
continue;
}
//正常读到输送线信息 有到位信号,并且有托盘,获取条码信息
- if (Convert.ToInt32(isSignal) == 1)
+ if (Convert.ToInt32(isSignal) == 1)//五楼接驳位
{
//获取条码信息
BaseEquip baseEquip = StaticData.BaseEquip.First(t => t.equipType == 1 && t.floorNo == FloorNo);
@@ -78,8 +78,6 @@ namespace Khd.Core.Wcs.Wcs
.Where(t => t.activeFlag == "1")
.Where(t => t.delFlag == "0")
.Where(t => t.locationScrapType == "1")
- .Where(t => t.instockFlag == "0")
- .Where(t => t.outstockFlag == "0")
.Where(t => t.warehouseId == 511)
.Where(t => t.locationStatus == "1")
.ToList();
@@ -103,8 +101,6 @@ namespace Khd.Core.Wcs.Wcs
&& b.locRow == (a.b.locRow % 2 == 0 ? a.b.locRow + 1 : a.b.locRow - 1)
&& a.b.locColumn == b.locColumn
&& b.locationStatus == "1"
- && b.outstockFlag == "0"
- && b.instockFlag == "0"
&& string.IsNullOrEmpty(b.containerCode)
select new { a.b };//在上面的基础上获取对应托盘的外侧库位的空库位信息
@@ -114,7 +110,7 @@ namespace Khd.Core.Wcs.Wcs
wmsBaseLocation ??= wmsBaseLocations.Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault();//找不到再找任意库位
//深浅库位问题?库位入库优先级等
- var AgvEquip = StaticData.BaseEquip.First(t => t.objid == 28);//
+ var AgvEquip = StaticData.BaseEquip.First(t => t.objid == 28);//5楼叉车
if (wmsBaseLocations.Count > 0 && wmsBaseLocation != null)
{
WcsTask newTask = CoreMapper.Map(wcsTask);
@@ -129,7 +125,7 @@ namespace Khd.Core.Wcs.Wcs
newTask.objid = StaticData.SnowId.NextId();
newTask.createTime = DateTime.Now;
newTask.taskType = 47;
- if (newTask.fromFloorNo != 1)
+ if (newTask.fromFloorNo != 1)//如果不是一楼来的,需要通过接口确认入库(质检通过后,点击继续入库)
{
newTask.useFlag = 0;
}
@@ -137,7 +133,6 @@ namespace Khd.Core.Wcs.Wcs
{
newTask.useFlag = 1;
}
- wmsBaseLocation.instockFlag = "1";
wmsBaseLocation.locationStatus = "2";
dbContext.Update(wmsBaseLocation);
dbContext.Remove(wcsTask);
@@ -157,35 +152,35 @@ namespace Khd.Core.Wcs.Wcs
}
else if (wcsTask.taskStatus == 6) //出库任务,小车任务是完成状态
{
- int? floor = 1;
- var wmsProductOutstock = dbContext.WmsProductOutstock.FirstOrDefault(t => t.productOutstockId == wcsTask.orderId);
- if (wmsProductOutstock != null)
- {
- var endEquip = StaticData.BaseEquip.FirstOrDefault(t => t.equipNo == wmsProductOutstock.endStationCode);
- if (endEquip != null)
- {
- floor = endEquip.floorNo;
- }
- }
- else
- {
- var wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == wcsTask.orderId);
- if (wmsRawOutstock != null)
- {
- var endEquip = StaticData.BaseEquip.FirstOrDefault(t => t.equipNo == wmsRawOutstock.endStationCode);
- if (endEquip != null)
- {
- floor = endEquip.floorNo;
- }
- }
- }
- if (floor == 0)
- {
- Console.WriteLine($"{DateTime.Now}:5楼接驳位未找到目的地楼层");
- LogManager.Info("5楼接驳位未找到目的地楼层");
- Thread.Sleep(1000);
- continue;
- }
+ //int? floor = 1;
+ //var wmsProductOutstock = dbContext.WmsProductOutstock.FirstOrDefault(t => t.productOutstockId == wcsTask.orderId);
+ //if (wmsProductOutstock != null)
+ //{
+ // var endEquip = StaticData.BaseEquip.FirstOrDefault(t => t.equipNo == wmsProductOutstock.endStationCode);
+ // if (endEquip != null)
+ // {
+ // floor = endEquip.floorNo;
+ // }
+ //}
+ //else
+ //{
+ // var wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == wcsTask.orderId);
+ // if (wmsRawOutstock != null)
+ // {
+ // var endEquip = StaticData.BaseEquip.FirstOrDefault(t => t.equipNo == wmsRawOutstock.endStationCode);
+ // if (endEquip != null)
+ // {
+ // floor = endEquip.floorNo;
+ // }
+ // }
+ //}
+ //if (floor == 0)
+ //{
+ // Console.WriteLine($"{DateTime.Now}:5楼接驳位未找到目的地楼层");
+ // LogManager.Info("5楼接驳位未找到目的地楼层");
+ // Thread.Sleep(1000);
+ // continue;
+ //}
BaseEquip nextEquip = StaticData.BaseEquip.First(t => t.equipType == 2);//提升机
dbContext.Remove(wcsTask);
WcsTask newTask = CoreMapper.Map(wcsTask);
@@ -197,7 +192,7 @@ namespace Khd.Core.Wcs.Wcs
newTask.currPointNo = baseEquip.equipNo;
newTask.fromFloorNo = FloorNo;
newTask.taskType = 6;//成品出库
- newTask.floorNo = floor;//出库楼层
+ newTask.floorNo = 1;//出库楼层
newTask.taskStatus = 0;
newTask.createTime = DateTime.Now;
dbContext.Add(newTask);
diff --git a/src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs b/src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs
index b7c655e..a3aff6e 100644
--- a/src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs
+++ b/src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs
@@ -66,34 +66,19 @@ namespace Khd.Core.Wcs.Wcs
BaseDictionary baseDictionary = StaticData.BaseDictionary.First(t => t.objid == item.taskType);
if (item.taskType == 51)//输送线-小包入口
{
- WcsCmd wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = lineEquip.agvPositionCode,
- nextPointId = item.endPointId,
- nextPointNo = inEquip.agvPositionCode,
- };
var agvTask = new RequestAGVTaskDto
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode= lineEquip.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=inEquip.agvPositionCode,
type="00"
}
},
@@ -106,15 +91,11 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("二楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
- Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointId + "," + item.endPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -125,34 +106,19 @@ namespace Khd.Core.Wcs.Wcs
else if (item.taskType == 56)//废料工位-库位
{
var endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId);
- WcsCmd wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = wasteEquip.agvPositionCode,
- nextPointId = item.endPointId,
- nextPointNo = endEquip.agvPositionCode,
- };
var agvTask = new RequestAGVTaskDto
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=wasteEquip.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode= endEquip.agvPositionCode,
type="00"
}
},
@@ -166,15 +132,11 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("二楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
- Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointId + "," + item.endPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -186,34 +148,19 @@ namespace Khd.Core.Wcs.Wcs
{
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId);
BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId);
- WcsCmd wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = startEquip.objid,
- currPointNo = startEquip.agvPositionCode,
- nextPointId = item.endPointId,
- nextPointNo = wmsBaseLocation.agvPositionCode,
- };
var agvTask = new RequestAGVTaskDto
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=startEquip.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=wmsBaseLocation.agvPositionCode,
type="00"
}
},
@@ -226,15 +173,11 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("二楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
- Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointId + "," + item.endPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -245,34 +188,19 @@ namespace Khd.Core.Wcs.Wcs
else if (item.taskType == 57)//周转位-小包入口
{
var startPoint = StaticData.BaseEquip.First(t => t.objid == item.currPointId);
- WcsCmd wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = startPoint.agvPositionCode,
- nextPointId = item.endPointId,
- nextPointNo = lineEquip.agvPositionCode,
- };
var agvTask = new RequestAGVTaskDto
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=startPoint.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=lineEquip.agvPositionCode,
type="00"
}
},
@@ -285,15 +213,11 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("二楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
- Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointId + "," + item.endPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -307,34 +231,19 @@ namespace Khd.Core.Wcs.Wcs
lineEquip = dbContext.BaseEquip.First(t => t.objid == 2);
if (lineEquip.equipStatus == 0)
{
- WcsCmd wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = startPoint.agvPositionCode,
- nextPointId = lineEquip.objid,
- nextPointNo = lineEquip.agvPositionCode,
- };
var agvTask = new RequestAGVTaskDto
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=startPoint.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode= lineEquip.agvPositionCode,
type="00"
}
},
@@ -346,18 +255,14 @@ namespace Khd.Core.Wcs.Wcs
var reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.message == "成功")
{
- LogManager.Info("二楼AGV线程下发任务" + wcsCmd.ToJsonString() + "\n" + message);
- Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointId + "," + item.endPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ LogManager.Info("二楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
+ Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
lineEquip.equipStatus = 1;
dbContext.Update(lineEquip);
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -370,34 +275,19 @@ namespace Khd.Core.Wcs.Wcs
{
WmsBaseLocation fromWmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
WmsBaseLocation toWmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId);
- WcsCmd wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = fromWmsBaseLocation.agvPositionCode,
- nextPointId = item.endPointId,
- nextPointNo = toWmsBaseLocation.agvPositionCode,
- };
var agvTask = new RequestAGVTaskDto
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new()
{
- positionCode = wcsCmd.currPointNo,
+ positionCode = fromWmsBaseLocation.agvPositionCode,
type = "00"
},
new()
{
- positionCode = wcsCmd.nextPointNo,
+ positionCode = toWmsBaseLocation.agvPositionCode,
type = "00"
}
@@ -411,15 +301,11 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("二楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
- Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointId + "," + item.endPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -429,34 +315,19 @@ namespace Khd.Core.Wcs.Wcs
}
else if (item.taskType == 53)//提升机-废料工位
{
- WcsCmd wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = lineEquip.agvPositionCode,
- nextPointId = item.endPointId,
- nextPointNo = wasteEquip.agvPositionCode,
- };
var agvTask = new RequestAGVTaskDto
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=lineEquip.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=wasteEquip.agvPositionCode,
type="00"
}
},
@@ -469,15 +340,11 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("二楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
- Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointId + "," + item.endPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -490,34 +357,19 @@ namespace Khd.Core.Wcs.Wcs
var wasteEquipLocation = StaticData.BaseEquip.FirstOrDefault(t => t.objid == item.currPointId);
if (wasteEquipLocation != null)
{
- WcsCmd wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = wasteEquipLocation.agvPositionCode,
- nextPointId = item.endPointId,
- nextPointNo = wasteEquip.agvPositionCode,
- };
var agvTask = new RequestAGVTaskDto
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=wasteEquipLocation.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=wasteEquip.agvPositionCode,
type="00"
}
},
@@ -530,15 +382,11 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("二楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
- Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointId + "," + item.endPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -550,34 +398,19 @@ namespace Khd.Core.Wcs.Wcs
else if (item.taskType == 58)//提升机到周转位
{
var endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId);
- WcsCmd wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = lineEquip.agvPositionCode,
- nextPointId = item.endPointId,
- nextPointNo = endEquip.agvPositionCode,
- };
var agvTask = new RequestAGVTaskDto
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=lineEquip.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=endEquip.agvPositionCode,
type="00"
}
},
@@ -590,15 +423,11 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("二楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
- Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointId + "," + item.endPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -610,34 +439,20 @@ namespace Khd.Core.Wcs.Wcs
{
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId);
- WcsCmd wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = startEquip.agvPositionCode,
- nextPointId = item.endPointId,
- nextPointNo = endEquip.agvPositionCode,
- };
+
var agvTask = new RequestAGVTaskDto
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=startEquip.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=endEquip.agvPositionCode,
type="00"
}
},
@@ -650,15 +465,11 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("二楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
- Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointId + "," + item.endPointNo);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -669,13 +480,11 @@ namespace Khd.Core.Wcs.Wcs
}
else
{
- WcsCmd? wcsCmd = dbContext.WcsCmd.FirstOrDefault(t => t.taskId == item.objid);
- if (wcsCmd != null)
{
LogManager.Info("二楼AGV线程完成任务" + item.objid);
- if (wcsCmd.cmdStatus == 3)
+ if (item.taskStatus == 3)
{
- if (wcsCmd.currPointId == lineEquip.objid)
+ if (item.currPointId == lineEquip.objid)
{
var lineSignal02 = StaticData.PlcDic[0].Read(StaticData.BasePlcpointList.First(t => t.plcpointNo == "linesignal02").plcpointAddress);
var rfid = StaticData.PlcDic[0].ReadRFID(StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID002").plcpointAddress);
@@ -684,65 +493,53 @@ namespace Khd.Core.Wcs.Wcs
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData.SnowId.NextId().ToString(),
- taskCode = wcsCmd.taskCode
+ taskCode = item.taskCode
};
string message = JsonConvert.SerializeObject(agvTask);
string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message);
ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.message == "成功")
{
- wcsCmd.cmdStatus = 4;
- dbContext.WcsCmd.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmd() { cmdStatus = 4 });
- dbContext.Update(wcsCmd);
dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 4 });
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 });
- dbContext.SaveChanges();
}
}
}
- else if (wcsCmd.currPointId == wasteEquip.objid)
+ else if (item.currPointId == wasteEquip.objid)
{
if (true)
{
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData.SnowId.NextId().ToString(),
- taskCode = wcsCmd.taskCode
+ taskCode = item.taskCode
};
string message = JsonConvert.SerializeObject(agvTask);
string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message);
ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.message == "成功")
{
- wcsCmd.cmdStatus = 4;
- dbContext.WcsCmd.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmd() { cmdStatus = 4 });
- dbContext.Update(wcsCmd);
dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 4 });
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 });
- dbContext.SaveChanges();
}
}
}
- else if (wcsCmd.currPointId == outEquip.objid)
+ else if (item.currPointId == outEquip.objid)
{
if (true)
{
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData.SnowId.NextId().ToString(),
- taskCode = wcsCmd.taskCode
+ taskCode = item.taskCode
};
string message = JsonConvert.SerializeObject(agvTask);
string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message);
ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.message == "成功")
{
- wcsCmd.cmdStatus = 4;
- dbContext.WcsCmd.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmd() { cmdStatus = 4 });
- dbContext.Update(wcsCmd);
dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 4 });
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 });
- dbContext.SaveChanges();
}
}
}
@@ -751,24 +548,19 @@ namespace Khd.Core.Wcs.Wcs
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData.SnowId.NextId().ToString(),
- taskCode = wcsCmd.taskCode
+ taskCode = item.taskCode
};
string message = JsonConvert.SerializeObject(agvTask);
string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message);
ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.message == "成功")
{
- wcsCmd.cmdStatus = 4;
- item.taskStatus = 4;
- dbContext.Update(wcsCmd);
- dbContext.Update(item);
dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 4 });
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 });
- dbContext.SaveChanges();
}
}
}
- else if (wcsCmd.cmdStatus == 5)
+ else if (item.taskStatus == 5)
{
if (item.taskType == 51)
{
@@ -777,20 +569,15 @@ namespace Khd.Core.Wcs.Wcs
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData.SnowId.NextId().ToString(),
- taskCode = wcsCmd.taskCode
+ taskCode = item.taskCode
};
string message = JsonConvert.SerializeObject(agvTask);
string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message);
ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.message == "成功")
{
- wcsCmd.cmdStatus = 6;
- item.taskStatus = 6;
- dbContext.Update(item);
- dbContext.Update(wcsCmd);
dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 6 });
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 });
- dbContext.SaveChanges();
}
}
}
@@ -818,7 +605,6 @@ namespace Khd.Core.Wcs.Wcs
if (mesBaseBarcodeInfo != null)
{
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId);
- wmsBaseLocation.instockFlag = "0";
wmsBaseLocation.locationStatus = "1";
wmsBaseLocation.containerCode = item.containerNo;
WmsProductStock wmsProductStock = new WmsProductStock()
@@ -854,9 +640,7 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Update(wmsBaseLocation);
//dbContext.Update(wmsProductInstock);
dbContext.Remove(item);
- dbContext.Remove(wcsCmd);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 });
- dbContext.WcsCmdLog.Where(t => t.objid == item.objid).Update(t => new WcsCmdLog() { cmdStatus = 8 });
dbContext.SaveChanges();
}
// }
@@ -881,7 +665,6 @@ namespace Khd.Core.Wcs.Wcs
}
wmsProductOutstockDetail.executeStatus = "2";
wmsBaseLocation.locationStatus = "1";
- wmsBaseLocation.outstockFlag = "0";
wmsBaseLocation.containerCode = null;
item.nextPointId = 2;
item.taskStatus = 8;
@@ -890,27 +673,23 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Update(wmsProductOutstockDetail);
dbContext.Update(wmsProductOutstock);
dbContext.Update(item);
- dbContext.Remove(wcsCmd);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 });
- dbContext.WcsCmdLog.Where(t => t.objid == item.objid).Update(t => new WcsCmdLog() { cmdStatus = 8 });
dbContext.SaveChanges();
}
}
}
- else if (item.taskType == 58)
+ else if (item.taskType == 58)//空托盘入周转位
{
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId);
endEquip.equipStatus = 1;
endEquip.emptyCount = item.qty;
dbContext.Update(endEquip);
dbContext.Remove(item);
- dbContext.Remove(wcsCmd);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 });
- dbContext.WcsCmdLog.Where(t => t.objid == item.objid).Update(t => new WcsCmdLog() { cmdStatus = 8 });
dbContext.SaveChanges();
}
- else if (item.taskType == 53)
+ else if (item.taskType == 53)//提升机到废料口
{
BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId);
startEquip.equipStatus = 0;
@@ -921,23 +700,19 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Update(endEquip);
dbContext.Update(startEquip);
dbContext.Remove(item);
- dbContext.Remove(wcsCmd);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 });
- dbContext.WcsCmdLog.Where(t => t.objid == item.objid).Update(t => new WcsCmdLog() { cmdStatus = 8 });
dbContext.SaveChanges();
}
- else if (item.taskType == 51)
+ else if (item.taskType == 51)//输送线到小包入口
{
BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId);
startEquip.equipStatus = 0;
dbContext.Update(startEquip);
dbContext.Remove(item);
- dbContext.Remove(wcsCmd);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 });
- dbContext.WcsCmdLog.Where(t => t.objid == item.objid).Update(t => new WcsCmdLog() { cmdStatus = 8 });
dbContext.SaveChanges();
}
- else if (item.taskType == 54)
+ else if (item.taskType == 54)//周转位到废料口
{
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId);
startEquip.equipStatus = 0;
@@ -950,49 +725,34 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Update(startEquip);
dbContext.Update(endEquip);
dbContext.Remove(item);
- dbContext.Remove(wcsCmd);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 });
- dbContext.WcsCmdLog.Where(t => t.objid == item.objid).Update(t => new WcsCmdLog() { cmdStatus = 8 });
dbContext.SaveChanges();
}
- else if (item.taskType == 55)
+ else if (item.taskType == 55)//移库
{
using var transaction = dbContext.Database.BeginTransaction();
try
{
- var wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == item.endPointNo).FirstOrDefault();
- if (wmsRawStock != null)
+ var wmsProductStock = dbContext.WmsProductStock.FirstOrDefault(t => t.locationCode == item.currPointNo);
+ if (wmsProductStock != null)
{
- wmsRawStock.locationCode = item.endPointNo;
- dbContext.Update(wmsRawStock);
- }
- else
- {
- var wmsProductStock = dbContext.WmsProductStock.FirstOrDefault(t => t.locationCode == item.currPointNo);
- if (wmsProductStock != null)
- {
- wmsProductStock.locationCode = item.currPointNo;
- dbContext.Update(wmsProductStock);
- }
+ wmsProductStock.locationCode = item.endPointNo;
+ dbContext.Update(wmsProductStock);
}
dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).Update(t => new WmsBaseLocation
{
- outstockFlag = "0",
locationStatus = "1",
containerCode = null,
updateTime = DateTime.Now
});
dbContext.WmsBaseLocation.Where(t => t.locationId == item.endPointId).Update(t => new WmsBaseLocation
{
- instockFlag = "0",
locationStatus = "1",
containerCode = item.containerNo,
updateTime = DateTime.Now
});
dbContext.Remove(item);
- dbContext.Remove(wcsCmd);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 });
- dbContext.WcsCmdLog.Where(t => t.objid == item.objid).Update(t => new WcsCmdLog() { cmdStatus = 8 });
transaction.Commit();
dbContext.SaveChanges();
}
@@ -1002,7 +762,7 @@ namespace Khd.Core.Wcs.Wcs
LogManager.Error(ex);
}
}
- else if (item.taskType == 56)
+ else if (item.taskType == 56)//废料区到周转区
{
wasteEquip.emptyCount = 0;
wasteEquip.equipStatus = 0;
@@ -1012,26 +772,23 @@ namespace Khd.Core.Wcs.Wcs
endEquip.containerNo = item.containerNo;
dbContext.Remove(item);
dbContext.Update(wasteEquip);
- dbContext.Remove(wcsCmd);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 });
- dbContext.WcsCmdLog.Where(t => t.objid == item.objid).Update(t => new WcsCmdLog() { cmdStatus = 8 });
dbContext.SaveChanges();
}
- else if (item.taskType == 57)
+ else if (item.taskType == 57)//周转位-提升机
{
BaseEquip emptyEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId);
emptyEquip.emptyCount = 0;
emptyEquip.equipStatus = 0;
emptyEquip.containerNo = null;
+ item.nextPointId = 2;
item.taskStatus = 8;
dbContext.Update(item);
dbContext.Update(emptyEquip);
- dbContext.Remove(wcsCmd);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 });
- dbContext.WcsCmdLog.Where(t => t.objid == item.objid).Update(t => new WcsCmdLog() { cmdStatus = 6 });
dbContext.SaveChanges();
}
- else if (item.taskType == 59)
+ else if (item.taskType == 59)//周转区-小包入口
{
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId);
startEquip.equipStatus = 0;
@@ -1039,9 +796,7 @@ namespace Khd.Core.Wcs.Wcs
startEquip.containerNo = null;
dbContext.Update(startEquip);
dbContext.Remove(item);
- dbContext.Remove(wcsCmd);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 });
- dbContext.WcsCmdLog.Where(t => t.objid == item.objid).Update(t => new WcsCmdLog() { cmdStatus = 8 });
dbContext.SaveChanges();
}
}
diff --git a/src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs b/src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs
index 74ccd06..19f8327 100644
--- a/src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs
+++ b/src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs
@@ -1,4 +1,5 @@
-using Khd.Core.Domain.Models;
+using Azure.Identity;
+using Khd.Core.Domain.Models;
using Khd.Core.EntityFramework;
using Khd.Core.Library.Mapper;
using Khd.Core.Plc.S7;
@@ -11,7 +12,7 @@ using Z.EntityFramework.Plus;
namespace Khd.Core.Wcs.Wcs
{
///
- /// 二楼码垛输送线调度
+ /// 二楼小包出入口
///
public class SecondFloorLine
{
@@ -49,27 +50,28 @@ namespace Khd.Core.Wcs.Wcs
try
{
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
- var agvGetValue = StaticData.PlcDic[2].Read(agvGetPoint.plcpointAddress);
- var agvPutValue = StaticData.PlcDic[2].Read(agvPutPoint.plcpointAddress);
- var rfidValue = StaticData.PlcDic[2].ReadRFID(rfidPoint.plcpointAddress);
- if (agvGetValue != null && agvPutValue != null && rfidValue != null)
+ var agvPutValue = StaticData.PlcDic[2].Read(agvPutPoint.plcpointAddress);//小包入口叫料
+ var agvGetValue = StaticData.PlcDic[2].Read(agvGetPoint.plcpointAddress);//小包出口的到位
+ var rfidValue = StaticData.PlcDic[2].ReadRFID(rfidPoint.plcpointAddress);//小包出口的RFID
+ if (agvGetValue != null && agvPutValue != null && rfidValue != null)//读Plc
{
- if (Convert.ToInt32(agvPutValue) == 0)
+ if (Convert.ToInt32(agvPutValue) == 0)//小包入口叫料
{
- bool canCreate = dbContext.WcsTask.Where(t => t.endPointId == 36 || t.nextPointId == 8 || t.endPointId == endEquip.objid).Any();
- if (!canCreate)
+ bool canCreate = dbContext.WcsTask.Where(t => t.nextPointId == 8 || t.endPointId == endEquip.objid).Any();//有没有生成任务
+ //36 是小包入口的设备信息,8是二楼Agv设备
+ if (!canCreate)//没有任务
{
- BaseEquip? baseEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 20 && t.emptyCount > 1);
- if (baseEquip != null)
+ BaseEquip? baseEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 20 && t.emptyCount >= 1);//二楼周转区是否存在一个空托盘以上的
+ if (baseEquip != null)//二楼周转区有可以去小包入口的库位
{
var wcsTask = new WcsTask()
{
objid = StaticData.SnowId.NextId(),
- endPointId = endEquip.objid,
+ endPointId = endEquip.objid,//小包入口
endPointNo = endEquip.equipNo,
- nextPointId = agvEquip.objid,
+ nextPointId = agvEquip.objid,//二楼叉车
nextPointNo = agvEquip.equipNo,
- currPointId = baseEquip.objid,
+ currPointId = baseEquip.objid,//周转区库位
currPointNo = baseEquip.equipNo,
taskStatus = 0,
useFlag = 1,
@@ -79,8 +81,8 @@ namespace Khd.Core.Wcs.Wcs
floorNo = 2,
fromFloorNo = 2,
isEmpty = "1",
- qty = baseEquip.emptyCount,
- taskType = 59,
+ qty = baseEquip.emptyCount,//托盘的数量
+ taskType = 59,//任务类型
};
dbContext.Add(wcsTask);
WcsTaskLog wcsTaskLog = CoreMapper.Map(wcsTask);
@@ -89,14 +91,14 @@ namespace Khd.Core.Wcs.Wcs
Console.WriteLine(DateTime.Now + ":二楼码垛输送线生成请求空托盘任务成功:" + wcsTask.objid);
LogManager.Info("二楼码垛输送线生成请求空托盘任务成功:" + wcsTask.objid);
}
- else
+ else//二楼周转区没有空托盘
{
- baseEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 15 && t.emptyCount == SystemData.maxTray && t.equipStatus == 1);
- if (baseEquip != null)
+ baseEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 15 && t.emptyCount == SystemData.maxTray && t.equipStatus == 1);//三楼三个周转区是否存在空托盘
+ if (baseEquip != null)//如果三楼有空托盘
{
- BaseEquip ThirdLineEquip = StaticData.BaseEquip.First(t => t.objid == 3);
- BaseEquip ThirdAgvEquip = StaticData.BaseEquip.First(t => t.objid == 9);
- if (ThirdLineEquip.equipStatus == 0)
+ BaseEquip ThirdLineEquip = dbContext.BaseEquip.First(t => t.objid == 3);//三楼接驳位
+ BaseEquip ThirdAgvEquip = StaticData.BaseEquip.First(t => t.objid == 9);//三楼叉车
+ if (ThirdLineEquip.equipStatus == 0)//三楼接驳位空闲
{
//生成3楼Agv出库任务
WcsTask wcsTask = new WcsTask()
@@ -129,18 +131,18 @@ namespace Khd.Core.Wcs.Wcs
}
else
{
- BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == 40);
- if (startEquip.emptyCount > 1)
+ BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == 40);//一楼的托盘库
+ if (startEquip.emptyCount > 1 && startEquip.emptyCount <= SystemData.maxTray)
{
- BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "someOut");
- BasePlcpoint linesignal01 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "linesignal01");
- BasePlcpoint equipstate06 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "equipstate06");
- BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 1);
+ BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "someOut");//多个出
+ BasePlcpoint linesignal01 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "linesignal01");//一楼接驳位到位
+ BasePlcpoint equipstate06 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "equipstate06");//提升机状态
+ BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 1);//一楼接驳位
var lineSignal01Value = StaticData.PlcDic[0].Read(linesignal01.plcpointAddress);
var equipstate06Value = StaticData.PlcDic[0].Read(equipstate06.plcpointAddress);
if (FirstFloor.ReadEmptyLocation() && Convert.ToInt32(lineSignal01Value) == 0 && Convert.ToInt32(equipstate06Value) == 0)
{
- StaticData.PlcDic[0].WriteToPoint(basePlcpoint.plcpointAddress, "1", basePlcpoint.plcpointLength.ToString());
+ StaticData.PlcDic[0].WriteToPoint(basePlcpoint.plcpointAddress, "1", basePlcpoint.plcpointLength.ToString());//托盘库多个出
WcsTask wcsTaskManual = new WcsTask()
{
objid = StaticData.SnowId.NextId(),
@@ -169,88 +171,137 @@ namespace Khd.Core.Wcs.Wcs
LogManager.Info("二楼码垛输送线生成手动托盘任务成功:" + wcsTaskManual.objid);
}
}
+ else if (startEquip.emptyCount > SystemData.maxTray)//如果托盘库大于五个,出一个
+ {
+ BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "oneOut");//多个出
+ BasePlcpoint linesignal01 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "linesignal01");//一楼接驳位到位
+ BasePlcpoint equipstate06 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "equipstate06");//提升机状态
+ BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 1);//一楼接驳位
+ var lineSignal01Value = StaticData.PlcDic[0].Read(linesignal01.plcpointAddress);
+ var equipstate06Value = StaticData.PlcDic[0].Read(equipstate06.plcpointAddress);
+ if (FirstFloor.ReadEmptyLocation() && Convert.ToInt32(lineSignal01Value) == 0 && Convert.ToInt32(equipstate06Value) == 0)
+ {
+ StaticData.PlcDic[0].WriteToPoint(basePlcpoint.plcpointAddress, "1", basePlcpoint.plcpointLength.ToString());//托盘库多个出
+ WcsTask wcsTaskManual = new WcsTask()
+ {
+ objid = StaticData.SnowId.NextId(),
+ endPointId = endEquip.objid,
+ endPointNo = endEquip.equipNo,
+ nextPointId = lineEquip.objid,
+ nextPointNo = lineEquip.equipNo,
+ currPointId = lineEquip.objid,
+ currPointNo = lineEquip.equipNo,
+ taskStatus = 0,
+ useFlag = 1,
+ containerNo = null,
+ createBy = "WCS",
+ createTime = DateTime.Now,
+ floorNo = endEquip.floorNo,
+ fromFloorNo = 1,
+ isEmpty = "1",
+ qty = 1,
+ taskType = 53,
+ };
+ dbContext.Add(wcsTaskManual);
+ WcsTaskLog wcsTaskLog = CoreMapper.Map(wcsTaskManual);
+ dbContext.Add(wcsTaskLog);
+ dbContext.SaveChanges();
+ Console.WriteLine(DateTime.Now + ":二楼码垛输送线生成手动托盘任务成功:" + wcsTaskManual.objid);
+ LogManager.Info("二楼码垛输送线生成手动托盘任务成功:" + wcsTaskManual.objid);
+ }
+ }
+ else
+ {
+ //todo:没有空托盘
+ Console.WriteLine(DateTime.Now + ":二楼码垛输送线没有空托盘");
+ LogManager.Info("二楼码垛输送线没有空托盘");
+ }
}
}
}
}
- if (Convert.ToInt32(agvGetValue) == 1 && !string.IsNullOrEmpty(rfidValue))
+ if (Convert.ToInt32(agvGetValue) == 1 && !string.IsNullOrEmpty(rfidValue))//小包出口成品入口
{
MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == rfidValue);
if (mesBasePalletInfo != null)
{
- var wmsBaseLocations = dbContext.WmsBaseLocation
- .Where(t => t.warehouseFloor == FloorNo)
- .Where(t => t.activeFlag == "1")
- .Where(t => t.delFlag == "0")
- .Where(t => t.locationScrapType == "1")
- .Where(t => t.locationStatus == "1")
- .Where(t => t.instockFlag == "0")
- .Where(t => t.outstockFlag == "0")
- .Where(t => t.warehouseId == 231)
- .ToList();
- var wmsProductStocks = dbContext.WmsProductStock
- .Where(t => t.warehouseId == 231)
- .ToList();
- WmsBaseLocation? wmsBaseLocation = null;
- if (wmsBaseLocations.Count > 0)
+ MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == mesBasePalletInfo.materialBarcode);
+ if (mesBaseBarcodeInfo != null)
{
- List containerCodes = wmsBaseLocations
- .Where(t => t.locDeep == 1)
- .Select(t => t.containerCode).ToList();//深库位的托盘
- List mesBasePalletInfos = dbContext.MesBasePalletInfo
- .Where(t => t.materialId == mesBasePalletInfo.materialId)
- .Where(t => containerCodes.Contains(t.palletInfoCode)).ToList();//深库位的托盘的物料等于当前任务的物料
-
- //wmsBaseLocations.Where(t=>t.locDeep==2&&string.IsNullOrEmpty()).ToList();
-
- var bill = from a in mesBasePalletInfos
- join b in wmsBaseLocations.Where(t => t.locDeep == 1) on a.palletInfoCode equals b.containerCode
- select new { b };//等于当前任务的物料的托盘的库位信息
-
- var outBill = from a in bill
- from b in wmsBaseLocations
- where a.b.layerNum == b.layerNum
- && b.locDeep == 2
- && b.locRow == (a.b.locRow % 2 == 0 ? a.b.locRow - 1 : a.b.locRow + 1)
- && a.b.locColumn == b.locColumn
- && b.locationStatus == "1"
- && b.outstockFlag == "0"
- && b.instockFlag == "0"
- && string.IsNullOrEmpty(b.containerCode)
- select new { a.b };//在上面的基础上获取对应托盘的外侧库位的空库位信息
-
- wmsBaseLocation ??= outBill.FirstOrDefault()?.b;//先找相同物料的外侧库位
- wmsBaseLocation ??= wmsBaseLocations.Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault(t => t.locDeep == 2);//找不到再找深库位
- wmsBaseLocation ??= wmsBaseLocations.Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault();//找不到再找任意库位
- if (wmsBaseLocation != null)
+ var wmsBaseLocations = dbContext.WmsBaseLocation
+ .Where(t => t.warehouseFloor == FloorNo)
+ .Where(t => t.activeFlag == "1")
+ .Where(t => t.delFlag == "0")
+ .Where(t => t.locationScrapType == "1")
+ .Where(t => t.locationStatus == "1")
+ .Where(t => t.warehouseId == 231)
+ .ToList();//所有可用库位
+ var wmsProductStocks = dbContext.WmsProductStock
+ .Where(t => t.warehouseId == 231)
+ .ToList();//仓库的库存
+ WmsBaseLocation? wmsBaseLocation = null;
+ if (wmsBaseLocations.Count > 0)
{
- BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == 37);
- var wcsTask = new WcsTask()
+ List containerCodes = wmsBaseLocations
+ .Where(t => t.locDeep == 1)
+ .Select(t => t.containerCode).ToList();//深库位的有托盘
+
+ List mesBasePalletInfos = dbContext.MesBaseBarcodeInfo
+ .Where(t => t.saleOrderId == mesBaseBarcodeInfo.saleOrderId)//销售订单
+ .Where(t => t.materialId == mesBasePalletInfo.materialId)//物料Id
+ .Where(t => containerCodes.Contains(t.palletInfoCode)).ToList();//深库位的托盘的物料等于当前任务的物料
+
+ var bill = from a in mesBasePalletInfos
+ join b in wmsBaseLocations.Where(t => t.locDeep == 1) on a.palletInfoCode equals b.containerCode
+ select new { b };//等于当前任务的物料的托盘的库位信息
+
+ var outBill = from a in bill//深库位托盘和当前任务绑定物料一致的托盘库位
+ from b in wmsBaseLocations//所有库位
+ where a.b.layerNum == b.layerNum//层数相同
+ && b.locDeep == 2//浅库位
+ && b.locRow == (a.b.locRow % 2 == 0 ? a.b.locRow - 1 : a.b.locRow + 1)
+ //如果是4则找3,如果是1则找2
+ && a.b.locColumn == b.locColumn//列数相同
+ && string.IsNullOrEmpty(b.containerCode)
+ select new { a.b };//在上面的基础上获取对应托盘的外侧库位的空库位信息
+
+ wmsBaseLocation ??= outBill.FirstOrDefault()?.b;//先找相同物料的外侧库位
+ wmsBaseLocation ??= wmsBaseLocations.Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault(t => t.locDeep == 2);//找不到再找深库位
+ wmsBaseLocation ??= wmsBaseLocations.Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault();//找不到再找任意库位
+ if (wmsBaseLocation != null)//如果找到库位,生成入库任务
{
- objid = StaticData.SnowId.NextId(),
- currPointId = startEquip.objid,
- currPointNo = startEquip.equipNo,
- nextPointId = agvEquip.objid,
- nextPointNo = agvEquip.equipNo,
- endPointId = wmsBaseLocation.locationId,
- endPointNo = wmsBaseLocation.locationCode,
- taskStatus = 0,
- useFlag = 1,
- containerNo = rfidValue,
- createBy = "WCS",
- createTime = DateTime.Now,
- floorNo = 2,
- fromFloorNo = 2,
- isEmpty = "0",
- taskType = 49,
- qty = 1,
- };
- dbContext.Add(wcsTask);
- WcsTaskLog wcsTaskLog = CoreMapper.Map(wcsTask);
- dbContext.Add(wcsTaskLog);
- dbContext.SaveChanges();
- Console.WriteLine(DateTime.Now + ":二楼码垛输送线生成入库托盘任务成功:" + wcsTask.objid);
- LogManager.Info("二楼码垛输送线生成入库托盘任务成功:" + wcsTask.objid);
+ BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == 37);
+ var wcsTask = new WcsTask()
+ {
+ objid = StaticData.SnowId.NextId(),
+ currPointId = startEquip.objid,
+ currPointNo = startEquip.equipNo,
+ nextPointId = agvEquip.objid,
+ nextPointNo = agvEquip.equipNo,
+ endPointId = wmsBaseLocation.locationId,
+ endPointNo = wmsBaseLocation.locationCode,
+ taskStatus = 0,
+ useFlag = 1,
+ containerNo = rfidValue,
+ createBy = "WCS",
+ createTime = DateTime.Now,
+ floorNo = 2,
+ fromFloorNo = 2,
+ isEmpty = "0",
+ taskType = 49,
+ qty = 1,
+ };
+ dbContext.Add(wcsTask);
+ WcsTaskLog wcsTaskLog = CoreMapper.Map(wcsTask);
+ dbContext.Add(wcsTaskLog);
+ dbContext.SaveChanges();
+ Console.WriteLine(DateTime.Now + ":二楼码垛输送线生成入库托盘任务成功:" + wcsTask.objid);
+ LogManager.Info("二楼码垛输送线生成入库托盘任务成功:" + wcsTask.objid);
+ }
+ else
+ {
+ //报警
+ }
}
}
}
diff --git a/src/Khd.Core.Wcs/Wcs/SecondFloorPoint.cs b/src/Khd.Core.Wcs/Wcs/SecondFloorPoint.cs
index c9b2a31..c3a5413 100644
--- a/src/Khd.Core.Wcs/Wcs/SecondFloorPoint.cs
+++ b/src/Khd.Core.Wcs/Wcs/SecondFloorPoint.cs
@@ -236,11 +236,11 @@ namespace Khd.Core.Wcs.Wcs
}
}
}
- else if (wcsTask.taskStatus == 8)
+ else if (wcsTask.taskStatus == 8)//小车任务完成
{
- if (wcsTask.taskType == 50 && wcsTask.containerNo == rfid)
+ if (wcsTask.taskType == 50 && wcsTask.containerNo == rfid)//50是成品出库
{
- BaseEquip? endEquip = StaticData.BaseEquip.First(t => t.objid == 1);
+ BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == 1);
dbContext.WcsTask.Remove(wcsTask);
WcsTask newTask = CoreMapper.Map(wcsTask);
newTask.serialNo = SystemData.GetSerialNo(dbContext);
@@ -265,9 +265,9 @@ namespace Khd.Core.Wcs.Wcs
LogManager.Info("二楼接驳位生成任务出库成功,托盘号:" + rfid);
Console.WriteLine(DateTime.Now + ":二楼接驳位生成任务出库成功,托盘号:" + rfid);
}
- else
+ else//一般情况下是废料的任务
{
- BaseEquip? endEquip = StaticData.BaseEquip.First(t => t.objid == 1);
+ BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == wcsTask.endPointId);
dbContext.WcsTask.Remove(wcsTask);
WcsTask newTask = CoreMapper.Map(wcsTask);
newTask.serialNo = SystemData.GetSerialNo(dbContext);
diff --git a/src/Khd.Core.Wcs/Wcs/SystemTimer.cs b/src/Khd.Core.Wcs/Wcs/SystemTimer.cs
index 88f50b2..0aa3514 100644
--- a/src/Khd.Core.Wcs/Wcs/SystemTimer.cs
+++ b/src/Khd.Core.Wcs/Wcs/SystemTimer.cs
@@ -85,7 +85,7 @@ namespace Khd.Core.Wcs.Wcs
}
catch
{
-
+ //报警
}
}
LogManager.Error(ex);
diff --git a/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs b/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs
index 24c1f3e..b2fdec6 100644
--- a/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs
+++ b/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs
@@ -4,6 +4,7 @@ using Khd.Core.EntityFramework;
using Khd.Core.Library.Mapper;
using Khd.Core.Plc.S7;
using Khd.Core.Wcs.Global;
+using Masuit.Tools;
using Masuit.Tools.Logging;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
@@ -54,10 +55,10 @@ namespace Khd.Core.Wcs.Wcs
try
{
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
- //var getTrayValue = this._plc.Read(getTrayPoint.plcpointAddress);
- //if (getTrayValue != null && Convert.ToInt32(getTrayValue) == 1)
- BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 31);
- if (baseEquip.emptyCount == 1)
+ var getTrayValue = StaticData.PlcDic[2].Read(getTrayPoint.plcpointAddress);
+ if (getTrayValue != null && Convert.ToInt32(getTrayValue) == 1)
+ //BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 31);
+ //if (baseEquip.emptyCount == 1)
{
var task = dbContext.WcsTask.Where(t => t.taskType == 42 && t.useFlag == 0).FirstOrDefault();
if (task != null)
@@ -66,7 +67,7 @@ namespace Khd.Core.Wcs.Wcs
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == 31);
BaseEquip agvEquip = StaticData.BaseEquip.First(t => t.objid == 9);
//if (endEquip.emptyCount != (SystemData.maxTray / 2) && endEquip.emptyCount != SystemData.maxTray)
- if (endEquip.emptyCount != SystemData.maxTray)
+ if (endEquip.emptyCount < SystemData.maxTray)
{
task.taskType = 42;
task.useFlag = 1;
@@ -136,34 +137,19 @@ namespace Khd.Core.Wcs.Wcs
{
WmsBaseLocation fromBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
WmsBaseLocation toBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId);
- WcsCmd wcsCmd = new()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = fromBaseLocation.agvPositionCode,
- nextPointId = item.endPointId,
- nextPointNo = toBaseLocation.agvPositionCode,
- };
var agvTask = new RequestAGVTaskDto
{
- reqCode = wcsCmd.objid.ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=fromBaseLocation.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=toBaseLocation.agvPositionCode,
type="00"
}
},
@@ -175,15 +161,12 @@ namespace Khd.Core.Wcs.Wcs
var reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.message == "成功")
{
- LogManager.Info("五楼Agv下发任务成功:" + message);
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ LogManager.Info("三楼楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
+ Console.WriteLine(DateTime.Now + ":三楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -195,21 +178,6 @@ namespace Khd.Core.Wcs.Wcs
{
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == 3);
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId);
- WcsCmd wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = startEquip.objid,
- currPointNo = startEquip.agvPositionCode,
- nextPointId = item.endPointId,
- nextPointNo = wmsBaseLocation.agvPositionCode,
- };
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData.SnowId.NextId().ToString(),
@@ -217,12 +185,12 @@ namespace Khd.Core.Wcs.Wcs
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=startEquip.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=wmsBaseLocation.agvPositionCode,
type="00"
}
},
@@ -234,14 +202,12 @@ namespace Khd.Core.Wcs.Wcs
var reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.message == "成功")
{
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ LogManager.Info("三楼楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
+ Console.WriteLine(DateTime.Now + ":三楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -258,34 +224,20 @@ namespace Khd.Core.Wcs.Wcs
wmsRawOutstockDetail.outstockTime = DateTime.Now;
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == 31);
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
- WcsCmd wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = wmsBaseLocation.agvPositionCode,
- nextPointId = endEquip.objid,
- nextPointNo = endEquip.agvPositionCode,
- };
+
var agvTask = new RequestAGVTaskDto
{
- reqCode = StaticData.SnowId.NextId().ToString(),
+ reqCode =StaticData.SnowId.NextId().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=wmsBaseLocation.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=endEquip.agvPositionCode,
type="00"
}
},
@@ -297,15 +249,13 @@ namespace Khd.Core.Wcs.Wcs
var reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.message == "成功")
{
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ LogManager.Info("三楼楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
+ Console.WriteLine(DateTime.Now + ":三楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(wmsRawOutstockDetail);
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -318,34 +268,19 @@ namespace Khd.Core.Wcs.Wcs
{
BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId);
- WcsCmd wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = startEquip.objid,
- currPointNo = startEquip.agvPositionCode,
- nextPointId = endEquip.objid,
- nextPointNo = endEquip.agvPositionCode,
- };
var agvTask = new RequestAGVTaskDto
{
- reqCode = StaticData.SnowId.NextId().ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode= startEquip.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=endEquip.agvPositionCode,
type="00"
}
},
@@ -358,14 +293,12 @@ namespace Khd.Core.Wcs.Wcs
var reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.message == "成功")
{
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ LogManager.Info("三楼楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
+ Console.WriteLine(DateTime.Now + ":三楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -375,37 +308,21 @@ namespace Khd.Core.Wcs.Wcs
}
else if (item.taskType == 42)//翻转机-收集架
{
- //var startEquip = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId);
- WcsCmd wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = startEquip.agvPositionCode,
- nextPointId = endEquip.objid,
- nextPointNo = endEquip.agvPositionCode,
- };
var agvTask = new RequestAGVTaskDto
{
- reqCode = StaticData.SnowId.NextId().ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=startEquip.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=endEquip.agvPositionCode,
type="00"
}
},
@@ -418,14 +335,12 @@ namespace Khd.Core.Wcs.Wcs
var reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.message == "成功")
{
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ LogManager.Info("三楼楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
+ Console.WriteLine(DateTime.Now + ":三楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -437,34 +352,20 @@ namespace Khd.Core.Wcs.Wcs
{
BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId);
- WcsCmd wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = item.currPointId,
- currPointNo = startEquip.agvPositionCode,
- nextPointId = endEquip.objid,
- nextPointNo = endEquip.agvPositionCode,
- };
+
var agvTask = new RequestAGVTaskDto
{
- reqCode = StaticData.SnowId.NextId().ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString().ToString(),
positionCodePath = new List
{
new ()
{
- positionCode=wcsCmd.currPointNo,
+ positionCode=startEquip.agvPositionCode,
type="00"
},
new ()
{
- positionCode=wcsCmd.nextPointNo,
+ positionCode=endEquip.agvPositionCode,
type="00"
}
},
@@ -477,14 +378,12 @@ namespace Khd.Core.Wcs.Wcs
var reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.message == "成功")
{
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ LogManager.Info("三楼楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
+ Console.WriteLine(DateTime.Now + ":三楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -498,98 +397,20 @@ namespace Khd.Core.Wcs.Wcs
BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 3);
if (lineEquip.equipStatus == 0)
{
- WcsCmd wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = startEquip.objid,
- currPointNo = startEquip.agvPositionCode,
- nextPointId = lineEquip.objid,
- nextPointNo = lineEquip.equipNo,
- };
+
var agvTask = new RequestAGVTaskDto
{
- reqCode = StaticData.SnowId.NextId().ToString(),
- positionCodePath = new List
- {
- new()
- {
- positionCode = wcsCmd.currPointNo,
- type = "00"
- },
- new()
- {
- positionCode = wcsCmd.nextPointNo,
- type = "00"
- }
- },
- taskTyp = baseDictionary.dicValue,
- ctnrTyp = "2",
- ctnrNum = startEquip.emptyCount.ToString()
- };
- string message = JsonConvert.SerializeObject(agvTask);
- string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/genAgvSchedulingTask", message);
- var reponseMessage = JsonConvert.DeserializeObject(result);
- if (reponseMessage != null && reponseMessage.message == "成功")
- {
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
- item.taskStatus = 1;
- lineEquip.equipStatus = 1;
- dbContext.Update(lineEquip);
- dbContext.Update(item);
- dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
- dbContext.SaveChanges();
- }
- else
- {
- LogManager.Info("三楼Agv下发任务失败" + item.taskType + message);
- }
- }
- }
- else if (item.taskType == 101)
- {
- BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 3);
- BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId);
- if (lineEquip.equipStatus == 0)
- {
- WcsCmd wcsCmd = new WcsCmd()
- {
- objid = StaticData.SnowId.NextId(),
- cmdStatus = 0,
- taskId = item.objid,
- useFlag = 1,
- cmdType = item.taskType,
- containerNo = item.containerNo,
- createTime = DateTime.Now,
- createBy = FloorNo + "楼AGV",
- currPointId = startEquip.objid,
- currPointNo = startEquip.agvPositionCode,
- nextPointId = lineEquip.objid,
- nextPointNo = lineEquip.equipNo,
- };
- var agvTask = new RequestAGVTaskDto
- {
- reqCode = StaticData.SnowId.NextId().ToString(),
+ reqCode = StaticData.SnowId.NextId().ToString().ToString(),
positionCodePath = new List
{
new()
{
- positionCode = wcsCmd.currPointNo,
+ positionCode =startEquip.agvPositionCode,
type = "00"
},
new()
{
- positionCode = wcsCmd.nextPointNo,
+ positionCode = lineEquip.equipNo,
type = "00"
}
},
@@ -602,16 +423,61 @@ namespace Khd.Core.Wcs.Wcs
var reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.message == "成功")
{
- wcsCmd.taskCode = reponseMessage.data;
- wcsCmd.cmdStatus = 1;
+ LogManager.Info("三楼楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
+ Console.WriteLine(DateTime.Now + ":三楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
+ item.taskStatus = 1;
+ lineEquip.equipStatus = 1;
+ dbContext.Update(lineEquip);
+ dbContext.Update(item);
+ dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
+ dbContext.SaveChanges();
+ }
+ else
+ {
+ LogManager.Info("三楼Agv下发任务失败" + item.taskType + message);
+ }
+ }
+ }
+ else if (item.taskType == 101)//三楼空托盘转运到二楼
+ {
+ BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 3);
+ BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId);
+ if (lineEquip.equipStatus == 0)
+ {
+ var agvTask = new RequestAGVTaskDto
+ {
+ reqCode = StaticData.SnowId.NextId().ToString().ToString(),
+ positionCodePath = new List
+ {
+ new()
+ {
+ positionCode = startEquip.agvPositionCode,
+ type = "00"
+ },
+ new()
+ {
+ positionCode = lineEquip.equipNo,
+ type = "00"
+ }
+ },
+ taskTyp = baseDictionary.dicValue,
+ ctnrTyp = "2",
+ ctnrNum = startEquip.emptyCount.ToString()
+ };
+ string message = JsonConvert.SerializeObject(agvTask);
+ string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/genAgvSchedulingTask", message);
+ var reponseMessage = JsonConvert.DeserializeObject(result);
+ if (reponseMessage != null && reponseMessage.message == "成功")
+ {
+ LogManager.Info("三楼楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
+ Console.WriteLine(DateTime.Now + ":三楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
+ item.taskCode = reponseMessage.data;
item.taskStatus = 1;
lineEquip.equipStatus = 1;
dbContext.Update(lineEquip);
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
- WcsCmdLog wcsCmdLog = CoreMapper.Map(wcsCmd);
- dbContext.Add(wcsCmdLog);
- dbContext.Add(wcsCmd);
dbContext.SaveChanges();
}
else
@@ -623,8 +489,7 @@ namespace Khd.Core.Wcs.Wcs
}
else
{
- WcsCmd? wcsCmd = dbContext.WcsCmd.FirstOrDefault(t => t.taskId == item.objid);
- if (wcsCmd != null)
+
{
if (item.taskStatus == 3)
{
@@ -656,32 +521,27 @@ namespace Khd.Core.Wcs.Wcs
}
var agvTask = new RequestAGVTaskDto
{
- reqCode = StaticData.SnowId.NextId().ToString(),
- taskCode = wcsCmd.taskCode
+ reqCode = StaticData.SnowId.NextId().ToString().ToString(),
+ taskCode = item.taskCode
};
string message = JsonConvert.SerializeObject(agvTask);
string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message);
ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result);
if (reponseMessage != null && reponseMessage.message == "成功")
{
-
- wcsCmd.cmdStatus = 4;
- dbContext.WcsCmd.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmd() { cmdStatus = 4 });
- dbContext.Update(wcsCmd);
dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 4 });
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 });
- dbContext.SaveChanges();
}
}
- else if (item.taskStatus == 5)
+ else if (item.taskStatus == 5)//任务完成
{
- if (item.currPointId == 3)
+ if (item.currPointId == 3)//从接驳位出发
{
BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 3);
lineEquip.equipStatus = 0;
dbContext.Update(lineEquip);
}
- if (item.taskType == 67)
+ if (item.taskType == 67)//移库
{
using var transaction = dbContext.Database.BeginTransaction();
try
@@ -692,35 +552,22 @@ namespace Khd.Core.Wcs.Wcs
wmsRawStock.locationCode = item.endPointNo;
dbContext.Update(wmsRawStock);
}
- else
- {
- var wmsProductStock = dbContext.WmsProductStock.FirstOrDefault(t => t.locationCode == item.currPointNo);
- if (wmsProductStock != null)
- {
- wmsProductStock.locationCode = item.currPointNo;
- dbContext.Update(wmsProductStock);
- }
- }
dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).Update(t => new WmsBaseLocation
{
- outstockFlag = "0",
locationStatus = "1",
containerCode = null,
updateTime = DateTime.Now
});
dbContext.WmsBaseLocation.Where(t => t.locationId == item.endPointId).Update(t => new WmsBaseLocation
{
- instockFlag = "0",
locationStatus = "1",
containerCode = item.containerNo,
updateTime = DateTime.Now
});
- dbContext.Remove(wcsCmd);
dbContext.Remove(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 });
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog() { cmdStatus = 6 });
- transaction.Commit();
dbContext.SaveChanges();
+ transaction.Commit();
}
catch (Exception ex)
{
@@ -728,12 +575,11 @@ namespace Khd.Core.Wcs.Wcs
LogManager.Error(ex);
}
}
- if (item.taskType == 39)
+ if (item.taskType == 39)//入库
{
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation
.First(t => t.locationId == item.endPointId && t.warehouseFloor == 3);
wmsBaseLocation.locationStatus = "1";
- wmsBaseLocation.instockFlag = "0";
wmsBaseLocation.containerCode = item.containerNo;
wmsBaseLocation.updateTime = DateTime.Now;
wmsBaseLocation.updateBy = "WCS";
@@ -747,7 +593,7 @@ namespace Khd.Core.Wcs.Wcs
{
rawStockId = StaticData.SnowId.NextId(),
activeFlag = "1",
- saleOrderId = mesBaseBarcodeInfo.saleOrderId == null ? 0 : mesBaseBarcodeInfo.saleOrderId,
+ saleOrderId = mesBaseBarcodeInfo.saleOrderId==null?0:mesBaseBarcodeInfo.saleOrderId,
stockType = "1",
supplierId = mesBaseBarcodeInfo.manufacturerId,
qualityStatus = "1",
@@ -768,15 +614,13 @@ namespace Khd.Core.Wcs.Wcs
};
dbContext.Add(wmsRawStock);
dbContext.Update(wmsBaseLocation);
- dbContext.Remove(wcsCmd);
dbContext.Remove(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 });
dbContext.SaveChanges();
}
}
}
- else if (item.taskType == 40)
+ else if (item.taskType == 40)//周转区-收集架,暂不使用
{
BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId);
@@ -790,17 +634,14 @@ namespace Khd.Core.Wcs.Wcs
endEquip.updateBy = "WCS";
dbContext.Update(startEquip);
dbContext.Update(endEquip);
- dbContext.Remove(wcsCmd);
dbContext.Remove(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 });
dbContext.SaveChanges();
}
- else if (item.taskType == 41)
+ else if (item.taskType == 41)//原材料出库
{
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation
.First(t => t.locationId == item.currPointId);
- wmsBaseLocation.outstockFlag = "0";
wmsBaseLocation.locationStatus = "1";
wmsBaseLocation.containerCode = null;
wmsBaseLocation.updateTime = DateTime.Now;
@@ -819,7 +660,7 @@ namespace Khd.Core.Wcs.Wcs
{
BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == 31);
endEquip.emptyCount = 1;
- if (wmsRawOutstock.realOutstockAmount == wmsRawOutstock.outstockAmount)
+ if (wmsRawOutstock.realOutstockAmount >= wmsRawOutstock.outstockAmount)
{
wmsRawOutstock.endTime = DateTime.Now;
wmsRawOutstock.executeStatus = "2";
@@ -828,7 +669,6 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Update(wmsRawOutstock);
dbContext.Remove(wmsRawStock);
dbContext.Update(wmsBaseLocation);
- dbContext.Remove(wcsCmd);
WcsTask wcsTask = CoreMapper.Map(item);
wcsTask.objid = StaticData.SnowId.NextId();
wcsTask.taskStatus = 0;
@@ -839,21 +679,17 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Remove(item);
dbContext.Add(wcsTask);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 });
dbContext.SaveChanges();
}
}
}
}
- else if (item.taskType == 42)
+ else if (item.taskType == 42)//翻转机就到收集架
{
MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == item.containerNo);
if (mesBasePalletInfo != null)
{
mesBasePalletInfo.bindAmount = null;
- mesBasePalletInfo.createBy = null;
- mesBasePalletInfo.bindAmount = null;
- mesBasePalletInfo.createTime = null;
mesBasePalletInfo.materialBarcode = null;
mesBasePalletInfo.materialCode = null;
mesBasePalletInfo.materialId = null;
@@ -870,33 +706,29 @@ namespace Khd.Core.Wcs.Wcs
emptyEquip.updateTime = DateTime.Now;
emptyEquip.updateBy = "WCS";
dbContext.Update(emptyEquip);
- dbContext.Remove(wcsCmd);
dbContext.Remove(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 });
dbContext.SaveChanges();
}
}
- else if (item.taskType == 43)
+ else if (item.taskType == 43)//收集架-周转区
{
BaseEquip emptyEquip = dbContext.BaseEquip.First(t => t.objid == 35);
BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId);
emptyEquip.emptyCount = 0;
emptyEquip.updateTime = DateTime.Now;
emptyEquip.updateBy = "WCS";
- endEquip.emptyCount += item.qty;
+ endEquip.emptyCount = item.qty;
endEquip.equipStatus = 1;
endEquip.updateTime = DateTime.Now;
endEquip.updateBy = "WCS";
dbContext.Update(endEquip);
dbContext.Update(emptyEquip);
- dbContext.Remove(wcsCmd);
dbContext.Remove(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 });
dbContext.SaveChanges();
}
- else if (item.taskType == 44 || item.taskType == 101)
+ else if (item.taskType == 44 || item.taskType == 101)//周转区-提升机
{
BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip lineEquip = StaticData.BaseEquip.First(t => t.objid == 3);
@@ -912,9 +744,7 @@ namespace Khd.Core.Wcs.Wcs
item.floorNo = endEquip.floorNo;
item.taskStatus = 6;
dbContext.Update(item);
- dbContext.Remove(wcsCmd);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
- dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 });
dbContext.SaveChanges();
}
}
@@ -940,7 +770,7 @@ namespace Khd.Core.Wcs.Wcs
}
catch
{
-
+
}
}
LogManager.Error(ex);
diff --git a/src/Khd.Core.Wcs/Wcs/ThirdFloorPoint.cs b/src/Khd.Core.Wcs/Wcs/ThirdFloorPoint.cs
index bcf34f1..95c00b4 100644
--- a/src/Khd.Core.Wcs/Wcs/ThirdFloorPoint.cs
+++ b/src/Khd.Core.Wcs/Wcs/ThirdFloorPoint.cs
@@ -67,8 +67,6 @@ namespace Khd.Core.Wcs.Wcs
.Where(t => t.activeFlag == "1")
.Where(t => t.delFlag == "0")
.Where(t => t.locationScrapType == "1")
- .Where(t => t.instockFlag == "0")
- .Where(t => t.outstockFlag == "0")
.Where(t => t.locationStatus == "1")
.OrderByDescending(t => t.locRow)
.ThenByDescending(t => t.locColumn)
@@ -92,12 +90,9 @@ namespace Khd.Core.Wcs.Wcs
&& b.locRow == (a.b.locRow % 2 == 0 ? a.b.locRow - 1 : a.b.locRow + 1)
&& a.b.locColumn == b.locColumn
&& b.locationStatus == "1"
- && b.outstockFlag == "0"
- && b.instockFlag == "0"
&& string.IsNullOrEmpty(b.containerCode)
select new { b };//在上面的基础上获取对应托盘的外侧库位的空库位信息
- WmsBaseLocation? wmsBaseLocation = null;
- wmsBaseLocation ??= outBill.FirstOrDefault()?.b;//先找相同物料的外侧库位
+ WmsBaseLocation? wmsBaseLocation = outBill.FirstOrDefault()?.b;//先找相同物料的外侧库位
wmsBaseLocation ??= wmsBaseLocations.Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault(t => t.locDeep == 1);//找不到再找深库位
wmsBaseLocation ??= wmsBaseLocations.Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault();//找不到再找任意库位
@@ -116,7 +111,6 @@ namespace Khd.Core.Wcs.Wcs
newTask.endPointNo = wmsBaseLocation.locationCode;
newTask.taskType = 39;
newTask.useFlag = 1;
- wmsBaseLocation.instockFlag = "1";
wmsBaseLocation.locationStatus = "2";
dbContext.Update(wmsBaseLocation);
dbContext.Add(newTask);
diff --git a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs
index 9310438..9804ed7 100644
--- a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs
+++ b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs
@@ -1916,8 +1916,6 @@ namespace Khd.Core.Wpf.Form
var wmsBaseLocations = dbContext.WmsBaseLocation
.Where(t => t.ContainerStatus == "1")
.Where(t => t.locationStatus == "1")
- .Where(t => t.instockFlag == "0")
- .Where(t => t.outstockFlag == "0")
.Where(t => t.activeFlag == "1")
.OrderBy(t => t.locRow)
.ThenBy(t => t.locColumn)
@@ -1942,7 +1940,6 @@ namespace Khd.Core.Wpf.Form
foreach (var item in outLocation)
{
WmsBaseLocation startBaseLocation = item.a;
- startBaseLocation.outstockFlag = "1";
startBaseLocation.locationStatus = "6";
startBaseLocation.ContainerStatus = "2";
addList.Add(new WcsTaskManual()
@@ -1972,7 +1969,6 @@ namespace Khd.Core.Wpf.Form
WmsBaseLocation? startBaseLocation = wmsBaseLocations.Where(t => !list.Contains(t.locationId)).FirstOrDefault();
if (startBaseLocation != null)
{
- startBaseLocation.outstockFlag = "1";
startBaseLocation.locationStatus = "6";
startBaseLocation.ContainerStatus = "2";
addList.Add(new WcsTaskManual()
@@ -2078,8 +2074,6 @@ namespace Khd.Core.Wpf.Form
//}
var wmsBaseLocation = dbContext.WmsBaseLocation
.Where(t => t.locationStatus == "1")
- .Where(t => t.instockFlag == "0")
- .Where(t => t.outstockFlag == "0")
.Where(t => t.warehouseId == 512 && t.ContainerStatus == "1").ToList();
var wmsRawStock = dbContext.WmsRawStock.Where(t => t.warehouseId == 512).ToList();
List palletInfoCodes = wmsRawStock.Select(t => t.palletInfoCode).ToList();
@@ -2090,7 +2084,6 @@ namespace Khd.Core.Wpf.Form
for (int i = 0; i < EmptyCountForm.EmptyTaskCount; i++)
{
WmsBaseLocation startBaseLocation = wmsBaseLocation[i];
- startBaseLocation.outstockFlag = "1";
startBaseLocation.locationStatus = "6";
startBaseLocation.ContainerStatus = "2";
addList.Add(new WcsTaskManual()
@@ -2192,7 +2185,6 @@ namespace Khd.Core.Wpf.Form
fromFloorNo = 5,
useFlag = 1
});
- item.outstockFlag = "1";
item.ContainerStatus = "2";
item.locationStatus = "6";
dbContext.Update(item);
@@ -2902,7 +2894,7 @@ namespace Khd.Core.Wpf.Form
private void SelectOutBtn_Click(object sender, RoutedEventArgs e)
{
- SelectOutRawForm selectOutRawForm = new SelectOutRawForm(this._host);
+ SelectOutRawForm selectOutRawForm=new SelectOutRawForm(this._host);
selectOutRawForm.ShowDialog();
}
}