diff --git a/BasicData/Tnb.BasicData.Entities/Enums/EnumLocationType.cs b/BasicData/Tnb.BasicData.Entities/Enums/EnumLocationType.cs
index 785a10fb..8e021211 100644
--- a/BasicData/Tnb.BasicData.Entities/Enums/EnumLocationType.cs
+++ b/BasicData/Tnb.BasicData.Entities/Enums/EnumLocationType.cs
@@ -9,12 +9,12 @@ namespace Tnb.BasicData.Entities.Enums
///
/// 库位类型
///
- public enum EnumLocationType
- {
- 存储库位 = 0,
- 入库库位,
- 出库库位,
- 出入库位,
- 分拣库位,
- }
+ //public enum EnumLocationType
+ //{
+ // 存储库位 = 0,
+ // 入库库位,
+ // 出库库位,
+ // 出入库位,
+ // 分拣库位,
+ //}
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Queries/OutStockStrategyQuery.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Queries/OutStockStrategyQuery.cs
index fdd959d3..de9911a5 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Queries/OutStockStrategyQuery.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Queries/OutStockStrategyQuery.cs
@@ -8,7 +8,10 @@ namespace Tnb.WarehouseMgr.Entities.Dto
{
public class OutStockStrategyQuery
{
-
+ ///
+ /// 仓库Id
+ ///
+ public string warehouse_id { get; set; }
///
/// 载具Id
///
@@ -27,5 +30,6 @@ namespace Tnb.WarehouseMgr.Entities.Dto
public int BllType { get; set; }
public int Size { get; set; }
+
}
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsCarryService.cs b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsCarryService.cs
index ae2deba4..b35a8c3a 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsCarryService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsCarryService.cs
@@ -13,6 +13,6 @@ namespace Tnb.WarehouseMgr.Interfaces
///
///
///
- Task> UpdateNullCarry(WmsCarryH carryObj, Func> updateTask = null, [CallerMemberName] string original = "");
+ Task> UpdateNullCarry(WmsCarryH carryObj, Func>? updateTask = null);
}
}
\ No newline at end of file
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs
index 3dfa04c8..657db482 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs
@@ -159,8 +159,14 @@ namespace Tnb.WarehouseMgr
var items = new List();
try
{
- items = await _db.Queryable().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();
-
+ var policy = await _db.Queryable().Where(it => it.status == 1).FirstAsync();
+ if (policy == null) throw new AppFriendlyException("没有可用的策略", 500);
+ var whereExp = Expressionable.Create()
+ .And(it => it.wh_id == input.warehouse_id)
+ .And(it => it.is_lock == 0)
+ .And(it => it.is_use == ((int)EnumCarryStatus.空闲).ToString())
+ .ToExpression();
+ items = await _db.Queryable().Where(whereExp).OrderBy(policy.policy).ToListAsync();
}
catch (Exception)
{
@@ -173,8 +179,26 @@ namespace Tnb.WarehouseMgr
///
///
[HttpGet]
- public async Task OutStockStrategy()
+ public async Task OutStockStrategy(OutStockStrategyQuery input)
{
+ var whereExpr = Expressionable.Create()
+ .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) => c.is_type == ((int)EnumLocationType.存储库位).ToString())
+ .And((a, b, c) => a.out_status == "0")
+ .And((a, b, c) => c.wh_id == input.warehouse_id)
+ .AndIF(!string.IsNullOrEmpty(input.material_id), (a, b, c) => b.material_id == input.material_id)
+ .AndIF(!string.IsNullOrEmpty(input.code_batch), (a, b, c) => b.code_batch == input.code_batch)
+ .ToExpression();
+ var policy = await _db.Queryable().Where(it => it.status == 1).FirstAsync();
+ if (policy == null) throw new AppFriendlyException("没有可用策略", 500);
+ var result = await _db.Queryable().InnerJoin((a, b) => a.id == b.carry_id)
+ .InnerJoin((a, b, c) => a.location_id == c.id)
+ .Where(whereExpr)
+ .OrderBy(policy.policy)
+ .Select()
+ .ToListAsync();
return await Task.FromResult(true);
}
///
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryService.cs
index 7e8ca3ba..108fca64 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryService.cs
@@ -156,7 +156,7 @@ namespace Tnb.WarehouseMgr
}
[NonAction]
- public async Task> UpdateNullCarry(WmsCarryH carryObj, Func> updateTask = null, [CallerMemberName] string original = "")
+ public async Task> UpdateNullCarry(WmsCarryH carryObj, Func>? updateTask = null)
{
var row = 1;
Task resTask = Task.FromResult(row);
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCheckTaskService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCheckTaskService.cs
index f7cd1c6a..e05bef60 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCheckTaskService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCheckTaskService.cs
@@ -56,6 +56,7 @@ namespace Tnb.WarehouseMgr
private async Task Create(VisualDevModelDataCrInput input)
{
+ var row = 1;
if (input == null) throw new ArgumentNullException(nameof(input));
try
{
@@ -90,7 +91,7 @@ namespace Tnb.WarehouseMgr
await _runService.Create(templateEntity, input);
List carryCodes = new();
List details = new();
- switch (checkType.ToEnum())
+ switch (checkType!.ToEnum())
{
case EnumCheckType.全库盘点:
carryCodes = await _db.Queryable().InnerJoin((a, b) => a.id == b.location_id)
@@ -213,10 +214,11 @@ namespace Tnb.WarehouseMgr
}
catch (Exception)
{
+ row = 0;
await _db.Ado.RollbackTranAsync();
throw;
}
- return Task.FromResult(1);
+ return Task.FromResult(row);
}
private Task> FetchDisTasks(Expression> joinExp, Expression> whereExp)