随料架更新料箱位置,下任务顺序变更
This commit is contained in:
@@ -553,6 +553,15 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
LoggerBGWCarrySupplement.LogInformation($"【BGWCarrySupplementtimer】 没有未锁定且已占用且库位中没有记录托盘的数据");
|
||||
continue;
|
||||
}
|
||||
|
||||
WmsPretaskH wmsPretaskH = db_BGWCarrySupplementtimer.Queryable<WmsPretaskH>().Where(r => r.endlocation_code == endLocation.location_code
|
||||
&& r.status != WmsWareHouseConst.PRETASK_BILL_STATUS_COMPLE_ID && r.status != WmsWareHouseConst.PRETASK_BILL_STATUS_CANCEL_ID).First();
|
||||
if (wmsPretaskH != null)
|
||||
{
|
||||
LoggerBGWCarrySupplement.LogWarning($"【BGWCarrySupplementtimer】存在未完成的预任务{wmsPretaskH.bill_code} 不能送托盘!");
|
||||
continue;
|
||||
}
|
||||
|
||||
BasLocation startLocation = wmsLoc.First();
|
||||
|
||||
//锁定起点库位
|
||||
@@ -1171,7 +1180,8 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
|
||||
BasLocation startLocation = rackStartLocations.First();
|
||||
|
||||
List<WmsCarryH> wmsCarryHs = db_Floor2timer送空托到上升降区.Queryable<WmsCarryH>().Where(r => r.location_id == startLocation.id).ToList();
|
||||
List<WmsCarryH> wmsCarryHs = db_Floor2timer送空托到上升降区.Queryable<WmsCarryH>().Where(r => r.location_id == startLocation.id
|
||||
&& r.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID).ToList();
|
||||
if (wmsCarryHs.Count == 0)
|
||||
{
|
||||
LoggerFloor2RackDelivery.LogError($"【送空托到上升降区】 起点{startLocation.id} {startLocation.location_code}上找不到料架");
|
||||
@@ -1346,7 +1356,8 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
|
||||
BasLocation startLocation = rackStartLocations.First();
|
||||
|
||||
List<WmsCarryH> wmsCarryHs = db_Floor2timer送满托到下升降区.Queryable<WmsCarryH>().Where(r => r.location_id == startLocation.id).ToList();
|
||||
List<WmsCarryH> wmsCarryHs = db_Floor2timer送满托到下升降区.Queryable<WmsCarryH>().Where(r => r.location_id == startLocation.id
|
||||
&& r.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID).ToList();
|
||||
if (wmsCarryHs.Count == 0)
|
||||
{
|
||||
LoggerFloor2RackDelivery.LogError($"【送满托到下升降区】 起点{startLocation.id} {startLocation.location_code}上找不到料架");
|
||||
@@ -1747,6 +1758,8 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
|
||||
|
||||
async void ElevatorTaskExceptionHandle(object args)
|
||||
{
|
||||
try
|
||||
{
|
||||
List<WmsDistaskH> wmsDistaskHs = db_ElevatorTaskExceptionHandle.Queryable<WmsDistaskH>()
|
||||
.Where(r => r.startlocation_code.Contains("DT") && r.endlocation_code.Contains("DT") && r.act_start_date == null && r.act_end_date == null).ToList();
|
||||
@@ -1764,6 +1777,13 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
wmsDistaskH.device_id = e.device_id;
|
||||
await _wareHouseService.ExecuteTargetFloorTask(wmsDistaskH);
|
||||
}
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
LoggerFloor2RackDelivery.LogError($"【ElevatorTaskExceptionHandle】{ex.Message}");
|
||||
LoggerFloor2RackDelivery.LogError($"【ElevatorTaskExceptionHandle】{ex.StackTrace}");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -55,6 +55,7 @@ using Tnb.WarehouseMgr.Entities.Enums;
|
||||
using Tnb.WarehouseMgr.Interfaces;
|
||||
using static NPOI.HSSF.Util.HSSFColor;
|
||||
using Tnb.BasicData;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Tnb.WarehouseMgr
|
||||
{
|
||||
@@ -584,6 +585,10 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
List<Tuple<WmsCarryH, decimal, BasLocation>>? carrys = new List<Tuple<WmsCarryH, decimal, BasLocation>>();
|
||||
|
||||
// 6个下发一条任务链
|
||||
int move_num = 6;
|
||||
int endlocation_index = 0;
|
||||
string[] endlocations = new string[2] { "32609229889045", "32609238573589" };
|
||||
BasLocation endlocation_ssx = null;
|
||||
|
||||
for (int i = 0; i < itemsASC.Count; i++)
|
||||
@@ -594,6 +599,11 @@ namespace Tnb.WarehouseMgr
|
||||
if (input.needOut <= 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
// 每6个重新获取一次终点
|
||||
if (i % move_num == 0)
|
||||
{
|
||||
endlocation_ssx = await _db.Queryable<BasLocation>().Where(r => endlocations.Contains(r.id)).OrderBy("is_lock, task_nums, location_code").FirstAsync();
|
||||
}
|
||||
|
||||
@@ -605,10 +615,9 @@ namespace Tnb.WarehouseMgr
|
||||
if (_wmsCarryCode.codeqty == input.needOut)
|
||||
{
|
||||
input.needOut -= _wmsCarryCode.codeqty;
|
||||
BasLocation _endlocation_ssx = await _db.Queryable<BasLocation>().Where(r => new string[2] { "32609229889045", "32609238573589" }.Contains(r.id)).OrderBy("is_lock, task_nums, location_code").FirstAsync();
|
||||
await _db.Updateable<BasLocation>().SetColumns(it => it.task_nums == it.task_nums + 1).Where(it => _endlocation_ssx.id == it.id).ExecuteCommandAsync();
|
||||
WmsCarryH _wmsCarryH = itemsASC[j].wmsCarryH;
|
||||
|
||||
carrys.Add(new Tuple<WmsCarryH, decimal, BasLocation>(_wmsCarryH, _wmsCarryCode.codeqty, _endlocation_ssx));
|
||||
await _db.Updateable<BasLocation>().SetColumns(it => it.task_nums == it.task_nums + 1).Where(it => endlocation_ssx.id == it.id).ExecuteCommandAsync();
|
||||
|
||||
carrys.Add(new Tuple<WmsCarryH, decimal, BasLocation>(_wmsCarryH, _wmsCarryCode.codeqty, endlocation_ssx));
|
||||
|
||||
@@ -621,7 +630,6 @@ namespace Tnb.WarehouseMgr
|
||||
break;
|
||||
|
||||
// 目前只支持一个料箱只有一个物料
|
||||
BasLocation endlocation_ssx = await _db.Queryable<BasLocation>().Where(r => new string[2] { "32609229889045", "32609238573589" }.Contains(r.id)).OrderBy("is_lock, task_nums, location_code").FirstAsync();
|
||||
input.needOut -= wmsCarryCode.codeqty;
|
||||
|
||||
await _db.Updateable<BasLocation>().SetColumns(it => it.task_nums == it.task_nums + 1).Where(it => endlocation_ssx.id == it.id).ExecuteCommandAsync();
|
||||
@@ -2286,11 +2294,12 @@ namespace Tnb.WarehouseMgr
|
||||
location_code = multiList[i].endlocation_code,
|
||||
instock_time = DateTime.Now
|
||||
};
|
||||
string endLocId = multiList[i].endlocation_id;
|
||||
|
||||
if (carry.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID)
|
||||
WmsCarryH wmsCarryH = await _db.Queryable<WmsCarryH>().Where(r => r.id == carry.id).FirstAsync();
|
||||
// 同步料架下的载具位置
|
||||
List<WmsCarryH> carrys = _db.Queryable<WmsCarryD>().Where(r => r.carry_id == carry.id)
|
||||
.InnerJoin<WmsCarryH>((a, b) => a.membercarry_id == b.id).Select((a, b) => b).ToList();
|
||||
if (wmsCarryH.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID)
|
||||
{
|
||||
List<WmsCarryH> carrys = _db.Queryable<WmsCarryD>()
|
||||
.InnerJoin<WmsCarryH>((a, b) => a.membercarry_id == b.id).Where((a, b) => a.carry_id == carry.id).Select((a, b) => b).ToList();
|
||||
carrys.ForEach(r =>
|
||||
@@ -2711,8 +2720,8 @@ namespace Tnb.WarehouseMgr
|
||||
WmsElevatorH wmsElevatorH = await _db.Queryable<WmsElevatorH>().Where(it => it.elevator_group == "1" && it.enabled == 1).OrderBy(r => r.task_nums).FirstAsync();
|
||||
string elevatorSno = wmsElevatorH.elevator_code.Replace("Elevator", "");
|
||||
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-2-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-4-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.id == pStartId).First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-C-02-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-02-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-04-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-R-04-0{elevatorSno}").First());
|
||||
@@ -2724,8 +2733,8 @@ namespace Tnb.WarehouseMgr
|
||||
WmsElevatorH wmsElevatorH = await _db.Queryable<WmsElevatorH>().Where(it => it.elevator_group == "1" && it.enabled == 1).OrderBy(r => r.task_nums).FirstAsync();
|
||||
string elevatorSno = wmsElevatorH.elevator_code.Replace("Elevator", "");
|
||||
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-1-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-4-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.id == pStartId).First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-C-01-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-01-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-04-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-R-04-0{elevatorSno}").First());
|
||||
@@ -2737,8 +2746,8 @@ namespace Tnb.WarehouseMgr
|
||||
WmsElevatorH wmsElevatorH = await _db.Queryable<WmsElevatorH>().Where(it => it.elevator_group == "1" && it.enabled == 1).OrderBy(r => r.task_nums).FirstAsync();
|
||||
string elevatorSno = wmsElevatorH.elevator_code.Replace("Elevator", "");
|
||||
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-4-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-2-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.id == pStartId).First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-C-04-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-04-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-02-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-R-02-0{elevatorSno}").First());
|
||||
@@ -3109,6 +3118,11 @@ namespace Tnb.WarehouseMgr
|
||||
{
|
||||
try
|
||||
{
|
||||
List<WmsCarryD> wmsCarryCodes = _db.Queryable<WmsCarryD>().Where(r => r.carry_id == rackid).ToList();
|
||||
|
||||
int move_num = 6;
|
||||
string[] endlocations = new string[2] { WmsWareHouseConst.ZZCSSX111011, WmsWareHouseConst.ZZCSSX111012 };
|
||||
BasLocation startLocation = null;
|
||||
|
||||
int index = 0;
|
||||
foreach (WmsCarryD wmsCarryD in wmsCarryCodes)
|
||||
@@ -3122,11 +3136,12 @@ namespace Tnb.WarehouseMgr
|
||||
{
|
||||
Logger.LogWarning("没有可用的入库库位");
|
||||
continue;
|
||||
// todo 11、12线 分配方式暂定,待更改
|
||||
BasLocation basLocation011 = _db.Queryable<BasLocation>().Where(r => r.id == WmsWareHouseConst.ZZCSSX111011).First();
|
||||
BasLocation basLocation012 = _db.Queryable<BasLocation>().Where(r => r.id == WmsWareHouseConst.ZZCSSX111012).First();
|
||||
}
|
||||
|
||||
// 每6个重新获取一次起点
|
||||
if (index % move_num == 0)
|
||||
{
|
||||
startLocation = await _db.Queryable<BasLocation>().Where(r => endlocations.Contains(r.id)).OrderBy("is_lock, task_nums, location_code").FirstAsync();
|
||||
BasLocation startLocation = basLocation011.task_nums >= basLocation012.task_nums ? basLocation012 : basLocation011;
|
||||
}
|
||||
|
||||
BasLocation endLocation = endLocations[0];
|
||||
@@ -3185,6 +3200,8 @@ namespace Tnb.WarehouseMgr
|
||||
else
|
||||
{
|
||||
Logger.LogInformation($"【二楼kiva把料架送到下升降机后生成中储仓入库任务】 未成功生成预任务 起点{startLocation.location_code} 终点{endLocation.location_code} 料箱 {wmsCarryD.membercarry_code}");
|
||||
}
|
||||
|
||||
index++;
|
||||
|
||||
s_floor2CreatePretask.Release();
|
||||
|
||||
@@ -28,8 +28,8 @@ namespace Tnb.WarehouseMgr
|
||||
WmsPretaskH preTask = await _db.Queryable<WmsPretaskH>().SingleAsync(it => it.id == disTask.pretask_id);
|
||||
if (preTask != null)
|
||||
{
|
||||
preTask.status = WmsWareHouseConst.PRETASK_BILL_STATUS_DXF_ID;
|
||||
_ = await _db.Updateable(preTask).UpdateColumns(it => it.status).ExecuteCommandAsync();
|
||||
//preTask.status = WmsWareHouseConst.PRETASK_BILL_STATUS_DXF_ID;
|
||||
//_ = await _db.Updateable(preTask).UpdateColumns(it => it.status).ExecuteCommandAsync();
|
||||
}
|
||||
_ = await _db.Deleteable<WmsElevatorUnexecute>().Where(it => it.distask_id == id).ExecuteCommandAsync();
|
||||
_ = await _db.Deleteable(disTask).ExecuteCommandAsync();
|
||||
|
||||
@@ -1015,7 +1015,7 @@ namespace Tnb.WarehouseMgr
|
||||
commonCreatePretaskInput.endlocation_id = wmsMaterialTransferCarry.endlocation_id;
|
||||
commonCreatePretaskInput.carry_id = wmsMaterialTransferCarry.carry_id;
|
||||
commonCreatePretaskInput.carry_code = wmsMaterialTransferCarry.carry_code;
|
||||
commonCreatePretaskInput.task_type = WmsWareHouseConst.BIZTYPE_WMSTRANSFER_ID;
|
||||
commonCreatePretaskInput.task_type = WmsWareHouseConst.WMS_PRETASK_OUTSTOCK_TYPE_ID;
|
||||
commonCreatePretaskInput.biz_type = WmsWareHouseConst.BIZTYPE_WMSMATERIALTRANSFER_ID;
|
||||
commonCreatePretaskInput.source_id = wmsMaterialTransferCarry.mat_bill_id;
|
||||
commonCreatePretaskInput.isExcuteMission = false;
|
||||
@@ -1175,7 +1175,7 @@ namespace Tnb.WarehouseMgr
|
||||
{
|
||||
try
|
||||
{
|
||||
List<WmsCarryH> wmsCarryHs = _db.Queryable<WmsCarryH>().Where(r => r.work_station == input.work_station && r.is_lock == 0
|
||||
List<WmsCarryH> wmsCarryHs = _db.Queryable<WmsCarryH>().Where(r => r.work_station == input.work_station && r.is_lock == 0 && r.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID
|
||||
&& (r.carry_status == ((int)(EnumCarryStatus.占用)).ToString() || r.carry_status == ((int)(EnumCarryStatus.齐套)).ToString())).ToList();
|
||||
if (string.IsNullOrEmpty(input.work_station))
|
||||
{
|
||||
|
||||
@@ -15,6 +15,7 @@ using Newtonsoft.Json;
|
||||
using Npgsql.TypeHandlers;
|
||||
using SqlSugar;
|
||||
using Tnb.ProductionMgr.Entities.Entity;
|
||||
using Tnb.ProductionMgr.Entities.Entity.ErpEntity;
|
||||
|
||||
namespace JNPF.Systems.Common;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user