/**
 * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
 */
package com.jeeplus.modules.sg.picking.activiti.mapper;

import com.jeeplus.core.persistence.BaseMapper;
import com.jeeplus.core.persistence.annotation.MyBatisMapper;
import com.jeeplus.modules.sg.audit.information.entity.Information;
import com.jeeplus.modules.sg.managementcenter.activiti.entity.Construction;
import com.jeeplus.modules.sg.picking.activiti.entity.*;
import com.jeeplus.modules.sg.raiseCapitalDesign.entity.CableSectionData;
import com.jeeplus.modules.sg.raiseCapitalDesign.entity.CableSectionInfo;
import com.jeeplus.modules.sg.raiseCapitalDesign.entity.VoltageInfo;
import com.jeeplus.modules.sys.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 模块显示MAPPER接口
 * @author
 * @version 2019-11-08
 */

@MyBatisMapper
public interface PickIngMapper extends BaseMapper<PickIng> {

    List<String> allVersion();

    void updateSelectNumber(@Param("selectNumber") String selectNumber,@Param("procInsId") String procInsId);

    String findSelectNumber(String procInsId);

    String selectVersion(String procInsId);

    ProjectNumber projectNumber(String procInsId);

    void updateSelectVersion(String version);

    void delAllTem();

    /**
     * 插入领料清单
     * */
    void processList(@Param("showList")List<ShowList> showList);

    /**
     * 获取选择项目的流程实例id与类型
     * */
    List<Acquisition> findErpType(List<String> list);

    /**根据当前的导出的领料单，查询出所有同名称的项目信息*/
    List<Acquisition> findErpAll(List<String> list);

    List<CapitalExport> exportList(@Param("list") List<Acquisition> list,@Param("projectName") String projectName);

    void updateErpAfter(List<Acquisition> list);

    List<ExportBlock> findExportBlock(String procInsId);

    //清空临时表数据
    void truncateTemporary();

    /**
     * 插入临时领料清单
     * */
    void processTemList(@Param("showList")List<ShowList> showList);

    /**
     * 插入临时领料清单 :物资上报
     * */
    void processTemReportList(@Param("showList")List<ShowList> showList);

    //根据流程实例id查询所有符合的临时表数据
    List<ShowList> findAllTem(String procInsId);

    //根据流程定义号查询当前操作的流程进行回显
    List<ShowList> findProcInsIdMaterialReport(String procInsId);

    //根据流程定义号删除当前临时表数据
    Integer deleteProcInsIdMaterialReport(String procInsId);

    //根据项目定义号删除当前流程表
    Integer deleteProcInsIdPickingApplication(String procInsId);

    //根据项目定义号修改项目是否可以进场状态
    void updateEnter(String procInsId);

    //根据项目定义号获取项目名称，更新项目领料清单中的项目进场状态
    void updateListEnter(String procInsId);

    //通过结合获取所有符合条件的项目，更改进场状态
    void updateEnterList(List<Acquisition> acquisitions);

    //通过判断出领料清单中所有的已经完成领料的储备项目名称，更新项目的状态
    void updateProjectEnter(List<String> updateProjectList);


    /**
     * 根据类型名称查询数据
     * @param pickIng
     * @return
     */
    List<VoltageInfo> getListByTheClassName(PickIng pickIng);
    /**
     * 根据类型名称查询数据
     * @param pickIng
     * @return
     */
    List<CableSectionData> getListCableByTheClassName(PickIng pickIng);

}
