From 5c80f778b2853fbd47ad0aec84f91afc0a1284f4 Mon Sep 17 00:00:00 2001
From: hanlinghao <2969694837@qq.com>
Date: Mon, 18 Apr 2022 15:39:47 +0800
Subject: [PATCH] =?UTF-8?q?=E6=AC=BE=E9=A1=B9=E7=A1=AE=E8=AE=A4=E5=AE=8C?=
=?UTF-8?q?=E5=96=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../AppFinSelectedReceivablesDetailedDto.java | 6 +-
.../FinCollectionConfirmationService.java | 109 +++++++++++++++---
2 files changed, 99 insertions(+), 16 deletions(-)
diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/AppFinSelectedReceivablesDetailedDto.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/AppFinSelectedReceivablesDetailedDto.java
index 0d60ec68c7..150e085528 100644
--- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/AppFinSelectedReceivablesDetailedDto.java
+++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/AppFinSelectedReceivablesDetailedDto.java
@@ -31,6 +31,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.math.BigDecimal;
+
/**
* Project: anrui-fin(销售相关)
* File: FinCustomerBillDetailedDto.java
@@ -49,11 +51,11 @@ import lombok.Data;
public class AppFinSelectedReceivablesDetailedDto implements Dto {
@ApiModelProperty("应收金额")
- private String receivable;
+ private BigDecimal receivable;
@ApiModelProperty("车架号")
private String vin;
@ApiModelProperty("认款金额")
- private String confirmMoney;
+ private BigDecimal confirmMoney;
@ApiModelProperty("合同号")
private String contractId;
@ApiModelProperty("应收项目")
diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
index 323eeb62c8..350b9a247f 100644
--- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
+++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
@@ -32,6 +32,7 @@ import com.yxt.anrui.base.api.commonappendix.CommonAppendixDto;
import com.yxt.anrui.base.api.commonappendix.CommonAppendixFeign;
import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum;
import com.yxt.anrui.fin.api.fincollectionconfirmation.*;
+import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.AppFinSelectedReceivablesDetailedDto;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedDto;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedVo;
@@ -54,6 +55,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.List;
+import java.util.Optional;
/**
* Project: anrui-fin(销售相关)
@@ -126,7 +128,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService finSelectedReceivablesDetailedVos1 = finSelectedReceivablesDetailedService.fetchByAuditState(sid,auditState);
+ List finSelectedReceivablesDetailedVos1 = finSelectedReceivablesDetailedService.fetchByAuditState(sid, auditState);
for (FinSelectedReceivablesDetailedVo finSelectedReceivablesDetailedVo : finSelectedReceivablesDetailedVos1) {
BigDecimal subscriptionMoney1 = new BigDecimal(finSelectedReceivablesDetailedVo.getSubscriptionMoney());
subscriptionMoney = subscriptionMoney.add(subscriptionMoney1);
@@ -306,16 +308,36 @@ public class FinCollectionConfirmationService extends MybatisBaseService payFiles = dto.getPayFiles();
+ String payFilePath = "";
for (String payFile : payFiles) {
- String payFilePath = payFile.replace(fileUploadComponent.getUrlPrefix(), "");
- commonAppendixDto.setLinkSid(sid);
- commonAppendixDto.setFilePath(payFilePath);
- commonAppendixDto.setCreateBySid(staffSid);
- commonAppendixDto.setAttachType(CommonAttachTypeEnum.PAYMENT_VOUCHER.getAttachType());
- commonAppendixFeign.save(commonAppendixDto);
+ if (payFile != null) {
+ payFilePath = payFile.replace(fileUploadComponent.getUrlPrefix(), "");
+ commonAppendixDto.setLinkSid(sid);
+ commonAppendixDto.setFilePath(payFilePath);
+ commonAppendixDto.setCreateBySid(staffSid);
+ commonAppendixDto.setAttachType(CommonAttachTypeEnum.PAYMENT_VOUCHER.getAttachType());
+ commonAppendixFeign.save(commonAppendixDto);
+ }
+ payFilePath += payFilePath + ",";
+ }
+ if (StringUtils.isNotBlank(payFilePath)) {
+ finCollectionConfirmation.setPaymentVoucherUrl(payFilePath);
+ }
+ List finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByCillSid(sid);
+ BigDecimal totalSubscriptionMone = null;
+ for (FinSelectedReceivablesDetailedVo finSelectedReceivablesDetailedVo : finSelectedReceivablesDetailedVos) {
+ BigDecimal subscriptionMoney = new BigDecimal(finSelectedReceivablesDetailedVo.getSubscriptionMoney());
+ totalSubscriptionMone = totalSubscriptionMone.add(subscriptionMoney);
}
+ BigDecimal collectionMoney = finCollectionConfirmation.getCollectionMoney();
+ BigDecimal subtract = collectionMoney.subtract(totalSubscriptionMone);
+ if (subtract.compareTo(BigDecimal.ZERO) < 0) {
+ return rb.setMsg("已选应收款项金额已超出该确认单应收金额总额,请重新核对");
+ }
+ finCollectionConfirmation.setBalance(totalSubscriptionMone);
+ finCollectionConfirmation.setAuditState(1);
+ save(finCollectionConfirmation);
return rb.success();
}
@@ -343,7 +365,66 @@ public class FinCollectionConfirmationService extends MybatisBaseService paymentDetails = dto.getPaymentDetail();
+ CommonAppendixDto commonAppendixDto = new CommonAppendixDto();
+ FinCollectionConfirmation finCollectionConfirmation = new FinCollectionConfirmation();
+ finCollectionConfirmation.setCollectionDate(dto.getCollectionDate());
+ finCollectionConfirmation.setCollectionBank(dto.getCollectionBank());
+ finCollectionConfirmation.setCollectionBankNum(dto.getCollectionNum());
+ finCollectionConfirmation.setCollectionMoney(dto.getPaymentMoney());
+ finCollectionConfirmation.setCollectionTypeKey(dto.getCollectionTypeKey());
+ finCollectionConfirmation.setCollectionTypeValue(dto.getCollectionType());
+ finCollectionConfirmation.setPayerName(dto.getPaymentName());
+ finCollectionConfirmation.setCollectionMoney(dto.getPaymentMoney());
+ finCollectionConfirmation.setRemarks(dto.getRemarks());
+ for (AppFinSelectedReceivablesDetailedDto paymentDetail : paymentDetails) {
+ FinSelectedReceivablesDetailed finSelectedReceivablesDetailed = new FinSelectedReceivablesDetailed();
+ finSelectedReceivablesDetailed.setCurrentReceivableMoney(paymentDetail.getReceivable());
+ finSelectedReceivablesDetailed.setVIN(paymentDetail.getVin());
+ finSelectedReceivablesDetailed.setSubscriptionMoney(paymentDetail.getConfirmMoney());
+ finSelectedReceivablesDetailed.setContractNo(paymentDetail.getContractId());
+ finSelectedReceivablesDetailed.setReceivablesName(paymentDetail.getProjectName());
+ finSelectedReceivablesDetailed.setContractSid(paymentDetail.getContractSid());
+ finSelectedReceivablesDetailed.setCustomerName(paymentDetail.getName());
+ finSelectedReceivablesDetailed.setCustomerPhone(paymentDetail.getMobile());
+ finSelectedReceivablesDetailed.setSubscriptionDate(paymentDetail.getConfirmDate());
+ finSelectedReceivablesDetailed.setCollSid(dto.getSid());
+ finSelectedReceivablesDetailedService.save(finSelectedReceivablesDetailed);
+ //已选应收款项-车架号
+ String vin = finSelectedReceivablesDetailed.getVIN();
+ //已选应收款项-应收项目名称
+ String receivablesName = finSelectedReceivablesDetailed.getReceivablesName();
+ FinUncollectedReceivablesDetailedVo finUncollectedReceivablesDetailedVo = finUncollectedReceivablesDetailedService.fetchByVinAndRecName(vin, receivablesName);
+ //应收未收款项-当前应收金额
+ BigDecimal currentReceivableMoney = new BigDecimal(finUncollectedReceivablesDetailedVo.getCurrentReceivableMoney());
+ //已选应收款项-认款金额
+ BigDecimal subscriptionMoney = finSelectedReceivablesDetailed.getSubscriptionMoney();
+ BigDecimal subtract = currentReceivableMoney.subtract(subscriptionMoney);
+ if (subtract.compareTo(BigDecimal.ZERO) < 0) {
+ return rb.setMsg("认款金额超出应收金额,请重新输入");
+ }
+ finUncollectedReceivablesDetailedVo.setCurrentReceivableMoney(String.format("%.0f", subtract));
+ FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto();
+ BeanUtil.copyProperties(finUncollectedReceivablesDetailedVo, finUncollectedReceivablesDetailedDto);
+ finUncollectedReceivablesDetailedService.updateBySid(finUncollectedReceivablesDetailedDto, finUncollectedReceivablesDetailedDto.getSid());
+ }
+ List payConfirmFiles = dto.getPayConfirmFiles();
+ String remFilePath = "";
+ for (String payFilePath : payConfirmFiles) {
+ if (payFilePath != null) {
+ remFilePath = payFilePath.replace(fileUploadComponent.getUrlPrefix(), "");
+ commonAppendixDto.setLinkSid(dto.getSid());
+ commonAppendixDto.setFilePath(payFilePath);
+ commonAppendixDto.setCreateBySid(staffSid);
+ commonAppendixDto.setAttachType(CommonAttachTypeEnum.PAYMENT_VOUCHER.getAttachType());
+ commonAppendixFeign.save(commonAppendixDto);
+ }
+ remFilePath += remFilePath + ",";
+ }
+ finCollectionConfirmation.setRemittanceConfirmationUrl(remFilePath);
+ return rb.success();
}
/**
@@ -395,7 +476,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid,auditState);
+ List finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid, auditState);
for (FinSelectedReceivablesDetailedVo finSelectedReceivablesDetailedVo : finSelectedReceivablesDetailedVos) {
String vin = finSelectedReceivablesDetailedVo.getVIN();
String receivablesName = finSelectedReceivablesDetailedVo.getReceivablesName();
@@ -404,14 +485,14 @@ public class FinCollectionConfirmationService extends MybatisBaseService finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid,auditState);
+ List finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid, auditState);
for (FinSelectedReceivablesDetailedVo finSelectedReceivablesDetailedVo : finSelectedReceivablesDetailedVos) {
String sid1 = finSelectedReceivablesDetailedVo.getSid();
finSelectedReceivablesDetailedService.cashierConfirm(sid1);