wujianwei
2025-12-23 e71d4837f3d93ec530cc0206bc98fcef4eda1ee8
tms/src/main/java/com/ruoyi/tms/service/impl/TmsFinanceDetailServiceImpl.java
@@ -1,23 +1,21 @@
package com.ruoyi.tms.service.impl;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.List;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.SystemDataNoEnum;
import com.ruoyi.common.utils.DateUtils;
import javax.annotation.Resource;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.ISystemDataNoService;
import com.ruoyi.tms.domain.TmsDispatchOrder;
import com.ruoyi.tms.domain.TmsFinance;
import com.ruoyi.tms.mapper.TmsDispatchOrderMapper;
import com.ruoyi.tms.domain.vo.FinanceDetailItem;
import com.ruoyi.tms.mapper.TmsFinanceMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
@@ -53,8 +51,7 @@
    @Resource
    private TmsFinanceMapper tmsFinanceMapper;
    @Resource
    private TmsDispatchOrderMapper tmsDispatchOrderMapper;
    @Autowired
    ISystemDataNoService systemDataNoService;
    @Autowired
@@ -111,17 +108,7 @@
        if (dispatchId !=null){
            eq.eq(TmsFinanceDetail::getDispatchOrderId, dispatchId);
        }
        List<TmsFinanceDetail> tmsFinanceDetails = tmsFinanceDetailMapper.selectList(eq);
        if (tmsFinanceDetails != null && !tmsFinanceDetails.isEmpty()){
            tmsFinanceDetails.forEach(tmsFinanceDetail -> {
                TmsDispatchOrder tmsDispatchOrder = tmsDispatchOrderMapper.selectById(tmsFinanceDetail.getDispatchOrderId());
                if (tmsDispatchOrder != null){
                    tmsFinanceDetail.setDispatchNo(tmsDispatchOrder.getDispatchNo());
                    tmsFinanceDetail.setCustomerName(tmsDispatchOrder.getCustomerName());
                }
            });
        }
        return tmsFinanceDetails;
        return tmsFinanceDetailMapper.selectList(eq);
    }
    /**
@@ -158,13 +145,32 @@
                .ne(TmsFinance::getStatus, 2)
                .last("limit 1")
        );
        if (StringUtils.isNotEmpty(tmsFinanceDetail.getFeeType())){
            addItem(tmsFinance, tmsFinanceDetail);
        }
        // 1、查询当前调度单对应的费用
        List<FinanceDetailItem> items = tmsFinanceDetail.getItems();
        if (items != null && !items.isEmpty()){
            items.forEach(item->{
                TmsFinanceDetail tmsFinanceDetailNew = BeanUtil.copyProperties(tmsFinanceDetail, TmsFinanceDetail.class);
                BeanUtil.copyProperties(item, tmsFinanceDetailNew);
                tmsFinanceDetailNew.setActualFeeAmount(item.getPrice().multiply(BigDecimal.valueOf(item.getCount())));
                addItem(tmsFinance, tmsFinanceDetailNew);
            });
        }
        return 1;
    }
    public void addItem (TmsFinance tmsFinance, TmsFinanceDetail tmsFinanceDetail){
        if (tmsFinance == null){
            TmsDispatchOrder tmsDispatchOrder = tmsDispatchOrderMapper.selectTmsDispatchOrderById(tmsFinanceDetail.getDispatchOrderId());
            if (tmsDispatchOrder == null){
                throw new RuntimeException("未找到对应的调度单");
            }
            tmsFinance = BeanUtil.copyProperties(tmsDispatchOrder,TmsFinance.class);
            tmsFinance = new TmsFinance();
            SystemDataNoEnum systemDataNoEnum = tmsFinanceDetail.getFinanceType() == 0 ? SystemDataNoEnum.YFD :
                    tmsFinanceDetail.getFinanceType() == 1 ? SystemDataNoEnum.YSD : SystemDataNoEnum.OF;
            tmsFinance.setSystemCode(systemDataNoService.getNoByKey(systemDataNoEnum));
@@ -189,7 +195,7 @@
        tmsFinanceDetail.setCreateId(SecurityUtils.getUserId());
        tmsFinanceDetail.setFeeCreateTime(DateUtils.getNowDate());
        tmsFinanceDetail.setCreateTime(DateUtils.getNowDate());
        return tmsFinanceDetailMapper.insertTmsFinanceDetail(tmsFinanceDetail);
        tmsFinanceDetailMapper.insertTmsFinanceDetail(tmsFinanceDetail);
    }
    /**