1.报错机制增加未扫描上架的提供库位屏蔽机制
2.库位查询增加当前屏蔽模组库位百分比查询 3.货架库位屏蔽、模组屏蔽后增加当前禁用模组库位百分比查询
This commit is contained in:
@ -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
|
||||
|
@ -73,5 +73,6 @@ namespace WCS.BLL.Services.IService
|
||||
/// <returns></returns>
|
||||
public Task<ResponseCommon> disableOrEnableStore(DisableOrEnableStoreRequest request);
|
||||
|
||||
public Task<ResponseCommon> getDisablePercent();
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user