kazelee
2025-07-08 9f18954857e9c4c691fc2c8e83d7728abdc18f74
core/WCSCore.cs
@@ -164,10 +164,12 @@
                if (data.Count == 0) {
                    LogHelper.Info("设置终点货位失败:没有接受到来自国自AGV的重量信息");
                    //return; // TODO 正式运行有国自AGV的时候恢复
                    //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,11 +206,26 @@
                    return;
                }
                //row -= 100; // 118-1
                // 只当之前指定终点货架后,才尝试计算终点货位
                if (cgDetail.F_QTY > 2000) {
                    // 重量超过 2t 
                    endLoc = null;
                    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");
                    }
                    else {
                        LogHelper.Info($"国自AGV接受超重取消信息失败", "HosttoagvTask");
                    }
                    return;
                }
                else if (cgDetail.F_QTY > 1500) {
@@ -232,18 +249,17 @@
                // 如果没有符合条件的货位,置空,等待PDA重新确定
                if (endLoc == null) {
                    tn_task.S_END_AREA = Settings.Areas[1][0]; // HJQ
                    tn_task.S_END_AREA = Settings.Areas[AreaIndex.H货架区][0]; // HJQ
                    tn_task.S_END_LOC = "0";
                    // 不需要再给GZ AGV传空值,一开始就没给具体货位,只给了Area
                    //var request = new UpdateInteractInfo {
                    //    interaction_info_id = 3, // 更改终点信息
                    //    info_status = "active",
                    //    return_value = "",
                    //};
                    //GZRobot.UpdateInteractInfo(request);
                    if (db.Updateable<TN_Task>(tn_task).UpdateColumns(it => new { it.S_END_LOC })
                            .ExecuteCommand() > 0) {
                        //LocationHelper.LockLoc(endLoc.S_CODE, 1);//终点入库锁
@@ -258,6 +274,19 @@
                    tn_task.S_END_LOC = endLoc.S_CODE;
                    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");
                    }
                    else {
                        LogHelper.Info($"国自AGV接受终点信息失败", "HosttoagvTask");
                    }
                    using (var tran = db.Ado.UseTran()) {
                        if (db.Updateable<TN_Task>(tn_task).UpdateColumns(it => new { it.S_END_LOC })
@@ -304,8 +333,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) {
@@ -337,8 +367,6 @@
                {
                    //使用自定义任务推送
                    TaskProcess.SendTask(task);//调度NDC或杭奥或国自设备
                    //TaskProcess.SendGZTask(task);///调度国自设备
                });
            }
            else
@@ -348,8 +376,11 @@
        }
        // DOC 4.   站台申请安全交互 RCS->WMS
        public static ReturnResult SafetyInteraction(SafetyInteractionInfo model) {
            var gzResult = new ReturnResult();
        public static gzResult SafetyInteraction(SafetyInteractionInfo model) {
            var gzResult = new gzResult() {
                code = 0,
                msg = "success"
            };
            // 目前该项目没有站台安全交互的功能
            return gzResult;
        }