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);