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