1.报错机制增加未扫描上架的提供库位屏蔽机制

2.库位查询增加当前屏蔽模组库位百分比查询
3.货架库位屏蔽、模组屏蔽后增加当前禁用模组库位百分比查询
This commit is contained in:
hehaibing-1996
2024-11-05 16:32:33 +08:00
parent e197c32f52
commit 2f9ca87876
11 changed files with 350 additions and 9 deletions

View File

@ -5,6 +5,7 @@ using System.Data.OscarClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WCS.BLL.Config;
using WCS.BLL.DbModels;
using WCS.BLL.HardWare;
using WCS.DAL.Db;
@ -81,6 +82,21 @@ namespace WCS.BLL.Manager
break;
}
}
else if (solveType == SolveTypeEnum.)
{
switch (warningInManager.WarningType)
{
case WarningTypeEnum.:
DisableNoScan(warningInManager);
break;
case WarningTypeEnum.:
DisableNoScan(warningInManager);
break;
case WarningTypeEnum.:
DisableNoScan(warningInManager);
break;
}
}
else if (solveType == SolveTypeEnum.)
{
//不发指令了
@ -143,9 +159,83 @@ namespace WCS.BLL.Manager
#region
public static void SolveNoScan(WebSocketMessageModel warning)
/// <summary>
/// 未扫描上架禁用库位
/// </summary>
/// <param name="warning"></param>
public static void DisableNoScan(WebSocketMessageModel warning)
{
#region
try
{
//获取库位
var storeInfo = DbHelp.db.Queryable<StoreInfo>()
.Where(t => t.ShelfId == warning.ShelfId)
.Where(t => t.Id == warning.StoreId)
.First();
if (storeInfo != null)
{
storeInfo.CurrentMatSn = "禁用";
DbHelp.db.Updateable(storeInfo).ExecuteCommand();
if (LocalFile.Config.IsMx)
{
var DingDing = string.Empty;
MXBackgroundThread.SendDingDingMsg($"【智能货架】库位{storeInfo.StoreCode}被 {warning.SolvedUser} “未扫描上架弹窗”屏蔽,请及时调查或维保硬件!", new List<string> { "104379", "103595" }, ref DingDing);
#region
Task.Run(() =>
{
var disabledStore = DbHelp.db.Queryable<StoreInfo>()
.Where(t => t.CurrentMatSn == "禁用")
.ToList();
var allStore = DbHelp.db.Queryable<StoreInfo>()
.ToList();
var disabledCount = disabledStore.Count();
var allCount = allStore.Count();
var disabledACount = disabledStore.Where(t => t.ShelfCode.Contains("A")).ToList().Count();
var allACount = allStore.Where(t => t.ShelfCode.Contains("A")).ToList().Count();
var disabledCCount = disabledStore.Where(t => t.ShelfCode.Contains("C")).ToList().Count();
var allCCount = allStore.Where(t => t.ShelfCode.Contains("C")).ToList().Count();
var disabledModule = DbHelp.db.Queryable<ModuleInfo>()
.Where(t => t.IsEnable == false)
.ToList();
var allModule = DbHelp.db.Queryable<ModuleInfo>()
.ToList();
var disabledModuleCount = disabledModule.Count();
var allModuleCount = allModule.Count();
var disabledAModuleCount = disabledModule.Where(t => t.ShelfCode.Contains("A")).ToList().Count();
var allAModuleCount = allModule.Where(t => t.ShelfCode.Contains("A")).ToList().Count();
var disabledCModuleCount = disabledModule.Where(t => t.ShelfCode.Contains("C")).ToList().Count();
var allCModuleCount = allModule.Where(t => t.ShelfCode.Contains("C")).ToList().Count();
var message = $"【智能货架】当前库位总数{allCount},禁用总数{disabledCount},禁用率{((double)disabledCount / allCount).ToString("P")}" +
$"其中A区库位总数{allACount},禁用数{disabledACount},禁用率{((double)disabledACount / allACount).ToString("P")}" +
$"C区库位总数{allCCount},禁用数{disabledCCount},禁用率{((double)disabledCCount / allCCount).ToString("P")}。\r\n" +
$"当前模组总数{allModuleCount},禁用总数{disabledModuleCount},禁用率{((double)disabledModuleCount / allModuleCount).ToString("P")}" +
$"其中A区模组总数{allAModuleCount},禁用数{disabledAModuleCount},禁用率{((double)disabledAModuleCount / allAModuleCount).ToString("P")}" +
$"C区模组总数{allCModuleCount},禁用数{disabledCModuleCount},禁用率{((double)disabledCModuleCount / allCModuleCount).ToString("P")}。";
var dd = string.Empty;
MXBackgroundThread.SendDingDingMsg(message, new List<string> { "104379", "103595" }, ref dd);
});
#endregion
}
}
}
catch (Exception e)
{
DbHelp.db.RollbackTran();
}
#endregion
}
public static void SolveLoss(WebSocketMessageModel warning)
@ -244,6 +334,7 @@ namespace WCS.BLL.Manager
#endregion
}
public static void GoInRightMode(WebSocketMessageModel warning)
{
try

View File

@ -73,5 +73,6 @@ namespace WCS.BLL.Services.IService
/// <returns></returns>
public Task<ResponseCommon> disableOrEnableStore(DisableOrEnableStoreRequest request);
public Task<ResponseCommon> getDisablePercent();
}
}

View File

@ -350,7 +350,52 @@ namespace WCS.BLL.Services.Service
if (LocalFile.Config.IsMx)
{
var DingDing = string.Empty;
MXBackgroundThread.SendDingDingMsg($"【智能货架】模组{moduleInfo.ModuleCode}被屏蔽", new List<string> { "104379", "103595" }, ref DingDing);
MXBackgroundThread.SendDingDingMsg($"【智能货架】模组{moduleInfo.ModuleCode}被屏蔽(模组管理),请及时调查或维保硬件!", new List<string> { "104379", "103595" }, ref DingDing);
#region
Task.Run(() =>
{
var disabledStore = DbHelp.db.Queryable<StoreInfo>()
.Where(t => t.CurrentMatSn == "禁用")
.ToList();
var allStore = DbHelp.db.Queryable<StoreInfo>()
.ToList();
var disabledCount = disabledStore.Count();
var allCount = allStore.Count();
var disabledACount = disabledStore.Where(t => t.ShelfCode.Contains("A")).ToList().Count();
var allACount = allStore.Where(t => t.ShelfCode.Contains("A")).ToList().Count();
var disabledCCount = disabledStore.Where(t => t.ShelfCode.Contains("C")).ToList().Count();
var allCCount = allStore.Where(t => t.ShelfCode.Contains("C")).ToList().Count();
var disabledModule = DbHelp.db.Queryable<ModuleInfo>()
.Where(t => t.IsEnable == false)
.ToList();
var allModule = DbHelp.db.Queryable<ModuleInfo>()
.ToList();
var disabledModuleCount = disabledModule.Count();
var allModuleCount = allModule.Count();
var disabledAModuleCount = disabledModule.Where(t => t.ShelfCode.Contains("A")).ToList().Count();
var allAModuleCount = allModule.Where(t => t.ShelfCode.Contains("A")).ToList().Count();
var disabledCModuleCount = disabledModule.Where(t => t.ShelfCode.Contains("C")).ToList().Count();
var allCModuleCount = allModule.Where(t => t.ShelfCode.Contains("C")).ToList().Count();
var message = $"【智能货架】当前库位总数{allCount},禁用总数{disabledCount},禁用率{((double)disabledCount / allCount).ToString("P")}" +
$"其中A区库位总数{allACount},禁用数{disabledACount},禁用率{((double)disabledACount / allACount).ToString("P")}" +
$"C区库位总数{allCCount},禁用数{disabledCCount},禁用率{((double)disabledCCount / allCCount).ToString("P")}。\r\n" +
$"当前模组总数{allModuleCount},禁用总数{disabledModuleCount},禁用率{((double)disabledModuleCount / allModuleCount).ToString("P")}" +
$"其中A区模组总数{allAModuleCount},禁用数{disabledAModuleCount},禁用率{((double)disabledAModuleCount / allAModuleCount).ToString("P")}" +
$"C区模组总数{allCModuleCount},禁用数{disabledCModuleCount},禁用率{((double)disabledCModuleCount / allCModuleCount).ToString("P")}。";
var dd = string.Empty;
MXBackgroundThread.SendDingDingMsg(message, new List<string> { "104379", "103595" }, ref dd);
});
#endregion
}
}
else
@ -552,7 +597,53 @@ namespace WCS.BLL.Services.Service
if (LocalFile.Config.IsMx)
{
var DingDing = string.Empty;
MXBackgroundThread.SendDingDingMsg($"【智能货架】库位{storeInfo.StoreCode}被屏蔽", new List<string> { "104379", "103595" }, ref DingDing);
MXBackgroundThread.SendDingDingMsg($"【智能货架】库位{storeInfo.StoreCode}被屏蔽(库位管理),请及时调查或维保硬件!", new List<string> { "104379", "103595" }, ref DingDing);
#region
Task.Run(() =>
{
var disabledStore = DbHelp.db.Queryable<StoreInfo>()
.Where(t => t.CurrentMatSn == "禁用")
.ToList();
var allStore = DbHelp.db.Queryable<StoreInfo>()
.ToList();
var disabledCount = disabledStore.Count();
var allCount = allStore.Count();
var disabledACount = disabledStore.Where(t => t.ShelfCode.Contains("A")).ToList().Count();
var allACount = allStore.Where(t => t.ShelfCode.Contains("A")).ToList().Count();
var disabledCCount = disabledStore.Where(t => t.ShelfCode.Contains("C")).ToList().Count();
var allCCount = allStore.Where(t => t.ShelfCode.Contains("C")).ToList().Count();
var disabledModule = DbHelp.db.Queryable<ModuleInfo>()
.Where(t => t.IsEnable == false)
.ToList();
var allModule = DbHelp.db.Queryable<ModuleInfo>()
.ToList();
var disabledModuleCount = disabledModule.Count();
var allModuleCount = allModule.Count();
var disabledAModuleCount = disabledModule.Where(t => t.ShelfCode.Contains("A")).ToList().Count();
var allAModuleCount = allModule.Where(t => t.ShelfCode.Contains("A")).ToList().Count();
var disabledCModuleCount = disabledModule.Where(t => t.ShelfCode.Contains("C")).ToList().Count();
var allCModuleCount = allModule.Where(t => t.ShelfCode.Contains("C")).ToList().Count();
var message = $"【智能货架】当前库位总数{allCount},禁用总数{disabledCount},禁用率{((double)disabledCount / allCount).ToString("P")}" +
$"其中A区库位总数{allACount},禁用数{disabledACount},禁用率{((double)disabledACount / allACount).ToString("P")}" +
$"C区库位总数{allCCount},禁用数{disabledCCount},禁用率{((double)disabledCCount / allCCount).ToString("P")}。\r\n" +
$"当前模组总数{allModuleCount},禁用总数{disabledModuleCount},禁用率{((double)disabledModuleCount / allModuleCount).ToString("P")}" +
$"其中A区模组总数{allAModuleCount},禁用数{disabledAModuleCount},禁用率{((double)disabledAModuleCount / allAModuleCount).ToString("P")}" +
$"C区模组总数{allCModuleCount},禁用数{disabledCModuleCount},禁用率{((double)disabledCModuleCount / allCModuleCount).ToString("P")}。";
var dd = string.Empty;
MXBackgroundThread.SendDingDingMsg(message, new List<string> { "104379", "103595" }, ref dd);
});
#endregion
}
//库位
@ -618,6 +709,74 @@ namespace WCS.BLL.Services.Service
}
}
public async Task<ResponseCommon> getDisablePercent()
{
try
{
#region
var disabledStore = DbHelp.db.Queryable<StoreInfo>()
.Where(t => t.CurrentMatSn == "禁用")
.ToList();
var allStore = DbHelp.db.Queryable<StoreInfo>()
.ToList();
var disabledCount = disabledStore.Count();
var allCount = allStore.Count();
var disabledACount = disabledStore.Where(t => t.ShelfCode.Contains("A")).ToList().Count();
var allACount = allStore.Where(t => t.ShelfCode.Contains("A")).ToList().Count();
var disabledCCount = disabledStore.Where(t => t.ShelfCode.Contains("C")).ToList().Count();
var allCCount = allStore.Where(t => t.ShelfCode.Contains("C")).ToList().Count();
var disabledModule = DbHelp.db.Queryable<ModuleInfo>()
.Where(t => t.IsEnable == false)
.ToList();
var allModule = DbHelp.db.Queryable<ModuleInfo>()
.ToList();
var disabledModuleCount = disabledModule.Count();
var allModuleCount = allModule.Count();
var disabledAModuleCount = disabledModule.Where(t => t.ShelfCode.Contains("A")).ToList().Count();
var allAModuleCount = allModule.Where(t => t.ShelfCode.Contains("A")).ToList().Count();
var disabledCModuleCount = disabledModule.Where(t => t.ShelfCode.Contains("C")).ToList().Count();
var allCModuleCount = allModule.Where(t => t.ShelfCode.Contains("C")).ToList().Count();
var message = $"【智能货架】当前库位总数{allCount},禁用总数{disabledCount},禁用率{((double)disabledCount / allCount).ToString("P")}" +
$"其中A区库位总数{allACount},禁用数{disabledACount},禁用率{((double)disabledACount / allACount).ToString("P")}" +
$"C区库位总数{allCCount},禁用数{disabledCCount},禁用率{((double)disabledCCount / allCCount).ToString("P")}。\r\n" +
$"当前模组总数{allModuleCount},禁用总数{disabledModuleCount},禁用率{((double)disabledModuleCount / allModuleCount).ToString("P")}" +
$"其中A区模组总数{allAModuleCount},禁用数{disabledAModuleCount},禁用率{((double)disabledAModuleCount / allAModuleCount).ToString("P")}" +
$"C区模组总数{allCModuleCount},禁用数{disabledCModuleCount},禁用率{((double)disabledCModuleCount / allCModuleCount).ToString("P")}。";
#endregion
//非盟讯公司的展示
if (LocalFile.Config.IsMx == false)
{
message = $"【智能货架】当前库位总数{allCount},禁用总数{disabledCount},禁用率{((double)disabledCount / allCount).ToString("P")}。";
}
return new ResponseCommon()
{
Code = 200,
Message = $"Success",
Data = message ,
};
}
catch (Exception ex)
{
DbHelp.db.RollbackTran();
return new ResponseCommon()
{
Code = 300,
Message = $"操作失败:异常{ex.Message}"
};
}
}
#endregion
}
}