| | |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Security.Cryptography; |
| | | using static HH.WCS.Mobox3.FJJT.dispatch.XcDispatch; |
| | | |
| | | namespace HH.WCS.Mobox3.FJJT.process { |
| | | internal class TaskProcess { |
| | |
| | | internal static void OperateReq(string no, int state, string forkliftNo, string extData) { |
| | | LogHelper.Info($"开始安全请求,任务号:{no},请求码:{state}", "HosttoagvTask"); |
| | | var cst = WCSHelper.GetTask(no); |
| | | if (cst != null) |
| | | { |
| | | var taskAction = WCSHelper.getActionRecord(no, state); |
| | | if (taskAction != null) |
| | | { |
| | |
| | | bool result = false; |
| | | if (state == 1101) |
| | | { |
| | | if (cst.S_START_AREA == "") |
| | | { |
| | | result = XcDispatch.CanOut(new SafetyRequest() { stnNo = cst.S_START_LOC, taskNo = cst.S_CODE }); |
| | | if (result) |
| | | { |
| | | NDCApi.ChangeOrderParam(no, 8, "1"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result = WCSDispatch.safetyInteraction(cst.S_CODE ,cst.S_START_LOC, "1"); //请求取货, |
| | | } |
| | | } |
| | | if (state == 1102) |
| | | { |
| | | result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "2"); //请求返货 |
| | | if (cst.S_START_AREA == "") |
| | | { |
| | | result = XcDispatch.CanIn(new SafetyRequest() { stnNo = cst.S_END_LOC, taskNo = cst.S_CODE }); |
| | | if (result) |
| | | { |
| | | NDCApi.ChangeOrderParam(no, 8, "1"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_END_LOC, "2"); //请求放货 |
| | | } |
| | | } |
| | | if (state == 1103) |
| | | { |
| | | if (cst.S_START_AREA == "") |
| | | { |
| | | result = XcDispatch.loadComplete(new SafetyRequest() { stnNo = cst.S_END_LOC, taskNo = cst.S_CODE }); |
| | | if (result) |
| | | { |
| | | NDCApi.ChangeOrderParam(no, 8, "1"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "3"); //取货完成允许离开 |
| | | } |
| | | } |
| | | if (state == 1104) |
| | | { |
| | | result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "4"); //放货完成允许离开 |
| | | if (cst.S_START_AREA == "") |
| | | { |
| | | result = XcDispatch.putComplete(new SafetyRequest() { stnNo = cst.S_END_LOC, taskNo = cst.S_CODE }); |
| | | if (result) |
| | | { |
| | | NDCApi.ChangeOrderParam(no, 8, "1"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_END_LOC, "4"); //放货完成允许离开 |
| | | } |
| | | } |
| | | |
| | | // 安全请求发送成功,添加任务动作记录 |
| | |
| | | { |
| | | WCSHelper.AddActionRecord(no, state, forkliftNo, extData); |
| | | LogHelper.Info($"首次进行安全请求成功", "HosttoagvTask"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | /// <param name="mst"></param> |
| | | internal static bool SendTask(WCSTask mst) { |
| | | var result = false; |
| | | var start = "0"; var end = "0"; |
| | | if (mst.N_B_STATE == 0) { |
| | | if (mst.S_SCHEDULE_TYPE == "NDC") |
| | | { |
| | | start = LocationHelper.GetAgvSite(mst.S_START_LOC); |
| | | end = LocationHelper.GetAgvSite(mst.S_END_LOC); |
| | | |
| | | var startLoc = LocationHelper.GetLoc(mst.S_START_LOC); |
| | | var endLoc = LocationHelper.GetLoc(mst.S_END_LOC); |
| | | if (startLoc != null && endLoc != null) |
| | | { |
| | | var dic = new List<param>(); |
| | | dic.Add( new param() { name = "No" , value = ""}); |
| | | dic.Add( new param() { name = "From", value = ""}); |
| | | dic.Add( new param() { name = "To", value = ""}); |
| | | dic.Add(new param() { name = "No", value = mst.S_CODE }); |
| | | dic.Add(new param() { name = "From", value = mst.S_START_LOC }); |
| | | dic.Add(new param() { name = "To", value = mst.S_END_LOC }); |
| | | dic.Add( new param() { name = "3" , value = "4"}); |
| | | dic.Add( new param() { name = "4" , value = "512"}); |
| | | dic.Add( new param() { name = "5" , value = "0"}); |
| | | var res = NDCApi.AddOrderNew(1,mst.N_PRIORITY,mst.S_CODE,dic); |
| | | if (res != null && res.err_code == 0 ) { |
| | | if (res != null && res.err_code == 0) |
| | | { |
| | | //推送成功,修改任务优先级 |
| | | mst.N_B_STATE = 1; |
| | | WCSHelper.UpdateStatus(mst); |
| | | result = true; |
| | | } |
| | | } |
| | | } |
| | | else if (mst.S_SCHEDULE_TYPE == "WCS") { |
| | |
| | | mst.N_B_STATE = 1; |
| | | WCSHelper.UpdateStatus(mst); |
| | | } |
| | | |
| | | } |
| | | return result; |
| | | } |