package com.ruoyi.cwgl.service.impl; import java.util.List; import cn.hutool.core.collection.CollectionUtil; import com.ruoyi.common.utils.DateUtils; import javax.annotation.Resource; import com.ruoyi.cwgl.domain.ReceivableLineTruckPriceRule; 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.PendingSettlementBusinessMapper; import com.ruoyi.cwgl.domain.PendingSettlementBusiness; import com.ruoyi.cwgl.service.IPendingSettlementBusinessService; import com.ruoyi.common.core.text.Convert; /** * 待入账业务Service业务层处理 * * @author ruoyi * @date 2025-08-07 */ @Service @Transactional(rollbackFor = Exception.class) public class PendingSettlementBusinessServiceImpl extends BaseService implements IPendingSettlementBusinessService { protected final Logger logger = LoggerFactory.getLogger(getClass()); @Resource private PendingSettlementBusinessMapper pendingSettlementBusinessMapper; /** * 查询待入账业务 * * @param id 待入账业务ID * @return 待入账业务 */ @DataSource(DataSourceType.SLAVE) @Override public PendingSettlementBusiness selectPendingSettlementBusinessById(Integer id) { return pendingSettlementBusinessMapper.selectPendingSettlementBusinessById(id); } /** * 查询待入账业务 记录数 * * @param pendingSettlementBusiness 待入账业务 * @return 待入账业务集合 */ @DataSource(DataSourceType.SLAVE) @Override public int selectPendingSettlementBusinessCount(PendingSettlementBusiness pendingSettlementBusiness) { return pendingSettlementBusinessMapper.selectPendingSettlementBusinessCount(pendingSettlementBusiness); } /** * 查询待入账业务列表 * * @param pendingSettlementBusiness 待入账业务 * @return 待入账业务 */ @DataSource(DataSourceType.SLAVE) @Override public List selectPendingSettlementBusinessList(PendingSettlementBusiness pendingSettlementBusiness) { return pendingSettlementBusinessMapper.selectPendingSettlementBusinessList(pendingSettlementBusiness); } /** * 查询待入账业务列表 异步 导出 * * @param pendingSettlementBusiness 待入账业务 * @param exportKey 导出功能的唯一标识 * @return 待入账业务集合 */ @DataSource(DataSourceType.SLAVE) @Async @Override public void export(PendingSettlementBusiness pendingSettlementBusiness,String exportKey) { super.export(PendingSettlementBusiness.class,exportKey,"pendingSettlementBusinessData",(pageNum)->{ PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE); return selectPendingSettlementBusinessList(pendingSettlementBusiness); }); } /** * 新增待入账业务 * * @param pendingSettlementBusiness 待入账业务 * @return 结果 */ @Override public int insertPendingSettlementBusiness(PendingSettlementBusiness pendingSettlementBusiness) { pendingSettlementBusiness.setCreateTime(DateUtils.getNowDate()); return pendingSettlementBusinessMapper.insertPendingSettlementBusiness(pendingSettlementBusiness); } /** * 新增待入账业务[批量] * * @param pendingSettlementBusinesss 待入账业务 * @return 结果 */ @Override public int insertPendingSettlementBusinessBatch(List pendingSettlementBusinesss) { int rows = pendingSettlementBusinessMapper.insertPendingSettlementBusinessBatch(pendingSettlementBusinesss); return rows; } /** * 修改待入账业务 * * @param pendingSettlementBusiness 待入账业务 * @return 结果 */ @Override public int updatePendingSettlementBusiness(PendingSettlementBusiness pendingSettlementBusiness) { pendingSettlementBusiness.setUpdateTime(DateUtils.getNowDate()); return pendingSettlementBusinessMapper.updatePendingSettlementBusiness(pendingSettlementBusiness); } /** * 修改待入账业务[批量] * * @param pendingSettlementBusinesss 待入账业务 * @return 结果 */ @Override public int updatePendingSettlementBusinessBatch(List pendingSettlementBusinesss){ return pendingSettlementBusinessMapper.updatePendingSettlementBusinessBatch(pendingSettlementBusinesss); } /** * 删除待入账业务对象 * * @param ids 需要删除的数据ID * @return 结果 */ @Override public int deletePendingSettlementBusinessByIds(String ids) { return deletePendingSettlementBusinessByIds(Convert.toIntArray(ids)); } /** * 删除待入账业务对象 * * * @param ids 需要删除的数据ID * @return 结果 */ @Override public int deletePendingSettlementBusinessByIds(Integer[] ids) { return pendingSettlementBusinessMapper.deletePendingSettlementBusinessByIds(ids); } /** * 删除待入账业务信息 * * @param id 待入账业务ID * @return 结果 */ @Override public int deletePendingSettlementBusinessById(Integer id) { return pendingSettlementBusinessMapper.deletePendingSettlementBusinessById(id); } @Override public void insertPendingSettlement(List pendingSettlementBusinesses ) { if (CollectionUtil.isNotEmpty(pendingSettlementBusinesses)) { pendingSettlementBusinessMapper.insertPendingSettlementBusinessBatch(pendingSettlementBusinesses); } } @DataSource(DataSourceType.CWSJ) @Override public List selectPendingSettlement2Cw() { List pendingSettlementBusinesses = pendingSettlementBusinessMapper.selectPendingSettlement2Cw(); //更新同步状态用 /* Integer[] ids = pendingSettlementBusinesses.stream().map(PendingSettlementBusiness::getServiceId).toArray(Integer[]::new); int i = pendingSettlementBusinessMapper.updeteCwData(ids); if (i>0){ logger.info("同步状态更新成功"); }*/ return pendingSettlementBusinesses; } @DataSource(DataSourceType.CWSJ) @Override public int updateCwData(Integer[] ids) { return pendingSettlementBusinessMapper.updeteCwData(ids); } @DataSource(DataSourceType.CWSJ) @Override public List selectReceivableLineTruckPriceRule() { return pendingSettlementBusinessMapper.selectReceivableLineTruckPriceRule(); } @DataSource(DataSourceType.CWSJ) @Override public List selectPayableLineTruckPriceRule() { return pendingSettlementBusinessMapper.selectPayableLineTruckPriceRule(); } }