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 所有自动库区
///
/// 所有自动库区
///
///
[HttpGet]
public OperateResult GetAutoAreas()
{
return ValidateToken(t =>
{
var autoAreasList = BLLCreator.Create().GetAutoAreas();
return OperateResult.Succeed(null, autoAreasList);
});
}
#endregion
#region 所有波次策略
///
/// 所有波次策略
///
///
///
[HttpGet]
public OperateResult GetWaveStrategy(string stockCode)
{
return ValidateToken(t =>
{
var waveStrategyValues = BLLCreator.CreateDapper().GetList(new
{
CN_S_STOCK_CODE = stockCode,
CN_S_CODE = new List
{
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 修改波次策略
///
/// 修改波次策略
///
///
///
[HttpPost]
public OperateResult UpdateWaveStrategy(PostEntity postEntity)
{
return ValidateToken(postEntity.TokenId, t =>
{
var waveStrategyValue = postEntity.GetPostData>();
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().UpdateSetValue(waveStrategyValue);
});
}
#endregion
#region 切换库区模式
///
/// 切换库区模式
///
///
///
///
[HttpGet]
public OperateResult SetServiceMode(string areaCode, string serviceMode)
{
return ValidateToken(t =>
{
var areaEntity = BLLCreator.Create().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().CanSwitchedIn(areaEntity))
areaEntity.CN_S_CURRENT_MODE = Constants.CurrentMode_In;
if (BLLCreator.Create().UpdateServiceMode(areaEntity))
return OperateResult.Succeed();
return OperateResult.Error("切换失败");
}
if (serviceMode == Constants.CurrentMode_Out)
{
areaEntity.CN_S_CURRENT_MODE = Constants.CurrentMode_WaitOut;
if (BLLCreator.Create().CanSwitchedOut())
areaEntity.CN_S_CURRENT_MODE = Constants.CurrentMode_Out;
if (BLLCreator.Create().UpdateServiceMode(areaEntity))
return OperateResult.Succeed();
return OperateResult.Error("切换失败");
}
return OperateResult.Error("只能切换出库和入库模式");
});
}
#endregion
}
}