| | |
| | | break; |
| | | case 2: // 完成 |
| | | WCSHelper.End(TN_Task); // 任务状态改成结束 |
| | | |
| | | break; |
| | | case 7: // 异常 |
| | | TaskProcess.OperateStatus(TN_Task, 7); // 异常处理 |
| | |
| | | return; |
| | | } |
| | | |
| | | //if (db.Updateable<TN_Loc_Container>() |
| | | // .SetColumns(d => d.S_IMG_URL == filepath) |
| | | // .Where(d => d.S_CNTR_CODE == model.S_CNTR_CODE).ExecuteCommand() <= 0) { |
| | | if (db.Updateable<TN_Loc_Container>() |
| | | .SetColumns(d => d.S_IMG_URL == filepath) |
| | | .Where(d => d.S_CNTR_CODE == model.S_CNTR_CODE).ExecuteCommand() <= 0) { |
| | | |
| | | // LogHelper.Info($"图片URL '{filepath}' 写入数据库失败"); |
| | | // return; |
| | | //} |
| | | LogHelper.Info($"图片URL '{filepath}' 写入数据库失败"); |
| | | return; |
| | | } |
| | | } |
| | | catch (Exception ex) { |
| | | LogHelper.Info($"发生了错误:{ex.Message}"); |
| | |
| | | //cgDetail.F_QTY = 0; // 不设置为空,便于测试时预先设置一个正常值 |
| | | } |
| | | else { |
| | | var weight = float.Parse(data[0].parameter_varchar200_up); |
| | | var weight_str = data[0].parameter_varchar200_up.Split(';')[1].Split('-')[1]; |
| | | |
| | | var weight = float.Parse(weight_str); |
| | | cgDetail.F_QTY = weight; |
| | | tn_task.F_WEIGHT = weight; |
| | | |
| | |
| | | return; |
| | | } |
| | | |
| | | //row -= 100; // 111-118 => 1-8 |
| | | |
| | | // 只当之前指定终点货架后,才尝试计算终点货位 |
| | | if (cgDetail.F_QTY > 2000) { |
| | | // 重量超过 2t |
| | |
| | | LogHelper.Info("重量超过2t,不允许入库"); |
| | | |
| | | // 传递给国自AGV |
| | | if (GZRobot.UpdateInteractInfo(new UpdateInteractInfo { |
| | | type_name = "GET_DST", |
| | | interaction_info_id = int.Parse(tn_task.S_EQ_TASK_CODE), |
| | | info_status = "error", |
| | | })) { |
| | | LogHelper.Info($"国自AGV接受超重取消信息成功", "HosttoagvTask"); |
| | | if (GZRobot.TryGetInteractionInfoId(tn_task.S_CODE, out var id1)) { |
| | | if (GZRobot.UpdateInteractInfo(new UpdateInteractInfo { |
| | | type_name = "GET_DST", |
| | | interaction_info_id = id1, |
| | | info_status = "error", |
| | | })) { |
| | | LogHelper.Info($"国自AGV接受超重取消信息成功", "HosttoagvTask"); |
| | | } |
| | | else { |
| | | LogHelper.Info($"国自AGV接受超重取消信息失败", "HosttoagvTask"); |
| | | } |
| | | } |
| | | else { |
| | | LogHelper.Info($"国自AGV接受超重取消信息失败", "HosttoagvTask"); |
| | | LogHelper.Info($"AGV:获取任务{tn_task.S_CODE}的interaction_info_id失败!", "HosttoagvTask"); |
| | | } |
| | | |
| | | return; |
| | | return; // 超重会自己return,如果国自agv没接受到也不需要提前return |
| | | } |
| | | else if (cgDetail.F_QTY > 1500) { |
| | | // 重量超过1.5t,需要选择1-2层货架 |
| | |
| | | LocationHelper.LockLoc(ref endLoc, 1); // 终点入库锁 |
| | | |
| | | // 传递给国自AGV |
| | | if (GZRobot.UpdateInteractInfo(new UpdateInteractInfo { |
| | | type_name = "GET_DST", |
| | | interaction_info_id = int.Parse(tn_task.S_EQ_TASK_CODE), |
| | | info_status = "invalid", |
| | | return_value = LocationHelper.GetAgvSite(tn_task.S_END_LOC), // 目前使用agvsite |
| | | })) { |
| | | LogHelper.Info($"国自AGV接受终点信息成功", "HosttoagvTask"); |
| | | if (GZRobot.TryGetInteractionInfoId(tn_task.S_CODE, out var id2)) { |
| | | if (GZRobot.UpdateInteractInfo(new UpdateInteractInfo { |
| | | type_name = "GET_DST", |
| | | interaction_info_id = id2, |
| | | info_status = "invalid", |
| | | return_value = LocationHelper.GetAgvSite(tn_task.S_END_LOC), // 目前使用agvsite |
| | | })) { |
| | | LogHelper.Info($"国自AGV接受终点信息成功", "HosttoagvTask"); |
| | | } |
| | | else { |
| | | LogHelper.Info($"国自AGV接受终点信息失败", "HosttoagvTask"); |
| | | return; |
| | | } |
| | | } |
| | | else { |
| | | LogHelper.Info($"国自AGV接受终点信息失败", "HosttoagvTask"); |
| | | LogHelper.Info($"AGV:获取任务{tn_task.S_CODE}的interaction_info_id失败!", "HosttoagvTask"); |
| | | return; |
| | | } |
| | | |
| | | using (var tran = db.Ado.UseTran()) { |
| | |
| | | LogHelper.Info("更新物料重量失败:没有接受到来自国自AGV的重量信息"); |
| | | return; |
| | | } |
| | | var weight_str = data[0].parameter_varchar200_up.Split(';')[1].Split('-')[1]; |
| | | |
| | | var weight = float.Parse(data[0].parameter_varchar200_up); |
| | | var weight = float.Parse(weight_str); |
| | | cgDetail.F_QTY = weight; |
| | | |
| | | if (db.Updateable<TN_CG_Detail>(cgDetail).UpdateColumns(it => it.F_QTY).ExecuteCommand() <= 0) { |