core/WCSCore.cs
@@ -70,6 +70,7 @@
                    break;
                case 4: // 取货完成
                    WCSHelper.UpdateStatus(TN_Task, "取货完成"); // 任务状态改成取货完成
                    TaskProcess.OperateStatus(TN_Task, 4); // 起点容器货位解绑,解锁起点
                    if (TN_Task.S_TYPE == TaskName.产品入库 || TN_Task.S_TYPE == TaskName.产品部分回库 || TN_Task.S_TYPE == TaskName.指定货位入库 || TN_Task.S_TYPE == TaskName.盘点理货回库) {
                        var captureTask = Task.Run(() => {
@@ -92,8 +93,7 @@
                            LogHelper.Info("称重Task结束");
                        });
                    }
                    TaskProcess.OperateStatus(TN_Task, 4); // 起点容器货位解绑,解锁起点
                    break;
                case 5: // 开始卸货
                    WCSHelper.UpdateStatus(TN_Task, "开始卸货"); // 任务状态改成开始卸货
@@ -171,11 +171,11 @@
                    var weight_str = data[0].parameter_varchar200_up.Split(';')[1].Split('-')[1];
                    var weight = float.Parse(weight_str);
                    cgDetail.F_QTY = weight;
                    cgDetail.F_WEIGHT = weight;
                    tn_task.F_WEIGHT = weight;
                    using (var tran = db.Ado.UseTran()) {
                        if (db.Updateable<TN_CG_Detail>(cgDetail).UpdateColumns(it => it.F_QTY).ExecuteCommand() <= 0) {
                        if (db.Updateable<TN_CG_Detail>(cgDetail).UpdateColumns(it => it.F_WEIGHT).ExecuteCommand() <= 0) {
                            tran.RollbackTran();
                            LogHelper.Info("修改物料表重量失败");
                            return;
@@ -210,7 +210,7 @@
                //row -= 100; // 111-118 => 1-8
                // 只当之前指定终点货架后,才尝试计算终点货位
                if (cgDetail.F_QTY > 2000) {
                if (cgDetail.F_WEIGHT > 2000) {
                    // 重量超过 2t 
                    endLoc = null;
                    LogHelper.Info("重量超过2t,不允许入库");
@@ -234,13 +234,13 @@
                    return; // 超重会自己return,如果国自agv没接受到也不需要提前return
                }
                else if (cgDetail.F_QTY > 1500) {
                else if (cgDetail.F_WEIGHT > 1500) {
                    // 重量超过1.5t,需要选择1-2层货架
                    endLoc = db.Queryable<TN_Location>()
                        .First(a => a.N_ROW == row && a.N_LAYER <= 2
                        && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "无" && a.C_ENABLE == "Y");
                }
                else if (cgDetail.F_QTY > 0) {
                else if (cgDetail.F_WEIGHT > 0) {
                    // 重量未超过1.5t,在指定货架随便选择1个
                    endLoc = db.Queryable<TN_Location>().Where(a => a.N_ROW == row
                        && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "无" && a.C_ENABLE == "Y")
@@ -249,7 +249,7 @@
                else {
                    // 没有接收到重量,或重量出错
                    endLoc = null;
                    LogHelper.Info($"错误的重量信息:{cgDetail.F_QTY}");
                    LogHelper.Info($"错误的重量信息:{cgDetail.F_WEIGHT}");
                    return;
                }
@@ -349,9 +349,9 @@
                var weight_str = data[0].parameter_varchar200_up.Split(';')[1].Split('-')[1];
                var weight = float.Parse(weight_str);
                cgDetail.F_QTY = weight;
                cgDetail.F_WEIGHT = weight;
                if (db.Updateable<TN_CG_Detail>(cgDetail).UpdateColumns(it => it.F_QTY).ExecuteCommand() <= 0) {
                if (db.Updateable<TN_CG_Detail>(cgDetail).UpdateColumns(it => it.F_WEIGHT).ExecuteCommand() <= 0) {
                    LogHelper.Info("修改物料表重量失败");
                    return;
                }