package com.ruoyi.tms.service.impl;
|
|
import java.util.List;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.utils.DateUtils;
|
import javax.annotation.Resource;
|
|
import com.ruoyi.tms.domain.TmsArBillItem;
|
import com.ruoyi.tms.domain.TmsReceivableFee;
|
import com.ruoyi.tms.mapper.TmsArBillItemMapper;
|
import com.ruoyi.tms.mapper.TmsReceivableFeeMapper;
|
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.TmsArBillMapper;
|
import com.ruoyi.tms.domain.TmsArBill;
|
import com.ruoyi.tms.service.ITmsArBillService;
|
import com.ruoyi.common.core.text.Convert;
|
|
/**
|
* 应收账单Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2025-12-13
|
*/
|
@Service
|
@Transactional(rollbackFor = Exception.class)
|
public class TmsArBillServiceImpl extends BaseService<TmsArBillMapper, TmsArBill> implements ITmsArBillService
|
{
|
protected final Logger logger = LoggerFactory.getLogger(getClass());
|
@Resource
|
private TmsArBillMapper tmsArBillMapper;
|
|
@Resource
|
private TmsArBillItemMapper tmsArBillItemMapper;
|
@Resource
|
private TmsReceivableFeeMapper tmsReceivableFeeMapper;
|
|
/**
|
* 查询应收账单
|
*
|
* @param id 应收账单ID
|
* @return 应收账单
|
*/
|
@DataSource(DataSourceType.SLAVE)
|
@Override
|
public TmsArBill selectTmsArBillById(Integer id)
|
{
|
TmsArBill tmsArBill = tmsArBillMapper.selectTmsArBillById(id);
|
tmsArBill.setItems(tmsArBillItemMapper.selectTmsArBillItemList(new TmsArBillItem(){{setBillId( id);setStatus(0);}}));
|
return tmsArBill;
|
}
|
|
/**
|
* 查询应收账单 记录数
|
*
|
* @param tmsArBill 应收账单
|
* @return 应收账单集合
|
*/
|
@DataSource(DataSourceType.SLAVE)
|
@Override
|
public int selectTmsArBillCount(TmsArBill tmsArBill)
|
{
|
return tmsArBillMapper.selectTmsArBillCount(tmsArBill);
|
}
|
|
/**
|
* 查询应收账单列表
|
*
|
* @param tmsArBill 应收账单
|
* @return 应收账单
|
*/
|
@DataSource(DataSourceType.SLAVE)
|
@Override
|
public List<TmsArBill> selectTmsArBillList(TmsArBill tmsArBill)
|
{
|
return tmsArBillMapper.selectTmsArBillList(tmsArBill);
|
}
|
|
/**
|
* 查询应收账单列表 异步 导出
|
*
|
* @param tmsArBill 应收账单
|
* @param exportKey 导出功能的唯一标识
|
* @return 应收账单集合
|
*/
|
@DataSource(DataSourceType.SLAVE)
|
@Async
|
@Override
|
public void export(TmsArBill tmsArBill,String exportKey) {
|
|
super.export(TmsArBill.class,exportKey,"tmsArBillData",(pageNum)->{
|
PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE);
|
return selectTmsArBillList(tmsArBill);
|
});
|
}
|
|
|
/**
|
* 新增应收账单
|
*
|
* @param tmsArBill 应收账单
|
* @return 结果
|
*/
|
@Override
|
public int insertTmsArBill(TmsArBill tmsArBill)
|
{
|
tmsArBill.setCreateTime(DateUtils.getNowDate());
|
return tmsArBillMapper.insertTmsArBill(tmsArBill);
|
}
|
|
@Override
|
public AjaxResult cancelArBill(Integer id) {
|
|
TmsArBillItem billItem = tmsArBillItemMapper.selectTmsArBillItemById(id);
|
if(billItem == null){
|
return AjaxResult.warn("数据不存在");
|
}
|
if(billItem.getStatus() == 1){
|
return AjaxResult.warn("该数据已作废");
|
}
|
billItem.setStatus(1);
|
tmsArBillItemMapper.updateTmsArBillItem(billItem);
|
tmsReceivableFeeMapper.update(new LambdaUpdateWrapper<TmsReceivableFee>()
|
.set(TmsReceivableFee::getStatus,0)
|
.in(TmsReceivableFee::getId, billItem.getArFeeId())
|
);
|
|
tmsArBillMapper.update(new LambdaUpdateWrapper<TmsArBill>()
|
.setSql("settle_amount = settle_amount - " + billItem.getEstimateAmount())
|
.setSql("actual_settlement_amount = actual_settlement_amount - " + billItem.getEstimateAmount())
|
.eq(TmsArBill::getId, billItem.getBillId())
|
);
|
return AjaxResult.success();
|
}
|
|
/**
|
* 新增应收账单[批量]
|
*
|
* @param tmsArBills 应收账单
|
* @return 结果
|
*/
|
@Override
|
public int insertTmsArBillBatch(List<TmsArBill> tmsArBills)
|
{
|
int rows = tmsArBillMapper.insertTmsArBillBatch(tmsArBills);
|
return rows;
|
}
|
|
/**
|
* 修改应收账单
|
*
|
* @param tmsArBill 应收账单
|
* @return 结果
|
*/
|
@Override
|
public int updateTmsArBill(TmsArBill tmsArBill)
|
{
|
tmsArBill.setUpdateTime(DateUtils.getNowDate());
|
return tmsArBillMapper.updateTmsArBill(tmsArBill);
|
}
|
|
/**
|
* 修改应收账单[批量]
|
*
|
* @param tmsArBills 应收账单
|
* @return 结果
|
*/
|
@Override
|
public int updateTmsArBillBatch(List<TmsArBill> tmsArBills){
|
return tmsArBillMapper.updateTmsArBillBatch(tmsArBills);
|
}
|
|
/**
|
* 删除应收账单对象
|
*
|
* @param ids 需要删除的数据ID
|
* @return 结果
|
*/
|
@Override
|
public int deleteTmsArBillByIds(String ids)
|
{
|
return deleteTmsArBillByIds(Convert.toIntArray(ids));
|
}
|
|
/**
|
* 删除应收账单对象
|
*
|
*
|
* @param ids 需要删除的数据ID
|
* @return 结果
|
*/
|
@Override
|
public int deleteTmsArBillByIds(Integer[] ids)
|
{
|
return tmsArBillMapper.deleteTmsArBillByIds(ids);
|
}
|
|
/**
|
* 删除应收账单信息
|
*
|
* @param id 应收账单ID
|
* @return 结果
|
*/
|
@Override
|
public int deleteTmsArBillById(Integer id)
|
{
|
return tmsArBillMapper.deleteTmsArBillById(id);
|
}
|
}
|