后台【修复】:修复库存显示数据错误,链接错误,商品库存异常列表数据错误的问题。

This commit is contained in:
大灰灰
2025-05-04 21:45:09 +08:00
parent 10429bc9a3
commit 3308a49977
7 changed files with 102 additions and 26 deletions

View File

@@ -29,6 +29,12 @@ namespace CoreCms.Net.IRepository
/// <returns></returns>
Task<int> GoodsStaticsTotalWarn(int goodsStocksWarn);
/// <summary>
/// 获取库存报警数量(返回商品序列)
/// </summary>
/// <param name="goodsStocksWarn"></param>
/// <returns></returns>
Task<List<int>> GoodsStaticsTotalWarnByGoodIds(int goodsStocksWarn);
/// <summary>
/// 获取关联商品的货品列表数据

View File

@@ -52,6 +52,12 @@ namespace CoreCms.Net.IServices
/// <returns></returns>
Task<int> GoodsStaticsTotalWarn(int goodsStocksWarn);
/// <summary>
/// 获取库存报警数量(返回商品序列)
/// </summary>
/// <param name="goodsStocksWarn"></param>
/// <returns></returns>
Task<List<int>> GoodsStaticsTotalWarnByGoodIds(int goodsStocksWarn);
/// <summary>
/// 获取关联商品的货品列表数据

View File

@@ -74,25 +74,72 @@ namespace CoreCms.Net.Repository
/// <returns></returns>
public async Task<int> GoodsStaticsTotalWarn(int goodsStocksWarn)
{
var sql = @"SELECT COUNT(*) AS number
FROM ( SELECT t.goodsId
FROM ( SELECT goodsId ,
( CASE WHEN stock < freezeStock THEN 0
ELSE stock - freezeStock
END ) AS number
FROM CoreCmsProducts
) t
WHERE t.number < " + goodsStocksWarn + @"
GROUP BY t.goodsId
) d";
var sql = @"SELECT COUNT(id) FROM dbo.CoreCmsGoods WHERE id IN
(SELECT goodsId
FROM
(
SELECT t.goodsId
FROM
(
SELECT goodsId,
(CASE
WHEN stock < freezeStock THEN
0
ELSE
stock - freezeStock
END
) AS number,
isDel
FROM CoreCmsProducts
WHERE isDel = 0
) t
WHERE t.number < @goodsStocksWarnNumber
GROUP BY t.goodsId
) d) AND isDel =0 ";
var dt = await DbClient.Ado.GetDataTableAsync(sql);
var dt = await DbClient.Ado.GetDataTableAsync(sql, new { goodsStocksWarnNumber = goodsStocksWarn });
var number = dt.Rows[0][0].ObjectToInt(0);
return number;
}
#endregion
#region
/// <summary>
/// 获取库存报警数量(返回商品序列)
/// </summary>
/// <param name="goodsStocksWarn"></param>
/// <returns></returns>
public async Task<List<int>> GoodsStaticsTotalWarnByGoodIds(int goodsStocksWarn)
{
var sql = @"SELECT id FROM dbo.CoreCmsGoods WHERE id IN
(SELECT goodsId
FROM
(
SELECT t.goodsId
FROM
(
SELECT goodsId,
(CASE
WHEN stock < freezeStock THEN
0
ELSE
stock - freezeStock
END
) AS number,
isDel
FROM CoreCmsProducts
WHERE isDel = 0
) t
WHERE t.number < @goodsStocksWarnNumber
GROUP BY t.goodsId
) d) AND isDel =0 ";
var result = await DbClient.Ado.SqlQueryAsync<int>(sql, new { goodsStocksWarnNumber = goodsStocksWarn });
return result;
}
#endregion
#region
/// <summary>
/// 获取关联商品的货品列表数据

View File

@@ -318,6 +318,17 @@ namespace CoreCms.Net.Services
}
/// <summary>
/// 获取库存报警数量(返回商品序列)
/// </summary>
/// <param name="goodsStocksWarn"></param>
/// <returns></returns>
public async Task<List<int>> GoodsStaticsTotalWarnByGoodIds(int goodsStocksWarn)
{
return await _dal.GoodsStaticsTotalWarnByGoodIds(goodsStocksWarn);
}
#region
/// <summary>
/// 获取关联商品的货品列表数据

View File

@@ -1930,7 +1930,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
//库存报警
var goodsStaticsTotalWarn = await _productsServices.GoodsStaticsTotalWarn(goodsStocksWarn);
//返回数据
jm.code = 0;
jm.msg = "数据调用成功!";
@@ -1939,11 +1939,9 @@ namespace CoreCms.Net.Web.Admin.Controllers
unpaidCount,
unshipCount,
aftersalesCount,
goodsStaticsTotalWarn
goodsStaticsTotalWarn,
};
return jm;
}

View File

@@ -231,14 +231,22 @@ namespace CoreCms.Net.Web.Admin.Controllers
//获取库存
var allConfigs = await _settingServices.GetConfigDictionaries();
var kc = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.GoodsStocksWarn);
var kcNumer = kc.ObjectToInt();
if (kc != null)
{
var kcNumer = kc.ObjectToInt();
where = where.And(p => p.stock <= kcNumer && p.isDel == false && p.isMarketable);
var ids = await _productsServices.GoodsStaticsTotalWarnByGoodIds(kcNumer);
if (ids.Any())
{
where = where.And(p=>ids.Contains(p.id));
}
}
else
{
where = where.And(p => p.stock <= 0 && p.isDel == false && p.isMarketable);
var ids = await _productsServices.GoodsStaticsTotalWarnByGoodIds(0);
if (ids.Any())
{
where = where.And(p => ids.Contains(p.id));
}
}
}
@@ -295,13 +303,13 @@ namespace CoreCms.Net.Web.Admin.Controllers
if (kc != null)
{
var kcNumer = kc.ObjectToInt();
totalWarn = await _coreCmsGoodsServices.GetCountAsync(p =>
p.stock <= kcNumer && p.isDel == false && p.isMarketable);
//返回数量
totalWarn = await _productsServices.GoodsStaticsTotalWarn(kcNumer);
}
else
{
totalWarn = await _coreCmsGoodsServices.GetCountAsync(p =>
p.stock <= 0 && p.isDel == false && p.isMarketable);
//返回数量
totalWarn = await _productsServices.GoodsStaticsTotalWarn(0);
}
//获取商品分类

View File

@@ -229,7 +229,7 @@
</a>
</li>
<li class="layui-col-xs6">
<a lay-href="/order/orders/" class="layadmin-backlog-body">
<a lay-href="/good/goods/" class="layadmin-backlog-body">
<h3>库存报警</h3>
<p><cite style="color: #FF5722;">{{d.goodsStaticsTotalWarn || '0'}}</cite></p>
</a>