| | |
| | | /// <param name="mst"></param> |
| | | /// <param name="v"></param> |
| | | internal static void CacheBitUpdate(WCSTask mst, bool load) { |
| | | var trayCarryCount = mst.N_CNTR_COUNT > 0 ? mst.N_CNTR_COUNT : 1; |
| | | if (load) { |
| | | Console.WriteLine($"任务{mst.S_CODE} 货位{mst.S_START_LOC}取货完成,起点解绑容器{mst.S_CNTR_CODE}"); |
| | | LogHelper.Info($"任务{mst.S_CODE} 货位{mst.S_START_LOC}取货完成,起点解绑容器{mst.S_CNTR_CODE}"); |
| | |
| | | var endLoc = LocationHelper.GetLocation(mst.S_END_LOC); |
| | | |
| | | if (mst.S_SCHEDULE_TYPE == "NDC") { |
| | | Console.WriteLine($"SendTask {mst.S_CODE}"); |
| | | var dic = new Dictionary<string, string>(); |
| | | dic.Add("No", mst.S_CODE); |
| | | dic.Add("Pri", mst.N_PRIORITY.ToString()); |
| | | dic.Add("From", startLoc.S_AGV_SITE); |
| | | dic.Add("To", endLoc.S_AGV_SITE); |
| | | if (mst.S_TYPE == "移库") |
| | | { |
| | | dic.Add("FUNC", "32"); |
| | | } |
| | | else |
| | | { |
| | | dic.Add("FUNC", "0"); |
| | | } |
| | | |
| | | var data = mst.N_END_LAYER + 16 * mst.N_START_LAYER; |
| | | // 参数4 |
| | | dic.Add("DATA", data.ToString()); |
| | | //物料信息中获取 |
| | | //先获取托盘信息 |
| | | var itemInfo = LocationHelper.GetCntrItem(mst.S_CNTR_CODE); |
| | | if (itemInfo != null) { |
| | | // 参数5 |
| | | dic.Add("ItemHeight", itemInfo.N_TS_HEIGHT); |
| | | //参数6 默认值 |
| | | string[] parts = itemInfo.Item_Spec.Split('*'); |
| | | if (parts.Length > 1) |
| | | { |
| | | if (parts[1].Equals("1200")) |
| | | { |
| | | dic.Add("TrayType", "1"); |
| | | } |
| | | else if (parts[1].Equals("1210")) |
| | | { |
| | | dic.Add("TrayType", "2"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //获取参数7和8 |
| | | dic.Add("FromCol", "0"); |
| | | dic.Add("ToCol", "0"); |
| | | |
| | | //改起点 |
| | | var flb1 = GetFreeLineBit(startLoc.S_AREA_CODE, startLoc.N_ROW, startLoc.N_COL); |
| | | if (flb1 != null) { |
| | | dic["FromCol"] = (startLoc.N_COL - flb1.minCol).ToString(); |
| | | if (mst.N_START_LAYER == 1) { |
| | | dic["From"] = flb1.bit1.ToString(); |
| | | } |
| | | else { |
| | | dic["From"] = flb1.bit2.ToString(); |
| | | } |
| | | } |
| | | //改终点 |
| | | var flb = GetFreeLineBit(endLoc.S_AREA_CODE, endLoc.N_ROW, endLoc.N_COL); |
| | | if (flb != null) { |
| | | dic["ToCol"] = (endLoc.N_COL - flb.minCol).ToString(); |
| | | if (mst.N_END_LAYER == 1) { |
| | | dic["To"] = flb.bit1.ToString(); |
| | | } |
| | | else { |
| | | dic["To"] = flb.bit2.ToString(); |
| | | } |
| | | } |
| | | |
| | | var res = NDC.AddNewOrderNew(5, mst.N_PRIORITY, mst.S_CODE, dic); |
| | | if (res != null && (res.Res.ErrCode == 0 || res.Res.ErrCode == 50009)) { |
| | | //推送成功,修改任务优先级 |
| | | mst.N_B_STATE = 1; |
| | | WCSHelper.UpdateStatus(mst); |
| | | result = true; |
| | | } |
| | | |
| | | } |
| | | else if (mst.S_SCHEDULE_TYPE == "杭奥") { |
| | | //调第三方接口 |