wujianwei
2026-02-02 f5a22deb0ae1c68875355de2f02224464e6cc325
service/src/main/java/com/ruoyi/cwgl/service/impl/VoucherSubjectFeeServiceImpl.java
@@ -17,8 +17,12 @@
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业务层处理
@@ -33,6 +37,9 @@
    protected final Logger logger = LoggerFactory.getLogger(getClass());
    @Resource
    private VoucherSubjectFeeMapper voucherSubjectFeeMapper;
    @Resource
    private IVoucherSubjectFeeLogService voucherSubjectFeeLogService;
    /**
@@ -103,7 +110,18 @@
    public int insertVoucherSubjectFee(VoucherSubjectFee voucherSubjectFee)
    {
        voucherSubjectFee.setCreateTime(DateUtils.getNowDate());
        return voucherSubjectFeeMapper.insertVoucherSubjectFee(voucherSubjectFee);
        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;
    }
    /**
@@ -128,8 +146,82 @@
    @Override
    public int updateVoucherSubjectFee(VoucherSubjectFee voucherSubjectFee)
    {
        // 获取原始数据用于比较
        VoucherSubjectFee original = voucherSubjectFeeMapper.selectVoucherSubjectFeeById(voucherSubjectFee.getId());
        voucherSubjectFee.setUpdateTime(DateUtils.getNowDate());
        return voucherSubjectFeeMapper.updateVoucherSubjectFee(voucherSubjectFee);
        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();
    }
    /**