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.
223 lines
7.7 KiB
C#
223 lines
7.7 KiB
C#
using Admin.Core.IService;
|
|
using Admin.Core.Model;
|
|
using Aucma.Scada.UI.ViewModel;
|
|
using log4net;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.IdentityModel.Logging;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Aucma.Scada.UI
|
|
{
|
|
/// <summary>
|
|
/// 实时库存业务逻辑
|
|
/// </summary>
|
|
public class InventoryInfoBusiness
|
|
{
|
|
#region 单例实现
|
|
//private static readonly InventoryInfoBusiness lazy = new InventoryInfoBusiness();
|
|
//public static InventoryInfoBusiness Instance
|
|
//{
|
|
// get
|
|
// {
|
|
// return lazy;
|
|
// }
|
|
//}
|
|
#endregion
|
|
|
|
#region 对象引用
|
|
private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(InventoryInfoBusiness));
|
|
|
|
#endregion
|
|
|
|
#region 接口引用
|
|
/// <summary>
|
|
/// 货道信息
|
|
/// </summary>
|
|
private IBaseSpaceInfoServices _spaceInfoService;
|
|
|
|
/// <summary>
|
|
/// 货道明细
|
|
/// </summary>
|
|
private IBaseSpaceDetailServices _spaceDetailService;
|
|
|
|
private IBaseBomInfoServices _bomInfoService;
|
|
#endregion
|
|
|
|
#region 委托事件
|
|
/// <summary>
|
|
/// 刷新货道明细
|
|
/// </summary>
|
|
/// <param name="taskInfos"></param>
|
|
public delegate void RefreshSpaceDetails(List<BaseSpaceDetail> taskInfos);
|
|
public event RefreshSpaceDetails RefreshSpaceDetailsEvent;
|
|
|
|
#endregion
|
|
|
|
public InventoryInfoBusiness()
|
|
{
|
|
_spaceInfoService = App.ServiceProvider.GetService<IBaseSpaceInfoServices>();
|
|
_spaceDetailService = App.ServiceProvider.GetService<IBaseSpaceDetailServices>();
|
|
_bomInfoService = App.ServiceProvider.GetService<IBaseBomInfoServices>();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取货道信息
|
|
/// </summary>
|
|
/// <param name="storeCode"></param>
|
|
/// <returns></returns>
|
|
public async Task<List<BaseSpaceInfo>> GetSpaceInfos(string storeCode)
|
|
{
|
|
List<BaseSpaceInfo> spaceInfos = null;
|
|
try
|
|
{
|
|
spaceInfos =(await _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 async Task<bool> UpdateInStoreFlag(string storeCode, string spaceCode)
|
|
{
|
|
bool result = false;
|
|
try
|
|
{
|
|
|
|
BaseSpaceInfo spaceInfo =await _spaceInfoService.GetSpaceInfoBySpaceCode(storeCode, spaceCode);
|
|
if (spaceInfo != null)
|
|
{
|
|
spaceInfo.InStoreFlag = spaceInfo.InStoreFlag == 1 ? 2 : 1;
|
|
result =await _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 async Task<bool> UpdateOutStoreFlag(string storeCode, string spaceCode)
|
|
{
|
|
bool result = false;
|
|
try
|
|
{
|
|
|
|
BaseSpaceInfo spaceInfo =await _spaceInfoService.GetSpaceInfoBySpaceCode(storeCode, spaceCode);
|
|
if (spaceInfo != null)
|
|
{
|
|
spaceInfo.OutStoreFlag = spaceInfo.OutStoreFlag == 1 ? 2 : 1;
|
|
result =await _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 async Task<bool> UpdateUnusualFlag(string storeCode, string spaceCode)
|
|
{
|
|
bool result = false;
|
|
try
|
|
{
|
|
|
|
BaseSpaceInfo spaceInfo =await _spaceInfoService.GetSpaceInfoBySpaceCode(storeCode, spaceCode);
|
|
if (spaceInfo != null)
|
|
{
|
|
spaceInfo.UnusualFlag = spaceInfo.UnusualFlag == 1 ? 2 : 1;
|
|
result =await _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 async Task<bool> UpdateSpaceStatus(string storeCode, string spaceCode)
|
|
{
|
|
bool result = false;
|
|
try
|
|
{
|
|
|
|
BaseSpaceInfo spaceInfo =await _spaceInfoService.GetSpaceInfoBySpaceCode(storeCode, spaceCode);
|
|
if (spaceInfo != null)
|
|
{
|
|
spaceInfo.SpaceStatus = spaceInfo.SpaceStatus == 1 ? 2 : 1;
|
|
result =await _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 async void RefreshBaseSpaceDetails(string storeCode, string spaceCode)
|
|
{
|
|
List<BaseSpaceDetail> spaceDetails =await _spaceDetailService.GetSpaceDetailsBySpaceCode(storeCode, spaceCode);
|
|
if (spaceDetails != null)
|
|
{
|
|
RefreshSpaceDetailsEvent?.Invoke(spaceDetails);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取货道明细
|
|
/// </summary>
|
|
/// <param name="storeCode"></param>
|
|
/// <param name="spaceCode"></param>
|
|
/// <returns></returns>
|
|
public async Task<List<BaseSpaceDetail>> GetBaseSpaceDetails(string storeCode, string spaceCode)
|
|
{
|
|
List<BaseSpaceDetail> spaceDetails =await _spaceDetailService.GetSpaceDetailsBySpaceCode(storeCode, spaceCode);
|
|
return spaceDetails;
|
|
}
|
|
}
|
|
}
|
|
|