调整格式
This commit is contained in:
@@ -160,7 +160,6 @@ namespace Tnb.WarehouseMgr
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
items = await _db.Queryable<BasLocation>().Where(it => it.wh_id == input.warehouse_id && it.is_lock == 0 && it.is_type == "0" && it.is_use == ((int)EnumCarryStatus.空闲).ToString()).OrderBy(it => new { it.layers, it.loc_line, it.loc_column }, OrderByType.Asc).ToListAsync();
|
items = await _db.Queryable<BasLocation>().Where(it => it.wh_id == input.warehouse_id && it.is_lock == 0 && it.is_type == "0" && it.is_use == ((int)EnumCarryStatus.空闲).ToString()).OrderBy(it => new { it.layers, it.loc_line, it.loc_column }, OrderByType.Asc).ToListAsync();
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
@@ -553,46 +552,52 @@ namespace Tnb.WarehouseMgr
|
|||||||
{
|
{
|
||||||
var roads = await _db.Queryable<WmsRoad>().ToListAsync();
|
var roads = await _db.Queryable<WmsRoad>().ToListAsync();
|
||||||
var points = await LocPathCalcAlgorithms(pStartId, pEndId, roads);
|
var points = await LocPathCalcAlgorithms(pStartId, pEndId, roads);
|
||||||
|
try
|
||||||
if (points.FindAll(x => x.location_code != null && x.location_code.Contains("ELE"))?.Count > 0)
|
|
||||||
{
|
{
|
||||||
//查询当前电梯点
|
if (points.FindAll(x => x.location_code != null && x.location_code.Contains("ELE"))?.Count > 0)
|
||||||
var curEleDs = await _db.Queryable<WmsElevatorD>().Where(it => points.Select(x => x.id).Contains(it.point_id)).ToListAsync();
|
|
||||||
//如果有电梯点,则会进行电梯的均匀分配
|
|
||||||
if (curEleDs?.Count > 0)
|
|
||||||
{
|
{
|
||||||
//当前电梯
|
//查询当前电梯点
|
||||||
var curEle = await _db.Queryable<WmsElevatorH>().SingleAsync(it => it.id == curEleDs.First().bill_id && it.status == 1) ?? throw new AppFriendlyException("电梯被禁用或未配置", 500);
|
var curEleDs = await _db.Queryable<WmsElevatorD>().Where(it => points.Select(x => x.id).Contains(it.point_id)).ToListAsync();
|
||||||
//同电梯组电梯
|
//如果有电梯点,则会进行电梯的均匀分配
|
||||||
var sGpEle = await _db.Queryable<WmsElevatorH>().Where(it => it.elevator_group == curEle.elevator_group && it.id != curEle.id && it.status == 1).ToListAsync();
|
if (curEleDs?.Count > 0)
|
||||||
//判断电梯组中各电梯任务数
|
|
||||||
if (sGpEle.FindAll(x => Math.Abs(x.task_nums - curEle.task_nums) % 2 == 1)?.Count > 0)
|
|
||||||
{
|
{
|
||||||
var sGpDs = await _db.Queryable<WmsElevatorD>().Where(it => it.bill_id == sGpEle.First().id).ToListAsync();
|
//当前电梯
|
||||||
if (sGpDs?.Count > 0)
|
var curEle = await _db.Queryable<WmsElevatorH>().SingleAsync(it => it.id == curEleDs.First().bill_id && it.status == 1) ?? throw new AppFriendlyException("电梯被禁用或未配置", 500);
|
||||||
|
//同电梯组电梯
|
||||||
|
var sGpEle = await _db.Queryable<WmsElevatorH>().Where(it => it.elevator_group == curEle.elevator_group && it.id != curEle.id && it.status == 1).ToListAsync();
|
||||||
|
//判断电梯组中各电梯任务数
|
||||||
|
if (sGpEle.FindAll(x => Math.Abs(x.task_nums - curEle.task_nums) % 2 == 1)?.Count > 0)
|
||||||
{
|
{
|
||||||
var sGpPoints = await _db.Queryable<WmsPointH>().Where(it => sGpDs.Select(x => x.point_id).Contains(it.id)).ToListAsync();
|
var sGpDs = await _db.Queryable<WmsElevatorD>().Where(it => it.bill_id == sGpEle.First().id).ToListAsync();
|
||||||
var sFEndId = sGpDs.Single(x => x.floor == curEleDs.First().floor).point_id;
|
if (sGpDs?.Count > 0)
|
||||||
var eFStartId = sGpDs.Single(x => x.floor == curEleDs.Last().floor).point_id;
|
|
||||||
var sFPoints = await LocPathCalcAlgorithms(pStartId, sFEndId, roads);
|
|
||||||
List<WmsPointH> elePoints = new();
|
|
||||||
foreach (var pt in curEleDs)
|
|
||||||
{
|
{
|
||||||
var elePoint = sGpPoints.Find(x => x.floor == pt.floor);
|
var sGpPoints = await _db.Queryable<WmsPointH>().Where(it => sGpDs.Select(x => x.point_id).Contains(it.id)).ToListAsync();
|
||||||
if (elePoint != null)
|
var sFEndId = sGpDs.Single(x => x.floor == curEleDs.First().floor).point_id;
|
||||||
elePoints.Add(elePoint);
|
var eFStartId = sGpDs.Single(x => x.floor == curEleDs.Last().floor).point_id;
|
||||||
|
var sFPoints = await LocPathCalcAlgorithms(pStartId, sFEndId, roads);
|
||||||
|
List<WmsPointH> elePoints = new();
|
||||||
|
foreach (var pt in curEleDs)
|
||||||
|
{
|
||||||
|
var elePoint = sGpPoints.Find(x => x.floor == pt.floor);
|
||||||
|
if (elePoint != null)
|
||||||
|
elePoints.Add(elePoint);
|
||||||
|
}
|
||||||
|
var eFPoints = await LocPathCalcAlgorithms(eFStartId, pEndId, roads);
|
||||||
|
elePoints.Remove(elePoints.First());
|
||||||
|
elePoints.Remove(elePoints.Last());
|
||||||
|
points.Clear();
|
||||||
|
points.AddRange(sFPoints);
|
||||||
|
points.AddRange(elePoints);
|
||||||
|
points.AddRange(eFPoints);
|
||||||
}
|
}
|
||||||
var eFPoints = await LocPathCalcAlgorithms(eFStartId, pEndId, roads);
|
|
||||||
elePoints.Remove(elePoints.First());
|
|
||||||
elePoints.Remove(elePoints.Last());
|
|
||||||
points.Clear();
|
|
||||||
points.AddRange(sFPoints);
|
|
||||||
points.AddRange(elePoints);
|
|
||||||
points.AddRange(eFPoints);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
return points;
|
return points;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ using JNPF.Systems.Interfaces.System;
|
|||||||
using Mapster;
|
using Mapster;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
using Tnb.BasicData.Entities;
|
using Tnb.BasicData.Entities;
|
||||||
using Tnb.WarehouseMgr.Entities;
|
using Tnb.WarehouseMgr.Entities;
|
||||||
@@ -341,8 +342,6 @@ namespace Tnb.WarehouseMgr
|
|||||||
if (input.IsNull()) throw new ArgumentNullException(nameof(input));
|
if (input.IsNull()) throw new ArgumentNullException(nameof(input));
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
await _db.Ado.BeginTranAsync();
|
await _db.Ado.BeginTranAsync();
|
||||||
List<WmsKittingoutD> kittingOutDs = new();
|
List<WmsKittingoutD> kittingOutDs = new();
|
||||||
var kittingOuts = input.Adapt<List<WmsKittingoutH>>();
|
var kittingOuts = input.Adapt<List<WmsKittingoutH>>();
|
||||||
@@ -372,6 +371,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
kittingOutDs.AddRange(d);
|
kittingOutDs.AddRange(d);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await _db.Insertable(kittingOuts).ExecuteCommandAsync();
|
await _db.Insertable(kittingOuts).ExecuteCommandAsync();
|
||||||
await _db.Insertable(kittingOutDs).ExecuteCommandAsync();
|
await _db.Insertable(kittingOutDs).ExecuteCommandAsync();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user