| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | using System;using System.Collections.Generic;using System.Text;using wms.dto.response.hj;using wms.service.IService;namespace wms.service.Service{    public static class WorkStrategyFactory    {        /// <summary>        /// 先进先出        /// </summary>        /// <param name="days"></param>        /// <param name="isContainer"></param>        /// <returns></returns>        private static IWorkStrategyService CreateFIFOStrategyService(int days, bool isContainer)        {            return new FIFOStrategyService(days, isContainer);        }        /// <summary>        /// 先进后出        /// </summary>        /// <param name="days"></param>        /// <param name="isContainer"></param>        /// <returns></returns>        private static IWorkStrategyService CreateFILOStrategyService(int days, bool isContainer)        {            return new FILOStrategyService(days, isContainer);        }        /// <summary>        /// 同种物料摆放一起        /// </summary>        /// <param name="days"></param>        /// <param name="isContainer"></param>        /// <returns></returns>        private static IWorkStrategyService CreateStockInSameMaterialStrategyService(string materialCode, bool isContainer)        {            return new StockInSameMaterialStrategyService(materialCode, isContainer);        }        /// <summary>        /// 列递增层递增        /// </summary>        /// <param name="days"></param>        /// <param name="isContainer"></param>        /// <returns></returns>        private static IWorkStrategyService CreateColumnToLayerIncreaseService()        {            return new ColumnToLayerIncreaseService();        }        /// <summary>        /// 混盘优先        /// </summary>        /// <param name="days"></param>        /// <param name="isContainer"></param>        /// <returns></returns>        private static IWorkStrategyService CreateMixFirstStrategyService(bool isContainer)        {            return new MixFOStrategyService(isContainer);        }        public static IWorkStrategyService CreateStrategyService(BaseStrategyDto baseStrategyDto, bool isContainer)        {            if (baseStrategyDto.Code == "FIFO")            {                return CreateFIFOStrategyService(baseStrategyDto.SameEffectDays, isContainer);            }            else if (baseStrategyDto.Code == "FILO")            {                return CreateFILOStrategyService(baseStrategyDto.SameEffectDays, isContainer);            }            else if (baseStrategyDto.Code == "StockInSameMaterialStrategy")            {                return CreateStockInSameMaterialStrategyService(baseStrategyDto.MaterialCode, isContainer);            }            else if (baseStrategyDto.Code == "ColumnToLayerIncrease")            {                return CreateColumnToLayerIncreaseService();            }            else if (baseStrategyDto.Code == "MixFirst")            {                return CreateMixFirstStrategyService(isContainer);            }            return null;        }    }}
 |