@ -9,6 +9,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting ;
using Newtonsoft.Json ;
using System ;
using System.Runtime.Intrinsics.X86 ;
using Z.EntityFramework.Plus ;
namespace Khd.Core.Wcs.Wcs
@ -76,6 +77,7 @@ namespace Khd.Core.Wcs.Wcs
BaseEquip outEquip = StaticData . BaseEquip . First ( t = > t . objid = = 37 ) ;
BaseEquip lineEquip = StaticData . BaseEquip . First ( t = > t . objid = = 2 ) ;
BaseEquip baseEquip = StaticData . BaseEquip . First ( t = > t . objid = = EquipID ) ;
BaseEquip wasteEquip = StaticData . BaseEquip . First ( t = > t . objid = = 38 ) ;
while ( true )
{
try
@ -85,7 +87,6 @@ namespace Khd.Core.Wcs.Wcs
var taskList = dbContext . WcsTask
. Where ( t = > t . useFlag = = 1 )
. Where ( t = > t . nextPointId = = EquipID ) . OrderBy ( t = > t . createTime ) . ToList ( ) ;
dbContext . ChangeTracker . Entries ( ) . ToList ( ) . ForEach ( e = > e . Reload ( ) ) ;
foreach ( var item in taskList )
{
if ( taskList . Where ( t = > t . taskStatus > 0 ) . Where ( t = > t . objid ! = item . objid ) . Any ( ) )
@ -96,7 +97,7 @@ namespace Khd.Core.Wcs.Wcs
if ( item . taskStatus = = 0 ) //下发任务
{
BaseDictionary baseDictionary = StaticData . BaseDictionary . First ( t = > t . objid = = item . taskType ) ;
if ( item . taskType = = 5 0)
if ( item . taskType = = 5 1) //输送线-小包入口
{
WcsCmd wcsCmd = new WcsCmd ( )
{
@ -154,8 +155,9 @@ namespace Khd.Core.Wcs.Wcs
LogManager . Info ( "五楼Agv下发任务失败" + item . taskType + message ) ;
}
}
else if ( item . taskType = = 5 1)
else if ( item . taskType = = 5 6) //废料工位-库位
{
var endEquip = StaticData . BaseEquip . First ( t = > t . objid = = item . endPointId ) ;
WcsCmd wcsCmd = new WcsCmd ( )
{
objid = StaticData . SnowId . NextId ( ) ,
@ -167,9 +169,69 @@ namespace Khd.Core.Wcs.Wcs
createTime = DateTime . Now ,
createBy = FloorNo + "楼AGV" ,
currPointId = item . currPointId ,
currPointNo = lin eEquip. agvPositionCode ,
currPointNo = wast eEquip. agvPositionCode ,
nextPointId = item . endPointId ,
nextPointNo = outEquip . agvPositionCode ,
nextPointNo = endEquip . agvPositionCode ,
} ;
var agvTask = new RequestAGVTaskDto
{
reqCode = wcsCmd . objid . ToString ( ) ,
positionCodePath = new List < Position >
{
new ( )
{
positionCode = wcsCmd . currPointNo ,
type = "00"
} ,
new ( )
{
positionCode = wcsCmd . nextPointNo ,
type = "00"
}
} ,
taskTyp = baseDictionary . dicValue ,
ctnrTyp = "2" ,
} ;
string message = JsonConvert . SerializeObject ( agvTask ) ;
string result = HttpHelper . SendPostMessage ( baseEquip . serverIp , baseEquip . serverPort . Value , "rcms/services/rest/hikRpcService/genAgvSchedulingTask" , message ) ;
var reponseMessage = JsonConvert . DeserializeObject < ReponseMessage > ( result ) ;
if ( reponseMessage ! = null & & reponseMessage . message = = "成功" )
{
LogManager . Info ( "二楼AGV线程下发任务" + agvTask . ToJsonString ( ) + "\n" + message ) ;
Console . WriteLine ( DateTime . Now + ":二楼AGV线程下发任务" + item . startPointNo + "," + item . endPointNo ) ;
wcsCmd . taskCode = reponseMessage . data ;
wcsCmd . cmdStatus = 1 ;
item . taskStatus = 1 ;
dbContext . Update ( item ) ;
dbContext . WcsTaskLog . Where ( t = > t . objid = = item . objid ) . Update ( t = > new WcsTaskLog ( ) { taskStatus = 1 } ) ;
WcsCmdLog wcsCmdLog = CoreMapper . Map < WcsCmdLog > ( wcsCmd ) ;
dbContext . Add ( wcsCmdLog ) ;
dbContext . Add ( wcsCmd ) ;
dbContext . SaveChanges ( ) ;
}
else
{
LogManager . Info ( "五楼Agv下发任务失败" + item . taskType + message ) ;
}
}
else if ( item . taskType = = 49 ) //小包出口-库位
{
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 = item . currPointId ,
currPointNo = outEquip . agvPositionCode ,
nextPointId = item . endPointId ,
nextPointNo = wmsBaseLocation . agvPositionCode ,
} ;
var agvTask = new RequestAGVTaskDto
{
@ -212,8 +274,9 @@ namespace Khd.Core.Wcs.Wcs
LogManager . Info ( "二楼Agv下发任务失败" + item . taskType + message ) ;
}
}
else if ( item . taskType = = 5 2)
else if ( item . taskType = = 5 7) //周转位-提升机
{
var startPoint = StaticData . BaseEquip . First ( t = > t . objid = = item . startPointId ) ;
WcsCmd wcsCmd = new WcsCmd ( )
{
objid = StaticData . SnowId . NextId ( ) ,
@ -225,7 +288,7 @@ namespace Khd.Core.Wcs.Wcs
createTime = DateTime . Now ,
createBy = FloorNo + "楼AGV" ,
currPointId = item . currPointId ,
currPointNo = lineEquip . agvPositionCode ,
currPointNo = startPoint . agvPositionCode ,
nextPointId = item . endPointId ,
nextPointNo = lineEquip . agvPositionCode ,
} ;
@ -253,8 +316,8 @@ namespace Khd.Core.Wcs.Wcs
var reponseMessage = JsonConvert . DeserializeObject < ReponseMessage > ( result ) ;
if ( reponseMessage ! = null & & reponseMessage . message = = "成功" )
{
LogManager . Info ( "二楼AGV线程 继续任务" + item . objid + "," + item . startPointNo + "," + item . endPointNo ) ;
Console . WriteLine ( DateTime . Now + ":二楼AGV线程 继续 任务" + item . startPointNo + "," + item . endPointNo ) ;
LogManager . Info ( "二楼AGV线程 下发任务" + agvTask . ToJsonString ( ) + "\n" + message ) ;
Console . WriteLine ( DateTime . Now + ":二楼AGV线程 下发 任务" + item . startPointNo + "," + item . endPointNo ) ;
wcsCmd . taskCode = reponseMessage . data ;
wcsCmd . cmdStatus = 1 ;
item . taskStatus = 1 ;
@ -267,7 +330,303 @@ namespace Khd.Core.Wcs.Wcs
}
else
{
LogManager . Info ( "二楼Agv下发任务失败" + item . taskType + message ) ;
LogManager . Info ( "五楼Agv下发任务失败" + item . taskType + message ) ;
}
}
else if ( item . taskType = = 50 ) //库位-提升机
{
var startPoint = dbContext . WmsBaseLocation . First ( t = > t . locationId = = item . startPointId ) ;
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 ( ) ,
positionCodePath = new List < Position >
{
new ( )
{
positionCode = wcsCmd . currPointNo ,
type = "00"
} ,
new ( )
{
positionCode = wcsCmd . nextPointNo ,
type = "00"
}
} ,
taskTyp = baseDictionary . dicValue ,
ctnrTyp = "2" ,
} ;
string message = JsonConvert . SerializeObject ( agvTask ) ;
string result = HttpHelper . SendPostMessage ( baseEquip . serverIp , baseEquip . serverPort . Value , "rcms/services/rest/hikRpcService/genAgvSchedulingTask" , message ) ;
var reponseMessage = JsonConvert . DeserializeObject < ReponseMessage > ( result ) ;
if ( reponseMessage ! = null & & reponseMessage . message = = "成功" )
{
LogManager . Info ( "二楼AGV线程下发任务" + agvTask . ToJsonString ( ) + "\n" + message ) ;
Console . WriteLine ( DateTime . Now + ":二楼AGV线程下发任务" + item . startPointNo + "," + item . endPointNo ) ;
wcsCmd . taskCode = reponseMessage . data ;
wcsCmd . cmdStatus = 1 ;
item . taskStatus = 1 ;
dbContext . Update ( item ) ;
dbContext . WcsTaskLog . Where ( t = > t . objid = = item . objid ) . Update ( t = > new WcsTaskLog ( ) { taskStatus = 1 } ) ;
WcsCmdLog wcsCmdLog = CoreMapper . Map < WcsCmdLog > ( wcsCmd ) ;
dbContext . Add ( wcsCmdLog ) ;
dbContext . Add ( wcsCmd ) ;
dbContext . SaveChanges ( ) ;
}
else
{
LogManager . Info ( "五楼Agv下发任务失败" + item . taskType + message ) ;
}
}
else if ( item . taskType = = 55 ) //2F移库
{
WmsBaseLocation fromWmsBaseLocation = dbContext . WmsBaseLocation . First ( t = > t . locationId = = item . startPointId ) ;
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 ( ) ,
positionCodePath = new List < Position >
{
new ( )
{
positionCode = wcsCmd . currPointNo ,
type = "00"
} ,
new ( )
{
positionCode = wcsCmd . nextPointNo ,
type = "00"
}
}
} ;
string message = JsonConvert . SerializeObject ( agvTask ) ;
string result = HttpHelper . SendPostMessage ( baseEquip . serverIp , baseEquip . serverPort . Value , "rcms/services/rest/hikRpcService/genAgvSchedulingTask" , message ) ;
var reponseMessage = JsonConvert . DeserializeObject < ReponseMessage > ( result ) ;
if ( reponseMessage ! = null & & reponseMessage . message = = "成功" )
{
LogManager . Info ( "二楼AGV线程下发任务" + agvTask . ToJsonString ( ) + "\n" + message ) ;
Console . WriteLine ( DateTime . Now + ":二楼AGV线程下发任务" + item . startPointNo + "," + item . endPointNo ) ;
wcsCmd . taskCode = reponseMessage . data ;
wcsCmd . cmdStatus = 1 ;
item . taskStatus = 1 ;
dbContext . Update ( item ) ;
dbContext . WcsTaskLog . Where ( t = > t . objid = = item . objid ) . Update ( t = > new WcsTaskLog ( ) { taskStatus = 1 } ) ;
WcsCmdLog wcsCmdLog = CoreMapper . Map < WcsCmdLog > ( wcsCmd ) ;
dbContext . Add ( wcsCmdLog ) ;
dbContext . Add ( wcsCmd ) ;
dbContext . SaveChanges ( ) ;
}
else
{
LogManager . Info ( "五楼Agv下发任务失败" + item . taskType + message ) ;
}
}
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 ( ) ,
positionCodePath = new List < Position >
{
new ( )
{
positionCode = wcsCmd . currPointNo ,
type = "00"
} ,
new ( )
{
positionCode = wcsCmd . nextPointNo ,
type = "00"
}
} ,
taskTyp = baseDictionary . dicValue ,
ctnrTyp = "2" ,
} ;
string message = JsonConvert . SerializeObject ( agvTask ) ;
string result = HttpHelper . SendPostMessage ( baseEquip . serverIp , baseEquip . serverPort . Value , "rcms/services/rest/hikRpcService/genAgvSchedulingTask" , message ) ;
var reponseMessage = JsonConvert . DeserializeObject < ReponseMessage > ( result ) ;
if ( reponseMessage ! = null & & reponseMessage . message = = "成功" )
{
LogManager . Info ( "二楼AGV线程下发任务" + agvTask . ToJsonString ( ) + "\n" + message ) ;
Console . WriteLine ( DateTime . Now + ":二楼AGV线程下发任务" + item . startPointNo + "," + item . endPointNo ) ;
wcsCmd . taskCode = reponseMessage . data ;
wcsCmd . cmdStatus = 1 ;
item . taskStatus = 1 ;
dbContext . Update ( item ) ;
dbContext . WcsTaskLog . Where ( t = > t . objid = = item . objid ) . Update ( t = > new WcsTaskLog ( ) { taskStatus = 1 } ) ;
WcsCmdLog wcsCmdLog = CoreMapper . Map < WcsCmdLog > ( wcsCmd ) ;
dbContext . Add ( wcsCmdLog ) ;
dbContext . Add ( wcsCmd ) ;
dbContext . SaveChanges ( ) ;
}
else
{
LogManager . Info ( "五楼Agv下发任务失败" + item . taskType + message ) ;
}
}
else if ( item . taskType = = 54 ) //周转位-废料工位
{
var wasteEquipLocation = StaticData . BaseEquip . FirstOrDefault ( t = > t . objid = = item . startPointId ) ;
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 ( ) ,
positionCodePath = new List < Position >
{
new ( )
{
positionCode = wcsCmd . currPointNo ,
type = "00"
} ,
new ( )
{
positionCode = wcsCmd . nextPointNo ,
type = "00"
}
} ,
taskTyp = baseDictionary . dicValue ,
ctnrTyp = "2" ,
} ;
string message = JsonConvert . SerializeObject ( agvTask ) ;
string result = HttpHelper . SendPostMessage ( baseEquip . serverIp , baseEquip . serverPort . Value , "rcms/services/rest/hikRpcService/genAgvSchedulingTask" , message ) ;
var reponseMessage = JsonConvert . DeserializeObject < ReponseMessage > ( result ) ;
if ( reponseMessage ! = null & & reponseMessage . message = = "成功" )
{
LogManager . Info ( "二楼AGV线程下发任务" + agvTask . ToJsonString ( ) + "\n" + message ) ;
Console . WriteLine ( DateTime . Now + ":二楼AGV线程下发任务" + item . startPointNo + "," + item . endPointNo ) ;
wcsCmd . taskCode = reponseMessage . data ;
wcsCmd . cmdStatus = 1 ;
item . taskStatus = 1 ;
dbContext . Update ( item ) ;
dbContext . WcsTaskLog . Where ( t = > t . objid = = item . objid ) . Update ( t = > new WcsTaskLog ( ) { taskStatus = 1 } ) ;
WcsCmdLog wcsCmdLog = CoreMapper . Map < WcsCmdLog > ( wcsCmd ) ;
dbContext . Add ( wcsCmdLog ) ;
dbContext . Add ( wcsCmd ) ;
dbContext . SaveChanges ( ) ;
}
else
{
LogManager . Info ( "五楼Agv下发任务失败" + item . taskType + message ) ;
}
}
}
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 ( ) ,
positionCodePath = new List < Position >
{
new ( )
{
positionCode = wcsCmd . currPointNo ,
type = "00"
} ,
new ( )
{
positionCode = wcsCmd . nextPointNo ,
type = "00"
}
} ,
taskTyp = baseDictionary . dicValue ,
ctnrTyp = "2" ,
} ;
string message = JsonConvert . SerializeObject ( agvTask ) ;
string result = HttpHelper . SendPostMessage ( baseEquip . serverIp , baseEquip . serverPort . Value , "rcms/services/rest/hikRpcService/genAgvSchedulingTask" , message ) ;
var reponseMessage = JsonConvert . DeserializeObject < ReponseMessage > ( result ) ;
if ( reponseMessage ! = null & & reponseMessage . message = = "成功" )
{
LogManager . Info ( "二楼AGV线程下发任务" + agvTask . ToJsonString ( ) + "\n" + message ) ;
Console . WriteLine ( DateTime . Now + ":二楼AGV线程下发任务" + item . startPointNo + "," + item . endPointNo ) ;
wcsCmd . taskCode = reponseMessage . data ;
wcsCmd . cmdStatus = 1 ;
item . taskStatus = 1 ;
dbContext . Update ( item ) ;
dbContext . WcsTaskLog . Where ( t = > t . objid = = item . objid ) . Update ( t = > new WcsTaskLog ( ) { taskStatus = 1 } ) ;
WcsCmdLog wcsCmdLog = CoreMapper . Map < WcsCmdLog > ( wcsCmd ) ;
dbContext . Add ( wcsCmdLog ) ;
dbContext . Add ( wcsCmd ) ;
dbContext . SaveChanges ( ) ;
}
else
{
LogManager . Info ( "五楼Agv下发任务失败" + item . taskType + message ) ;
}
}
}
@ -279,60 +638,327 @@ namespace Khd.Core.Wcs.Wcs
LogManager . Info ( "二楼AGV线程完成任务" + item . objid ) ;
if ( wcsCmd . cmdStatus = = 3 )
{
var agvTask = new RequestAGVTaskDto
if ( wcsCmd . currPointId = = lineEquip . objid )
{
reqCode = StaticData . SnowId . NextId ( ) . ToString ( ) ,
taskCode = wcsCmd . 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 < ReponseMessage > ( result ) ;
if ( reponseMessage ! = null & & reponseMessage . message = = "成功" )
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 ) ;
if ( lineSignal02 ! = null & & rfid ! = null & & rfid = = item . containerNo & & lineSignal02 . ToString ( ) = = "1" )
{
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData . SnowId . NextId ( ) . ToString ( ) ,
taskCode = wcsCmd . 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 < ReponseMessage > ( 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 )
{
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 ( ) ;
if ( true )
{
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData . SnowId . NextId ( ) . ToString ( ) ,
taskCode = wcsCmd . 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 < ReponseMessage > ( 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 )
{
if ( true )
{
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData . SnowId . NextId ( ) . ToString ( ) ,
taskCode = wcsCmd . 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 < ReponseMessage > ( 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
{
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData . SnowId . NextId ( ) . ToString ( ) ,
taskCode = wcsCmd . 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 < ReponseMessage > ( 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 )
{
if ( item . taskType = = 50 )
if ( item . taskType = = 5 3 )
{
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 . taskId = = item . objid ) . Update ( t = > new WcsCmdLog ( ) { cmdStatus = 6 } ) ;
if ( true )
{
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData . SnowId . NextId ( ) . ToString ( ) ,
taskCode = wcsCmd . 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 < ReponseMessage > ( 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 ( ) ;
}
}
}
else if ( item . taskType = = 51 )
{
WmsBaseLocation wmsBaseLocation = dbContext . WmsBaseLocation . First ( t = > t . locationId = = item . endPointId ) ;
wmsBaseLocation . locationStatus = "1" ;
wmsBaseLocation . instockFlag = "0" ;
wmsBaseLocation . containerCode = item . containerNo ;
dbContext . Update ( wmsBaseLocation ) ;
if ( true )
{
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData . SnowId . NextId ( ) . ToString ( ) ,
taskCode = wcsCmd . 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 < ReponseMessage > ( 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 ( ) ;
}
}
}
}
else if ( item . taskStatus = = 7 )
{
if ( item . taskType = = 49 )
{
WmsProductInstock ? wmsProductInstock = dbContext . WmsProductInstock . FirstOrDefault ( t = > t . productInstockId = = item . orderId ) ;
if ( wmsProductInstock ! = null )
{
WmsProductInstockDetail ? wmsProductInstockDetail = dbContext . WmsProductInstockDetail . FirstOrDefault ( t = > t . productInstockId = = wmsProductInstock . productInstockId ) ;
if ( wmsProductInstockDetail ! = null )
{
MesBasePalletInfo ? mesBasePalletInfo = dbContext . MesBasePalletInfo . FirstOrDefault ( t = > t . palletInfoCode = = item . containerNo ) ;
if ( mesBasePalletInfo ! = null )
{
MesBaseBarcodeInfo ? mesBaseBarcodeInfo = dbContext . MesBaseBarcodeInfo . FirstOrDefault ( t = > t . palletInfoCode = = item . containerNo ) ;
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 ( )
{
productId = mesBasePalletInfo . materialId ,
activeFlag = "1" ,
frozenAmount = 0 ,
createBy = "WCS" ,
createDate = DateTime . Now ,
updateBy = "WCS" ,
updateDate = DateTime . Now ,
instockDate = DateTime . Now ,
locationCode = wmsBaseLocation . locationCode ,
occupyAmount = 0 ,
totalAmount = 1 ,
palletInfoCode = item . containerNo ,
planCode = wmsProductInstock . planCode ,
planDetailCode = wmsProductInstock . planDetailCode ,
productBatch = mesBasePalletInfo . materialBarcode ,
saleorderCode = wmsProductInstock . saleorderCode ,
productStockId = StaticData . SnowId . NextId ( ) ,
saleOrderId = wmsProductInstock . SaleOrderId ,
stockType = "3" ,
qualityStatus = "0" ,
warehouseFloor = 2 ,
warehouseId = wmsBaseLocation . warehouseId
} ;
wmsProductInstockDetail . executeStatus = "2" ;
wmsProductInstock . endTime = DateTime . Now ;
wmsProductInstock . executeStatus = "2" ;
dbContext . Update ( wmsProductInstockDetail ) ;
dbContext . Add ( wmsProductStock ) ;
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 ( ) ;
}
}
}
}
}
else if ( item . taskType = = 50 )
{
WmsProductOutstock ? wmsProductOutstock = dbContext . WmsProductOutstock . FirstOrDefault ( t = > t . productOutstockId = = item . orderId ) ;
if ( wmsProductOutstock ! = null )
{
WmsProductOutstockDetail ? wmsProductOutstockDetail = dbContext . WmsProductOutstockDetail . FirstOrDefault ( t = > t . productOutstockId = = wmsProductOutstock . productOutstockId ) ;
if ( wmsProductOutstockDetail ! = null )
{
var wmsBaseLocation = dbContext . WmsBaseLocation . Where ( t = > t . locationId = = item . startPointId ) . First ( ) ;
WmsProductStock wmsProductStock = dbContext . WmsProductStock . First ( t = > t . locationCode = = wmsBaseLocation . locationCode ) ;
wmsProductOutstockDetail . executeStatus = "2" ;
wmsProductOutstock . endTime = DateTime . Now ;
wmsProductOutstock . executeStatus = "2" ;
wmsBaseLocation . locationStatus = "1" ;
wmsBaseLocation . outstockFlag = "0" ;
wmsBaseLocation . containerCode = null ;
dbContext . Remove ( wmsProductStock ) ;
dbContext . Update ( wmsBaseLocation ) ;
dbContext . Update ( wmsProductOutstockDetail ) ;
dbContext . Update ( wmsProductOutstock ) ;
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 = = 58 )
{
BaseEquip endEquip = StaticData . BaseEquip . First ( t = > t . objid = = item . endPointId ) ;
endEquip . equipStatus = 1 ;
endEquip . emptyCount = Convert . ToInt32 ( item . isEmpty ) ;
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 ( ) ;
dbContext . WcsTaskLog . Where ( t = > t . objid = = item . objid ) . Update ( t = > new WcsTaskLog ( ) { taskStatus = 6 } ) ;
dbContext . WcsCmdLog . Where ( t = > t . taskId = = item . objid ) . Update ( t = > new WcsCmdLog ( ) { cmdStatus = 6 } ) ;
}
else if ( item . taskType = = 52 )
else if ( item . taskType = = 53 )
{
WmsBaseLocation wmsBaseLocation = dbContext . WmsBaseLocation . First ( t = > t . locationId = = item . startPointId ) ;
wmsBaseLocation . locationStatus = "1" ;
wmsBaseLocation . instockFlag = "0" ;
wmsBaseLocation . containerCode = null ;
dbContext . Update ( wmsBaseLocation ) ;
item . taskStatus = 6 ;
dbContext . Update ( item ) ;
BaseEquip startEquip = StaticData . 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 = = 51 )
{
BaseEquip startEquip = StaticData . 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 )
{
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 )
{
WmsBaseLocation fromWmsBaseLocation = dbContext . WmsBaseLocation . First ( t = > t . locationId = = item . currPointId ) ;
WmsBaseLocation toWmsBaseLocation = dbContext . WmsBaseLocation . First ( t = > t . locationId = = item . endPointId ) ;
fromWmsBaseLocation . locationStatus = "1" ;
toWmsBaseLocation . locationStatus = "1" ;
fromWmsBaseLocation . outstockFlag = "0" ;
toWmsBaseLocation . outstockFlag = "0" ;
fromWmsBaseLocation . instockFlag = "0" ;
toWmsBaseLocation . instockFlag = "0" ;
fromWmsBaseLocation . containerCode = null ;
toWmsBaseLocation . containerCode = item . containerNo ;
dbContext . Update ( fromWmsBaseLocation ) ;
dbContext . Update ( toWmsBaseLocation ) ;
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 = = 56 )
{
wasteEquip . emptyCount = 0 ;
wasteEquip . equipStatus = 0 ;
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 )
{
BaseEquip emptyEquip = StaticData . BaseEquip . First ( t = > t . objid = = item . currPointId ) ;
emptyEquip . emptyCount = 0 ;
emptyEquip . equipStatus = 0 ;
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 . taskId = = item . objid ) . Update ( t = > new WcsCmdLog ( ) { cmdStatus = 6 } ) ;
dbContext . WcsCmdLog . Where ( t = > t . objid = = item . objid ) . Update ( t = > new WcsCmdLog ( ) { cmdStatus = 6 } ) ;
dbContext . SaveChanges ( ) ;
}
}
}
@ -341,6 +967,7 @@ namespace Khd.Core.Wcs.Wcs
}
catch ( Exception ex )
{
LogManager . Error ( ex ) ;
}
finally