package com.ruoyi.cwgl.service.impl;
|
|
import java.util.List;
|
|
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.VoucherSubjectFeeMapper;
|
import com.ruoyi.cwgl.domain.VoucherSubjectFee;
|
import com.ruoyi.cwgl.domain.VoucherSubjectFeeLog;
|
import com.ruoyi.cwgl.service.IVoucherSubjectFeeService;
|
import com.ruoyi.cwgl.service.IVoucherSubjectFeeLogService;
|
import com.ruoyi.common.core.text.Convert;
|
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
|
/**
|
* 科目费用对照设置Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2026-01-19
|
*/
|
@Service
|
@Transactional(rollbackFor = Exception.class)
|
public class VoucherSubjectFeeServiceImpl extends BaseService<VoucherSubjectFeeMapper, VoucherSubjectFee> implements IVoucherSubjectFeeService
|
{
|
protected final Logger logger = LoggerFactory.getLogger(getClass());
|
@Resource
|
private VoucherSubjectFeeMapper voucherSubjectFeeMapper;
|
|
@Resource
|
private IVoucherSubjectFeeLogService voucherSubjectFeeLogService;
|
|
|
/**
|
* 查询科目费用对照设置
|
*
|
* @param id 科目费用对照设置ID
|
* @return 科目费用对照设置
|
*/
|
@DataSource(DataSourceType.SLAVE)
|
@Override
|
public VoucherSubjectFee selectVoucherSubjectFeeById(Integer id)
|
{
|
return voucherSubjectFeeMapper.selectVoucherSubjectFeeById(id);
|
}
|
|
/**
|
* 查询科目费用对照设置 记录数
|
*
|
* @param voucherSubjectFee 科目费用对照设置
|
* @return 科目费用对照设置集合
|
*/
|
@DataSource(DataSourceType.SLAVE)
|
@Override
|
public int selectVoucherSubjectFeeCount(VoucherSubjectFee voucherSubjectFee)
|
{
|
return voucherSubjectFeeMapper.selectVoucherSubjectFeeCount(voucherSubjectFee);
|
}
|
|
/**
|
* 查询科目费用对照设置列表
|
*
|
* @param voucherSubjectFee 科目费用对照设置
|
* @return 科目费用对照设置
|
*/
|
@DataSource(DataSourceType.SLAVE)
|
@Override
|
public List<VoucherSubjectFee> selectVoucherSubjectFeeList(VoucherSubjectFee voucherSubjectFee)
|
{
|
return voucherSubjectFeeMapper.selectVoucherSubjectFeeList(voucherSubjectFee);
|
}
|
|
/**
|
* 查询科目费用对照设置列表 异步 导出
|
*
|
* @param voucherSubjectFee 科目费用对照设置
|
* @param exportKey 导出功能的唯一标识
|
* @return 科目费用对照设置集合
|
*/
|
@DataSource(DataSourceType.SLAVE)
|
@Async
|
@Override
|
public void export(VoucherSubjectFee voucherSubjectFee,String exportKey) {
|
|
super.export(VoucherSubjectFee.class,exportKey,"voucherSubjectFeeData",(pageNum)->{
|
PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE);
|
return selectVoucherSubjectFeeList(voucherSubjectFee);
|
});
|
}
|
|
|
/**
|
* 新增科目费用对照设置
|
*
|
* @param voucherSubjectFee 科目费用对照设置
|
* @return 结果
|
*/
|
@Override
|
public int insertVoucherSubjectFee(VoucherSubjectFee voucherSubjectFee)
|
{
|
voucherSubjectFee.setCreateTime(DateUtils.getNowDate());
|
int result = voucherSubjectFeeMapper.insertVoucherSubjectFee(voucherSubjectFee);
|
|
// 记录新增日志
|
if (result > 0) {
|
VoucherSubjectFeeLog log = new VoucherSubjectFeeLog();
|
log.setSubjectId(voucherSubjectFee.getId());
|
log.setCreateBy(SecurityUtils.getUsername());
|
log.setOperation("新增费用对照:【" + voucherSubjectFee.getFeeName() + "】");
|
voucherSubjectFeeLogService.insertVoucherSubjectFeeLog(log);
|
}
|
|
return result;
|
}
|
|
/**
|
* 新增科目费用对照设置[批量]
|
*
|
* @param voucherSubjectFees 科目费用对照设置
|
* @return 结果
|
*/
|
@Override
|
public int insertVoucherSubjectFeeBatch(List<VoucherSubjectFee> voucherSubjectFees)
|
{
|
int rows = voucherSubjectFeeMapper.insertVoucherSubjectFeeBatch(voucherSubjectFees);
|
return rows;
|
}
|
|
/**
|
* 修改科目费用对照设置
|
*
|
* @param voucherSubjectFee 科目费用对照设置
|
* @return 结果
|
*/
|
@Override
|
public int updateVoucherSubjectFee(VoucherSubjectFee voucherSubjectFee)
|
{
|
// 获取原始数据用于比较
|
VoucherSubjectFee original = voucherSubjectFeeMapper.selectVoucherSubjectFeeById(voucherSubjectFee.getId());
|
|
voucherSubjectFee.setUpdateTime(DateUtils.getNowDate());
|
int result = voucherSubjectFeeMapper.updateVoucherSubjectFee(voucherSubjectFee);
|
|
// 记录修改日志
|
if (result > 0 && original != null) {
|
String changeLog = generateFeeChangeLog(original, voucherSubjectFee);
|
if (!changeLog.isEmpty()) {
|
VoucherSubjectFeeLog log = new VoucherSubjectFeeLog();
|
log.setSubjectId(voucherSubjectFee.getId());
|
log.setCreateBy(SecurityUtils.getUsername());
|
log.setOperation("修改费用对照:【" + original.getFeeName() + "】" + changeLog);
|
voucherSubjectFeeLogService.insertVoucherSubjectFeeLog(log);
|
}
|
}
|
|
return result;
|
}
|
|
/**
|
* 生成费用对照字段变更日志
|
* @param original 原始数据
|
* @param updated 更新后数据
|
* @return 变更日志字符串
|
*/
|
private String generateFeeChangeLog(VoucherSubjectFee original, VoucherSubjectFee updated) {
|
StringBuilder changeLog = new StringBuilder();
|
|
// 比较科目代码
|
if (!StringUtils.equals(original.getSubjectCode(), updated.getSubjectCode())) {
|
changeLog.append("科目代码【").append(original.getSubjectCode()).append("】修改为【").append(updated.getSubjectCode()).append("】;");
|
}
|
|
// 比较科目名称
|
if (!StringUtils.equals(original.getSubjectName(), updated.getSubjectName())) {
|
changeLog.append("科目名称【").append(original.getSubjectName()).append("】修改为【").append(updated.getSubjectName()).append("】;");
|
}
|
|
// 比较科目类别
|
if (!StringUtils.equals(original.getSubjectType(), updated.getSubjectType())) {
|
changeLog.append("科目类别【").append(original.getSubjectType()).append("】修改为【").append(updated.getSubjectType()).append("】;");
|
}
|
|
// 比较费用类别
|
if (!StringUtils.equals(original.getFeeType(), updated.getFeeType())) {
|
changeLog.append("费用类别【").append(original.getFeeType()).append("】修改为【").append(updated.getFeeType()).append("】;");
|
}
|
|
// 比较费用名称
|
if (!StringUtils.equals(original.getFeeName(), updated.getFeeName())) {
|
changeLog.append("费用名称【").append(original.getFeeName()).append("】修改为【").append(updated.getFeeName()).append("】;");
|
}
|
|
// 比较帐套类型
|
if (!StringUtils.equals(original.getType(), updated.getType())) {
|
changeLog.append("帐套类型【").append(original.getType()).append("】修改为【").append(updated.getType()).append("】;");
|
}
|
|
// 比较物料类别
|
if (!StringUtils.equals(original.getMaterialType(), updated.getMaterialType())) {
|
changeLog.append("物料类别【").append(original.getMaterialType()).append("】修改为【").append(updated.getMaterialType()).append("】;");
|
}
|
|
// 比较状态
|
if (!StringUtils.equals(original.getStatus(), updated.getStatus())) {
|
changeLog.append("状态【").append(original.getStatus()).append("】修改为【").append(updated.getStatus()).append("】;");
|
}
|
|
// 比较备注
|
if (!StringUtils.equals(original.getRemark(), updated.getRemark())) {
|
changeLog.append("备注【").append(original.getRemark()).append("】修改为【").append(updated.getRemark()).append("】;");
|
}
|
|
return changeLog.toString();
|
}
|
|
/**
|
* 修改科目费用对照设置[批量]
|
*
|
* @param voucherSubjectFees 科目费用对照设置
|
* @return 结果
|
*/
|
@Override
|
public int updateVoucherSubjectFeeBatch(List<VoucherSubjectFee> voucherSubjectFees){
|
return voucherSubjectFeeMapper.updateVoucherSubjectFeeBatch(voucherSubjectFees);
|
}
|
|
/**
|
* 删除科目费用对照设置对象
|
*
|
* @param ids 需要删除的数据ID
|
* @return 结果
|
*/
|
@Override
|
public int deleteVoucherSubjectFeeByIds(String ids)
|
{
|
return deleteVoucherSubjectFeeByIds(Convert.toIntArray(ids));
|
}
|
|
/**
|
* 删除科目费用对照设置对象
|
*
|
*
|
* @param ids 需要删除的数据ID
|
* @return 结果
|
*/
|
@Override
|
public int deleteVoucherSubjectFeeByIds(Integer[] ids)
|
{
|
return voucherSubjectFeeMapper.deleteVoucherSubjectFeeByIds(ids);
|
}
|
|
/**
|
* 删除科目费用对照设置信息
|
*
|
* @param id 科目费用对照设置ID
|
* @return 结果
|
*/
|
@Override
|
public int deleteVoucherSubjectFeeById(Integer id)
|
{
|
return voucherSubjectFeeMapper.deleteVoucherSubjectFeeById(id);
|
}
|
}
|