package com.ruoyi.tms.service.impl;
|
|
import java.util.List;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.ruoyi.common.utils.DateUtils;
|
import javax.annotation.Resource;
|
|
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.tms.domain.TmsArBill;
|
import com.ruoyi.tms.mapper.TmsArBillMapper;
|
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.tms.mapper.TmsArSettlementMapper;
|
import com.ruoyi.tms.domain.TmsArSettlement;
|
import com.ruoyi.tms.service.ITmsArSettlementService;
|
import com.ruoyi.common.core.text.Convert;
|
|
/**
|
* 结算单Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2025-12-13
|
*/
|
@Service
|
@Transactional(rollbackFor = Exception.class)
|
public class TmsArSettlementServiceImpl extends BaseService<TmsArSettlementMapper, TmsArSettlement> implements ITmsArSettlementService
|
{
|
protected final Logger logger = LoggerFactory.getLogger(getClass());
|
@Resource
|
private TmsArSettlementMapper tmsArSettlementMapper;
|
|
@Resource
|
private TmsArBillMapper tmsArBillMapper;
|
|
/**
|
* 查询结算单
|
*
|
* @param id 结算单ID
|
* @return 结算单
|
*/
|
@DataSource(DataSourceType.SLAVE)
|
@Override
|
public TmsArSettlement selectTmsArSettlementById(Integer id)
|
{
|
return tmsArSettlementMapper.selectTmsArSettlementById(id);
|
}
|
|
/**
|
* 查询结算单 记录数
|
*
|
* @param tmsArSettlement 结算单
|
* @return 结算单集合
|
*/
|
@DataSource(DataSourceType.SLAVE)
|
@Override
|
public int selectTmsArSettlementCount(TmsArSettlement tmsArSettlement)
|
{
|
return tmsArSettlementMapper.selectTmsArSettlementCount(tmsArSettlement);
|
}
|
|
/**
|
* 查询结算单列表
|
*
|
* @param tmsArSettlement 结算单
|
* @return 结算单
|
*/
|
@DataSource(DataSourceType.SLAVE)
|
@Override
|
public List<TmsArSettlement> selectTmsArSettlementList(TmsArSettlement tmsArSettlement)
|
{
|
return tmsArSettlementMapper.selectTmsArSettlementList(tmsArSettlement);
|
}
|
|
/**
|
* 查询结算单列表 异步 导出
|
*
|
* @param tmsArSettlement 结算单
|
* @param exportKey 导出功能的唯一标识
|
* @return 结算单集合
|
*/
|
@DataSource(DataSourceType.SLAVE)
|
@Async
|
@Override
|
public void export(TmsArSettlement tmsArSettlement,String exportKey) {
|
|
super.export(TmsArSettlement.class,exportKey,"tmsArSettlementData",(pageNum)->{
|
PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE);
|
return selectTmsArSettlementList(tmsArSettlement);
|
});
|
}
|
|
|
/**
|
* 新增结算单
|
*
|
* @param tmsArSettlement 结算单
|
* @return 结果
|
*/
|
@Override
|
public int insertTmsArSettlement(TmsArSettlement tmsArSettlement)
|
{
|
tmsArSettlement.setCreateTime(DateUtils.getNowDate());
|
tmsArSettlement.setCreateBy(SecurityUtils.getUsername());
|
|
|
tmsArBillMapper.update(null,
|
new LambdaUpdateWrapper<TmsArBill>()
|
.setSql("settled_amount = settled_amount + " + tmsArSettlement.getSettleAmount())
|
.setSql(
|
"status = CASE " +
|
"WHEN settled_amount + " + tmsArSettlement.getSettleAmount() + " >= settle_amount THEN 2 " +
|
"ELSE 1 END"
|
)
|
.eq(TmsArBill::getId, tmsArSettlement.getBillId())
|
);
|
|
return tmsArSettlementMapper.insertTmsArSettlement(tmsArSettlement);
|
}
|
|
/**
|
* 新增结算单[批量]
|
*
|
* @param tmsArSettlements 结算单
|
* @return 结果
|
*/
|
@Override
|
public int insertTmsArSettlementBatch(List<TmsArSettlement> tmsArSettlements)
|
{
|
int rows = tmsArSettlementMapper.insertTmsArSettlementBatch(tmsArSettlements);
|
return rows;
|
}
|
|
/**
|
* 修改结算单
|
*
|
* @param tmsArSettlement 结算单
|
* @return 结果
|
*/
|
@Override
|
public int updateTmsArSettlement(TmsArSettlement tmsArSettlement)
|
{
|
tmsArSettlement.setUpdateTime(DateUtils.getNowDate());
|
return tmsArSettlementMapper.updateTmsArSettlement(tmsArSettlement);
|
}
|
|
/**
|
* 修改结算单[批量]
|
*
|
* @param tmsArSettlements 结算单
|
* @return 结果
|
*/
|
@Override
|
public int updateTmsArSettlementBatch(List<TmsArSettlement> tmsArSettlements){
|
return tmsArSettlementMapper.updateTmsArSettlementBatch(tmsArSettlements);
|
}
|
|
/**
|
* 删除结算单对象
|
*
|
* @param ids 需要删除的数据ID
|
* @return 结果
|
*/
|
@Override
|
public int deleteTmsArSettlementByIds(String ids)
|
{
|
return deleteTmsArSettlementByIds(Convert.toIntArray(ids));
|
}
|
|
/**
|
* 删除结算单对象
|
*
|
*
|
* @param ids 需要删除的数据ID
|
* @return 结果
|
*/
|
@Override
|
public int deleteTmsArSettlementByIds(Integer[] ids)
|
{
|
return tmsArSettlementMapper.deleteTmsArSettlementByIds(ids);
|
}
|
|
/**
|
* 删除结算单信息
|
*
|
* @param id 结算单ID
|
* @return 结果
|
*/
|
@Override
|
public int deleteTmsArSettlementById(Integer id)
|
{
|
return tmsArSettlementMapper.deleteTmsArSettlementById(id);
|
}
|
}
|