|
|
@ -54,6 +54,7 @@ import com.yxt.common.core.query.PagerQuery; |
|
|
|
import com.yxt.common.core.result.ResultBean; |
|
|
|
import com.yxt.common.core.vo.PagerVo; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.apache.ibatis.annotations.Param; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
@ -349,12 +350,26 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
BigDecimal balance = record.getBalance(); |
|
|
|
int i = balance.intValue(); |
|
|
|
int collectionBillState = record.getAuditState(); |
|
|
|
if (i <= 0 || collectionBillState == 1 || collectionBillState == 3) { |
|
|
|
if (i <= 0) { |
|
|
|
if (collectionBillState == 1 && collectionBillState == 3) { |
|
|
|
record.setShowHandle(false); |
|
|
|
} |
|
|
|
record.setShowHandle(false); |
|
|
|
} else { |
|
|
|
record.setShowHandle(true); |
|
|
|
} |
|
|
|
if (collectionBillState == 3) { |
|
|
|
record.setShowDownload(false); |
|
|
|
} |
|
|
|
record.setShowDownload(false); |
|
|
|
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByCillSid(record.getSid()); |
|
|
|
if (finSelectedReceivablesDetailedVos.size() > 0 || collectionBillState != 1) { |
|
|
|
if (finSelectedReceivablesDetailedVos.size() > 0 || collectionBillState == 1) { |
|
|
|
record.setShowDelete(false); |
|
|
|
} else { |
|
|
|
record.setShowDelete(true); |
|
|
|
} |
|
|
|
if (collectionBillState == 3) { |
|
|
|
record.setShowDelete(true); |
|
|
|
} else { |
|
|
|
record.setShowDelete(false); |
|
|
|
} |
|
|
|
} |
|
|
@ -390,7 +405,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
String useOrgSid = sysStaffOrgFeign.getPathSidByUserSid(dto.getUserSid()).getData(); |
|
|
|
FinCollectionConfirmation finCollectionConfirmation = new FinCollectionConfirmation(); |
|
|
|
CommonAppendixDto commonAppendixDto = new CommonAppendixDto(); |
|
|
|
BeanUtil.copyProperties(dto, finCollectionConfirmation,"sid"); |
|
|
|
BeanUtil.copyProperties(dto, finCollectionConfirmation, "sid"); |
|
|
|
finCollectionConfirmation.setUseOrgSid(useOrgSid); |
|
|
|
|
|
|
|
List<String> payFiles = dto.getPayFiles(); |
|
|
@ -421,9 +436,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
if (subtract.compareTo(BigDecimal.ZERO) < 0) { |
|
|
|
return rb.setMsg("已选应收款项金额已超出该确认单应收金额总额,请重新核对"); |
|
|
|
} |
|
|
|
finCollectionConfirmation.setBalance(totalSubscriptionMone); |
|
|
|
finCollectionConfirmation.setBalance(subtract); |
|
|
|
finCollectionConfirmation.setPaymentState(1); |
|
|
|
finCollectionConfirmation.setAuditState(1); |
|
|
|
save(finCollectionConfirmation); |
|
|
|
return rb.success().setData(finCollectionConfirmation.getSid()); |
|
|
|
} |
|
|
@ -439,6 +453,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
ResultBean<AppFinCollectionConfirmationInitVo> rb = ResultBean.fireFail(); |
|
|
|
String useOrgSid = sysOrganizationFeign.getUseOrgByUserSid(userSid).getData().getSid(); |
|
|
|
AppFinCollectionConfirmationInitVo vo = baseMapper.initCollectionConfirm(collectionBillSid, useOrgSid); |
|
|
|
List<AppFinSelectedReceivablesPaymentDetailsVo> list = finSelectedReceivablesDetailedService.selectByCollSid(collectionBillSid); |
|
|
|
vo.setContractList(list); |
|
|
|
List<CommonAppendixVo> commonAppendixVoList = commonAppendixFeign.getAppAppendixList(vo.getCollectionBillSid(), CommonAttachTypeEnum.PAYMENT_VOUCHER.getAttachType()).getData(); |
|
|
|
List<String> payFiles = new ArrayList<>(); |
|
|
|
for (CommonAppendixVo commonAppendixVo : commonAppendixVoList) { |
|
|
@ -446,6 +462,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
payFiles.add(url); |
|
|
|
} |
|
|
|
vo.setPayFiles(payFiles); |
|
|
|
vo.setUserSid(userSid); |
|
|
|
return rb.success().setData(vo); |
|
|
|
} |
|
|
|
|
|
|
@ -458,6 +475,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
public ResultBean<AppFinCollectionConfirmationDetailedVo> getCollectionConfirmDetail(String collectionBillSid) { |
|
|
|
ResultBean<AppFinCollectionConfirmationDetailedVo> rb = ResultBean.fireFail(); |
|
|
|
AppFinCollectionConfirmationDetailedVo vo = baseMapper.getCollectionConfirmDetail(collectionBillSid); |
|
|
|
List<AppFinSelectedReceivablesPaymentDetailsVo> list = finSelectedReceivablesDetailedService.selectByCollSid(collectionBillSid); |
|
|
|
vo.setContractList(list); |
|
|
|
List<CommonAppendixVo> commonAppendixVoList = commonAppendixFeign.getAppAppendixList(vo.getSid(), CommonAttachTypeEnum.PAYMENT_VOUCHER.getAttachType()).getData(); |
|
|
|
List<String> payFiles = new ArrayList<>(); |
|
|
|
for (CommonAppendixVo commonAppendixVo : commonAppendixVoList) { |
|
|
@ -486,54 +505,113 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
String staffSid = sysUserFeign.getUserOrgInfoByUserSid(dto.getUserSid()).getData().getStaffSid(); |
|
|
|
List<AppFinSelectedReceivablesDetailedDto> paymentDetails = dto.getContractList(); |
|
|
|
CommonAppendixDto commonAppendixDto = new CommonAppendixDto(); |
|
|
|
FinCollectionConfirmation finCollectionConfirmation = new FinCollectionConfirmation(); |
|
|
|
BeanUtil.copyProperties(dto, finCollectionConfirmation); |
|
|
|
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("认款金额超出应收金额,请重新输入"); |
|
|
|
if (StringUtils.isBlank(dto.getCollectionBillSid())) { |
|
|
|
FinCollectionConfirmation finCollectionConfirmation = new FinCollectionConfirmation(); |
|
|
|
BeanUtil.copyProperties(dto, finCollectionConfirmation); |
|
|
|
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.getCollectionBillSid()); |
|
|
|
finSelectedReceivablesDetailed.setAuditState(1); |
|
|
|
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()); |
|
|
|
} |
|
|
|
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.setFileName("汇款确认"); |
|
|
|
commonAppendixDto.setAttachType(CommonAttachTypeEnum.PAYMENT_VOUCHER.getAttachType()); |
|
|
|
commonAppendixFeign.save(commonAppendixDto); |
|
|
|
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.setFileName("汇款确认"); |
|
|
|
commonAppendixDto.setAttachType(CommonAttachTypeEnum.PAYMENT_VOUCHER.getAttachType()); |
|
|
|
commonAppendixFeign.save(commonAppendixDto); |
|
|
|
} |
|
|
|
remFilePath += remFilePath + ","; |
|
|
|
} |
|
|
|
finCollectionConfirmation.setRemittanceConfirmationUrl(remFilePath); |
|
|
|
finCollectionConfirmation.setAuditState(1); |
|
|
|
save(finCollectionConfirmation); |
|
|
|
} else { |
|
|
|
FinCollectionConfirmation finCollectionConfirmation = fetchBySid(dto.getCollectionBillSid()); |
|
|
|
BeanUtil.copyProperties(dto, finCollectionConfirmation, "sid"); |
|
|
|
finSelectedReceivablesDetailedService.deleteByCollSid(dto.getCollectionBillSid()); |
|
|
|
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.getCollectionBillSid()); |
|
|
|
finSelectedReceivablesDetailed.setAuditState(1); |
|
|
|
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()); |
|
|
|
} |
|
|
|
remFilePath += remFilePath + ","; |
|
|
|
commonAppendixFeign.delFilesByLinkSidAndAttachType(dto.getCollectionBillSid(), CommonAttachTypeEnum.PAYMENT_VOUCHER.getAttachType()); |
|
|
|
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.setFileName("汇款确认"); |
|
|
|
commonAppendixDto.setAttachType(CommonAttachTypeEnum.PAYMENT_VOUCHER.getAttachType()); |
|
|
|
commonAppendixFeign.save(commonAppendixDto); |
|
|
|
} |
|
|
|
remFilePath += remFilePath + ","; |
|
|
|
} |
|
|
|
finCollectionConfirmation.setRemittanceConfirmationUrl(remFilePath); |
|
|
|
finCollectionConfirmation.setAuditState(1); |
|
|
|
updateById(finCollectionConfirmation); |
|
|
|
} |
|
|
|
finCollectionConfirmation.setRemittanceConfirmationUrl(remFilePath); |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
|
|
|
@ -566,8 +644,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
} |
|
|
|
IPage<AppFinSelectedReceivablesPaymentDetailsQuery> page = PagerUtil.queryToPage(pagerQuery); |
|
|
|
QueryWrapper<AppFinUncollectedReceivablesDetailedVo> qw = appPaymentDetailsBuildQueryWrapper(pagerQuery.getParams()); |
|
|
|
List<String> sidList = pagerQuery.getParams().getSidList(); |
|
|
|
IPage<AppFinUncollectedReceivablesDetailedVo> collectionConfirmList = finSelectedReceivablesDetailedService.getPaymentDetailsList(sidList, page, qw); |
|
|
|
IPage<AppFinUncollectedReceivablesDetailedVo> collectionConfirmList = finSelectedReceivablesDetailedService.getPaymentDetailsList(page, qw); |
|
|
|
List<AppFinUncollectedReceivablesDetailedVo> records = collectionConfirmList.getRecords(); |
|
|
|
for (AppFinUncollectedReceivablesDetailedVo record : records) { |
|
|
|
record.setReceivable(record.getConfirmMoney()); |
|
|
@ -586,10 +663,13 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
QueryWrapper<AppFinUncollectedReceivablesDetailedVo> qw = new QueryWrapper<>(); |
|
|
|
if (pagerQuery != null) { |
|
|
|
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getName())) { |
|
|
|
qw.like("customerName", pagerQuery.getName()); |
|
|
|
qw.like("furd.customerName", pagerQuery.getName()); |
|
|
|
} |
|
|
|
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getUseOrgSid())) { |
|
|
|
qw.eq("useOrgSid", pagerQuery.getUseOrgSid()); |
|
|
|
qw.eq("furd.useOrgSid", pagerQuery.getUseOrgSid()); |
|
|
|
} |
|
|
|
if (pagerQuery.getSidList().size() > 0) { |
|
|
|
qw.notIn("furd.contractSid", pagerQuery.getSidList()); |
|
|
|
} |
|
|
|
} |
|
|
|
return qw; |
|
|
|