This commit is contained in:
FanLian
2023-09-06 10:26:14 +08:00
3 changed files with 16 additions and 9 deletions

View File

@@ -75,7 +75,7 @@ namespace Tnb.WarehouseMgr
_cacheManager = cacheManager; _cacheManager = cacheManager;
} }
/// <summary> /// <summary>
/// 根据载具Id带出库位、仓库信息 /// 根据载具Id带出库位、仓库信息
/// </summary> /// </summary>
@@ -519,7 +519,7 @@ namespace Tnb.WarehouseMgr
{ {
loc.is_use = ((int)EnumCarryStatus.).ToString(); loc.is_use = ((int)EnumCarryStatus.).ToString();
} }
locIts.Add(loc); locIts.Add(loc);
} }
@@ -581,6 +581,11 @@ namespace Tnb.WarehouseMgr
/// <returns></returns> /// <returns></returns>
public async Task<bool> GenPreTask(List<WmsPretaskH> preTasks, List<WmsPretaskCode> preTaskCodes) public async Task<bool> GenPreTask(List<WmsPretaskH> preTasks, List<WmsPretaskCode> preTaskCodes)
{ {
//如果预任务出现起终库位相同,则删除对应预任务
if (preTasks.FindAll(it => it.startlocation_id == it.endlocation_id)?.Count > 0)
{
preTasks.RemoveAll(it => it.startlocation_id == it.endlocation_id);
}
var grpList = preTasks.OrderBy(o => o.bill_code).GroupBy(g => g.carry_id).ToList(); var grpList = preTasks.OrderBy(o => o.bill_code).GroupBy(g => g.carry_id).ToList();
if (grpList?.Count > 0) if (grpList?.Count > 0)
{ {

View File

@@ -144,7 +144,7 @@ namespace Tnb.WarehouseMgr
if (!isMatch) throw new AppFriendlyException("库位与载具规格不匹配", 500); if (!isMatch) throw new AppFriendlyException("库位与载具规格不匹配", 500);
ePoint = await _db.Queryable<WmsPointH>().FirstAsync(it => it.location_id == endLocations[0].id); ePoint = await _db.Queryable<WmsPointH>().FirstAsync(it => it.location_id == endLocations[0].id);
} }
sPoint = await _db.Queryable<WmsPointH>().FirstAsync(it => it.location_id == loc.id && it.area_id == ePoint.area_id); sPoint = await _db.Queryable<WmsPointH>().FirstAsync(it => it.location_id == loc.id);
if (sPoint != null && ePoint != null) if (sPoint != null && ePoint != null)
{ {

View File

@@ -4,6 +4,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Channels; using System.Threading.Channels;
using System.Threading.Tasks; using System.Threading.Tasks;
using Aop.Api.Domain;
using JNPF.Common.Core.Manager; using JNPF.Common.Core.Manager;
using JNPF.Common.Dtos.VisualDev; using JNPF.Common.Dtos.VisualDev;
using JNPF.Common.Enums; using JNPF.Common.Enums;
@@ -75,15 +76,15 @@ namespace Tnb.WarehouseMgr
// 计算路径,插入预任务申请 // 计算路径,插入预任务申请
WmsPointH? sPoint = null; WmsPointH? sPoint = null;
WmsPointH? ePoint = null; WmsPointH? ePoint = null;
if (input.data.ContainsKey(nameof(WmsTransfer.startlocation_id)))
{
sPoint = await _db.Queryable<WmsPointH>().FirstAsync(it => it.location_id == input.data[nameof(WmsTransfer.startlocation_id)].ToString());
}
if (input.data.ContainsKey(nameof(WmsTransfer.endlocation_id))) if (input.data.ContainsKey(nameof(WmsTransfer.endlocation_id)))
{ {
ePoint = await _db.Queryable<WmsPointH>().FirstAsync(it => it.location_id == input.data[nameof(WmsTransfer.endlocation_id)].ToString()); ePoint = await _db.Queryable<WmsPointH>().FirstAsync(it => it.location_id == input.data[nameof(WmsTransfer.endlocation_id)].ToString());
} }
if (input.data.ContainsKey(nameof(WmsTransfer.startlocation_id)))
{
sPoint = await _db.Queryable<WmsPointH>().FirstAsync(it => it.location_id == input.data[nameof(WmsTransfer.startlocation_id)].ToString());
}
if (sPoint != null && ePoint != null) if (sPoint != null && ePoint != null)
{ {
var points = await _wareHouseService.PathAlgorithms(sPoint.id, ePoint.id); var points = await _wareHouseService.PathAlgorithms(sPoint.id, ePoint.id);
@@ -91,11 +92,12 @@ namespace Tnb.WarehouseMgr
if (points?.Count > 0) if (points?.Count > 0)
{ {
if (points.Count <= 2) throw new AppFriendlyException("该路径不存在", 500); if (points.Count <= 2) throw new AppFriendlyException("该路径不存在", 500);
var preTasks = points.Where(it => !it.location_id.IsNullOrEmpty()).GroupBy(g => g.area_code).Select(it => var preTasks = points.Where(it => !it.location_id.IsNullOrEmpty()).GroupBy(g => g.area_code).Select(it =>
{ {
var sPoint = it.FirstOrDefault(); var sPoint = it.FirstOrDefault();
var ePoint = it.LastOrDefault(); var ePoint = it.LastOrDefault();
WmsPretaskH preTask = new(); WmsPretaskH preTask = new();
preTask.org_id = _userManager.User.OrganizeId; preTask.org_id = _userManager.User.OrganizeId;
preTask.startlocation_id = sPoint?.location_id!; preTask.startlocation_id = sPoint?.location_id!;