package com.nanometer.smartlab.service; import com.nanometer.smartlab.entity.*; import com.nanometer.smartlab.entity.enumtype.ApplyStatus; import com.nanometer.smartlab.exception.BusinessException; import org.primefaces.event.FileUploadEvent; import java.io.IOException; import java.math.BigDecimal; import java.sql.Timestamp; import java.util.List; import java.util.Map; /** * Created by johnny on 17/12/12. */ public interface OpeApplyService { public List getOpeApplyList(String reagentName, Timestamp startDeadline,String controlProduct, Timestamp endDeadline, Integer status, Long applyUserId, Long approveUserId, String queryCas, Integer first, Integer pageSize,String applyCode,String applyUserName,Byte isShow); public List getOpeApplyListForApproval(String applyUserName,String approvaUserName,String reagentName, Timestamp startDeadline, Timestamp endDeadline, Integer status, Long applyUserId, Long approveUserId, String queryCas, Integer first, Integer pageSize,String applyCode,String searchApproval); public int getOpeApplyTotalCount(String reagentName, Timestamp startDeadline,String controlProduct, Timestamp endDeadline, Integer status, Long applyUserId, Long approveUserId, String queryCas,String applyCode,String applyUserName,Byte isShow); public int getOpeApplyTotalCountForApproval(String applyUserName,String approvaUserName,String reagentName, Timestamp startDeadline, Timestamp endDeadline, Integer status, Long applyUserId, Long approveUserId, String queryCas,String applyCode,String searchApproval); public OpeApply getOpeApply(Long id); public OpeApply insertOpeApply(OpeApply opeApply); public List insertOpeApplyList(List opeApplyList); public boolean updateOpeApply(OpeApply opeApply); public boolean updateFirst(Long id); public boolean updateFirst2(Long id); public boolean updateOpeApplyProject(String newObjective,String oldObjective); public boolean updateSelectedOpeApplyStatus(String memo, List applyIds, Long adminUserId, List adminApplyIds,List firstUserIds); public boolean updateOpeApplyStatus(ApplyStatus status, String memo, List applyIds); public boolean updateOpeApplyAdminStatus(String memo, List applyIds, Long adminUserId,List firstUserIds); public boolean updateOpeApplyAdminStatus2(String memo, List applyIds, Long adminUserId,List firstUserIds); public boolean deleteOpeApply(List opeApplyList); public boolean isApplyPendingApproval(OpeApply opeApply); public boolean isApplyApproved(OpeApply opeApply); public boolean isAllowApplyCancel(OpeApply opeApply); OpeApply selectOpeApplyByPrimaryKey(Long id); int getOpeApplyReserveTotalCountByName(Long id,String reagentName, String personName); List getOpeApplyReserveListByName(Long id,String reagentName, String personName, Integer first, Integer pageSize); int getOpeApplyReserveTotalCountByNameFor(Long userId,String reagentName, String personName,String productSn,String applyCode,Integer status,Integer isAllApply,boolean isExpired); List getOpeApplyReserveListByNameFor(Long id,String reagentName, String personName, Integer first, Integer pageSize,String productSn,String applyCode,Integer status,Integer isAllApply,boolean isExpired); public boolean updaetOpeApplyPrice(BigDecimal applyPrice,Long id); public boolean updaetOpeApplyStockFlag(int stockFlag,Long id); public boolean cancelApply(ApplyStatus status,Long id); public List selectByReId(Long id); public void updateByReId(Long newReId,Long oldReId); OpeApplyReserve getOpeApplyDetail(Long applyCode); void updateOpeApplyInfo(ApplyStatus storage, Long consigneeId, Timestamp arrivalTime, Long applyId,Integer arrivalNum); void orderInputWarehouse(List opeApplyList,Long consigneeId,Timestamp arrivalTime) throws BusinessException,Exception; void btUpdateApplyAndOrder(List opeList); void importApply(FileUploadEvent event, SysUser user) throws IOException; OpeApplyReserve getOpeApplyReserveListByNameForRowData(Long rowKey); int getOpeApplySupplerRequireMngTotalCount(SysUser user,String reagentName, Timestamp startDeadline, Timestamp endDeadline, int key, byte b); List getOpeApplySupplerRequireMngList(SysUser user,String reagentName, Timestamp startDeadline, Timestamp endDeadline, int key, int first, int pageSize, byte b); /** * 根据id更新申请订单状态 * @param status * @param applyId * @return */ int updateOpeApplyStatusById(Integer status, Long applyId); /** * 获取订单下面的申请列表 * @param orderId * @return */ List getOpeApplyByOrderId(Long orderId); /** * 根据申请id获取试剂信息 * @param applyId * @return */ SysReagent getReagentByApplyId(Long applyId); /** * 获取数量,关联订单 * @param applyCode * @param orderCode * @param orderName * @return */ int getOpeApplyCountWithOrder(String applyCode,String orderCode,String orderName); /** * 获取列表 关联订单 * @param applyCode * @param orderCode * @param orderName * @param first * @param pageSize * @return */ List getOpeApplyListWithOrder(String applyCode,String orderCode,String orderName,int first, int pageSize); }