电梯下发逻辑变更
This commit is contained in:
@@ -1184,6 +1184,13 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
continue;
|
||||
}
|
||||
|
||||
WmsPretaskH wmsPretaskH = db_Floor2timer送空托到上升降区.Queryable<WmsPretaskH>().Where(r => r.endlocation_code == wmsMechanicalArmH.location_code
|
||||
&& r.status != WmsWareHouseConst.PRETASK_BILL_STATUS_COMPLE_ID && r.status != WmsWareHouseConst.PRETASK_BILL_STATUS_CANCEL_ID).First();
|
||||
if (wmsPretaskH != null)
|
||||
{
|
||||
LoggerFloor2RackDelivery.LogWarning($"【送空托到上升降区】料架区{wmsMechanicalArmH.location_code}存在未完成的预任务{wmsPretaskH.bill_code}!");
|
||||
continue;
|
||||
}
|
||||
// 空料架
|
||||
WmsCarryH targetCarry = wmsCarryHs[0];
|
||||
|
||||
@@ -1274,7 +1281,7 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
// 找到没有绑定料架的且库位未锁定的料架区
|
||||
ISugarQueryable<WmsMechanicalArmH> WmsMechanicalArmHsuagar = db_Floor2timer送满托到下升降区.Queryable<WmsMechanicalArmH>()
|
||||
.InnerJoin<BasLocation>((a, b) => a.location_id == b.id)
|
||||
.Where((a, b) => string.IsNullOrEmpty(a.rackcode) && b.is_lock == 0 && configs_upMachine.Contains(a.name));
|
||||
.Where((a, b) => string.IsNullOrEmpty(a.rackcode) && b.is_lock == 0 && b.is_use == "0" && configs_upMachine.Contains(a.name));
|
||||
|
||||
List<WmsMechanicalArmH> WmsMechanicalArmHs = WmsMechanicalArmHsuagar.ToList();
|
||||
|
||||
@@ -1284,7 +1291,7 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
await db_Floor2timer送满托到下升降区.Ado.BeginTranAsync();
|
||||
// 料架区
|
||||
foreach (WmsMechanicalArmH wmsMechanicalArmH in WmsMechanicalArmHs)
|
||||
@@ -1352,6 +1359,14 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
continue;
|
||||
}
|
||||
|
||||
WmsPretaskH wmsPretaskH = db_Floor2timer送满托到下升降区.Queryable<WmsPretaskH>().Where(r => r.endlocation_code == wmsMechanicalArmH.location_code
|
||||
&& r.status != WmsWareHouseConst.PRETASK_BILL_STATUS_COMPLE_ID && r.status != WmsWareHouseConst.PRETASK_BILL_STATUS_CANCEL_ID).First();
|
||||
if (wmsPretaskH != null)
|
||||
{
|
||||
LoggerFloor2RackDelivery.LogWarning($"【送满托到下升降区】料架区{wmsMechanicalArmH.location_code}存在未完成的预任务{wmsPretaskH.bill_code}!");
|
||||
continue;
|
||||
}
|
||||
|
||||
// 满料架
|
||||
WmsCarryH targetCarry = wmsCarryHs[0];
|
||||
|
||||
|
||||
@@ -42,7 +42,10 @@
|
||||
/// 组装线边库
|
||||
/// </summary>
|
||||
public const string WAREHOUSE_ZZXBK_ID = "26257716248101";
|
||||
|
||||
/// <summary>
|
||||
/// 一楼包材缓存库
|
||||
/// </summary>
|
||||
public const string WAREHOUSE_F1BCK_ID = "35418033338389";
|
||||
/// <summary>
|
||||
/// 四楼包材库
|
||||
/// </summary>
|
||||
|
||||
@@ -10,6 +10,6 @@ namespace Tnb.WarehouseMgr.Interfaces
|
||||
|
||||
public interface IWmsEmptycarryInstockLogService
|
||||
{
|
||||
Task<dynamic> Instock(WmsEmptycarryInstockServiceInstockInput input);
|
||||
Task<Tnb.WarehouseMgr.Entities.Dto.Outputs.Result> Instock(WmsEmptycarryInstockServiceInstockInput input);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -963,7 +963,7 @@ namespace Tnb.WarehouseMgr
|
||||
if (disTask.area_code == "E" && basLocations.Count() == 0)
|
||||
{
|
||||
await _db.Ado.BeginTranAsync();
|
||||
Logger.Information($"【二楼机械臂Floor2MechanicalComplete】收到到货完成信号 传入参数: {disTask.bill_code} {action}");
|
||||
Logger.Information($"【二楼机械臂Floor2MechanicalComplete】收到到货确认信号 传入参数: {disTask.bill_code} {action}");
|
||||
|
||||
if (action == "UNLOAD")
|
||||
{
|
||||
@@ -2668,9 +2668,93 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
|
||||
|
||||
List<WmsRoad> roads = await _db.Queryable<WmsRoad>().Where(it => it.status == 1).ToListAsync();
|
||||
List<WmsPointH> wmsPointHs = await _db.Queryable<WmsPointH>().Where(it => it.status == 1).ToListAsync();
|
||||
|
||||
List<WmsPointH> points = new List<WmsPointH>();
|
||||
|
||||
// 待验证 算法太慢 电梯不跑算法 电梯起终点仓库对应表
|
||||
BasLocation startlocation = await _db.Queryable<BasLocation>().InnerJoin<WmsPointH>((a, b) => a.id == b.location_id).Where((a, b) => b.id == pStartId).FirstAsync();
|
||||
BasLocation endlocation = await _db.Queryable<BasLocation>().InnerJoin<WmsPointH>((a, b) => a.id == b.location_id).Where((a, b) => b.id == pEndId).FirstAsync();
|
||||
|
||||
// 后续可整理成配置表
|
||||
// 3-1
|
||||
if (startlocation.wh_id == WmsWareHouseConst.WAREHOUSE_CP_ID && endlocation.wh_id == WmsWareHouseConst.WAREHOUSE_CPCRK_ID)
|
||||
{
|
||||
WmsElevatorH wmsElevatorH = await _db.Queryable<WmsElevatorH>().Where(it => it.elevator_group == "2" && it.enabled == 1).OrderBy(r => r.task_nums).FirstAsync();
|
||||
string elevatorSno = wmsElevatorH.elevator_code.Replace("Elevator", "");
|
||||
|
||||
points.Add(wmsPointHs.Where(r => r.id == pStartId).First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-C-03-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-3-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-1-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-R-01-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.id == pEndId).First());
|
||||
}
|
||||
//1-3
|
||||
else if (startlocation.wh_id == WmsWareHouseConst.WAREHOUSE_CPCRK_ID && endlocation.wh_id == WmsWareHouseConst.WAREHOUSE_CP_ID)
|
||||
{
|
||||
WmsElevatorH wmsElevatorH = await _db.Queryable<WmsElevatorH>().Where(it => it.elevator_group == "2" && it.enabled == 1).OrderBy(r => r.task_nums).FirstAsync();
|
||||
string elevatorSno = wmsElevatorH.elevator_code.Replace("Elevator", "");
|
||||
|
||||
points.Add(wmsPointHs.Where(r => r.id == pStartId).First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-C-01-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-1-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-3-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-R-03-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.id == pEndId).First());
|
||||
}
|
||||
// 2-4
|
||||
else if(startlocation.wh_id == WmsWareHouseConst.WAREHOUSE_ZZXBK_ID && endlocation.wh_id == WmsWareHouseConst.WAREHOUSE_DMJC_ID)
|
||||
{
|
||||
WmsElevatorH wmsElevatorH = await _db.Queryable<WmsElevatorH>().Where(it => it.elevator_group == "1" && it.enabled == 1).OrderBy(r => r.task_nums).FirstAsync();
|
||||
string elevatorSno = wmsElevatorH.elevator_code.Replace("Elevator", "");
|
||||
|
||||
points.Add(wmsPointHs.Where(r => r.id == pStartId).First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-C-02-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-2-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-4-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-R-04-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.id == pEndId).First());
|
||||
}
|
||||
// 1-4
|
||||
else if(startlocation.wh_id == WmsWareHouseConst.WAREHOUSE_F1BCK_ID && endlocation.wh_id == WmsWareHouseConst.WAREHOUSE_BCK_ID)
|
||||
{
|
||||
WmsElevatorH wmsElevatorH = await _db.Queryable<WmsElevatorH>().Where(it => it.elevator_group == "1" && it.enabled == 1).OrderBy(r => r.task_nums).FirstAsync();
|
||||
string elevatorSno = wmsElevatorH.elevator_code.Replace("Elevator", "");
|
||||
|
||||
points.Add(wmsPointHs.Where(r => r.id == pStartId).First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-C-01-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-1-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-4-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-R-04-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.id == pEndId).First());
|
||||
}
|
||||
// 4-2
|
||||
else if (startlocation.wh_id == WmsWareHouseConst.WAREHOUSE_BCK_ID && endlocation.wh_id == WmsWareHouseConst.WAREHOUSE_F2BCQ_ID)
|
||||
{
|
||||
WmsElevatorH wmsElevatorH = await _db.Queryable<WmsElevatorH>().Where(it => it.elevator_group == "1" && it.enabled == 1).OrderBy(r => r.task_nums).FirstAsync();
|
||||
string elevatorSno = wmsElevatorH.elevator_code.Replace("Elevator", "");
|
||||
|
||||
points.Add(wmsPointHs.Where(r => r.id == pStartId).First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-C-04-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-4-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-2-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-R-02-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.id == pEndId).First());
|
||||
}
|
||||
else
|
||||
{
|
||||
List<WmsRoad> roads = await _db.Queryable<WmsRoad>().Where(it => it.status == 1).ToListAsync();
|
||||
points = await LocPathCalcAlgorithms(pStartId, pEndId, roads);
|
||||
}
|
||||
|
||||
|
||||
Logger.Information($"起点{startlocation.location_code} 终点{endlocation.location_code} 获取到路径 {JsonConvert.SerializeObject(points)}");
|
||||
if (points.Count < 6)
|
||||
{
|
||||
throw new AppFriendlyException($"路径错误,需要检查路径配置{JsonConvert.SerializeObject(points)}", 500);
|
||||
}
|
||||
|
||||
// 待验证 电梯不跑算法
|
||||
//List<WmsRoad> wmsRoads = await _db.Queryable<WmsRoad>().Where(r => r.startpoint_id == pStartId).ToListAsync();
|
||||
//if (wmsRoads?.FindAll(x => x.endpoint_code != null && x.location_code.Contains("dt", StringComparison.OrdinalIgnoreCase))?.Count > 0)
|
||||
//{
|
||||
@@ -2681,71 +2765,71 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
|
||||
|
||||
List<WmsPointH> points = await LocPathCalcAlgorithms(pStartId, pEndId, roads);
|
||||
try
|
||||
{
|
||||
if (points?.FindAll(x => x.location_code != null && x.location_code.Contains("dt", StringComparison.OrdinalIgnoreCase))?.Count > 0)
|
||||
{
|
||||
//查询当前电梯点
|
||||
List<WmsElevatorD> curEleDs = await _db.Queryable<WmsElevatorD>().InnerJoin<WmsElevatorH>((a, b) => a.bill_id == b.id).Where((a, b) => points.Select(x => x.id).Contains(a.point_id)).ToListAsync();
|
||||
Logger.Information($"curEleDs==null :{curEleDs == null},curEleDs:{string.Join(",", curEleDs.Select(x => x.bill_id))}");
|
||||
//如果有电梯点,则会进行电梯的均匀分配
|
||||
if (curEleDs?.Count > 0)
|
||||
{
|
||||
//当前电梯
|
||||
WmsElevatorH curEle = await _db.Queryable<WmsElevatorH>().SingleAsync(it => it.id == curEleDs.First().bill_id);
|
||||
|
||||
//try
|
||||
//{
|
||||
// if (points?.FindAll(x => x.location_code != null && x.location_code.Contains("dt", StringComparison.OrdinalIgnoreCase))?.Count > 0)
|
||||
// {
|
||||
// //查询当前电梯点
|
||||
// List<WmsElevatorD> curEleDs = await _db.Queryable<WmsElevatorD>().InnerJoin<WmsElevatorH>((a, b) => a.bill_id == b.id).Where((a, b) => points.Select(x => x.id).Contains(a.point_id)).ToListAsync();
|
||||
// Logger.Information($"curEleDs==null :{curEleDs == null},curEleDs:{string.Join(",", curEleDs.Select(x => x.bill_id))}");
|
||||
// //如果有电梯点,则会进行电梯的均匀分配
|
||||
// if (curEleDs?.Count > 0)
|
||||
// {
|
||||
// //当前电梯
|
||||
// WmsElevatorH curEle = await _db.Queryable<WmsElevatorH>().SingleAsync(it => it.id == curEleDs.First().bill_id);
|
||||
|
||||
//同电梯组电梯
|
||||
List<WmsElevatorH> sGpEle = await _db.Queryable<WmsElevatorH>().Where(it => it.elevator_group == curEle.elevator_group && it.id != curEle.id && it.enabled == 1).ToListAsync();
|
||||
if (curEle.enabled == 0 && (sGpEle == null || sGpEle.Count < 1))
|
||||
{
|
||||
throw new AppFriendlyException("电梯被禁用或未配置", 500);
|
||||
}
|
||||
if ((sGpEle == null || sGpEle.Count < 1) && curEle.enabled == 1)
|
||||
{
|
||||
return points;
|
||||
}
|
||||
if (sGpEle?.Count > 0 && curEle.enabled == 0)
|
||||
{
|
||||
return points;
|
||||
}
|
||||
//判断电梯组中各电梯任务数
|
||||
if (sGpEle.FindAll(x => Math.Abs(x.task_nums - curEle.task_nums) % 2 == 1)?.Count > 0)
|
||||
{
|
||||
List<WmsElevatorD> sGpDs = await _db.Queryable<WmsElevatorD>().Where(it => it.bill_id == sGpEle.First().id).ToListAsync();
|
||||
if (sGpDs?.Count > 0)
|
||||
{
|
||||
List<WmsPointH> sGpPoints = await _db.Queryable<WmsPointH>().Where(it => sGpDs.Select(x => x.point_id).Contains(it.id)).ToListAsync();
|
||||
string sFEndId = sGpDs.Single(x => x.floor == curEleDs.First().floor).point_id;
|
||||
string eFStartId = sGpDs.Single(x => x.floor == curEleDs.Last().floor).point_id;
|
||||
List<WmsPointH> sFPoints = await LocPathCalcAlgorithms(pStartId, sFEndId, roads);
|
||||
List<WmsPointH> elePoints = new();
|
||||
foreach (WmsElevatorD pt in curEleDs)
|
||||
{
|
||||
WmsPointH? elePoint = sGpPoints.Find(x => x.floor == pt.floor);
|
||||
if (elePoint != null)
|
||||
{
|
||||
elePoints.Add(elePoint);
|
||||
}
|
||||
}
|
||||
List<WmsPointH> 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);
|
||||
}
|
||||
}
|
||||
// //同电梯组电梯
|
||||
// List<WmsElevatorH> sGpEle = await _db.Queryable<WmsElevatorH>().Where(it => it.elevator_group == curEle.elevator_group && it.id != curEle.id && it.enabled == 1).ToListAsync();
|
||||
// if (curEle.enabled == 0 && (sGpEle == null || sGpEle.Count < 1))
|
||||
// {
|
||||
// throw new AppFriendlyException("电梯被禁用或未配置", 500);
|
||||
// }
|
||||
// if ((sGpEle == null || sGpEle.Count < 1) && curEle.enabled == 1)
|
||||
// {
|
||||
// return points;
|
||||
// }
|
||||
// if (sGpEle?.Count > 0 && curEle.enabled == 0)
|
||||
// {
|
||||
// return points;
|
||||
// }
|
||||
// //判断电梯组中各电梯任务数
|
||||
// if (sGpEle.FindAll(x => Math.Abs(x.task_nums - curEle.task_nums) % 2 == 1)?.Count > 0)
|
||||
// {
|
||||
// List<WmsElevatorD> sGpDs = await _db.Queryable<WmsElevatorD>().Where(it => it.bill_id == sGpEle.First().id).ToListAsync();
|
||||
// if (sGpDs?.Count > 0)
|
||||
// {
|
||||
// List<WmsPointH> sGpPoints = await _db.Queryable<WmsPointH>().Where(it => sGpDs.Select(x => x.point_id).Contains(it.id)).ToListAsync();
|
||||
// string sFEndId = sGpDs.Single(x => x.floor == curEleDs.First().floor).point_id;
|
||||
// string eFStartId = sGpDs.Single(x => x.floor == curEleDs.Last().floor).point_id;
|
||||
// List<WmsPointH> sFPoints = await LocPathCalcAlgorithms(pStartId, sFEndId, roads);
|
||||
// List<WmsPointH> elePoints = new();
|
||||
// foreach (WmsElevatorD pt in curEleDs)
|
||||
// {
|
||||
// WmsPointH? elePoint = sGpPoints.Find(x => x.floor == pt.floor);
|
||||
// if (elePoint != null)
|
||||
// {
|
||||
// elePoints.Add(elePoint);
|
||||
// }
|
||||
// }
|
||||
// List<WmsPointH> 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 ex)
|
||||
{
|
||||
Logger.Error("路径算法异常", ex);
|
||||
throw;
|
||||
}
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
//catch (Exception ex)
|
||||
//{
|
||||
// Logger.Error("路径算法异常", ex);
|
||||
// throw;
|
||||
//}
|
||||
|
||||
return points;
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace Tnb.WarehouseMgr
|
||||
/// </param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<dynamic> Instock(WmsEmptycarryInstockServiceInstockInput input)
|
||||
public async Task<Tnb.WarehouseMgr.Entities.Dto.Outputs.Result> Instock(WmsEmptycarryInstockServiceInstockInput input)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -108,14 +108,14 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
await _db.Ado.CommitTranAsync();
|
||||
|
||||
return await Task.FromResult(true);
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.LogInformation("【WmsEmptycarryInstockService-Instock】" + ex.Message);
|
||||
Logger.LogInformation("【WmsEmptycarryInstockService-Instock】" + ex.StackTrace);
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
throw Oops.Bah(ex.Message);
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -298,7 +298,7 @@ namespace Tnb.WarehouseMgr
|
||||
/// <returns></returns>
|
||||
/// <exception cref="AppFriendlyException"></exception>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<dynamic> Distribute(MaterialTransferDistributeInput input)
|
||||
public async Task<Entities.Dto.Outputs.Result> Distribute(MaterialTransferDistributeInput input)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -421,7 +421,7 @@ namespace Tnb.WarehouseMgr
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
Logger.LogError("【Distribute】" + ex.Message);
|
||||
Logger.LogError("【Distribute】" + ex.StackTrace);
|
||||
throw Oops.Bah(ex.Message);
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -429,7 +429,7 @@ namespace Tnb.WarehouseMgr
|
||||
InvokeGenPretaskExcute();
|
||||
}
|
||||
|
||||
return await Task.FromResult(true);
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -439,7 +439,7 @@ namespace Tnb.WarehouseMgr
|
||||
/// <returns></returns>
|
||||
/// <exception cref="AppFriendlyException"></exception>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<dynamic> DistributeHCC(MaterialTransferDistributeInput input)
|
||||
public async Task<Entities.Dto.Outputs.Result> DistributeHCC(MaterialTransferDistributeInput input)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -571,7 +571,7 @@ namespace Tnb.WarehouseMgr
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
Logger.LogError("【Distribute】" + ex.Message);
|
||||
Logger.LogError("【Distribute】" + ex.StackTrace);
|
||||
throw Oops.Bah(ex.Message);
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -579,7 +579,7 @@ namespace Tnb.WarehouseMgr
|
||||
InvokeGenPretaskExcute();
|
||||
}
|
||||
|
||||
return await Task.FromResult(true);
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -645,7 +645,7 @@ namespace Tnb.WarehouseMgr
|
||||
/// <returns></returns>
|
||||
/// <exception cref="AppFriendlyException"></exception>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<dynamic> DistributeBCK(MaterialTransferDistributeInput input)
|
||||
public async Task<Entities.Dto.Outputs.Result> DistributeBCK(MaterialTransferDistributeInput input)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -759,7 +759,7 @@ namespace Tnb.WarehouseMgr
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
Logger.LogError("【Distribute】" + ex.Message);
|
||||
Logger.LogError("【Distribute】" + ex.StackTrace);
|
||||
throw Oops.Bah(ex.Message);
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -767,7 +767,7 @@ namespace Tnb.WarehouseMgr
|
||||
InvokeGenPretaskExcute();
|
||||
}
|
||||
|
||||
return await Task.FromResult(true);
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
|
||||
|
||||
@@ -910,7 +910,7 @@ namespace Tnb.WarehouseMgr
|
||||
/// <returns></returns>
|
||||
/// <exception cref="AppFriendlyException"></exception>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<dynamic> DistributeToZCC(MaterialTransferDistributeToZCCInput input)
|
||||
public async Task<Entities.Dto.Outputs.Result> DistributeToZCC(MaterialTransferDistributeToZCCInput input)
|
||||
{
|
||||
s_taskDistributeToZCC.Wait();
|
||||
|
||||
@@ -1036,14 +1036,14 @@ namespace Tnb.WarehouseMgr
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
Logger.LogError("【DistributeToZCC】" + ex.Message);
|
||||
Logger.LogError("【DistributeToZCC】" + ex.StackTrace);
|
||||
throw Oops.Bah(ex.Message);
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
s_taskDistributeToZCC.Release();
|
||||
InvokeGenPretaskExcute();
|
||||
}
|
||||
return await Task.FromResult(true);
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1053,7 +1053,7 @@ namespace Tnb.WarehouseMgr
|
||||
/// <returns></returns>
|
||||
/// <exception cref="AppFriendlyException"></exception>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<dynamic> CallRackToProductionLine(MaterialTransferCallRackToProductionLineInput input)
|
||||
public async Task<Entities.Dto.Outputs.Result> CallRackToProductionLine(MaterialTransferCallRackToProductionLineInput input)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -1155,10 +1155,10 @@ namespace Tnb.WarehouseMgr
|
||||
{
|
||||
Logger.LogError("【CallRackToProductionLine】" + ex.Message);
|
||||
Logger.LogError("【CallRackToProductionLine】" + ex.StackTrace);
|
||||
throw Oops.Bah(ex.Message);
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
|
||||
return await Task.FromResult(true);
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1168,7 +1168,7 @@ namespace Tnb.WarehouseMgr
|
||||
/// <returns></returns>
|
||||
/// <exception cref="AppFriendlyException"></exception>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<dynamic> RackAndMatByWorkstation(MaterialTransferGetRackAndMatByWorkStationInput input)
|
||||
public async Task<Entities.Dto.Outputs.Result> RackAndMatByWorkstation(MaterialTransferGetRackAndMatByWorkStationInput input)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -1222,13 +1222,13 @@ namespace Tnb.WarehouseMgr
|
||||
pairs["details"] = JArray.Parse(JsonConvert.SerializeObject(matCodes));
|
||||
jArray.Add(pairs);
|
||||
}
|
||||
return Task.FromResult(true);
|
||||
return await ToApiResult(HttpStatusCode.OK, jArray);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.LogError("【RackAndMatByWorkstation】" + ex.Message);
|
||||
Logger.LogError("【RackAndMatByWorkstation】" + ex.StackTrace);
|
||||
return Oops.Bah(ex.Message);
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1238,7 +1238,7 @@ namespace Tnb.WarehouseMgr
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<dynamic> RackInstock(MaterialTransferRackInstockInput input)
|
||||
public async Task<Entities.Dto.Outputs.Result> RackInstock(MaterialTransferRackInstockInput input)
|
||||
{
|
||||
WmsCarryH wmsCarryH = await _db.Queryable<WmsCarryH>().Where(r => r.carry_code == input.carry_code).FirstAsync();
|
||||
|
||||
@@ -1255,11 +1255,11 @@ namespace Tnb.WarehouseMgr
|
||||
else
|
||||
{
|
||||
Logger.LogError($"【RackInstock】当前载具的规格id是{wmsCarryH.carrystd_id} 无法处理此类型的载具!");
|
||||
return Oops.Bah($"【RackInstock】当前载具的规格id是{wmsCarryH.carrystd_id} 无法处理此类型的载具!");
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, $"【RackInstock】当前载具的规格id是{wmsCarryH.carrystd_id} 无法处理此类型的载具!");
|
||||
}
|
||||
}
|
||||
|
||||
async Task<dynamic> RackInstock_到暂存仓(MaterialTransferRackInstockInput input, WmsCarryH wmsCarryH)
|
||||
async Task<Entities.Dto.Outputs.Result> RackInstock_到暂存仓(MaterialTransferRackInstockInput input, WmsCarryH wmsCarryH)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -1362,12 +1362,12 @@ namespace Tnb.WarehouseMgr
|
||||
Logger.LogError("【RackInstock】" + ex.Message);
|
||||
Logger.LogError("【RackInstock】" + ex.StackTrace);
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
throw Oops.Bah(ex.Message);
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
return await Task.FromResult(true);
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
|
||||
async Task<dynamic> RackInstock_到缓存仓(MaterialTransferRackInstockInput input, WmsCarryH wmsCarryH)
|
||||
async Task<Entities.Dto.Outputs.Result> RackInstock_到缓存仓(MaterialTransferRackInstockInput input, WmsCarryH wmsCarryH)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -1421,9 +1421,9 @@ namespace Tnb.WarehouseMgr
|
||||
Logger.LogError("【RackInstock】" + ex.Message);
|
||||
Logger.LogError("【RackInstock】" + ex.StackTrace);
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
throw Oops.Bah(ex.Message);
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
return await Task.FromResult(true);
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace Tnb.WarehouseMgr
|
||||
private readonly IWmsCarryUnbindService _wmsCarryUnbindService;
|
||||
private readonly IWmsCarryService _wmsCarryService;
|
||||
|
||||
|
||||
|
||||
|
||||
public WmsPDACarryBindService(
|
||||
ISqlSugarRepository<WmsCarryH> repository,
|
||||
@@ -163,7 +163,7 @@ namespace Tnb.WarehouseMgr
|
||||
/// <returns></returns>
|
||||
/// <exception cref="AppFriendlyException"></exception>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<dynamic> OutsourcedPartsInstock(OutsourcedPartsInstockInput input)
|
||||
public async Task<Tnb.WarehouseMgr.Entities.Dto.Outputs.Result> OutsourcedPartsInstock(OutsourcedPartsInstockInput input)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -204,7 +204,7 @@ namespace Tnb.WarehouseMgr
|
||||
}
|
||||
WmsPointH sPoint = null!;
|
||||
WmsPointH ePoint = null!;
|
||||
|
||||
|
||||
sPoint = await _db.Queryable<WmsPointH>().FirstAsync(it => it.location_id == input.startlocation_id);
|
||||
if (endLocations?.Count > 0)
|
||||
{
|
||||
@@ -348,11 +348,11 @@ namespace Tnb.WarehouseMgr
|
||||
}
|
||||
|
||||
// 入库明细都完成 回写主表完成状态
|
||||
List<WmsTransferInstockD> wmsTransferInstockDs =_db.Queryable<WmsTransferInstockD>().InnerJoin<WmsTransferInstockD>((a, b) => a.bill_id == b.bill_id).Where((a, b) => a.id == input.source_id)
|
||||
List<WmsTransferInstockD> wmsTransferInstockDs = _db.Queryable<WmsTransferInstockD>().InnerJoin<WmsTransferInstockD>((a, b) => a.bill_id == b.bill_id).Where((a, b) => a.id == input.source_id)
|
||||
.Where((a, b) => b.status != WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID).ToList();
|
||||
if (wmsTransferInstockDs.Count == 0)
|
||||
{
|
||||
await _db.Updateable<WmsTransferInstockH>().SetColumns(r =>r.status == WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID).Where(r => r.id == wmsTransferInstockD.bill_id).ExecuteCommandAsync();
|
||||
await _db.Updateable<WmsTransferInstockH>().SetColumns(r => r.status == WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID).Where(r => r.id == wmsTransferInstockD.bill_id).ExecuteCommandAsync();
|
||||
}
|
||||
|
||||
await _db.Ado.CommitTranAsync();
|
||||
@@ -360,7 +360,7 @@ namespace Tnb.WarehouseMgr
|
||||
catch (Exception ex)
|
||||
{
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
throw Oops.Bah(ex.Message);
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -368,7 +368,7 @@ namespace Tnb.WarehouseMgr
|
||||
await InvokeGenPretaskExcute();
|
||||
}
|
||||
|
||||
return await Task.FromResult(true);
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -377,7 +377,7 @@ namespace Tnb.WarehouseMgr
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<dynamic> FinishproductOutstockSign(FinishproductOutstockSignInput input)
|
||||
public async Task<Tnb.WarehouseMgr.Entities.Dto.Outputs.Result> FinishproductOutstockSign(FinishproductOutstockSignInput input)
|
||||
{
|
||||
Logger.LogInformation($"【FinishproductOutstockSign】载具签收 {input.carry_code}");
|
||||
if (string.IsNullOrEmpty(input.carry_code))
|
||||
@@ -414,7 +414,7 @@ namespace Tnb.WarehouseMgr
|
||||
throw new AppFriendlyException($"库位id {wmsCarryH.location_id}没有对应的库位基础资料!", 500);
|
||||
}
|
||||
|
||||
WmsDistaskH wmsDistaskH = _db.Queryable<WmsDistaskH>().Where(r => r.carry_code == input.carry_code && r.endlocation_id == location.id
|
||||
WmsDistaskH wmsDistaskH = _db.Queryable<WmsDistaskH>().Where(r => r.carry_code == input.carry_code && r.endlocation_id == location.id
|
||||
&& r.status != WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID && r.status != WmsWareHouseConst.TASK_BILL_STATUS_CANCEL_ID).First();
|
||||
if (wmsDistaskH != null)
|
||||
{
|
||||
@@ -458,12 +458,12 @@ namespace Tnb.WarehouseMgr
|
||||
Logger.Error($"【FinishproductOutstockSign】 {ex.Message}");
|
||||
Logger.Error($"【FinishproductOutstockSign】 {ex.StackTrace}");
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
throw Oops.Bah(ex.Message);
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
|
||||
return await Task.FromResult(true);
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -118,7 +118,7 @@ namespace Tnb.WarehouseMgr
|
||||
/// <returns></returns>
|
||||
/// <exception cref="AppFriendlyException"></exception>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<dynamic> PackInstock(OutsourcedPartsInstockInput input)
|
||||
public async Task<Tnb.WarehouseMgr.Entities.Dto.Outputs.Result> PackInstock(OutsourcedPartsInstockInput input)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -180,10 +180,6 @@ namespace Tnb.WarehouseMgr
|
||||
}
|
||||
|
||||
ePoint = await _db.Queryable<WmsPointH>().FirstAsync(it => it.location_id == endLocations[0].id);
|
||||
if (ePoint == null)
|
||||
{
|
||||
throw new AppFriendlyException($"{endLocations[0].location_code}终点未配置点位", 500);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -318,7 +314,7 @@ namespace Tnb.WarehouseMgr
|
||||
Logger.LogError($"【PackInstock】 {ex.Message}");
|
||||
Logger.LogError($"【PackInstock】 {ex.StackTrace}");
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
throw Oops.Bah(ex.Message);
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -326,7 +322,7 @@ namespace Tnb.WarehouseMgr
|
||||
await InvokeGenPretaskExcute();
|
||||
}
|
||||
|
||||
return await Task.FromResult(true);
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ namespace Tnb.WarehouseMgr
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<dynamic> PrdReturn(PrdReturnInput input)
|
||||
public async Task<Result> PrdReturn(PrdReturnInput input)
|
||||
{
|
||||
WmsPrdReturnH wmsPrdReturnH = await _db.Queryable<WmsPrdReturnH>().Where(r => r.id == input.source_id).FirstAsync();
|
||||
if (wmsPrdReturnH == null)
|
||||
@@ -93,12 +93,12 @@ namespace Tnb.WarehouseMgr
|
||||
else
|
||||
{
|
||||
Logger.LogError($"【PrdReturn】当前载具的规格id是{wmsCarryH.carrystd_id} 无法处理此类型的载具!");
|
||||
return Oops.Bah($"【PrdReturn】当前载具的规格id是{wmsCarryH.carrystd_id} 无法处理此类型的载具!");
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, $"【PrdReturn】当前载具的规格id是{wmsCarryH.carrystd_id} 无法处理此类型的载具!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async Task<dynamic> Return_到暂存仓(PrdReturnInput input, WmsCarryH wmsCarryH, WmsPrdReturnH wmsPrdReturnH)
|
||||
async Task<Result> Return_到暂存仓(PrdReturnInput input, WmsCarryH wmsCarryH, WmsPrdReturnH wmsPrdReturnH)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -134,15 +134,15 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
BasLocation endlocation = rackEndLocations.First();
|
||||
|
||||
var memberCarryCodes = _db.Queryable<WmsCarryH>()
|
||||
.InnerJoin<WmsCarryCode>((a, b) => a.id == b.carry_id)
|
||||
.Where((a, b) => input.details.Select(r => r.carry_code).Contains(a.carry_code)).Select((a, b) => new
|
||||
{
|
||||
carry_code = a.carry_code,
|
||||
barcode = b.barcode,
|
||||
material_id = b.material_id,
|
||||
material_code = b.material_code,
|
||||
}).ToList();
|
||||
var memberCarryCodes = _db.Queryable<WmsCarryH>()
|
||||
.InnerJoin<WmsCarryCode>((a, b) => a.id == b.carry_id)
|
||||
.Where((a, b) => input.details.Select(r => r.carry_code).Contains(a.carry_code)).Select((a, b) => new
|
||||
{
|
||||
carry_code = a.carry_code,
|
||||
barcode = b.barcode,
|
||||
material_id = b.material_id,
|
||||
material_code = b.material_code,
|
||||
}).ToList();
|
||||
|
||||
List<string> matIds = memberCarryCodes.Select(r => r.material_id).Distinct().ToList();
|
||||
|
||||
@@ -177,7 +177,7 @@ namespace Tnb.WarehouseMgr
|
||||
await _db.Ado.BeginTranAsync();
|
||||
|
||||
// 标记为退料
|
||||
int row2= await _db.Updateable<WmsCarryH>().SetColumns(r => r.carry_status == ((int)(EnumCarryStatus.退料)).ToString()).Where(r => r.carry_code == wmsCarryH.carry_code).ExecuteCommandAsync();
|
||||
int row2 = await _db.Updateable<WmsCarryH>().SetColumns(r => r.carry_status == ((int)(EnumCarryStatus.退料)).ToString()).Where(r => r.carry_code == wmsCarryH.carry_code).ExecuteCommandAsync();
|
||||
if (row2 == 0)
|
||||
{
|
||||
throw new AppFriendlyException($"【PrdReturn】 料架 {wmsCarryH.carry_code} 退料状态回写失败", 500);
|
||||
@@ -228,12 +228,12 @@ namespace Tnb.WarehouseMgr
|
||||
Logger.LogError("【PrdReturn】" + ex.Message);
|
||||
Logger.LogError("【PrdReturn】" + ex.StackTrace);
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
throw Oops.Bah(ex.Message);
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
return await Task.FromResult(true);
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
|
||||
async Task<dynamic> Return_到缓存仓(PrdReturnInput input, WmsCarryH wmsCarryH, WmsPrdReturnH wmsPrdReturnH)
|
||||
async Task<Result> Return_到缓存仓(PrdReturnInput input, WmsCarryH wmsCarryH, WmsPrdReturnH wmsPrdReturnH)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -304,7 +304,7 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
await _db.Ado.BeginTranAsync();
|
||||
// 标记为退料
|
||||
int row2 =await _db.Updateable<WmsCarryH>().SetColumns(r => r.carry_status == ((int)(EnumCarryStatus.退料)).ToString()).Where(r => r.id == wmsCarryH.id).ExecuteCommandAsync();
|
||||
int row2 = await _db.Updateable<WmsCarryH>().SetColumns(r => r.carry_status == ((int)(EnumCarryStatus.退料)).ToString()).Where(r => r.id == wmsCarryH.id).ExecuteCommandAsync();
|
||||
if (row2 == 0)
|
||||
{
|
||||
throw new AppFriendlyException($"【PrdReturn】 料架 {wmsCarryH.carry_code} 退料状态回写失败", 500);
|
||||
@@ -335,9 +335,9 @@ namespace Tnb.WarehouseMgr
|
||||
Logger.LogError("【PrdReturn】" + ex.Message);
|
||||
Logger.LogError("【PrdReturn】" + ex.StackTrace);
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
throw Oops.Bah(ex.Message);
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
return await Task.FromResult(true);
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
|
||||
public override async Task ModifyAsync(WareHouseUpInput input)
|
||||
|
||||
@@ -145,7 +145,7 @@ namespace Tnb.WarehouseMgr
|
||||
/// <returns></returns>
|
||||
/// <exception cref="AppFriendlyException"></exception>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<dynamic> Distribute(SaleReleaseDistributeInput input)
|
||||
public async Task<Tnb.WarehouseMgr.Entities.Dto.Outputs.Result> Distribute(SaleReleaseDistributeInput input)
|
||||
{
|
||||
Logger.LogInformation($"【Distribute】 销售出库下发");
|
||||
try
|
||||
@@ -163,7 +163,7 @@ namespace Tnb.WarehouseMgr
|
||||
await s_taskExecuteSemaphore.WaitAsync();
|
||||
await _db.Ado.BeginTranAsync();
|
||||
//入库取终点 //出库起点
|
||||
OutStockStrategyQuery inStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, material_id = wmsOutstockD.material_id, qty = input.qty, code_batch = wmsOutstockD.code_batch };
|
||||
OutStockStrategyQuery inStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, material_id = wmsOutstockD.material_id, qty = input.qty, code_batch = wmsOutstockD.code_batch };
|
||||
List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>> items = await _wareHouseService.OutStockStrategy_saleRelease(inStockStrategyInput);
|
||||
|
||||
decimal canOutstockQty = items.Sum(r => r.Item3.codeqty).ParseToDecimal();
|
||||
@@ -359,7 +359,7 @@ namespace Tnb.WarehouseMgr
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
Logger.LogError($"【Distribute】 销售出库 {ex.Message}");
|
||||
Logger.LogError($"【Distribute】 销售出库 {ex.StackTrace}");
|
||||
throw Oops.Bah(ex.Message);
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -367,7 +367,7 @@ namespace Tnb.WarehouseMgr
|
||||
await InvokeGenPretaskExcute();
|
||||
}
|
||||
|
||||
return await Task.FromResult(true);
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -376,7 +376,7 @@ namespace Tnb.WarehouseMgr
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<dynamic> Sort(FinishproductOutstockSortInput input)
|
||||
public async Task<Tnb.WarehouseMgr.Entities.Dto.Outputs.Result> Sort(FinishproductOutstockSortInput input)
|
||||
{
|
||||
if (string.IsNullOrEmpty(input.source_id))
|
||||
{
|
||||
@@ -413,10 +413,14 @@ namespace Tnb.WarehouseMgr
|
||||
catch (Exception ex)
|
||||
{
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
throw Oops.Bah(ex.Message);
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
|
||||
return await Task.FromResult(true);
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user