package com.ruoyi.cwgl.service.impl; import java.util.List; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.utils.DateUtils; import javax.annotation.Resource; import org.springframework.transaction.annotation.Transactional; import org.springframework.stereotype.Service; import org.springframework.scheduling.annotation.Async; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.annotation.DataSource; import com.ruoyi.common.enums.DataSourceType; import com.ruoyi.common.core.service.BaseService; import com.ruoyi.cwgl.mapper.InvoiceBillDetailMapper; import com.ruoyi.cwgl.domain.InvoiceBillDetail; import com.ruoyi.cwgl.service.IInvoiceBillDetailService; import com.ruoyi.common.core.text.Convert; /** * 发票业务商品明细Service业务层处理 * * @author ruoyi * @date 2026-01-07 */ @Service @Transactional(rollbackFor = Exception.class) public class InvoiceBillDetailServiceImpl extends BaseService implements IInvoiceBillDetailService { protected final Logger logger = LoggerFactory.getLogger(getClass()); @Resource private InvoiceBillDetailMapper invoiceBillDetailMapper; /** * 查询发票业务商品明细 * * @param id 发票业务商品明细ID * @return 发票业务商品明细 */ @DataSource(DataSourceType.SLAVE) @Override public InvoiceBillDetail selectInvoiceBillDetailById(Integer id) { return invoiceBillDetailMapper.selectInvoiceBillDetailById(id); } /** * 查询发票业务商品明细 记录数 * * @param invoiceBillDetail 发票业务商品明细 * @return 发票业务商品明细集合 */ @DataSource(DataSourceType.SLAVE) @Override public int selectInvoiceBillDetailCount(InvoiceBillDetail invoiceBillDetail) { return invoiceBillDetailMapper.selectInvoiceBillDetailCount(invoiceBillDetail); } /** * 查询发票业务商品明细列表 * * @param invoiceBillDetail 发票业务商品明细 * @return 发票业务商品明细 */ @DataSource(DataSourceType.SLAVE) @Override public List selectInvoiceBillDetailList(InvoiceBillDetail invoiceBillDetail) { return invoiceBillDetailMapper.selectInvoiceBillDetailList(invoiceBillDetail); } /** * 查询发票业务商品明细列表 异步 导出 * * @param invoiceBillDetail 发票业务商品明细 * @param exportKey 导出功能的唯一标识 * @return 发票业务商品明细集合 */ @DataSource(DataSourceType.SLAVE) @Async @Override public void export(InvoiceBillDetail invoiceBillDetail,String exportKey) { super.export(InvoiceBillDetail.class,exportKey,"invoiceBillDetailData",(pageNum)->{ PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE); return selectInvoiceBillDetailList(invoiceBillDetail); }); } /** * 新增发票业务商品明细 * * @param invoiceBillDetail 发票业务商品明细 * @return 结果 */ @Override public int insertInvoiceBillDetail(InvoiceBillDetail invoiceBillDetail) { invoiceBillDetail.setCreateTime(DateUtils.getNowDate()); return invoiceBillDetailMapper.insertInvoiceBillDetail(invoiceBillDetail); } /** * 新增发票业务商品明细[批量] * * @param invoiceBillDetails 发票业务商品明细 * @return 结果 */ @Override public int insertInvoiceBillDetailBatch(List invoiceBillDetails) { int rows = invoiceBillDetailMapper.insertInvoiceBillDetailBatch(invoiceBillDetails); return rows; } /** * 修改发票业务商品明细 * * @param invoiceBillDetail 发票业务商品明细 * @return 结果 */ @Override public int updateInvoiceBillDetail(InvoiceBillDetail invoiceBillDetail) { invoiceBillDetail.setUpdateTime(DateUtils.getNowDate()); return invoiceBillDetailMapper.updateInvoiceBillDetail(invoiceBillDetail); } /** * 修改发票业务商品明细[批量] * * @param invoiceBillDetails 发票业务商品明细 * @return 结果 */ @Override public int updateInvoiceBillDetailBatch(List invoiceBillDetails){ return invoiceBillDetailMapper.updateInvoiceBillDetailBatch(invoiceBillDetails); } /** * 删除发票业务商品明细对象 * * @param ids 需要删除的数据ID * @return 结果 */ @Override public int deleteInvoiceBillDetailByIds(String ids) { return deleteInvoiceBillDetailByIds(Convert.toIntArray(ids)); } /** * 删除发票业务商品明细对象 * * * @param ids 需要删除的数据ID * @return 结果 */ @Override public int deleteInvoiceBillDetailByIds(Integer[] ids) { return invoiceBillDetailMapper.deleteInvoiceBillDetailByIds(ids); } /** * 删除发票业务商品明细信息 * * @param id 发票业务商品明细ID * @return 结果 */ @Override public int deleteInvoiceBillDetailById(Integer id) { return invoiceBillDetailMapper.deleteInvoiceBillDetailById(id); } /** * 根据发票管理ID删除发票业务商品明细 * * @param invoiceManageId 发票管理ID * @return 结果 */ @Override public int deleteInvoiceBillDetailByInvoiceManageId(Integer invoiceManageId) { return invoiceBillDetailMapper.delete(new QueryWrapper() .eq("invoice_manage_id", invoiceManageId)); } }