/**
 * 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.managementcenter.materialInventory.entity.MaterialInventory;
import com.jeeplus.modules.sg.picking.activiti.entity.*;
import org.activiti.engine.task.Task;
import org.apache.ibatis.annotations.Param;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

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

@MyBatisMapper
public interface ShowListMapper extends BaseMapper<ShowList> {
    String findNumber(String projectId);
//    public List<ShowList> findNewList(ShowList entity);

    /**
     * 保存项目提前领料流程信息
     */
    void newSave(PickApplication pickApplication);

    /**
     * 保存物资上报流程
     */
    void materialReportSave(MaterialReport materialReport);
    /**
     * 更改项目提前领料标识
     * */
    void projectUpdate(PickApplication pickApplication);

    /**
     * 通过id获取申请的信息id
     * */
    String selectProjectId(String id);

    /**
     * 根据流程定义号获得领料清单
     * */
    List<ShowList> findNewList(ShowList showList);

    /**
     * 根据流程定义号获得临时领料清单
     * */
    List<ShowList> findNewTemList(ShowList showList);

    /**
     * 通过项目名称获取提资领料清单
     * */
    List<ShowList> findRaiseList(ShowList showList);

    /**
     * 根据流程定义号获取临时领料清单(物资上报)
     */
    List<ShowList> findMaterialReport(ShowList showList);
    /**
     * 根据流程定义号获得领料清单
     * */
    List<ShowList> inventoryComparisonData(List<String> searchList);

    /**
     * 根据id查询领料清单中的需要修改的那条信息
     * */
    ShowList findOneList(ShowList showList);

    /**
     * 根据id查询临时表中的需要修改的那条信息
     * */
    ShowList findOneTemList(ShowList showList);

    /**
     * 通过流程定义号查询，这个流程选择了的模块
     * */
    String itemQuery(String procInsId);

    /**
     * 更新领料清单
     * */
    void updateAmount(ShowList showList);

    /**
     * 更新领料清单-提资模块
     * */
    void raiseUpdate(ShowList showList);

    /**
     * 更新临时领料清单
     * */
    void updateTemAmount(ShowList showList);

    /**
     * 根据id删除领料清单
     * */
    void deleteData(String id);

    /**
     * 根据id删除领料清单-提资模块
     * */
    void deleteRaiseAll(String id);

    /**
     * 根据id删除领料清单-提资模块
     * */
    void trunCate(String projectName);

    /**
     * 根据id删除临时领料清单
     * */
    void deleteTemData(String id);

    /**
     * 查询流程中物料的可用库存数量
     * */
    List<MaterialInventory> inventoryQuery(List<ShowList> showLists);

    /**
     *查询在所有在《领料:配网物资专职审核领料单》节点的代码的物料清单
     */
    List<ShowList> processListQuery(List<String> list);

    /**
     * 所有项目的领料单
     */
    List<Acquisition> acquisitionList(Acquisition acquisition);

    /**
     * 记录项目中心领导审核领料单通过时间
     */
    void updateManagerTime(String procInsId);

    /**
     * 查询出所有可以领料的id
     */
    List<String> selectAllId();

    /**
     * 修改项目状态表示开启领料
     */
    void updateAcqStatus(String reserveProjectName);

    /**
     * 查询是否已经发起过领料
     * */
    String findAcqStatus(String reserveProjectName);


    List<ExportListing> exportListing(List<String> list);

    /**
     * 根据id从模块表中查询附件
     */
    List<PickIng> findMdImg(String id);

    /**
     * 将数据存入提资领料表
     */

    void replaceData(@Param("list") List<ShowList> list);

}