| | |
| | | var endLoc = new TN_Location(); |
| | | |
| | | var data = GZRobot.CustomBuf(); |
| | | |
| | | if (data.Count == 0) { |
| | | LogHelper.Info("设置终点货位失败:没有接受到来自国自AGV的重量信息"); |
| | | |
| | | //return; |
| | | } |
| | | else { |
| | | var weight = float.Parse(data[0].parameter_varchar200_up); |
| | | tn_task.F_WEIGHT = weight; |
| | | |
| | | // 只当之前指定终点货架后,才尝试计算终点货位,否则交给人工决定 |
| | | if (tn_task.S_END_AREA != "") { |
| | | if (weight > 1500) { |
| | | // 重量超过1.5t,需要选择1-3层货架 |
| | | endLoc = db.Queryable<TN_Location>().First(a => a.S_SHELF_CODE == tn_task.S_END_AREA && LocationHelper.IsFree(a) && a.N_CURRENT_NUM == 0 && a.N_HEIGHT <= 3); |
| | | if (db.Updateable<TN_Task>(tn_task).UpdateColumns(it => it.F_WEIGHT).ExecuteCommand() <= 0) { |
| | | LogHelper.Info("修改Task重量失败"); |
| | | return; |
| | | } |
| | | else if (weight > 0) { |
| | | } |
| | | |
| | | // 终点货架为空时,不判断,交给人工处理 |
| | | if (tn_task.S_END_AREA == "") { |
| | | LogHelper.Info("终点货架为空,不处理"); |
| | | } |
| | | |
| | | // 只当之前指定终点货架后,才尝试计算终点货位 |
| | | if (tn_task.F_WEIGHT > 1500) { |
| | | // 重量超过1.5t,需要选择1-3层货架 |
| | | endLoc = db.Queryable<TN_Location>().First(a => a.S_SHELF_CODE == tn_task.S_END_AREA && LocationHelper.IsFree(a) && a.N_CURRENT_NUM == 0 && a.N_LAYER <= 3); |
| | | } |
| | | else if (tn_task.F_WEIGHT > 0) { |
| | | // 重量未超过1.5t,在指定货架随便选择1个 |
| | | endLoc = db.Queryable<TN_Location>().First(a => a.S_SHELF_CODE == tn_task.S_END_AREA && LocationHelper.IsFree(a) && a.N_CURRENT_NUM == 0); |
| | | } |
| | | else { |
| | | // 没有接收到重量,或重量出错 |
| | | endLoc = null; |
| | | LogHelper.Info($"错误的重量信息:{weight}"); |
| | | LogHelper.Info($"错误的重量信息:{tn_task.F_WEIGHT}"); |
| | | return; |
| | | } |
| | | |
| | |
| | | trans.RollbackTran(); |
| | | |
| | | LogHelper.Info($"计算货位成功,任务 {tn_task.S_CODE} 修改失败,终点货架为 {endLoc.S_SHELF_CODE},修改终点位置为 {endLoc.S_CODE}"); |
| | | } |
| | | } |
| | | } |
| | | } |