Browse Source

款项确认完善

master
hanlinghao 3 years ago
parent
commit
5c80f778b2
  1. 6
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/AppFinSelectedReceivablesDetailedDto.java
  2. 99
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java

6
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(销售相关) <br/>
* File: FinCustomerBillDetailedDto.java <br/>
@ -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("应收项目")

99
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(销售相关) <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(), "");
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);

Loading…
Cancel
Save