Merge branch 'dev' of https://git.tuotong-tech.com/tnb/tnb.server into dev
This commit is contained in:
@@ -49,11 +49,6 @@ public partial class WmsCarryunbindCode : BaseEntity<string>
|
||||
/// </summary>
|
||||
public decimal? codeqty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 行号
|
||||
/// </summary>
|
||||
public int? no { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 子载具ID
|
||||
/// </summary>
|
||||
|
||||
@@ -273,7 +273,7 @@ namespace Tnb.WarehouseMgr
|
||||
//入库取终点 //出库起点
|
||||
var inStockStrategyInput = new InStockStrategyQuery { warehouse_id = instock?.warehouse_id!, Size = 1 };
|
||||
var endLocations = await _wareHouseService.InStockStrategy(inStockStrategyInput);
|
||||
WmsPointH sPoint = await _db.Queryable<WmsPointH>().FirstAsync(it => it.location_id == instock.location_id);
|
||||
WmsPointH sPoint = await _db.Queryable<WmsPointH>().FirstAsync(it => it.location_code == input.instock.location_code);
|
||||
WmsPointH ePoint = await _db.Queryable<WmsPointH>().FirstAsync(it => it.location_id == endLocations[0].id);
|
||||
|
||||
var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.carry_code == input.instock.carry_code);
|
||||
|
||||
@@ -50,13 +50,15 @@ namespace Tnb.WarehouseMgr
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task PackSortingByAdd(WmsCarryMat? carryMat)
|
||||
public async Task PackSortingByAdd(WmsCarryMat carryMat)
|
||||
{
|
||||
string firstLocationId = "27010980724501", secondLocationId = "27010987857941";
|
||||
var endLocation = await _db.Queryable<BasLocation>().SingleAsync(it => it.id == secondLocationId);
|
||||
|
||||
var setSortings = await _db.Queryable<WmsSetsortingH>()
|
||||
.Where(a => a.status == WmsWareHouseConst.BILLSTATUS_ADD_ID).OrderBy(a => a.seq)
|
||||
.Where(a => a.status == WmsWareHouseConst.BILLSTATUS_ADD_ID)
|
||||
.Select<WmsSetsortingH>()
|
||||
.OrderBy(a => a.seq)
|
||||
.ToListAsync();
|
||||
var items = await _db.Queryable<WmsSetsortingH>().Where(it => it.status == WmsWareHouseConst.BILLSTATUS_ON_ID).ToListAsync();
|
||||
var onFlag = items?.Count > 0;
|
||||
@@ -64,17 +66,12 @@ namespace Tnb.WarehouseMgr
|
||||
{
|
||||
await _db.Ado.BeginTranAsync();
|
||||
|
||||
var singleSorting = new WmsSetsortingH();
|
||||
if (setSortings?.Count > 0)
|
||||
{
|
||||
singleSorting = setSortings[0];
|
||||
var curCarry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == singleSorting.carry_id);
|
||||
var isMatch = await IsCarryAndLocationMatchByCarryStd(curCarry, endLocation);
|
||||
if (!isMatch) throw new AppFriendlyException("库位与载具规格不匹配", 500);
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (setSortings?.Count > 0 && !onFlag)
|
||||
{
|
||||
var singleSorting = setSortings[0];
|
||||
|
||||
var setSortingDList = await _db.Queryable<WmsSetsortingD>().Where(it => it.bill_id == singleSorting.id).ToListAsync();
|
||||
if (setSortingDList?.Count > 0)
|
||||
@@ -83,18 +80,20 @@ namespace Tnb.WarehouseMgr
|
||||
List<WmsCarryCode> carryCodes = new();
|
||||
List<string> carryIds = new();
|
||||
|
||||
var whereExpr = Expressionable.Create<WmsCarryH, WmsCarryCode, BasLocation>()
|
||||
.And((a, b, c) => a.is_lock == 0)
|
||||
.And((a, b, c) => !string.IsNullOrEmpty(a.location_id))
|
||||
.And((a, b, c) => a.status == (int)EnumCarryStatus.占用);
|
||||
;
|
||||
foreach (var os in setSortingDList)
|
||||
{
|
||||
whereExpr.And((a, b, c) => b.material_id == os.material_id)
|
||||
.And((a, b, c) => c.wh_id == os.warehouse_id)
|
||||
.AndIF(!string.IsNullOrEmpty(os.code_batch), (a, b, c) => b.code_batch == os.code_batch);
|
||||
|
||||
var whereExpr = Expressionable.Create<WmsCarryH, WmsCarryCode, BasLocation>()
|
||||
.And((a, b, c) => a.is_lock == 0)
|
||||
.And((a, b, c) => !string.IsNullOrEmpty(a.location_id))
|
||||
.And((a, b, c) => a.status == (int)EnumCarryStatus.占用)
|
||||
.And((a, b, c) => b.material_id == os.material_id)
|
||||
.And((a, b, c) => c.wh_id == os.warehouse_id)
|
||||
.AndIF(!string.IsNullOrEmpty(os.code_batch), (a, b, c) => b.code_batch == os.code_batch)
|
||||
.ToExpression();
|
||||
;
|
||||
var carryCodesPart = await _db.Queryable<WmsCarryH>().InnerJoin<WmsCarryCode>((a, b) => a.id == b.carry_id).InnerJoin<BasLocation>((a, b, c) => a.location_id == c.id)
|
||||
.Where(whereExpr.ToExpression())
|
||||
.Where(whereExpr)
|
||||
.Select<WmsCarryCode>()
|
||||
.ToListAsync();
|
||||
if (carryCodesPart?.Count > 0)
|
||||
@@ -152,6 +151,13 @@ namespace Tnb.WarehouseMgr
|
||||
var carrys = await _db.Queryable<WmsCarryH>().Where(it => carryIds.Contains(it.id)).ToArrayAsync();
|
||||
if (carrys?.Length > 0)
|
||||
{
|
||||
if (setSortings?.Count > 0)
|
||||
{
|
||||
|
||||
var curCarry = carrys[^carrys.Length];
|
||||
var isMatch = await IsCarryAndLocationMatchByCarryStd(curCarry, endLocation);
|
||||
if (!isMatch) throw new AppFriendlyException("库位与载具规格不匹配", 500);
|
||||
}
|
||||
List<WmsPretaskH> preTasks = new();
|
||||
List<string> locIds = new();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user