using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using WCS.Entity.fj;
using wms.dto.request.fj;
using wms.dto.request.hj;
using wms.dto.request.share;
using wms.dto.response;
using wms.dto.response.fj;
using wms.service.Service;
using wms.sqlsugar.model;
using wms.sqlsugar.model.fj;
namespace wms.service.IService
{
    /// 
    ///  分拣服务接口
    /// 
    public interface IFJService
    {
        public string GetSysConfigContentByCode(string code);
        public bool SyncMaterInfo(List ResData);
        public bool SyncMaterInfoLX(List ResData);
        public SRes WetFormulaInfo(WetFormulaInfoRequest reqDto);
        public SRes SyncMachineInfo(SyncMachineInfoRequest ResData);
        public fjSysConfig GetSysConfigByCode(string code);
        public fjSysConfig GetSysConfigByExpression(Expression> WhereExpression);
        public List GetBillPushinfoList(Expression> WhereExpression, bool type = false);
        public bool UpdatePushModelColumns(UpdateModelColumns updateModel);
        public bool UpdateSysConfigModelColumns(UpdateModelColumns updateModel);
        List GetBaseMatinfoList(Expression> WhereExpression);
        bool UpdateMaterModelColumns(UpdateModelColumns updateModel);
        public bool UpdateMaterModel(BaseMatinfo updateModel);
        public bool UpdateBillPushinfoModelColumns(UpdateModelColumns updateModel);
        public SRes CurtainProductionOrder(CurtainProductionOrderRequest reqDto);
        public SRes SpoolMaterialInfoTrans(SpoolMaterialInfoTransRequest reqDto);
        public SRes ManualBuildStockTrans(ManualBuildStockTransRequest reqDto);
        /// 
        ///  江景获取流向
        /// 
        /// 
        /// 
        public SRes AllocatedSpoolFlow(AllocatedSpoolFlowRequest reqDto);
        /// 
        ///  MES获取流向异常信息
        /// 
        /// 
        /// 
        public SRes QueryFlowDirectionExceptions(GetFlowExceptionResultsRequest reqDto);
        public SRes ManualBuildEmptyStock(ManualBuildEmptyStockRequest reqDto);
        public AgvCallbackResponse AgvCallback(AgvCallbackRequest reqDto);
        public SRes CurtainProductionStockOut(CurtainProductionStockOutRequest reqDto);
        /// 
        /// 创建货位,用于少数虚拟货位及平库
        /// 
        /// 仓库号
        /// 货位号
        /// 
        public SRes CreatWarecell(string WarehouseCode, string Code);
        /// 
        ///  帘线叫料接口(人工码垛托盘)
        /// 
        /// 
        /// 
        public SRes CurtainProductionStockOut1(CurtainProductionStockOutRequest1 reqDto);
        public SRes ManualCurtainProductionStockOut(ManualCurtainProductionStockOut reqDto);
        public bool AllocationWarehouseSort(AllocationWarehouseSortRequest reqDto);
        public SRes ProductionBack(FjProductionBackRequest reqDto);
        public SRes ProductionLeftFeedBack(string doccode);
        /// 
        ///  人工创建满托入库任务
        /// 
        /// 
        /// 
        public SRes CreateMaterialPalletWarehouTask(CreateMaterialPalletWarehouTaskRequest reqDto);
        /// 
        ///  人工创建UT满托入库任务
        /// 
        /// 
        /// 
        public SRes CreateMaterialUTPalletWarehouTask(CreateMaterialPalletWarehouTaskRequest reqDto);
        /// 
        ///  芯股满托创建库存信息
        /// 
        /// 
        /// 
        public SRes CreateMaterialPalletWarehouTask1(CreateMaterialPalletWarehouTask1Request reqDto);
        /// 
        ///  重绕区组盘信息
        /// 
        /// 
        /// 
        public SRes CreateMaterialPalletWarehouTask2(RewindFullPalletTaskRequest reqDto);
        /// 
        ///  创建退料任务
        /// 
        /// 
        /// 
        public SRes MaterialReturnTaskCreator(MaterialReturnTaskCreatorRequest reqDto);
        public SRes ErrorMaterialStockOut(FjErrorMaterialStockOutRequest reqDto);
        public SRes BGradeMaterialStockOut(BGradeMaterialStockOutRequest reqDto);
        public SRes StockChange(FjStockChangeRequest reqDto);
        public SRes BomInfoTrans(BomInfoTransRequest reqDto);
        public SRes CurtainOrderStartCheck(CurtainOrderStartCheckRequest reqDto);
        public GetFJCurStockListResponse GetCurStockList(GetFJCurStockListRequest reqDto);
        /// 
        /// 创建芯股用空托入库任务
        /// 
        public void CreateCoreStrandEmptyPalletEnterWarehouse();
        /// 
        /// 创建芯股站台用的空托出库任务
        /// 
        /// 
        public SRes CoreStrandSupportReplenishEmptyPallet();
        /// 
        ///  变更流向
        /// 
        /// 
        /// 
        public SRes EditorialFlow(FjEditorialFlowRequest reqDto);
        /// 
        ///  分拣北自动生成库位
        /// 
        /// 
        public SRes FJ1NorthAutoGenerateLocation();
        /// 
        /// 获取垛型数组
        /// 
        /// 
        /// 
        public SRes> FjGetSetGrpList(FjGetSetGrpListRequest req);
        /// 
        ///  分拣南自动生成库位
        /// 
        /// 
        public SRes FJSouthAutoGenerateLocation();
        /// 
        ///  分拣北环形库自动生成库位
        /// 
        /// 
        public SRes RingLibraryAutoGenerateLocation(string WareCode);
        /// 
        ///  环形库申请货位
        /// 
        /// 
        public SRes RingApplyStockInLoc(FJApplyStockInLocRequest reqEntity);
        /// 
        ///  一楼空托盘人工入库任务创建
        /// 
        /// 
        /// 
        public SRes OneFloorWorkerBuildEmptyPalletsStock(FJBuildEmptyPalletsStockRequest reqDto);
        /// 
        ///  申请货位
        /// 
        /// 
        /// 
        public SRes ApplyStockInLoc(FJApplyStockInLocRequest reqDto);
        /// 
        ///  平库申请货位
        /// 
        /// 
        /// 
        public SRes FindAvailableFlatStorageSlot(FJApplyStockInLocRequest reqEntity);
        /// 
        ///  手动出库
        /// 
        /// 
        /// 
        public string ManualTask(FJManualTaskRequest reqDto);
        /// 
        ///  完成任务
        /// 
        /// 
        /// 
        public SRes CompleteTask(CompleteTaskRequest reqDto);
        /// 
        ///  取消任务
        /// 
        /// 
        /// 
        public SRes CancelTask(CompleteTaskRequest reqDto);
        /// 
        ///  工字轮/芯股进入主线扫码
        /// 
        /// 
        ///  EnteMainLine(FJEnteMainLineRequest reqDto);
        /// 
        ///  申请空托盘组出库任务
        /// 
        /// 
        /// 
        public SRes ApplyEmptyPalletGroupOutStorage(FjApplyEmptyPalletGroupOutStorageRequest reqDto);
        /// 
        ///   生成组盘任务,空托盘
        /// 
        /// 
        /// 
        public SRes GroupTask(FJBuildEmptyPalletsStockDto reqDto);
        /// 
        ///   生成组盘任务,空托盘
        /// 
        /// 
        /// 
        public SRes BingPallet(FJBingPalletDto reqDto);
        /// 
        ///   生成组盘任务,空托盘
        /// 
        /// 
        /// 
        public SRes GetTwoPallet(FJGetTwoPalletDto reqDto);
        /// 
        ///   生成组盘任务,空托盘
        /// 
        /// 
        /// 
        public SRes ApplyPalletizingStockOut(RingApplyPalletizingStockOutRequest reqDto);
        /// 
        ///  堆垛机出库完成
        /// 
        /// 
        /// 
        public SRes SrmPickOutCompleted(SrmPickOutCompletedRequest reqDto);
        public SRes PalletizingCreateseErrorTasks(PalletizingCreateseErrorTasksRequest reqDto);
        fjSysJob GetSysJobEntity(DetailRequest2Str req);
        fjSysJob GetSysJobEntityByCode(string Code);
        List GetSysApiDetail(long Id);
        List GetJobList();
        /// 
        /// 查询任务  通过条码查询任务
        /// 
        /// 条码
        /// 
        public SRes GetTaskInfo(FJGetTaskInfoRequest dto);
        #region 数据归档
        /// 
        /// 库存流水信息数据归档
        /// 
        /// 
        public SRes InvFlowMoveToHistory();
        #endregion 数据归档
    }
    public class FJGetTaskInfoRequest
    {
        /// 
        ///  条码
        /// 
        public string BarCode { get; set; }
    }
}