From 6b969ca247b98e5a793e61ec5b0d89f4fccb3318 Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期三, 10 六月 2026 16:25:18 +0800
Subject: [PATCH] feat:抵抹账条件新增付款金额小于开票金额,红票审核拒绝后蓝票可重新开红票
---
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/MeterReadRecordServiceImpl.java | 36 +++++++++++++++++++++++++-----------
1 files changed, 25 insertions(+), 11 deletions(-)
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/MeterReadRecordServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/MeterReadRecordServiceImpl.java
index ffcb0f5..90ac7f2 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/MeterReadRecordServiceImpl.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/MeterReadRecordServiceImpl.java
@@ -4,14 +4,8 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.by4cloud.platformx.business.dto.MeterReadRecordUpdateDTO;
-import com.by4cloud.platformx.business.entity.Contract;
-import com.by4cloud.platformx.business.entity.ContractSubjectMatter;
-import com.by4cloud.platformx.business.entity.MeterReadRecord;
-import com.by4cloud.platformx.business.entity.PaymentConfirm;
-import com.by4cloud.platformx.business.mapper.ContractMapper;
-import com.by4cloud.platformx.business.mapper.ContractSubjectMatterMapper;
-import com.by4cloud.platformx.business.mapper.MeterReadRecordMapper;
-import com.by4cloud.platformx.business.mapper.PaymentConfirmMapper;
+import com.by4cloud.platformx.business.entity.*;
+import com.by4cloud.platformx.business.mapper.*;
import com.by4cloud.platformx.business.service.MeterReadRecordService;
import com.by4cloud.platformx.common.core.util.R;
import lombok.RequiredArgsConstructor;
@@ -31,6 +25,7 @@
private final ContractMapper contractMapper;
private final ContractSubjectMatterMapper contractSubjectMatterMapper;
+ private final ContractPaymentScheduleMapper contractPaymentScheduleMapper;
private final PaymentConfirmMapper paymentConfirmMapper;
@Override
@@ -40,10 +35,10 @@
.eq(MeterReadRecord::getMeterReadCode,updateDTO.getMeterReadCode()).lt(MeterReadRecord::getCreateTime,record.getCreateTime())
.orderByDesc(MeterReadRecord::getCreateTime).last("limit 1"));
if(ObjUtil.isNull(lastRecord)){
- return R.failed("鏃犳渶杩戞妱鍙疯褰�");
+ return R.failed("鏃犳渶杩戞妱琛ㄨ褰�");
}
- if (updateDTO.getMeterReadNum().compareTo(lastRecord.getMeterReadNum())<0){
- return R.failed("鎶勫彿鏁板瓧涓嶈兘姣斾笂娆″皯");
+ if (updateDTO.getMeterReadNum().compareTo(lastRecord.getMeterReadNum())<=0){
+ return R.failed("鎶勮〃鏁板瓧涓嶈兘姣斾笂娆″皯");
}
record.setMeterReadTime(updateDTO.getMeterReadTime());
record.setMeterReadNum(updateDTO.getMeterReadNum());
@@ -56,6 +51,25 @@
if(ObjUtil.isNull(lastRecord)){
R.failed("鏃犲悎鍚屼俊鎭紝璇疯仈绯绘妧鏈汉鍛�");
}
+ //鍒涘缓鏀舵鑺傜偣
+ //鏌ヨ涓婃鏀舵鑺傜偣
+ ContractPaymentSchedule lastSchedule = contractPaymentScheduleMapper.selectOne(Wrappers.<ContractPaymentSchedule>lambdaQuery()
+ .eq(ContractPaymentSchedule::getContractId,contract.getId())
+ .orderByDesc(ContractPaymentSchedule::getCreateTime).last("limit 1"));
+ ContractPaymentSchedule schedule = new ContractPaymentSchedule();
+ schedule.setStageName("姘寸數浠g即");
+ schedule.setContractId(contract.getId());
+ schedule.setContractName(contract.getContractName());
+ schedule.setPlannedAmount(subjectMatter.getUnitPrice().multiply(updateDTO.getMeterReadNum().subtract(lastRecord.getMeterReadNum())));
+ schedule.setEffectiveEndDate(updateDTO.getMeterReadTime());
+ schedule.setStageOrder(1);
+ if (ObjUtil.isNotNull(lastSchedule)){
+ schedule.setStageOrder(lastSchedule.getStageOrder()+1);
+ }
+ schedule.setPaymentStatus(0);
+ schedule.setActualAmount(new BigDecimal("0"));
+ contractPaymentScheduleMapper.insert(schedule);
+ //鎴垮眿绉熻祦鐢熸垚搴旀敹
PaymentConfirm confirm = new PaymentConfirm();
confirm.setBusinessType(subjectMatter.getMaterialInternalName()+"搴旀敹");
confirm.setBusGuestId(contract.getPartyAId());
--
Gitblit v1.9.1