package com.ruoyi.cwgl.service.impl;
|
|
import java.util.List;
|
|
import com.ruoyi.common.utils.DateUtils;
|
import javax.annotation.Resource;
|
|
import com.ruoyi.cwgl.mapper.PayableFeeManagementMapper;
|
import com.ruoyi.cwgl.service.IPayableBillManagementLogService;
|
import com.ruoyi.cwgl.service.IPayableFeeManagementService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
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.PayableBillManagementMapper;
|
import com.ruoyi.cwgl.domain.PayableBillManagement;
|
import com.ruoyi.cwgl.domain.PayableBillManagementLog;
|
import com.ruoyi.cwgl.service.IPayableBillManagementService;
|
import com.ruoyi.common.core.text.Convert;
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
/**
|
* 应付账单管理Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2025-12-17
|
*/
|
@Service
|
@Transactional(rollbackFor = Exception.class)
|
public class PayableBillManagementServiceImpl extends BaseService<PayableBillManagementMapper, PayableBillManagement> implements IPayableBillManagementService
|
{
|
protected final Logger logger = LoggerFactory.getLogger(getClass());
|
@Resource
|
private PayableBillManagementMapper payableBillManagementMapper;
|
@Autowired
|
private IPayableBillManagementLogService logService;
|
@Resource
|
private PayableFeeManagementMapper payableFeeManagementMapper;
|
|
/**
|
* 查询应付账单管理
|
*
|
* @param id 应付账单管理ID
|
* @return 应付账单管理
|
*/
|
@DataSource(DataSourceType.SLAVE)
|
@Override
|
public PayableBillManagement selectPayableBillManagementById(Integer id)
|
{
|
return payableBillManagementMapper.selectPayableBillManagementById(id);
|
}
|
|
/**
|
* 查询应付账单管理 记录数
|
*
|
* @param payableBillManagement 应付账单管理
|
* @return 应付账单管理集合
|
*/
|
@DataSource(DataSourceType.SLAVE)
|
@Override
|
public int selectPayableBillManagementCount(PayableBillManagement payableBillManagement)
|
{
|
return payableBillManagementMapper.selectPayableBillManagementCount(payableBillManagement);
|
}
|
|
/**
|
* 查询应付账单管理列表
|
*
|
* @param payableBillManagement 应付账单管理
|
* @return 应付账单管理
|
*/
|
@DataSource(DataSourceType.SLAVE)
|
@Override
|
public List<PayableBillManagement> selectPayableBillManagementList(PayableBillManagement payableBillManagement)
|
{
|
return payableBillManagementMapper.selectPayableBillManagementList(payableBillManagement);
|
}
|
|
/**
|
* 查询应付账单管理列表 异步 导出
|
*
|
* @param payableBillManagement 应付账单管理
|
* @param exportKey 导出功能的唯一标识
|
* @return 应付账单管理集合
|
*/
|
@DataSource(DataSourceType.SLAVE)
|
@Async
|
@Override
|
public void export(PayableBillManagement payableBillManagement,String exportKey) {
|
|
super.export(PayableBillManagement.class,exportKey,"payableBillManagementData",(pageNum)->{
|
PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE);
|
return selectPayableBillManagementList(payableBillManagement);
|
});
|
}
|
|
|
/**
|
* 新增应付账单管理
|
*
|
* @param payableBillManagement 应付账单管理
|
* @return 结果
|
*/
|
@Override
|
public int insertPayableBillManagement(PayableBillManagement payableBillManagement)
|
{
|
payableBillManagement.setCreateTime(DateUtils.getNowDate());
|
return payableBillManagementMapper.insertPayableBillManagement(payableBillManagement);
|
}
|
|
/**
|
* 新增应付账单管理[批量]
|
*
|
* @param payableBillManagements 应付账单管理
|
* @return 结果
|
*/
|
@Override
|
public int insertPayableBillManagementBatch(List<PayableBillManagement> payableBillManagements)
|
{
|
int rows = payableBillManagementMapper.insertPayableBillManagementBatch(payableBillManagements);
|
return rows;
|
}
|
|
/**
|
* 修改应付账单管理
|
*
|
* @param payableBillManagement 应付账单管理
|
* @return 结果
|
*/
|
@Override
|
public int updatePayableBillManagement(PayableBillManagement payableBillManagement)
|
{
|
payableBillManagement.setUpdateTime(DateUtils.getNowDate());
|
int result = payableBillManagementMapper.updatePayableBillManagement(payableBillManagement);
|
|
// 记录操作日志
|
if (result > 0) {
|
PayableBillManagementLog log = new PayableBillManagementLog();
|
log.setBillId(payableBillManagement.getId());
|
try {
|
log.setCreateBy(SecurityUtils.getUsername());
|
} catch (Exception e) {
|
log.setCreateBy("api");
|
}
|
log.setCreateTime(DateUtils.getNowDate());
|
log.setOperation("修改应付账单,账单编号:" + payableBillManagement.getSystemNo());
|
logService.insertPayableBillManagementLog(log);
|
}
|
|
return result;
|
}
|
|
/**
|
* 修改应付账单管理[批量]
|
*
|
* @param payableBillManagements 应付账单管理
|
* @return 结果
|
*/
|
@Override
|
public int updatePayableBillManagementBatch(List<PayableBillManagement> payableBillManagements){
|
return payableBillManagementMapper.updatePayableBillManagementBatch(payableBillManagements);
|
}
|
|
/**
|
* 删除应付账单管理对象
|
*
|
* @param ids 需要删除的数据ID
|
* @return 结果
|
*/
|
@Override
|
public int deletePayableBillManagementByIds(String ids)
|
{
|
return deletePayableBillManagementByIds(Convert.toIntArray(ids));
|
}
|
|
/**
|
* 删除应付账单管理对象
|
*
|
*
|
* @param ids 需要删除的数据ID
|
* @return 结果
|
*/
|
@Override
|
public int deletePayableBillManagementByIds(Integer[] ids)
|
{
|
return payableBillManagementMapper.deletePayableBillManagementByIds(ids);
|
}
|
|
/**
|
* 删除应付账单管理信息
|
*
|
* @param id 应付账单管理ID
|
* @return 结果
|
*/
|
@Override
|
public int deletePayableBillManagementById(Integer id)
|
{
|
return payableBillManagementMapper.deletePayableBillManagementById(id);
|
}
|
|
/**
|
* 作废应付账单管理记录
|
*
|
* @param id 应付账单管理ID
|
* @return 结果
|
*/
|
@Override
|
public int voidPayableBillManagement(Integer id)
|
{
|
// 查询账单信息
|
PayableBillManagement bill = selectPayableBillManagementById(id);
|
if (bill == null) {
|
throw new RuntimeException("应付账单不存在");
|
}
|
|
// 检查账单状态,只有状态为"0"(未结算)的账单可以作废
|
if (!"0".equals(bill.getStatus())) {
|
throw new RuntimeException("只能作废状态为未结算的应付账单");
|
}
|
|
// 更新账单状态为"2"(作废)
|
bill.setStatus("2");
|
bill.setUpdateTime(DateUtils.getNowDate());
|
|
// 更新应付账单记录
|
int result = payableBillManagementMapper.updatePayableBillManagement(bill);
|
|
// 如果更新成功,清除关联应付费用的账单编号并更新状态
|
if (result > 0) {
|
// 获取账单系统编号
|
String billSystemNo = bill.getSystemNo();
|
if (billSystemNo != null && !billSystemNo.trim().isEmpty()) {
|
// 查询关联该账单的应付费用记录
|
payableFeeManagementMapper.updatePayableFeeManagementByRelatedBillNo(billSystemNo);
|
}
|
|
// 记录作废操作日志
|
PayableBillManagementLog log = new PayableBillManagementLog();
|
log.setBillId(id);
|
try {
|
log.setCreateBy(SecurityUtils.getUsername());
|
} catch (Exception e) {
|
// 远程调用时没有登录信息,使用api作为创建人
|
log.setCreateBy("api");
|
}
|
log.setCreateTime(DateUtils.getNowDate());
|
log.setOperation("作废应付账单,账单编号:" + bill.getSystemNo());
|
logService.insertPayableBillManagementLog(log);
|
}
|
|
return result;
|
}
|
|
/**
|
* 根据系统编号查询应付账单管理
|
*
|
* @param systemNo 系统编号
|
* @return 应付账单管理
|
*/
|
@DataSource(DataSourceType.SLAVE)
|
@Override
|
public PayableBillManagement selectPayableBillManagementBySystemNo(String systemNo)
|
{
|
return payableBillManagementMapper.selectPayableBillManagementBySystemNo(systemNo);
|
}
|
}
|