采购/委外调整
This commit is contained in:
@@ -3091,8 +3091,7 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
|||||||
MaterialTransferDDistributeToZCCInput input = new MaterialTransferDDistributeToZCCInput();
|
MaterialTransferDDistributeToZCCInput input = new MaterialTransferDDistributeToZCCInput();
|
||||||
input.source_id = _wmsMaterialTransferD.id;
|
input.source_id = _wmsMaterialTransferD.id;
|
||||||
input.xf_qty = can_qty;
|
input.xf_qty = can_qty;
|
||||||
input.dbConn = db_WmsMaterialkit;
|
WarehouseMgr.Entities.Dto.Outputs.Result result = await _wmsMaterialTransferService.DistributeDetailToZCC(input, db_WmsMaterialkit);
|
||||||
WarehouseMgr.Entities.Dto.Outputs.Result result = await _wmsMaterialTransferService.DistributeDetailToZCC(input);
|
|
||||||
if (result.code.ToString() != "OK")
|
if (result.code.ToString() != "OK")
|
||||||
{
|
{
|
||||||
LoggerWmsMaterialkit.LogWarning($"转库单{wmsMaterialTransfer.bill_code} 明细id{_wmsMaterialTransferD.id} 物料{_wmsMaterialTransferD.material_code} 批次{_wmsMaterialTransferD.code_batch} 中储仓出库时数量不匹配!");
|
LoggerWmsMaterialkit.LogWarning($"转库单{wmsMaterialTransfer.bill_code} 明细id{_wmsMaterialTransferD.id} 物料{_wmsMaterialTransferD.material_code} 批次{_wmsMaterialTransferD.code_batch} 中储仓出库时数量不匹配!");
|
||||||
|
|||||||
@@ -293,7 +293,7 @@ public class ModuleConsts
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 模块标识-委外收货
|
/// 模块标识-委外收货
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string MODULE_WMSOUTSOURCE_ID = "36207808903445";
|
public const string MODULE_WMSOUTSOURCE_ID = "37513122815509";
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 模块标识-委外收货子表
|
/// 模块标识-委外收货子表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -26,6 +26,6 @@ namespace Tnb.WarehouseMgr.Entities.Dto
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public decimal? xf_qty { get; set; }
|
public decimal? xf_qty { get; set; }
|
||||||
|
|
||||||
public ISqlSugarClient dbConn { get; set; } = null;
|
//public ISqlSugarClient dbConn { get; set; } = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,6 +38,6 @@ namespace Tnb.WarehouseMgr.Entities.Dto
|
|||||||
public string PolicyCode { get; set; }
|
public string PolicyCode { get; set; }
|
||||||
|
|
||||||
// 策略编号
|
// 策略编号
|
||||||
public ISqlSugarClient dbConn { get; set; } = null;
|
//public ISqlSugarClient dbConn { get; set; } = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,6 +60,6 @@ namespace Tnb.WarehouseMgr.Entities.Dto
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public List<string> qcres_list { get; set; }
|
public List<string> qcres_list { get; set; }
|
||||||
|
|
||||||
public ISqlSugarClient dbConn { get; set; } = null;
|
//public ISqlSugarClient dbConn { get; set; } = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,6 +56,6 @@ namespace Tnb.WarehouseMgr.Entities.Dto
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string[] endlocations { get; set; }
|
public string[] endlocations { get; set; }
|
||||||
|
|
||||||
public ISqlSugarClient dbConn { get; set; } = null;
|
//public ISqlSugarClient dbConn { get; set; } = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,25 +64,25 @@ namespace Tnb.WarehouseMgr.Interfaces
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<List<BasLocation>> InStockStrategy([FromQuery] InStockStrategyQuery input);
|
Task<List<BasLocation>> InStockStrategy([FromQuery] InStockStrategyQuery input, ISqlSugarClient dbConn = null);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 入库策略(包材库)
|
/// 入库策略(包材库)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<List<BasLocation>> InStockStrategyBCK([FromQuery] InStockStrategyQuery input);
|
Task<List<BasLocation>> InStockStrategyBCK([FromQuery] InStockStrategyQuery input, ISqlSugarClient dbConn = null);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 包材库2楼入库策略
|
/// 包材库2楼入库策略
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<List<BasLocation>> BCKF2InStockStrategy([FromQuery] InStockStrategyQuery input);
|
Task<List<BasLocation>> BCKF2InStockStrategy([FromQuery] InStockStrategyQuery input, ISqlSugarClient dbConn = null);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 出库策略
|
/// 出库策略
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<List<WmsCarryH>> OutStockStrategy([FromQuery] OutStockStrategyQuery input);
|
Task<List<WmsCarryH>> OutStockStrategy([FromQuery] OutStockStrategyQuery input, ISqlSugarClient dbConn = null);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 缓存仓出库策略
|
/// 缓存仓出库策略
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -96,14 +96,14 @@ namespace Tnb.WarehouseMgr.Interfaces
|
|||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <exception cref="AppFriendlyException"></exception>
|
/// <exception cref="AppFriendlyException"></exception>
|
||||||
Task<List<Tuple<WmsCarryH, decimal, BasLocation>>> OutStockStrategyZCC2Floor2([FromQuery] OutStockStrategyZCC2Floor2Query input);
|
Task<List<Tuple<WmsCarryH, decimal, BasLocation>>> OutStockStrategyZCC2Floor2([FromQuery] OutStockStrategyZCC2Floor2Query input, ISqlSugarClient dbConn = null);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 出库策略-销售出库下发
|
/// 出库策略-销售出库下发
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>>> OutStockStrategy_saleRelease([FromQuery] OutStockStrategyQuery input);
|
Task<List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>>> OutStockStrategy_saleRelease([FromQuery] OutStockStrategyQuery input, ISqlSugarClient dbConn = null);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 路径算法
|
/// 路径算法
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ using System.Text;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using SqlSugar;
|
||||||
using Tnb.WarehouseMgr.Entities.Dto;
|
using Tnb.WarehouseMgr.Entities.Dto;
|
||||||
|
|
||||||
namespace Tnb.WarehouseMgr.Interfaces
|
namespace Tnb.WarehouseMgr.Interfaces
|
||||||
@@ -18,6 +19,6 @@ namespace Tnb.WarehouseMgr.Interfaces
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <exception cref="AppFriendlyException"></exception>
|
/// <exception cref="AppFriendlyException"></exception>
|
||||||
[HttpPost, NonUnify, AllowAnonymous]
|
[HttpPost, NonUnify, AllowAnonymous]
|
||||||
Task<Entities.Dto.Outputs.Result> DistributeDetailToZCC(MaterialTransferDDistributeToZCCInput input);
|
Task<Entities.Dto.Outputs.Result> DistributeDetailToZCC(MaterialTransferDDistributeToZCCInput input, ISqlSugarClient dbConn = null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -285,13 +285,13 @@ namespace Tnb.WarehouseMgr
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<List<BasLocation>> InStockStrategy([FromQuery] InStockStrategyQuery input)
|
public async Task<List<BasLocation>> InStockStrategy([FromQuery] InStockStrategyQuery input, ISqlSugarClient dbConn = null)
|
||||||
{
|
{
|
||||||
List<BasLocation> items = new();
|
List<BasLocation> items = new();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var db = input.dbConn;
|
var db = dbConn;
|
||||||
if (input.dbConn == null)
|
if (dbConn == null)
|
||||||
{
|
{
|
||||||
db = _db.CopyNew();
|
db = _db.CopyNew();
|
||||||
}
|
}
|
||||||
@@ -340,13 +340,13 @@ namespace Tnb.WarehouseMgr
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<List<BasLocation>> InStockStrategyBCK([FromQuery] InStockStrategyQuery input)
|
public async Task<List<BasLocation>> InStockStrategyBCK([FromQuery] InStockStrategyQuery input, ISqlSugarClient dbConn = null)
|
||||||
{
|
{
|
||||||
List<BasLocation> items = new();
|
List<BasLocation> items = new();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var db = input.dbConn;
|
var db = dbConn;
|
||||||
if (input.dbConn == null)
|
if (dbConn == null)
|
||||||
{
|
{
|
||||||
db = _db.CopyNew();
|
db = _db.CopyNew();
|
||||||
}
|
}
|
||||||
@@ -376,13 +376,13 @@ namespace Tnb.WarehouseMgr
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<List<BasLocation>> BCKF2InStockStrategy([FromQuery] InStockStrategyQuery input)
|
public async Task<List<BasLocation>> BCKF2InStockStrategy([FromQuery] InStockStrategyQuery input, ISqlSugarClient dbConn = null)
|
||||||
{
|
{
|
||||||
List<BasLocation> items = new();
|
List<BasLocation> items = new();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var db = input.dbConn;
|
var db = dbConn;
|
||||||
if (input.dbConn == null)
|
if (dbConn == null)
|
||||||
{
|
{
|
||||||
db = _db.CopyNew();
|
db = _db.CopyNew();
|
||||||
}
|
}
|
||||||
@@ -482,7 +482,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>>> OutStockStrategy_saleRelease([FromQuery] OutStockStrategyQuery input)
|
public async Task<List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>>> OutStockStrategy_saleRelease([FromQuery] OutStockStrategyQuery input, ISqlSugarClient dbConn = null)
|
||||||
{
|
{
|
||||||
Expressionable<WmsCarryH, WmsCarryCode, BasLocation> whereExprable = Expressionable.Create<WmsCarryH, WmsCarryCode, BasLocation>()
|
Expressionable<WmsCarryH, WmsCarryCode, BasLocation> whereExprable = Expressionable.Create<WmsCarryH, WmsCarryCode, BasLocation>()
|
||||||
.And((a, b, c) => a.is_lock == 0 && c.is_lock == 0)
|
.And((a, b, c) => a.is_lock == 0 && c.is_lock == 0)
|
||||||
@@ -502,8 +502,8 @@ namespace Tnb.WarehouseMgr
|
|||||||
_ = whereExprable.And(carryStatusFilterExp);
|
_ = whereExprable.And(carryStatusFilterExp);
|
||||||
Expression<Func<WmsCarryH, WmsCarryCode, BasLocation, bool>> whereExpr = whereExprable.ToExpression();
|
Expression<Func<WmsCarryH, WmsCarryCode, BasLocation, bool>> whereExpr = whereExprable.ToExpression();
|
||||||
|
|
||||||
var cyDb = input.dbConn;
|
var cyDb = dbConn;
|
||||||
if (input.dbConn == null)
|
if (dbConn == null)
|
||||||
{
|
{
|
||||||
cyDb = _db.CopyNew();
|
cyDb = _db.CopyNew();
|
||||||
}
|
}
|
||||||
@@ -545,10 +545,10 @@ namespace Tnb.WarehouseMgr
|
|||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<WmsCarryH>> OutStockStrategy([FromQuery] OutStockStrategyQuery input)
|
public async Task<List<WmsCarryH>> OutStockStrategy([FromQuery] OutStockStrategyQuery input, ISqlSugarClient dbConn = null)
|
||||||
{
|
{
|
||||||
var cyDb = input.dbConn;
|
var cyDb = dbConn;
|
||||||
if (input.dbConn == null)
|
if (dbConn == null)
|
||||||
{
|
{
|
||||||
cyDb = _db.CopyNew();
|
cyDb = _db.CopyNew();
|
||||||
}
|
}
|
||||||
@@ -662,10 +662,10 @@ namespace Tnb.WarehouseMgr
|
|||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <exception cref="AppFriendlyException"></exception>
|
/// <exception cref="AppFriendlyException"></exception>
|
||||||
public async Task<List<Tuple<WmsCarryH, decimal, BasLocation>>> OutStockStrategyZCC2Floor2([FromQuery] OutStockStrategyZCC2Floor2Query input)
|
public async Task<List<Tuple<WmsCarryH, decimal, BasLocation>>> OutStockStrategyZCC2Floor2([FromQuery] OutStockStrategyZCC2Floor2Query input, ISqlSugarClient dbConn = null)
|
||||||
{
|
{
|
||||||
var cyDb = input.dbConn;
|
var cyDb = dbConn;
|
||||||
if (input.dbConn == null)
|
if (dbConn == null)
|
||||||
{
|
{
|
||||||
cyDb = _db.CopyNew();
|
cyDb = _db.CopyNew();
|
||||||
}
|
}
|
||||||
@@ -3689,7 +3689,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-C-04-0{elevatorSno}").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-4-{elevatorSno}").First());
|
||||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-3-{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.point_code == $"DT-03-0{elevatorSno}").First());
|
||||||
points.Add(wmsPointHs.Where(r => r.id == pEndId).First());
|
points.Add(wmsPointHs.Where(r => r.id == pEndId).First());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -485,7 +485,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
/// <param name="wmsMaterialTransfer"></param>
|
/// <param name="wmsMaterialTransfer"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<Entities.Dto.Outputs.Result> DistributeJZCToCPC(DistributeF4JXCInput input)
|
public async Task<dynamic> DistributeJZCToCPC(DistributeF4JXCInput input)
|
||||||
{
|
{
|
||||||
SemaphoreSlim semaphoreSlim_MJC = null;
|
SemaphoreSlim semaphoreSlim_MJC = null;
|
||||||
SemaphoreSlim semaphoreSlim_CPK = null;
|
SemaphoreSlim semaphoreSlim_CPK = null;
|
||||||
@@ -512,6 +512,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
|
|
||||||
await _db.Ado.BeginTranAsync();
|
await _db.Ado.BeginTranAsync();
|
||||||
|
|
||||||
|
int xfCarrysCount = 0;
|
||||||
foreach (WmsMaterialTransferD wmsMaterialTransferD in wmsMaterialTransferDs)
|
foreach (WmsMaterialTransferD wmsMaterialTransferD in wmsMaterialTransferDs)
|
||||||
{
|
{
|
||||||
// 转库单载具子表
|
// 转库单载具子表
|
||||||
@@ -526,10 +527,9 @@ namespace Tnb.WarehouseMgr
|
|||||||
warehouse_id = WmsWareHouseConst.WAREHOUSE_MJC_ID,
|
warehouse_id = WmsWareHouseConst.WAREHOUSE_MJC_ID,
|
||||||
material_id = wmsMaterialTransferD.material_id,
|
material_id = wmsMaterialTransferD.material_id,
|
||||||
code_batch = wmsMaterialTransferD.code_batch,
|
code_batch = wmsMaterialTransferD.code_batch,
|
||||||
qty = needOut,
|
qty = needOut
|
||||||
dbConn = _db
|
|
||||||
};
|
};
|
||||||
List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>> carryitems = await _wareHouseService.OutStockStrategy_saleRelease(outStockStrategyInput);
|
List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>> carryitems = await _wareHouseService.OutStockStrategy_saleRelease(outStockStrategyInput, _db);
|
||||||
List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>> items_pretask = carryitems.Where(r => r.Item1 == "预任务").ToList();
|
List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>> items_pretask = carryitems.Where(r => r.Item1 == "预任务").ToList();
|
||||||
|
|
||||||
decimal canOutstockQty = items_pretask.Sum(r => r.Item3.codeqty).ParseToDecimal();
|
decimal canOutstockQty = items_pretask.Sum(r => r.Item3.codeqty).ParseToDecimal();
|
||||||
@@ -554,21 +554,18 @@ namespace Tnb.WarehouseMgr
|
|||||||
&& r.status == WmsWareHouseConst.BILLSTATUS_ADD_ID && r.origin == "外协调拨入库").FirstAsync();
|
&& r.status == WmsWareHouseConst.BILLSTATUS_ADD_ID && r.origin == "外协调拨入库").FirstAsync();
|
||||||
if (wmsSterilizationInstockH == null)
|
if (wmsSterilizationInstockH == null)
|
||||||
{
|
{
|
||||||
Logger.LogWarning($"【四楼静置仓到成品库】载具{wmsCarryH.carry_code}没有找到新增状态且来源是外协调拨入库的灭菌入库记录!");
|
throw new Exception($"【四楼静置仓到成品库】载具{wmsCarryH.carry_code}没有找到新增状态且来源是外协调拨入库的灭菌入库记录!");
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
if (wmsCarryH.location_id != wmsSterilizationInstockH.location_id)
|
if (wmsCarryH.location_id != wmsSterilizationInstockH.location_id)
|
||||||
{
|
{
|
||||||
Logger.LogWarning($"【四楼静置仓到成品库】载具{wmsCarryH.carry_code}实际位置与灭菌入库记录位置不一致");
|
throw new Exception($"【四楼静置仓到成品库】载具{wmsCarryH.carry_code}实际位置与灭菌入库记录位置不一致");
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BasLocation startlocation = await _db.Queryable<BasLocation>().Where(r => r.id == wmsCarryH.location_id).FirstAsync();
|
BasLocation startlocation = await _db.Queryable<BasLocation>().Where(r => r.id == wmsCarryH.location_id).FirstAsync();
|
||||||
|
|
||||||
if (startlocation.is_lock == 1)
|
if (startlocation.is_lock == 1)
|
||||||
{
|
{
|
||||||
Logger.LogWarning($"【四楼静置仓到成品库】 起点库位{startlocation.location_code}已锁定");
|
throw new Exception($"【四楼静置仓到成品库】 起点库位{startlocation.location_code}已锁定");
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wmsSterilizationInstockH.status = WmsWareHouseConst.BILLSTATUS_ON_ID;
|
wmsSterilizationInstockH.status = WmsWareHouseConst.BILLSTATUS_ON_ID;
|
||||||
@@ -633,13 +630,16 @@ namespace Tnb.WarehouseMgr
|
|||||||
await _db.Insertable(wmsMaterialTransferCarrys).ExecuteCommandAsync();
|
await _db.Insertable(wmsMaterialTransferCarrys).ExecuteCommandAsync();
|
||||||
Logger.LogInformation($"【DistributeF4JXC】插入转库单{wmsMaterialTransfer.bill_code}载具表的数据");
|
Logger.LogInformation($"【DistributeF4JXC】插入转库单{wmsMaterialTransfer.bill_code}载具表的数据");
|
||||||
|
|
||||||
|
xfCarrysCount += wmsMaterialTransferCarrys.Count;
|
||||||
Logger.LogInformation($"转库单{wmsMaterialTransfer.bill_code} 行号 {wmsMaterialTransferD.lineno}预任务{wmsMaterialTransferCarrys.Count}条全部生成成功");
|
Logger.LogInformation($"转库单{wmsMaterialTransfer.bill_code} 行号 {wmsMaterialTransferD.lineno}预任务{wmsMaterialTransferCarrys.Count}条全部生成成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (xfCarrysCount == 0)
|
||||||
|
{
|
||||||
|
throw new AppFriendlyException($"可下发数量为0", 500);
|
||||||
|
}
|
||||||
|
|
||||||
await _db.Ado.CommitTranAsync();
|
await _db.Ado.CommitTranAsync();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
catch(Exception ex)
|
catch(Exception ex)
|
||||||
{
|
{
|
||||||
@@ -1590,10 +1590,9 @@ namespace Tnb.WarehouseMgr
|
|||||||
needOut = needOut,
|
needOut = needOut,
|
||||||
material_code = wmsMaterialTransferD.material_code,
|
material_code = wmsMaterialTransferD.material_code,
|
||||||
endlocations = new string[2] { WmsWareHouseConst.ZZCSSX121009, WmsWareHouseConst.ZZCSSX121010 },
|
endlocations = new string[2] { WmsWareHouseConst.ZZCSSX121009, WmsWareHouseConst.ZZCSSX121010 },
|
||||||
dbConn = _db
|
|
||||||
};
|
};
|
||||||
|
|
||||||
List<Tuple<WmsCarryH, decimal, BasLocation>>? carrys = await _wareHouseService.OutStockStrategyZCC2Floor2(OutStockStrategyInput);
|
List<Tuple<WmsCarryH, decimal, BasLocation>>? carrys = await _wareHouseService.OutStockStrategyZCC2Floor2(OutStockStrategyInput, _db);
|
||||||
|
|
||||||
foreach (var item in carrys)
|
foreach (var item in carrys)
|
||||||
{
|
{
|
||||||
@@ -1682,11 +1681,11 @@ namespace Tnb.WarehouseMgr
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <exception cref="AppFriendlyException"></exception>
|
/// <exception cref="AppFriendlyException"></exception>
|
||||||
[HttpPost, NonUnify, AllowAnonymous]
|
[HttpPost, NonUnify, AllowAnonymous]
|
||||||
public async Task<Entities.Dto.Outputs.Result> DistributeDetailToZCC(MaterialTransferDDistributeToZCCInput input)
|
public async Task<Entities.Dto.Outputs.Result> DistributeDetailToZCC(MaterialTransferDDistributeToZCCInput input, ISqlSugarClient dbConn = null)
|
||||||
{
|
{
|
||||||
await _s_taskExecuteSemaphore_F1ZCCOutstock.WaitAsync();
|
await _s_taskExecuteSemaphore_F1ZCCOutstock.WaitAsync();
|
||||||
var db = input.dbConn;
|
var db = dbConn;
|
||||||
if (input.dbConn == null)
|
if (dbConn == null)
|
||||||
db = _db;
|
db = _db;
|
||||||
|
|
||||||
Logger.LogInformation($"中储仓下发到二楼暂存仓");
|
Logger.LogInformation($"中储仓下发到二楼暂存仓");
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
|
|
||||||
if (qcRes != (wmsOutsourceD.qc_res ?? ""))
|
if (qcRes != (wmsOutsourceD.qc_res ?? ""))
|
||||||
{
|
{
|
||||||
BasMaterial basMaterial = await _db.Queryable<BasMaterial>().Where(r => r.id == wmsOutsourceD.matcode_id).FirstAsync();
|
BasMaterial basMaterial = await _db.Queryable<BasMaterial>().Where(r => r.code == wmsOutsourceD.matcode).FirstAsync();
|
||||||
WmsPurchaseQcrecord wmsPurchaseQcrecord = new WmsPurchaseQcrecord();
|
WmsPurchaseQcrecord wmsPurchaseQcrecord = new WmsPurchaseQcrecord();
|
||||||
wmsPurchaseQcrecord.create_id = create_id;
|
wmsPurchaseQcrecord.create_id = create_id;
|
||||||
wmsPurchaseQcrecord.create_time = DateTime.Now;
|
wmsPurchaseQcrecord.create_time = DateTime.Now;
|
||||||
@@ -122,7 +122,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
// 托盘对应入库单
|
// 托盘对应入库单
|
||||||
List<WmsInstockH> instock_mains = await _db.Queryable<WmsInstockH>().Where(x => x.source_id == wmsOutsourceD.fk_wms_outsource_order_id).ToListAsync();
|
List<WmsInstockH> instock_mains = await _db.Queryable<WmsInstockH>().Where(x => x.source_id == wmsOutsourceD.fk_wms_outsource_order_id).ToListAsync();
|
||||||
|
|
||||||
List<WmsInstockD> allInstockDetails = await _db.Queryable<WmsInstockD>().Where(it => instock_mains.Select(r => r.id).Contains(it.bill_id) && it.material_id == wmsOutsourceD.matcode_id && it.code_batch == wmsOutsourceD.code_batch).OrderBy(x=>x.id).ToListAsync();
|
List<WmsInstockD> allInstockDetails = await _db.Queryable<WmsInstockD>().Where(it => instock_mains.Select(r => r.id).Contains(it.bill_id) && it.material_code == wmsOutsourceD.matcode && it.code_batch == wmsOutsourceD.code_batch).OrderBy(x=>x.id).ToListAsync();
|
||||||
|
|
||||||
List<Dictionary<string, object>> requestData = new List<Dictionary<string, object>>();
|
List<Dictionary<string, object>> requestData = new List<Dictionary<string, object>>();
|
||||||
List<string> carryIds = instock_mains.Select(x => x.carry_id).ToList();
|
List<string> carryIds = instock_mains.Select(x => x.carry_id).ToList();
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
using COSXML.Model.Tag;
|
||||||
using JNPF.Common.Contracts;
|
using JNPF.Common.Contracts;
|
||||||
using JNPF.Common.Core.Manager;
|
using JNPF.Common.Core.Manager;
|
||||||
using JNPF.Common.Dtos.VisualDev;
|
using JNPF.Common.Dtos.VisualDev;
|
||||||
@@ -11,6 +12,7 @@ using JNPF.Logging;
|
|||||||
using JNPF.Systems.Entitys.System;
|
using JNPF.Systems.Entitys.System;
|
||||||
using JNPF.Systems.Interfaces.System;
|
using JNPF.Systems.Interfaces.System;
|
||||||
using JNPF.VisualDev;
|
using JNPF.VisualDev;
|
||||||
|
using JNPF.VisualDev.Entitys;
|
||||||
using JNPF.VisualDev.Interfaces;
|
using JNPF.VisualDev.Interfaces;
|
||||||
using Mapster;
|
using Mapster;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
@@ -64,8 +66,60 @@ namespace Tnb.WarehouseMgr
|
|||||||
_visualDevService = visualDevService;
|
_visualDevService = visualDevService;
|
||||||
_wareHouseService = wareHouseService;
|
_wareHouseService = wareHouseService;
|
||||||
_thirdApiRecordService = thirdApiRecordService;
|
_thirdApiRecordService = thirdApiRecordService;
|
||||||
|
OverideFuncs.CreateAsync += Create;
|
||||||
|
OverideFuncs.DeleteAsync = Delete;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<dynamic> Create(VisualDevModelDataCrInput visualDevModelDataCrInput)
|
||||||
|
{
|
||||||
|
string outsource_order = visualDevModelDataCrInput.data["erp_bill_code"].ToString();
|
||||||
|
VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true);
|
||||||
|
await _runService.Create(templateEntity, visualDevModelDataCrInput);
|
||||||
|
|
||||||
|
string id = visualDevModelDataCrInput.data["ReturnIdentity"].ToString();
|
||||||
|
string type = "";
|
||||||
|
if (string.IsNullOrEmpty(outsource_order))
|
||||||
|
{
|
||||||
|
await _db.Updateable<WmsOutsourceH>().SetColumns(r => r.make_method == "自制").Where(r => r.id == id).ExecuteCommandAsync();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await _db.Updateable<WmsOutsourceH>().SetColumns(r => r.make_method == "同步").Where(r => r.id == id).ExecuteCommandAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
await _db.Updateable<WmsOutsourceD>().SetColumns(r => r.qc_res == "await").Where(r => r.fk_wms_outsource_order_id == id).ExecuteCommandAsync();
|
||||||
|
|
||||||
|
return "保存成功";
|
||||||
|
}
|
||||||
|
|
||||||
|
// List<WmsDistaskH> wmsDistaskH = await _db.Queryable<WmsDistaskH>().Where(r => r.source_id == id).ToListAsync();
|
||||||
|
private async Task Delete(string id)
|
||||||
|
{
|
||||||
|
await _db.Ado.BeginTranAsync();
|
||||||
|
|
||||||
|
WmsOutsourceH wmsOutsourceH = await _db.Queryable<WmsOutsourceH>().Where(r => r.id == id).FirstAsync();
|
||||||
|
if (wmsOutsourceH != null)
|
||||||
|
{
|
||||||
|
_ = await _db.Deleteable(wmsOutsourceH).ExecuteCommandAsync();
|
||||||
|
List<WmsOutsourceD> wmsoutsourceDs = await _db.Queryable<WmsOutsourceD>().Where(r => r.fk_wms_outsource_order_id == id).ToListAsync();
|
||||||
|
Logger.Information($"删除委外收货单{wmsOutsourceH.bill_code} 收货明细{wmsoutsourceDs.Count}条");
|
||||||
|
foreach (WmsOutsourceD wmsOutsourceD in wmsoutsourceDs)
|
||||||
|
{
|
||||||
|
WmsOutsourceOrderD wmsOutsourceOrderD = await _db.Queryable<WmsOutsourceOrderD>().Where(r => r.erp_line_pk == wmsOutsourceD.erp_outsource_order_d_pk).FirstAsync();
|
||||||
|
if (wmsOutsourceOrderD != null)
|
||||||
|
{
|
||||||
|
Logger.Information($"委外收货单{wmsOutsourceH.bill_code} 收货明细id{wmsOutsourceOrderD.id} 删除后回退委外订单明细id{wmsOutsourceOrderD.id}已到货数量 {wmsOutsourceOrderD.actual_quantity} -> {wmsOutsourceOrderD.actual_quantity - wmsOutsourceD.outsource_arriveqty}");
|
||||||
|
wmsOutsourceOrderD.actual_quantity -= wmsOutsourceD.actual_quantity;
|
||||||
|
await _db.Updateable(wmsOutsourceOrderD).UpdateColumns(r => r.actual_quantity).ExecuteCommandAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ = await _db.Deleteable(wmsoutsourceDs).ExecuteCommandAsync();
|
||||||
|
}
|
||||||
|
await _db.Ado.CommitTranAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public override async Task ModifyAsync(WareHouseUpInput input)
|
public override async Task ModifyAsync(WareHouseUpInput input)
|
||||||
{
|
{
|
||||||
if (input == null)
|
if (input == null)
|
||||||
@@ -103,10 +157,10 @@ namespace Tnb.WarehouseMgr
|
|||||||
};
|
};
|
||||||
|
|
||||||
List<WmsTempCode> wmsTempCodes = new();
|
List<WmsTempCode> wmsTempCodes = new();
|
||||||
decimal? minPacking = (await _db.Queryable<BasMaterial>().FirstAsync(it => it.id == WmsOutsourceD.matcode_id))?.minpacking;
|
decimal? minPacking = (await _db.Queryable<BasMaterial>().FirstAsync(it => it.code == WmsOutsourceD.matcode))?.minpacking;
|
||||||
if (!minPacking.HasValue || minPacking.Value <= 0)
|
if (!minPacking.HasValue || minPacking.Value <= 0)
|
||||||
{
|
{
|
||||||
throw new AppFriendlyException($"物料{WmsOutsourceD.matcode} {WmsOutsourceD.matcode_id} 包装数量为空或者等于0,无法打印!", 500);
|
throw new AppFriendlyException($"物料{WmsOutsourceD.matcode} 包装数量为空或者等于0,无法打印!", 500);
|
||||||
};
|
};
|
||||||
int codeNum = 0;
|
int codeNum = 0;
|
||||||
|
|
||||||
@@ -124,7 +178,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BasMaterial basMaterial = await _db.Queryable<BasMaterial>().Where(r => r.id == WmsOutsourceD.matcode_id).FirstAsync();
|
BasMaterial basMaterial = await _db.Queryable<BasMaterial>().Where(r => r.code == WmsOutsourceD.matcode).FirstAsync();
|
||||||
for (int j = 0; j < codeNum; j++)
|
for (int j = 0; j < codeNum; j++)
|
||||||
{
|
{
|
||||||
int index = j + 1;
|
int index = j + 1;
|
||||||
@@ -140,7 +194,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
string code = $"{WmsOutsourceD.matcode}-{WmsOutsourceD.code_batch}-{watercode}";
|
string code = $"{WmsOutsourceD.matcode}-{WmsOutsourceD.code_batch}-{watercode}";
|
||||||
WmsTempCode barCode = new()
|
WmsTempCode barCode = new()
|
||||||
{
|
{
|
||||||
material_id = WmsOutsourceD.matcode_id,
|
material_id = basMaterial.id,
|
||||||
material_code = WmsOutsourceD.matcode,
|
material_code = WmsOutsourceD.matcode,
|
||||||
barcode = code,
|
barcode = code,
|
||||||
code_batch = WmsOutsourceD.code_batch,
|
code_batch = WmsOutsourceD.code_batch,
|
||||||
|
|||||||
@@ -430,7 +430,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
case WmsWareHouseConst.BILLTYPE_OUTSOURCE_ID:
|
case WmsWareHouseConst.BILLTYPE_OUTSOURCE_ID:
|
||||||
{
|
{
|
||||||
bill_type = WmsWareHouseConst.BILLTYPE_OUTSOURCEINSTOCK_ID;
|
bill_type = WmsWareHouseConst.BILLTYPE_OUTSOURCEINSTOCK_ID;
|
||||||
biz_type = WmsWareHouseConst.BIZTYPE_OUTSOURCE_ID;
|
source_main_id = (await _dbScanInStockByRedis.Queryable<WmsOutsourceD>().FirstAsync(it => it.id == source_id)).erp_outsource_order_d_pk;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WmsWareHouseConst.BILLTYPE_RAWMATTRANSFERINSTOCK_ID:
|
case WmsWareHouseConst.BILLTYPE_RAWMATTRANSFERINSTOCK_ID:
|
||||||
|
|||||||
@@ -79,7 +79,8 @@ namespace Tnb.WarehouseMgr
|
|||||||
batchno = JObject.Parse(input.queryJson).Value<string>("batchno");
|
batchno = JObject.Parse(input.queryJson).Value<string>("batchno");
|
||||||
material_specification = JObject.Parse(input.queryJson).Value<string>(nameof(WmsCarryCode.material_specification));
|
material_specification = JObject.Parse(input.queryJson).Value<string>(nameof(WmsCarryCode.material_specification));
|
||||||
container_no = JObject.Parse(input.queryJson).Value<string>(nameof(WmsCarryCode.container_no));
|
container_no = JObject.Parse(input.queryJson).Value<string>(nameof(WmsCarryCode.container_no));
|
||||||
time = JObject.Parse(input.queryJson).Value<JArray>("time");
|
if (JObject.Parse(input.queryJson).ContainsKey("time"))
|
||||||
|
time = JObject.Parse(input.queryJson).Value<JArray>("time");
|
||||||
}
|
}
|
||||||
|
|
||||||
decimal total_qty = 0;
|
decimal total_qty = 0;
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ using Tnb.BasicData.Interfaces;
|
|||||||
using JNPF.Common.Enums;
|
using JNPF.Common.Enums;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using Aop.Api.Domain;
|
using Aop.Api.Domain;
|
||||||
|
using Tnb.EquipMgr.Entities;
|
||||||
|
|
||||||
namespace Tnb.WarehouseMgr
|
namespace Tnb.WarehouseMgr
|
||||||
{
|
{
|
||||||
@@ -72,11 +73,10 @@ namespace Tnb.WarehouseMgr
|
|||||||
_thirdApiRecordService = thirdApiRecordService;
|
_thirdApiRecordService = thirdApiRecordService;
|
||||||
_visualDevService = visualDevService;
|
_visualDevService = visualDevService;
|
||||||
OverideFuncs.CreateAsync += Create;
|
OverideFuncs.CreateAsync += Create;
|
||||||
|
OverideFuncs.DeleteAsync = Delete;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 保存工序工位关联表
|
|
||||||
/// </summary>
|
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<dynamic> Create(VisualDevModelDataCrInput visualDevModelDataCrInput)
|
public async Task<dynamic> Create(VisualDevModelDataCrInput visualDevModelDataCrInput)
|
||||||
{
|
{
|
||||||
@@ -100,6 +100,31 @@ namespace Tnb.WarehouseMgr
|
|||||||
return "保存成功";
|
return "保存成功";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// List<WmsDistaskH> wmsDistaskH = await _db.Queryable<WmsDistaskH>().Where(r => r.source_id == id).ToListAsync();
|
||||||
|
private async Task Delete(string id)
|
||||||
|
{
|
||||||
|
await _db.Ado.BeginTranAsync();
|
||||||
|
|
||||||
|
WmsPurchaseH wmsPurchaseH = await _db.Queryable<WmsPurchaseH>().Where(r => r.id == id).FirstAsync();
|
||||||
|
if (wmsPurchaseH != null)
|
||||||
|
{
|
||||||
|
_ = await _db.Deleteable(wmsPurchaseH).ExecuteCommandAsync();
|
||||||
|
List<WmsPurchaseD> wmsPurchaseDs = await _db.Queryable<WmsPurchaseD>().Where(r => r.bill_id == id).ToListAsync();
|
||||||
|
Logger.Information($"删除采购收货单{wmsPurchaseH.bill_code} 收货明细{wmsPurchaseDs.Count}条");
|
||||||
|
foreach (WmsPurchaseD wmsPurchaseD in wmsPurchaseDs)
|
||||||
|
{
|
||||||
|
WmsPurchaseOrderD wmsPurchaseOrderD = await _db.Queryable<WmsPurchaseOrderD>().Where(r => r.erp_line_pk == wmsPurchaseD.erp_purchase_order_d_pk).FirstAsync();
|
||||||
|
if (wmsPurchaseOrderD != null)
|
||||||
|
{
|
||||||
|
Logger.Information($"采购收货单{wmsPurchaseH.bill_code} 收货明细id{wmsPurchaseOrderD.id} 删除后回退采购订单明细id{wmsPurchaseOrderD.id}已到货数量 {wmsPurchaseOrderD.actual_quantity} -> {wmsPurchaseOrderD.actual_quantity - wmsPurchaseD.purchase_arriveqty}");
|
||||||
|
wmsPurchaseOrderD.actual_quantity -= wmsPurchaseD.purchase_prqty;
|
||||||
|
await _db.Updateable(wmsPurchaseOrderD).UpdateColumns(r => r.actual_quantity).ExecuteCommandAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ = await _db.Deleteable(wmsPurchaseDs).ExecuteCommandAsync();
|
||||||
|
}
|
||||||
|
await _db.Ado.CommitTranAsync();
|
||||||
|
}
|
||||||
|
|
||||||
private async Task<dynamic> xxx(VisualDevModelDataCrInput input)
|
private async Task<dynamic> xxx(VisualDevModelDataCrInput input)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -180,8 +180,8 @@ namespace Tnb.WarehouseMgr
|
|||||||
}
|
}
|
||||||
await _db.Ado.BeginTranAsync();
|
await _db.Ado.BeginTranAsync();
|
||||||
//入库取终点 //出库起点
|
//入库取终点 //出库起点
|
||||||
OutStockStrategyQuery outStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, material_id = wmsOutstockD.material_id, qty = input.qty, code_batch = wmsOutstockD.code_batch, Region_id = WmsWareHouseConst.REGION_CPOutstock_ID, dbConn = _db };
|
OutStockStrategyQuery outStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, material_id = wmsOutstockD.material_id, qty = input.qty, code_batch = wmsOutstockD.code_batch, Region_id = WmsWareHouseConst.REGION_CPOutstock_ID };
|
||||||
List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>> items = await _wareHouseService.OutStockStrategy_saleRelease(outStockStrategyInput);
|
List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>> items = await _wareHouseService.OutStockStrategy_saleRelease(outStockStrategyInput, _db);
|
||||||
|
|
||||||
decimal canOutstockQty = items.Sum(r => r.Item3.codeqty).ParseToDecimal();
|
decimal canOutstockQty = items.Sum(r => r.Item3.codeqty).ParseToDecimal();
|
||||||
if (canOutstockQty < input.qty)
|
if (canOutstockQty < input.qty)
|
||||||
@@ -215,8 +215,8 @@ namespace Tnb.WarehouseMgr
|
|||||||
//人工发货
|
//人工发货
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
InStockStrategyQuery inStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, Size = items_pretask.Count, Region_id = WmsWareHouseConst.REGION_CPManualOutstock_ID, dbConn = _db };
|
InStockStrategyQuery inStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, Size = items_pretask.Count, Region_id = WmsWareHouseConst.REGION_CPManualOutstock_ID };
|
||||||
endLocations = await _wareHouseService.InStockStrategy(inStockStrategyInput);
|
endLocations = await _wareHouseService.InStockStrategy(inStockStrategyInput, _db);
|
||||||
|
|
||||||
if (endLocations.Count < items_pretask.Count)
|
if (endLocations.Count < items_pretask.Count)
|
||||||
{
|
{
|
||||||
@@ -267,8 +267,8 @@ namespace Tnb.WarehouseMgr
|
|||||||
//人工发货
|
//人工发货
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
InStockStrategyQuery inStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, Size = 1, Region_id = WmsWareHouseConst.REGION_CPManualOutstock_ID, dbConn = _db };
|
InStockStrategyQuery inStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, Size = 1, Region_id = WmsWareHouseConst.REGION_CPManualOutstock_ID };
|
||||||
endLocations = await _wareHouseService.InStockStrategy(inStockStrategyInput);
|
endLocations = await _wareHouseService.InStockStrategy(inStockStrategyInput, _db);
|
||||||
|
|
||||||
if (endLocations.Count < 1)
|
if (endLocations.Count < 1)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -96,8 +96,8 @@ namespace Tnb.WarehouseMgr
|
|||||||
WmsTransferOutstockD wmsOutstockD = await _db.Queryable<WmsTransferOutstockD>().FirstAsync(it => it.id == input.source_id);
|
WmsTransferOutstockD wmsOutstockD = await _db.Queryable<WmsTransferOutstockD>().FirstAsync(it => it.id == input.source_id);
|
||||||
await _db.Ado.BeginTranAsync();
|
await _db.Ado.BeginTranAsync();
|
||||||
//入库取终点 //出库起点
|
//入库取终点 //出库起点
|
||||||
OutStockStrategyQuery outStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, material_id = wmsOutstockD.material_id, qty = input.qty, code_batch = wmsOutstockD.pi_code, Region_id = WmsWareHouseConst.REGION_CPOutstock_ID, dbConn = _db };
|
OutStockStrategyQuery outStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, material_id = wmsOutstockD.material_id, qty = input.qty, code_batch = wmsOutstockD.pi_code, Region_id = WmsWareHouseConst.REGION_CPOutstock_ID };
|
||||||
List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>> items = await _wareHouseService.OutStockStrategy_saleRelease(outStockStrategyInput);
|
List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>> items = await _wareHouseService.OutStockStrategy_saleRelease(outStockStrategyInput, _db);
|
||||||
|
|
||||||
decimal canOutstockQty = items.Sum(r => r.Item3.codeqty).ParseToDecimal();
|
decimal canOutstockQty = items.Sum(r => r.Item3.codeqty).ParseToDecimal();
|
||||||
if (canOutstockQty < input.qty)
|
if (canOutstockQty < input.qty)
|
||||||
|
|||||||
Reference in New Issue
Block a user