|
|
@ -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(销售相关) <br/> |
|
|
@ -126,7 +128,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
record.setSubscriptionState(1); |
|
|
|
} else if (s.contains("3")) { |
|
|
|
int auditState = 3; |
|
|
|
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos1 = finSelectedReceivablesDetailedService.fetchByAuditState(sid,auditState); |
|
|
|
List<FinSelectedReceivablesDetailedVo> 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<FinColl |
|
|
|
finCollectionConfirmation.setPayerName(dto.getPaymentName()); |
|
|
|
finCollectionConfirmation.setCollectionMoney(dto.getPaymentMoney()); |
|
|
|
finCollectionConfirmation.setRemarks(dto.getRemarks()); |
|
|
|
insert(finCollectionConfirmation); |
|
|
|
List<String> 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<FinSelectedReceivablesDetailedVo> 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<FinColl |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
public ResultBean submitCollectionConfirm(AppFinCollectionConfirmationDto dto) { |
|
|
|
return null; |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String staffSid = sysUserFeign.getUserOrgInfoByUserSid(dto.getUserSid()).getData().getStaffSid(); |
|
|
|
List<AppFinSelectedReceivablesDetailedDto> 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<String> 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<FinColl |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
baseMapper.cashierReject(sid); |
|
|
|
int auditState = 1; |
|
|
|
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid,auditState); |
|
|
|
List<FinSelectedReceivablesDetailedVo> 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<FinColl |
|
|
|
String sid1 = finUncollectedReceivablesDetailedVo.getSid(); |
|
|
|
BigDecimal currentReceivableMoney = new BigDecimal(finUncollectedReceivablesDetailedVo.getCurrentReceivableMoney()); |
|
|
|
String curRecMoney = String.valueOf(currentReceivableMoney.add(subscriptionMoney)); |
|
|
|
finUncollectedReceivablesDetailedService.updateCurRecMoneyBySid(curRecMoney,sid1); |
|
|
|
finUncollectedReceivablesDetailedService.updateCurRecMoneyBySid(curRecMoney, sid1); |
|
|
|
} |
|
|
|
FinCollectionConfirmation finCollectionConfirmation = fetchBySid(sid); |
|
|
|
BigDecimal collectionMoney = finCollectionConfirmation.getCollectionMoney(); |
|
|
|
finCollectionConfirmation.setBalance(collectionMoney); |
|
|
|
FinCollectionConfirmationDto finCollectionConfirmationDto = new FinCollectionConfirmationDto(); |
|
|
|
BeanUtil.copyProperties(finCollectionConfirmation,finCollectionConfirmationDto); |
|
|
|
updateBySid(finCollectionConfirmationDto,finCollectionConfirmationDto.getSid()); |
|
|
|
BeanUtil.copyProperties(finCollectionConfirmation, finCollectionConfirmationDto); |
|
|
|
updateBySid(finCollectionConfirmationDto, finCollectionConfirmationDto.getSid()); |
|
|
|
return rb.success().setMsg("驳回成功"); |
|
|
|
} |
|
|
|
|
|
|
@ -419,7 +500,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
baseMapper.cashierConfirm(sid); |
|
|
|
int auditState = 1; |
|
|
|
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid,auditState); |
|
|
|
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid, auditState); |
|
|
|
for (FinSelectedReceivablesDetailedVo finSelectedReceivablesDetailedVo : finSelectedReceivablesDetailedVos) { |
|
|
|
String sid1 = finSelectedReceivablesDetailedVo.getSid(); |
|
|
|
finSelectedReceivablesDetailedService.cashierConfirm(sid1); |
|
|
|