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 } }