| | |
| | | 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(() => { |
| | |
| | | LogHelper.Info("称重Task结束"); |
| | | }); |
| | | } |
| | | |
| | | TaskProcess.OperateStatus(TN_Task, 4); // 起点容器货位解绑,解锁起点 |
| | | |
| | | break; |
| | | case 5: // 开始卸货 |
| | | WCSHelper.UpdateStatus(TN_Task, "开始卸货"); // 任务状态改成开始卸货 |
| | |
| | | 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; |
| | |
| | | //row -= 100; // 111-118 => 1-8 |
| | | |
| | | // 只当之前指定终点货架后,才尝试计算终点货位 |
| | | if (cgDetail.F_QTY > 2000) { |
| | | if (cgDetail.F_WEIGHT > 2000) { |
| | | // 重量超过 2t |
| | | endLoc = null; |
| | | LogHelper.Info("重量超过2t,不允许入库"); |
| | |
| | | |
| | | 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") |
| | |
| | | else { |
| | | // 没有接收到重量,或重量出错 |
| | | endLoc = null; |
| | | LogHelper.Info($"错误的重量信息:{cgDetail.F_QTY}"); |
| | | LogHelper.Info($"错误的重量信息:{cgDetail.F_WEIGHT}"); |
| | | return; |
| | | } |
| | | |
| | |
| | | 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; |
| | | } |