齐套出库

This commit is contained in:
2024-06-02 21:27:20 +08:00
parent db40c03da6
commit 2c545e9b7f
15 changed files with 573 additions and 215 deletions

View File

@@ -302,6 +302,13 @@ namespace Tnb.WarehouseMgr
codeqty = b.codeqty
}).ToList().Select(r =>
{
// 如果可出库数量已经扣减完
if (input.qty <= 0)
{
return new Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>("", r.WmsCarryH, r.WmsCarryCode, r.BasLocation);
}
// 扣减可出库数量
input.qty = input.qty - r.codeqty;
// 出库数量与托盘上的数量不一致需要进行分拣
@@ -315,7 +322,7 @@ namespace Tnb.WarehouseMgr
// 正常预任务出库
return new Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>("预任务", r.WmsCarryH, r.WmsCarryCode, r.BasLocation);
}
}).ToList();
}).Where(r => r.Item1 != "").ToList();
return items;
}
@@ -547,7 +554,7 @@ namespace Tnb.WarehouseMgr
}
/// <summary>
/// // 二楼机械臂
/// 二楼机械臂
/// </summary>
/// <returns></returns>
public async Task<bool> Floor2MechanicalComplete(WmsDistaskH disTask, string action)
@@ -673,6 +680,15 @@ namespace Tnb.WarehouseMgr
{
throw new Exception($@"【上升降机】设定升上升降机满托{target.stackingposition}移走 结果为 {result}");
}
// 更新料架在二楼配送的目标工位
// todo erp工位字段取数位置未确定
string targetWorkstation = "003-01-01-01";
Logger.LogInformation($@"【上升降机】更新料架 {target.rackcode} 在二楼配送的目标工位 {targetWorkstation}");
await db.Updateable<WmsCarryH>().SetColumns(r => new WmsCarryH
{
work_station = targetWorkstation
}).Where(r => r.id == target.rackid).ExecuteCommandAsync();
}
else if (target.note == "下升降机")
{
@@ -684,12 +700,6 @@ namespace Tnb.WarehouseMgr
}
}
//回写出库单状态
await db.Updateable<WmsEmptyOutstockH>().SetColumns(r => new WmsEmptyOutstockH
{
bindrackcomplete = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID
}).Where(r => r.bill_code == target.outbill).ExecuteCommandAsync();
// 重置料架区
await db.Updateable<WmsMechanicalArmH>().SetColumns(r => new WmsMechanicalArmH
{
@@ -721,26 +731,26 @@ namespace Tnb.WarehouseMgr
private async Task<bool> Floor2UpDownMachinecode_SetTag(string tag, string value)
{
//string DevName = "东面提升机输送线";
//Dictionary<string, string> dicCommand = new(StringComparer.OrdinalIgnoreCase)
//{
// ["DevName"] = DevName,
// ["token"] = _eleCtlCfg.token,
// ["TagName"] = tag,
// ["Value"] = value,
//};
//string result = await HttpClientHelper.GetRequestAsync(_eleCtlCfg.WriteTagUrl, dicCommand);
string DevName = "东面提升机输送线";
Dictionary<string, string> dicCommand = new(StringComparer.OrdinalIgnoreCase)
{
["DevName"] = DevName,
["token"] = _eleCtlCfg.token,
["TagName"] = tag,
["Value"] = value,
};
string result = await HttpClientHelper.GetRequestAsync(_eleCtlCfg.WriteTagUrl, dicCommand);
//return result.Contains("Ok");
return result.Contains("Ok");
// 测试
string DevName = "东面提升机输送线";
//string DevName = "东面提升机输送线";
JObject valueJson = new JObject();
valueJson["Value"] = value;
//JObject valueJson = new JObject();
//valueJson["Value"] = value;
bool res = await _redisData.HSet(DevName, tag, valueJson.ToString());
return true;
//bool res = await _redisData.HSet(DevName, tag, valueJson.ToString());
//return true;
}
/// <summary>
@@ -1100,7 +1110,7 @@ namespace Tnb.WarehouseMgr
Logger.Information($@"【CTUTaskExecute】 获取任务TaskCodes: {JsonConvert.SerializeObject(TaskCodes)}");
var InTasks = CTUTasks.Where(a => a.task_type == WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID).ToList();
var OutTasks = CTUTasks.Where(a => a.task_type == WmsWareHouseConst.WMS_PRETASK_OUTSTOCK_TYPE_ID).ToList();
var OutTasks = CTUTasks.Where(a => a.task_type == WmsWareHouseConst.WMS_PRETASK_OUTSTOCK_TYPE_ID || a.task_type == WmsWareHouseConst.BIZTYPE_WMSTRANSFER_ID).ToList();
//Logger.Information($@"【CTUTaskExecute】 获取任务InTasks: {JsonConvert.SerializeObject(InTasks)}");
//Logger.Information($@"【CTUTaskExecute】 获取任务OutTasks: {JsonConvert.SerializeObject(OutTasks)}");
@@ -1297,7 +1307,7 @@ namespace Tnb.WarehouseMgr
BillCode = $"{groups}-" + (orgdistaskHs.Count + newdistaskHs.Count + 1);
}
}
else if (distaskH.task_type == WmsWareHouseConst.WMS_PRETASK_OUTSTOCK_TYPE_ID)
else if (distaskH.task_type == WmsWareHouseConst.WMS_PRETASK_OUTSTOCK_TYPE_ID || distaskH.task_type == WmsWareHouseConst.BIZTYPE_WMSTRANSFER_ID)
{
var orgdistaskHs = OriginDistaskH.Where(p => p.status == WmsWareHouseConst.TASK_BILL_STATUS_DZX_ID && p.task_type == WmsWareHouseConst.WMS_PRETASK_OUTSTOCK_TYPE_ID && p.endpoint_id == distaskH.endpoint_id).ToList();
var newdistaskHs = NewdistaskHs = OriginDistaskH.Where(p => p.status == WmsWareHouseConst.TASK_BILL_STATUS_DZX_ID && p.task_type == WmsWareHouseConst.WMS_PRETASK_OUTSTOCK_TYPE_ID && p.endpoint_id == distaskH.endpoint_id).ToList();
@@ -1775,7 +1785,7 @@ namespace Tnb.WarehouseMgr
is_lock = 0,
is_use = multiList[i].carry_status
};
if (multiList[i].carry_status.ToEnum<EnumCarryStatus>() == EnumCarryStatus.)
if (!string.IsNullOrEmpty(multiList[i].carry_status) && multiList[i].carry_status.ToEnum<EnumCarryStatus>() == EnumCarryStatus.)
{
loc.is_use = ((int)EnumCarryStatus.).ToString();
}
@@ -1824,12 +1834,6 @@ namespace Tnb.WarehouseMgr
await _db.Updateable<WmsTransferInstockD>().SetColumns(r => r.qty == r.qty + wmsCarryCode.codeqty).Where(r => r.id == dt.require_id).ExecuteCommandAsync();
}
}
// 原材料转库单
else if (dt.biz_type == WmsWareHouseConst.BIZTYPE_WMSMATERIALTRANSFER_ID)
{
WmsCarryCode wmsCarryCode = await _db.Queryable<WmsCarryCode>().Where(r => r.carry_id == dt.carry_id).FirstAsync();
await _db.Updateable<WmsMaterialTransferD>().SetColumns(r => r.yzqty == r.yzqty + wmsCarryCode.codeqty).Where(r => r.id == dt.require_id).ExecuteCommandAsync();
}
#endregion
List<WmsDistaskCode> disTaskCodes = await _db.Queryable<WmsDistaskCode>().Where(it => it.bill_id == dt.id).ToListAsync();