gaoluyang
2026-10-29 89b38b077f65f4cacab50cec932220ce012e90e4
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -16,9 +16,11 @@
import com.ruoyi.approve.service.impl.ApproveProcessServiceImpl;
import com.ruoyi.basic.enums.ApplicationTypeEnum;
import com.ruoyi.basic.enums.RecordTypeEnum;
import com.ruoyi.basic.mapper.OilDepotMapper;
import com.ruoyi.basic.mapper.ProductMapper;
import com.ruoyi.basic.mapper.ProductModelMapper;
import com.ruoyi.basic.mapper.SupplierManageMapper;
import com.ruoyi.basic.pojo.OilDepot;
import com.ruoyi.basic.pojo.Product;
import com.ruoyi.basic.pojo.ProductModel;
import com.ruoyi.basic.pojo.SupplierManage;
@@ -118,6 +120,7 @@
    private final StockInRecordService stockInRecordService;
    private final StockUtils stockUtils;
    private final ApprovalTemplateMapper approvalTemplateMapper;
    private final OilDepotMapper oilDepotMapper;
    @Override
    public List<PurchaseLedger> selectPurchaseLedgerList(PurchaseLedger purchaseLedger) {
@@ -170,6 +173,14 @@
        purchaseLedger.setSalesLedgerId(ObjectUtils.isNotEmpty(salesLedger) ? salesLedger.getId() : -1);
        purchaseLedger.setSupplierName(supplierManage.getSupplierName());
        purchaseLedger.setRecorderId(purchaseLedgerDto.getRecorderId());
        // 采购油库:根据油库id回填油库名称
        if (purchaseLedgerDto.getOilDepotId() != null) {
            OilDepot oilDepot = oilDepotMapper.selectById(purchaseLedgerDto.getOilDepotId());
            if (oilDepot != null) {
                purchaseLedger.setOilDepotName(oilDepot.getDepotName());
            }
        }
        purchaseLedger.setApprovalStatus(1);
        // 实际合同金额始终等于合同金额
@@ -1097,6 +1108,13 @@
                    if (snapshot.getRemarks() == null) {
                        snapshot.setRemarks(purchaseLedger.getRemarks());
                    }
                    // 提交审批时若尚未填写合同金额,快照里会是0,这里用台账里的当前金额兜底
                    if (snapshot.getContractAmount() == null || snapshot.getContractAmount().compareTo(BigDecimal.ZERO) == 0) {
                        snapshot.setContractAmount(purchaseLedger.getContractAmount());
                    }
                    if (snapshot.getNetContractAmount() == null || snapshot.getNetContractAmount().compareTo(BigDecimal.ZERO) == 0) {
                        snapshot.setNetContractAmount(purchaseLedger.getNetContractAmount());
                    }
                    if (snapshot.getRecorderId() == null) {
                        snapshot.setRecorderId(purchaseLedger.getRecorderId());
                    }