From ca019747743a76f9348fcac99385c91736a36638 Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期四, 17 九月 2026 16:44:15 +0800
Subject: [PATCH] feat:标的物变更 合同审核流程改为推送合同中心通过后上传盖章签字件 履约进度新增合同补录按钮
---
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java | 45 ++++++++++++++++++---------------------------
1 files changed, 18 insertions(+), 27 deletions(-)
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java
index 7443d48..57f2256 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java
@@ -337,18 +337,6 @@
// beforeSchedule.setEffectiveEndDate(schedule.getEffectiveDate());
// scheduleMapper.updateById(beforeSchedule);
// }
- //鏇存柊灞ョ害
- ContractPaymentScheduleProcess contractPaymentScheduleProcess = new ContractPaymentScheduleProcess();
- contractPaymentScheduleProcess.setContractId(schedule.getContractId());
- contractPaymentScheduleProcess.setContractName(schedule.getContractName());
- contractPaymentScheduleProcess.setScheduleId(schedule.getId());
- contractPaymentScheduleProcess.setScheduleName(schedule.getStageName());
- contractPaymentScheduleProcess.setProcessDate(addDTO.getOutBoundTime());
- ContractPaymentScheduleProcess lastProcess = scheduleProcessMapper.selectOne(Wrappers.<ContractPaymentScheduleProcess>lambdaQuery().eq(ContractPaymentScheduleProcess::getContractId, schedule.getContractId())
- .eq(ContractPaymentScheduleProcess::getScheduleId, schedule.getId()).last("limit 1"));
- if (ObjUtil.isNull(lastProcess)) {
- scheduleProcessMapper.insert(contractPaymentScheduleProcess);
- }
}
//鏌ヨ鏄惁鏈夊悗缁樁娈�
@@ -473,14 +461,15 @@
public R addContractOut(OutBoundAddDTO addDTO) {
//鏍¢獙鍙傛暟
R<Contract> r = vailParam(addDTO);
- if (!r.isOk()){
+ if (!r.isOk()) {
return r;
}
Contract contract = r.getData();
//鍑哄簱
- handleOutBound(contract,addDTO);
+ handleOutBound(contract, addDTO);
+
//淇濆瓨璧勯噾鏄庣粏
- BigDecimal outBoundAmount = savePaymentConfirm(contract,addDTO);
+ BigDecimal outBoundAmount = savePaymentConfirm(contract, addDTO);
//鏇存柊鍚堝悓鐘舵�佸強闃舵
contract.setOutBoundAmout(outBoundAmount);
updateContractSchedule(contract);
@@ -492,35 +481,37 @@
List<ContractSubjectMatter> unComOutList = contractSubjectMatterMapper.selectList(Wrappers.<ContractSubjectMatter>lambdaQuery()
.eq(ContractSubjectMatter::getContractId, contract.getId())
.ne(ContractSubjectMatter::getDeliveryStatus, 2));
- if (CollUtil.isEmpty(unComOutList)){
+ if (CollUtil.isEmpty(unComOutList)) {
contract.setNextScheduleName("璐у埌绛炬敹");
}
contract.setBillingStatus("2");
contractMapper.updateById(contract);
}
- private BigDecimal savePaymentConfirm(Contract contract,OutBoundAddDTO addDTO) {
+ private BigDecimal savePaymentConfirm(Contract contract, OutBoundAddDTO addDTO) {
//鏌ヨ鍚堝悓鏄惁鏈夊嚭搴撻樁娈�
ContractPaymentSchedule schedule = scheduleMapper.selectOne(Wrappers.<ContractPaymentSchedule>lambdaQuery().eq(ContractPaymentSchedule::getContractId, contract.getId())
- .eq(ContractPaymentSchedule::getStageName, "鍙戣揣鍓�").gt(ContractPaymentSchedule::getPaymentRatio,0).last("limit 1"));
- if (ObjUtil.isNull(schedule.getEffectiveDate())&&ObjUtil.isNull(schedule.getEffectiveEndDate())){
+ .eq(ContractPaymentSchedule::getStageName, "鍙戣揣鍓�").last("limit 1"));
+ if (ObjUtil.isNull(schedule.getEffectiveDate()) && ObjUtil.isNull(schedule.getEffectiveEndDate())) {
schedule.setEffectiveDate(addDTO.getOutBoundTime());
- schedule.setEffectiveEndDate(DateUtil.offsetDay(addDTO.getOutBoundTime(),schedule.getAgreedDays()));
+ schedule.setEffectiveEndDate(DateUtil.offsetDay(addDTO.getOutBoundTime(), schedule.getAgreedDays()));
scheduleMapper.updateById(schedule);
}
+ //灞ョ害鍑犵巼
+ processService.saveScheduleProcess(addDTO.getOutBoundTime(),schedule);
- BigDecimal outAmount = new BigDecimal("0");
//璁$畻鍑哄簱浠锋牸
+ BigDecimal outAmount = new BigDecimal("0");
for (OutSubjectMatterAddDTO outSubjectMatterAddDTO : addDTO.getSubjectMatterList()) {
ContractSubjectMatter subjectMatter = contractSubjectMatterMapper.selectOne(Wrappers.<ContractSubjectMatter>lambdaQuery()
.eq(ContractSubjectMatter::getContractId, contract.getId())
.eq(ContractSubjectMatter::getMaterialCode, outSubjectMatterAddDTO.getSubjectMatterCode())
- .eq(StrUtil.isNotBlank(outSubjectMatterAddDTO.getLineNo()),ContractSubjectMatter::getLineNo, outSubjectMatterAddDTO.getLineNo())
+ .eq(StrUtil.isNotBlank(outSubjectMatterAddDTO.getLineNo()), ContractSubjectMatter::getLineNo, outSubjectMatterAddDTO.getLineNo())
.last("limit 1"));
outAmount = outAmount.add(outSubjectMatterAddDTO.getOutBoundNum().multiply(subjectMatter.getUnitPrice()));
}
//瀛樺湪鍙戣揣鍓嶆敹娆鹃樁娈�
- if (ObjUtil.isNotNull(schedule)) {
+ if (schedule.getPaymentRatio().compareTo(new BigDecimal("0")) > 0) {
//鏂板褰撳墠闃舵搴旀敹
PaymentConfirm currentConfim = new PaymentConfirm();
currentConfim.setBusinessType(schedule.getStageName() + "搴旀敹");
@@ -533,7 +524,7 @@
currentConfim.setScheduleName(schedule.getStageName());
currentConfim.setConfirmTime(addDTO.getOutBoundTime());
//鎸夊嚭搴撴瘮渚嬭绠楀簲鏀�
- currentConfim.setTransationAmount(schedule.getPlannedAmount().multiply(outAmount.divide(contract.getAmount(),2,RoundingMode.HALF_UP)));
+ currentConfim.setTransationAmount(schedule.getPlannedAmount().multiply(outAmount.divide(contract.getAmount(), 2, RoundingMode.HALF_UP)));
currentConfim.setReceivableAmount(currentConfim.getTransationAmount());
PaymentConfirm lastConfirm = paymentConfirmMapper.selectOne(Wrappers.<PaymentConfirm>lambdaQuery().eq(PaymentConfirm::getContractId, contract.getId())
.orderByDesc(PaymentConfirm::getCreateTime).last("limit 1"));
@@ -547,7 +538,7 @@
currentConfim.setTotalAmount(currentConfim.getTransationAmount().multiply(new BigDecimal("-1")));
paymentConfirmMapper.insert(currentConfim);
//鍘嗗彶璧勯噾浣欓
- processService.handleBeforeRemain(currentConfim,contract);
+ processService.handleBeforeRemain(currentConfim, contract);
}
return outAmount;
}
@@ -581,7 +572,7 @@
contractSubjectMatterMapper.updateById(subjectMatter);
//淇濆瓨erp鍑哄簱
String batchNumber = genBatchNumber();
- Long outBoundId = saveErpOutBound(contract,addDTO,outSubjectMatterAddDTO,batchNumber);
+ Long outBoundId = saveErpOutBound(contract, addDTO, outSubjectMatterAddDTO, batchNumber);
//淇濆瓨鍚堝悓鍑哄簱璁板綍
saveContractOutBound(contract, addDTO, subjectMatter, outBoundId);
});
@@ -607,7 +598,7 @@
return "";
}
- private Long saveErpOutBound(Contract contract, OutBoundAddDTO addDTO,OutSubjectMatterAddDTO outSubjectMatterAddDTO,String batchNumber) {
+ private Long saveErpOutBound(Contract contract, OutBoundAddDTO addDTO, OutSubjectMatterAddDTO outSubjectMatterAddDTO, String batchNumber) {
OutBound outBound = new OutBound();
outBound.setBatchNumber(batchNumber);
outBound.setOutBoundNum(outSubjectMatterAddDTO.getOutBoundNum());
--
Gitblit v1.9.1