You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Aucma.Scada/Aucma.Scada.Business/InventoryInfoBusiness.cs

218 lines
7.5 KiB
C#

using Aucma.Scada.Model.domain;
using HighWayIot.Log4net;
using HighWayIot.Repository.service;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Aucma.Scada.Business
{
/// <summary>
/// 实时库存业务逻辑
/// </summary>
public sealed class InventoryInfoBusiness
{
#region 单例实现
private static readonly Lazy<InventoryInfoBusiness> lazy = new Lazy<InventoryInfoBusiness>(() => new InventoryInfoBusiness());
public static InventoryInfoBusiness Instance
{
get
{
return lazy.Value;
}
}
#endregion
#region 对象引用
private LogHelper logHelper = LogHelper.Instance;
private RegisterServices registerServices = RegisterServices.Instance;
#endregion
#region 接口引用
/// <summary>
/// 货道信息
/// </summary>
private IBaseSpaceInfoService _spaceInfoService;
/// <summary>
/// 货道明细
/// </summary>
private IBaseSpaceDetailService _spaceDetailService;
private IBaseBomInfoService _bomInfoService;
#endregion
#region 委托事件
/// <summary>
/// 刷新货道明细
/// </summary>
/// <param name="taskInfos"></param>
public delegate void RefreshSpaceDetails(List<BaseSpaceDetail> taskInfos);
public event RefreshSpaceDetails RefreshSpaceDetailsEvent;
#endregion
private InventoryInfoBusiness()
{
_spaceInfoService = registerServices.GetService<IBaseSpaceInfoService>();
_spaceDetailService = registerServices.GetService<IBaseSpaceDetailService>();
_bomInfoService = registerServices.GetService<IBaseBomInfoService>();
}
/// <summary>
/// 获取货道信息
/// </summary>
/// <param name="storeCode"></param>
/// <returns></returns>
public List<BaseSpaceInfo> GetSpaceInfos(string storeCode)
{
List<BaseSpaceInfo> spaceInfos = null;
try
{
spaceInfos = _spaceInfoService.GetSpaceInfosByStoreCode(storeCode).OrderBy(x=>x.objId).ToList();
}
catch (Exception ex)
{
logHelper.Error("获取货道信息异常", ex);
}
return spaceInfos;
}
/// <summary>
/// 修改货道入库标识
/// </summary>
/// <param name="storeCode"></param>
/// <param name="spaceCode"></param>
public bool UpdateInStoreFlag(string storeCode, string spaceCode)
{
bool result = false;
try
{
BaseSpaceInfo spaceInfo = _spaceInfoService.GetSpaceInfoBySpaceCode(storeCode, spaceCode);
if (spaceInfo != null)
{
spaceInfo.inStoreFlag = spaceInfo.inStoreFlag == 1 ? 2 : 1;
result = _spaceInfoService.UpdateSpaceInfo(spaceInfo);
logHelper.Info($"修改仓库:{storeCode};货道:{spaceCode};入库标识:{spaceInfo.inStoreFlag};修改{(result == true ? "" : "")}");
}
}
catch (Exception ex)
{
logHelper.Error("修改货道入库标识异常", ex);
}
return result;
}
/// <summary>
/// 修改货道出库标识
/// </summary>
/// <param name="storeCode"></param>
/// <param name="spaceCode"></param>
/// <returns></returns>
public bool UpdateOutStoreFlag(string storeCode, string spaceCode)
{
bool result = false;
try
{
BaseSpaceInfo spaceInfo = _spaceInfoService.GetSpaceInfoBySpaceCode(storeCode, spaceCode);
if (spaceInfo != null)
{
spaceInfo.outStoreFlag = spaceInfo.outStoreFlag == 1 ? 2 : 1;
result = _spaceInfoService.UpdateSpaceInfo(spaceInfo);
logHelper.Info($"修改仓库:{storeCode};货道:{spaceCode};出库标识:{spaceInfo.outStoreFlag};修改{(result == true ? "" : "")}");
}
}
catch (Exception ex)
{
logHelper.Error("修改货道出库标识异常", ex);
}
return result;
}
/// <summary>
/// 修改异常货道标识
/// </summary>
/// <param name="storeCode"></param>
/// <param name="spaceCode"></param>
/// <returns></returns>
public bool UpdateUnusualFlag(string storeCode, string spaceCode)
{
bool result = false;
try
{
BaseSpaceInfo spaceInfo = _spaceInfoService.GetSpaceInfoBySpaceCode(storeCode, spaceCode);
if (spaceInfo != null)
{
spaceInfo.unusualFlag = spaceInfo.unusualFlag == 1 ? 2 : 1;
result = _spaceInfoService.UpdateSpaceInfo(spaceInfo);
logHelper.Info($"修改仓库:{storeCode};货道:{spaceCode};异常标识:{spaceInfo.unusualFlag};修改{(result == true ? "" : "")}");
}
}
catch (Exception ex)
{
logHelper.Error("修改异常货道标识", ex);
}
return result;
}
/// <summary>
/// 修改货道状态
/// </summary>
/// <param name="storeCode"></param>
/// <param name="spaceCode"></param>
/// <returns></returns>
public bool UpdateSpaceStatus(string storeCode, string spaceCode)
{
bool result = false;
try
{
BaseSpaceInfo spaceInfo = _spaceInfoService.GetSpaceInfoBySpaceCode(storeCode, spaceCode);
if (spaceInfo != null)
{
spaceInfo.spaceStatus = spaceInfo.spaceStatus == 1 ? 2 : 1;
result = _spaceInfoService.UpdateSpaceInfo(spaceInfo);
logHelper.Info($"修改仓库:{storeCode};货道:{spaceCode};货道状态:{spaceInfo.unusualFlag};修改{(result == true ? "" : "")}");
}
}
catch (Exception ex)
{
logHelper.Error("修改异常货道标识", ex);
}
return result;
}
/// <summary>
/// 刷新货道明细
/// </summary>
/// <param name="storeCode"></param>
/// <param name="spaceCode"></param>
/// <returns></returns>
public void RefreshBaseSpaceDetails(string storeCode, string spaceCode)
{
List<BaseSpaceDetail> spaceDetails = _spaceDetailService.GetSpaceDetailsBySpaceCode(storeCode, spaceCode);
if (spaceDetails != null)
{
RefreshSpaceDetailsEvent?.Invoke(spaceDetails);
}
}
/// <summary>
/// 获取货道明细
/// </summary>
/// <param name="storeCode"></param>
/// <param name="spaceCode"></param>
/// <returns></returns>
public List<BaseSpaceDetail> GetBaseSpaceDetails(string storeCode, string spaceCode)
{
List<BaseSpaceDetail> spaceDetails = _spaceDetailService.GetSpaceDetailsBySpaceCode(storeCode, spaceCode);
return spaceDetails;
}
}
}