kazelee
7 天以前 00aaf49a223be04fc58f6f7c09d95ce4b22ef087
core/WCSCore.cs
@@ -103,6 +103,7 @@
                    break;
                case 2: // 完成
                    WCSHelper.End(TN_Task); // 任务状态改成结束
                    break;
                case 7: // 异常
                    TaskProcess.OperateStatus(TN_Task, 7); // 异常处理
@@ -126,13 +127,13 @@
                    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}");
@@ -167,7 +168,9 @@
                    //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;
@@ -204,6 +207,8 @@
                    return;
                }
                //row -= 100; // 111-118 => 1-8
                // 只当之前指定终点货架后,才尝试计算终点货位
                if (cgDetail.F_QTY > 2000) {
                    // 重量超过 2t 
@@ -211,18 +216,23 @@
                    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层货架
@@ -272,16 +282,23 @@
                    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()) {
@@ -329,8 +346,9 @@
                    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) {