package com.ho.flow.service;


import com.ho.common.tools.entity.SimpleUser;
import com.ho.common.tools.util.PageResult;
import com.ho.flow.vo.WorkOrderOld;
import com.ho.flow.vo.WorkOrderCirculation;
import com.ho.flow.vo.req.workorder.WorkOrderAddReq;
import com.ho.flow.vo.req.workorder.WorkOrderApplyReqVO;
import com.ho.flow.vo.req.workorder.WorkOrderPageReq;
import com.ho.flow.vo.req.workorder.WorkOrderUpdateReq;
import com.ho.flow.vo.resp.workorder.WorkOrderOldPageRespVO;

import java.util.List;

/**
import com.ho.flow.vo.WorkOrder;
import com.ho.business.vo.req.workorder.WorkOrderApplyReqVO;

 * @Description 工单管理
 * Author yule
 * Date 2022/10/14 10:43
 */
public interface WorkOrderHisService {


    void insertStation(WorkOrderAddReq vo, SimpleUser simpleUser, String workOrderId);

    PageResult<WorkOrderOldPageRespVO> selectPage(WorkOrderPageReq vo, SimpleUser simpleUser);

    WorkOrderOld findByOrderId(String orderId);

    void acceptWorkOrder(WorkOrderOld workOrderOld, WorkOrderCirculation workOrderAllocate);

    void returnWorkOrder(WorkOrderOld workOrderOld, WorkOrderCirculation workOrderAllocate);

    void closeWorkOrder(WorkOrderOld workOrderOld, WorkOrderCirculation workOrderAllocate);

    void updateWorkOrder(WorkOrderUpdateReq vo, SimpleUser simpleUser);

    //分配工单
    void allocateOrder(WorkOrderApplyReqVO applyReqVO, SimpleUser simpleUser);

    //批量删除
    void deleteWorkOrder(List<String> orderIds);

    int insertEventBatch(List<WorkOrderOld> workOrderOlds);

    WorkOrderOld selectById(String orderId);

    PageResult<WorkOrderOldPageRespVO> selectHisPage(WorkOrderPageReq vo);

    List<WorkOrderOld> selectByEventIds(List<Long> eventIds);

    //根据电站ids 查询
    List<WorkOrderOld> selectByStationIds(List<Long> stationIds);

    //单个删除
    void delete(String orderId);
}
