using HH.WMS.BLL;
|
using HH.WMS.BLL.Basic;
|
using HH.WMS.BLL.SysMgr;
|
using HH.WMS.Common;
|
using HH.WMS.Entitys;
|
using HH.WMS.Entitys.Sys;
|
using HH.WMS.WebApi.Areas.Common.Controllers;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Net;
|
using System.Net.Http;
|
using System.Web.Http;
|
|
namespace HH.WMS.WebApi.Areas.Sys.Controllers
|
{
|
public class WaveSetController : BaseController
|
{
|
#region 所有自动库区
|
/// <summary>
|
/// 所有自动库区
|
/// </summary>
|
/// <returns></returns>
|
[HttpGet]
|
public OperateResult GetAutoAreas()
|
{
|
return ValidateToken(t =>
|
{
|
var autoAreasList = BLLCreator.Create<TN_AB_B_STOCK_AREABLL>().GetAutoAreas();
|
return OperateResult.Succeed(null, autoAreasList);
|
});
|
}
|
#endregion
|
|
#region 所有波次策略
|
/// <summary>
|
/// 所有波次策略
|
/// </summary>
|
/// <param name="stockCode"></param>
|
/// <returns></returns>
|
[HttpGet]
|
public OperateResult GetWaveStrategy(string stockCode)
|
{
|
return ValidateToken(t =>
|
{
|
var waveStrategyValues = BLLCreator.CreateDapper<TN_WM_B_STRATEGY_VALUEEntity>().GetList(new
|
{
|
CN_S_STOCK_CODE = stockCode,
|
CN_S_CODE = new List<string>
|
{
|
Constants.Strategy_StartTime,
|
Constants.Strategy_EndTime,
|
Constants.Strategy_SeveralMaxCreateWave,
|
Constants.Strategy_LessMinute
|
}
|
});
|
var startTime = waveStrategyValues.Find(f => f.CN_S_CODE == Constants.Strategy_StartTime);
|
if (startTime == null) return OperateResult.Error("请先维护策略值:" + Constants.Strategy_StartTime);
|
var endTime = waveStrategyValues.Find(f => f.CN_S_CODE == Constants.Strategy_EndTime);
|
if (endTime == null) return OperateResult.Error("请先维护策略值:" + Constants.Strategy_EndTime);
|
var severalMaxCreateWave = waveStrategyValues.Find(f => f.CN_S_CODE == Constants.Strategy_SeveralMaxCreateWave);
|
if (severalMaxCreateWave == null) return OperateResult.Error("请先维护策略值:" + Constants.Strategy_SeveralMaxCreateWave);
|
var lessMinute = waveStrategyValues.Find(f => f.CN_S_CODE == Constants.Strategy_LessMinute);
|
if (lessMinute == null) return OperateResult.Error("请先维护策略值:" + Constants.Strategy_LessMinute);
|
return OperateResult.Succeed(null, new
|
{
|
StartTime = startTime.CN_S_VALUE,
|
EndTime = endTime.CN_S_VALUE,
|
SeveralMaxCreateWave = severalMaxCreateWave.CN_S_VALUE,
|
LessMinute = lessMinute.CN_S_VALUE
|
});
|
});
|
}
|
#endregion
|
|
#region 修改波次策略
|
/// <summary>
|
/// 修改波次策略
|
/// </summary>
|
/// <param name="postEntity"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public OperateResult UpdateWaveStrategy(PostEntity postEntity)
|
{
|
return ValidateToken(postEntity.TokenId, t =>
|
{
|
var waveStrategyValue = postEntity.GetPostData<List<TN_WM_B_STRATEGY_VALUEEntity>>();
|
if (waveStrategyValue == null || !waveStrategyValue.Any())
|
return OperateResult.Error("参数错误");
|
waveStrategyValue.ForEach(f =>
|
{
|
f.CN_S_MODIFY = t.CN_S_LOGIN;
|
f.CN_S_MODIFY_BY = t.CN_S_NAME;
|
f.CN_T_MODFIY = DateTime.Now;
|
});
|
return BLLCreator.Create<TN_WM_B_STRATEGY_VALUEBLL>().UpdateSetValue(waveStrategyValue);
|
});
|
}
|
#endregion
|
|
#region 切换库区模式
|
/// <summary>
|
/// 切换库区模式
|
/// </summary>
|
/// <param name="areaCode"></param>
|
/// <param name="serviceMode"></param>
|
/// <returns></returns>
|
[HttpGet]
|
public OperateResult SetServiceMode(string areaCode, string serviceMode)
|
{
|
return ValidateToken(t =>
|
{
|
var areaEntity = BLLCreator.Create<TN_AB_B_STOCK_AREABLL>().GetStockAreaEntity(areaCode);
|
if (areaEntity == null)
|
return OperateResult.Error("未找到库区:" + areaCode);
|
//切换到入库模式
|
if (serviceMode == Constants.CurrentMode_In)
|
{
|
areaEntity.CN_S_CURRENT_MODE = Constants.CurrentMode_WaitIn;
|
if (BLLCreator.Create<WaveSetBLL>().CanSwitchedIn(areaEntity))
|
areaEntity.CN_S_CURRENT_MODE = Constants.CurrentMode_In;
|
if (BLLCreator.Create<TN_AB_B_STOCK_AREABLL>().UpdateServiceMode(areaEntity))
|
return OperateResult.Succeed();
|
return OperateResult.Error("切换失败");
|
}
|
if (serviceMode == Constants.CurrentMode_Out)
|
{
|
areaEntity.CN_S_CURRENT_MODE = Constants.CurrentMode_WaitOut;
|
if (BLLCreator.Create<WaveSetBLL>().CanSwitchedOut())
|
areaEntity.CN_S_CURRENT_MODE = Constants.CurrentMode_Out;
|
if (BLLCreator.Create<TN_AB_B_STOCK_AREABLL>().UpdateServiceMode(areaEntity))
|
return OperateResult.Succeed();
|
return OperateResult.Error("切换失败");
|
}
|
return OperateResult.Error("只能切换出库和入库模式");
|
});
|
}
|
#endregion
|
}
|
}
|