package com.jsowell.pile.service; import com.jsowell.pile.domain.PileBillingDetail; import com.jsowell.pile.domain.PileBillingRelation; import com.jsowell.pile.domain.PileBillingTemplate; import com.jsowell.pile.dto.CreateOrUpdateBillingTemplateDTO; import com.jsowell.pile.dto.ImportBillingTemplateDTO; import com.jsowell.pile.vo.uniapp.customer.BillingPriceVO; import com.jsowell.pile.vo.uniapp.customer.CurrentTimePriceDetails; import com.jsowell.pile.vo.web.BillingDetailVO; import com.jsowell.pile.vo.web.BillingTemplateVO; import com.jsowell.pile.vo.web.EchoBillingTemplateVO; import java.util.List; /** * 计费模板Service接口 * * @author jsowell * @date 2022-09-20 */ public interface PileBillingTemplateService { /** * 查询计费模板 * * @param id 计费模板主键 * @return 计费模板 */ public PileBillingTemplate selectPileBillingTemplateById(Long id); /** * 查询计费模板列表 * * @param pileBillingTemplate 计费模板 * @return 计费模板集合 */ public List selectPileBillingTemplateList(PileBillingTemplate pileBillingTemplate); /** * 新增计费模板 * * @param pileBillingTemplate 计费模板 * @return 结果 */ public int insertPileBillingTemplate(PileBillingTemplate pileBillingTemplate); /** * 修改计费模板 * * @param pileBillingTemplate 计费模板 * @return 结果 */ public int updatePileBillingTemplate(PileBillingTemplate pileBillingTemplate); /** * 批量删除计费模板 * * @param ids 需要删除的计费模板主键集合 * @return 结果 */ public int deletePileBillingTemplateByIds(Long[] ids); /** * 删除计费模板信息 * * @param id 计费模板主键 * @return 结果 */ public int deletePileBillingTemplateById(Long id); /** * 新增计费模板 * * @param dto 参数 * @return 计费模板id */ void createBillingTemplate(CreateOrUpdateBillingTemplateDTO dto); /** * 查询公共计费模板 * * @return */ List queryPublicBillingTemplateList(); /** * 查询站点计费模板 * * @param stationId 站点id * @return */ List queryStationBillingTemplateList(String stationId); List queryStationPreferentialBillingTemplateList(String stationId); /** * 查询站点计费模板 * * @param stationId 站点id * @return */ List queryStationBillingTemplateListForUniApp(String stationId); /** * 查询正在使用中的计费模板 * @param stationId 站点id * @return */ BillingTemplateVO queryUsedBillingTemplate(String stationId); List conversionParameters(List billingDetailList); /** * 查询计费价格详情 * @param stationId 站点id * @return */ List queryBillingPrice(String stationId); List queryBillingPriceOld(String stationId); /** * 通过桩sn号查询计费模板信息 * * @param pileSn 桩sn * @return 计费模板编号 */ BillingTemplateVO selectBillingTemplateDetailByPileSn(String pileSn); /** * 站点导入计费模板 * * @param dto * @return */ boolean stationImportBillingTemplate(ImportBillingTemplateDTO dto); byte[] generateBillingTemplateMsgBody(String pileSn, BillingTemplateVO billingTemplateVO); /** * 根据计费模板id查询计费模板信息 * * @param templateId 计费模板id * @return 计费模板信息 */ BillingTemplateVO selectBillingTemplateByTemplateId(String templateId); /** * 保存计费模板和桩关系 * * @param relationList */ @Deprecated void insertPileBillingRelation(List relationList); /** * 修改计费模板 * * @param dto */ void updateBillingTemplate(CreateOrUpdateBillingTemplateDTO dto); EchoBillingTemplateVO queryPileBillingTemplateById(Long id); /** * 通过站点id查询当前时间的收费详情 */ CurrentTimePriceDetails getCurrentTimePriceDetails(String stationId); List queryBillingDetailById(Long id); int deletePreferentialBillingTemplate(String stationId); // 批量查询站点计费模板 List selectBillingTemplateByStationIdList(List stationIdList); /** * 修改站点计费模板状态并下发最新模板 * @param stationId 充电站id * @param templateId 模板id * @param deviceType 设备类型 * @return */ int changeStationTemplate(String stationId, String templateId, String deviceType); /** * 创建优惠计费模板 * @param dto * @return */ int createPreferentialBillingTemplate(CreateOrUpdateBillingTemplateDTO dto); /** * 查询优惠计费模板 */ BillingTemplateVO queryPreferentialBillingTemplate(String stationId); }