|
|
@ -40,6 +40,7 @@ import com.yxt.anrui.base.api.commoncontract.CommonContract; |
|
|
|
import com.yxt.anrui.base.api.commoncontract.CommonContractFeign; |
|
|
|
import com.yxt.anrui.base.common.enums.VehicleStateTempOrLast; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice; |
|
|
|
import com.yxt.anrui.fin.api.fincollectionconfirmation.*; |
|
|
|
import com.yxt.anrui.fin.api.fincollectionconfirmation.app.AppBusArrearsCarryMoneyVo; |
|
|
|
import com.yxt.anrui.fin.api.fincollectionconfirmation.app.FinConfirmDto; |
|
|
@ -50,8 +51,6 @@ import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivabl |
|
|
|
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedVo; |
|
|
|
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.AppFinUncollectedReceivablesDetailedVo; |
|
|
|
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailed; |
|
|
|
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedDto; |
|
|
|
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedVo; |
|
|
|
import com.yxt.anrui.fin.biz.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedService; |
|
|
|
import com.yxt.anrui.fin.biz.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedService; |
|
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; |
|
|
@ -141,8 +140,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
if (StringUtils.isNotBlank(query.getCreateBySid())) { |
|
|
|
qw.eq("createBySid", query.getCreateBySid()); |
|
|
|
} |
|
|
|
}else{ |
|
|
|
qw.ne("auditState",0); |
|
|
|
} else { |
|
|
|
qw.ne("auditState", 0); |
|
|
|
} |
|
|
|
} |
|
|
|
return qw; |
|
|
@ -178,19 +177,19 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
List<FinCollectionConfirmationVo> records = pagging.getRecords(); |
|
|
|
for (FinCollectionConfirmationVo record : records) { |
|
|
|
//是否有余额
|
|
|
|
if(StringUtils.isNotBlank(record.getBalance())){ |
|
|
|
if (StringUtils.isNotBlank(record.getBalance())) { |
|
|
|
//余额是0
|
|
|
|
if(new BigDecimal(record.getBalance()).compareTo(BigDecimal.ZERO) == 0){ |
|
|
|
if (new BigDecimal(record.getBalance()).compareTo(BigDecimal.ZERO) == 0) { |
|
|
|
record.setShowHandle(false); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
//是否是待审核状态或已驳回状态
|
|
|
|
if(record.getAuditState() == 1 || record.getAuditState() == 2){ |
|
|
|
if (record.getAuditState() == 1 || record.getAuditState() == 2) { |
|
|
|
record.setShowHandle(false); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
record.setShowHandle(true); |
|
|
|
} |
|
|
|
} |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
record.setShowHandle(false); |
|
|
|
} |
|
|
|
} |
|
|
@ -291,13 +290,21 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
finSelectedReceivablesDetailed.setUseOrgSid(useOrgSid); |
|
|
|
//设置审核状态为待审核(1待审核/2已驳回/3已审核)
|
|
|
|
finSelectedReceivablesDetailed.setAuditState(1); |
|
|
|
finSelectedReceivablesDetailed.setCreateBySid(dto.getUserSid()); |
|
|
|
finSelectedReceivablesDetailedService.insert(finSelectedReceivablesDetailed); |
|
|
|
//添加已选车架号为临时状态
|
|
|
|
BaseVehicleTempstateDto baseVehicleTempstateDto = new BaseVehicleTempstateDto(); |
|
|
|
baseVehicleTempstateDto.setTempStateKey(VehicleStateTempOrLast.PaymentEnum.FIN_PAYMENT.getCode()); |
|
|
|
baseVehicleTempstateDto.setTempStateValue(VehicleStateTempOrLast.PaymentEnum.FIN_PAYMENT.getRemarks()); |
|
|
|
baseVehicleTempstateDto.setTempKey("1"); |
|
|
|
baseVehicleTempstateDto.setTempValue("待审核"); |
|
|
|
if ("车款".equals(v.getReceivablesName())) { |
|
|
|
baseVehicleTempstateDto.setTempKey("001"); |
|
|
|
baseVehicleTempstateDto.setTempValue("车款"); |
|
|
|
} |
|
|
|
if ("订金".equals(v.getReceivablesName())) { |
|
|
|
baseVehicleTempstateDto.setTempKey("002"); |
|
|
|
baseVehicleTempstateDto.setTempValue("订金"); |
|
|
|
} |
|
|
|
|
|
|
|
baseVehicleTempstateDto.setBusSid(finalSid); |
|
|
|
//根据合同编号和车架号查询该合同的车辆sid
|
|
|
|
ResultBean<String> resultBean = busSalesOrderFeign.getVinSidByConSid(v.getContractNo(), v.getVIN()); |
|
|
@ -305,13 +312,12 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
baseVehicleTempstateDto.setVehSid(resultBean.getData()); |
|
|
|
} |
|
|
|
ResultBean vehicleStateResult = baseVehicleTempstateFeign.save(baseVehicleTempstateDto); |
|
|
|
finCollectionConfirmation.setBalance(finCollectionConfirmation.getCollectionMoney()); |
|
|
|
finCollectionConfirmation.setAuditState(1); |
|
|
|
//1未认款/2部分认款/3已认款
|
|
|
|
finCollectionConfirmation.setPaymentState(1); |
|
|
|
baseMapper.insert(finCollectionConfirmation); |
|
|
|
|
|
|
|
}); |
|
|
|
finCollectionConfirmation.setBalance(finCollectionConfirmation.getCollectionMoney()); |
|
|
|
finCollectionConfirmation.setAuditState(1); |
|
|
|
//1未认款/2部分认款/3已认款
|
|
|
|
finCollectionConfirmation.setPaymentState(1); |
|
|
|
baseMapper.insert(finCollectionConfirmation); |
|
|
|
|
|
|
|
|
|
|
|
} else {//认款、多次认款
|
|
|
@ -1116,31 +1122,49 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
return rb.setMsg("该申请不存在"); |
|
|
|
} |
|
|
|
//查询该申请下的所有待审核的款项明细
|
|
|
|
BigDecimal subscriptionMoneyAll = new BigDecimal("0"); |
|
|
|
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid, 1); |
|
|
|
finSelectedReceivablesDetailedVos.stream().forEach(v -> { |
|
|
|
//已选款项明细sid
|
|
|
|
String selectSid = v.getSid(); |
|
|
|
//应收未收款项明细sid
|
|
|
|
String receivablesSid = v.getReceivablesSid(); |
|
|
|
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(receivablesSid); |
|
|
|
BigDecimal currentReceivableMoney = finUncollectedReceivablesDetailed.getCurrentReceivableMoney(); |
|
|
|
//更新当前应收金额
|
|
|
|
finUncollectedReceivablesDetailed.setCurrentReceivableMoney(currentReceivableMoney.subtract(new BigDecimal(v.getSubscriptionMoney()))); |
|
|
|
//更新认款状态
|
|
|
|
finUncollectedReceivablesDetailed.setSubscriptionState(finUncollectedReceivablesDetailed.getCurrentReceivableMoney().compareTo(BigDecimal.ZERO) == 0 ? 3 : 2); |
|
|
|
finUncollectedReceivablesDetailedService.updateById(finUncollectedReceivablesDetailed); |
|
|
|
FinSelectedReceivablesDetailed finSelectedReceivablesDetailed = finSelectedReceivablesDetailedService.fetchBySid(selectSid); |
|
|
|
//更新已选款项明细的审核状态1待审核/2已驳回/3已审核
|
|
|
|
finSelectedReceivablesDetailed.setAuditState(3); |
|
|
|
//更新审核时间
|
|
|
|
finSelectedReceivablesDetailed.setAuditDate(DateUtil.today()); |
|
|
|
finSelectedReceivablesDetailedService.updateById(finSelectedReceivablesDetailed); |
|
|
|
//ToDo:查询是否符合待出库的条件
|
|
|
|
}); |
|
|
|
if(finSelectedReceivablesDetailedVos.size()>0){ |
|
|
|
finSelectedReceivablesDetailedVos.stream().forEach(v -> { |
|
|
|
//已选款项明细sid
|
|
|
|
String selectSid = v.getSid(); |
|
|
|
//应收未收款项明细sid
|
|
|
|
String receivablesSid = v.getReceivablesSid(); |
|
|
|
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(receivablesSid); |
|
|
|
BigDecimal currentReceivableMoney = finUncollectedReceivablesDetailed.getCurrentReceivableMoney(); |
|
|
|
//更新当前应收金额
|
|
|
|
finUncollectedReceivablesDetailed.setCurrentReceivableMoney(currentReceivableMoney.subtract(new BigDecimal(v.getSubscriptionMoney()))); |
|
|
|
//更新认款状态
|
|
|
|
finUncollectedReceivablesDetailed.setSubscriptionState(finUncollectedReceivablesDetailed.getCurrentReceivableMoney().compareTo(BigDecimal.ZERO) == 0 ? 3 : 2); |
|
|
|
finUncollectedReceivablesDetailedService.updateById(finUncollectedReceivablesDetailed); |
|
|
|
FinSelectedReceivablesDetailed finSelectedReceivablesDetailed = finSelectedReceivablesDetailedService.fetchBySid(selectSid); |
|
|
|
//更新已选款项明细的审核状态1待审核/2已驳回/3已审核
|
|
|
|
finSelectedReceivablesDetailed.setAuditState(3); |
|
|
|
//更新审核时间
|
|
|
|
finSelectedReceivablesDetailed.setAuditDate(DateUtil.today()); |
|
|
|
finSelectedReceivablesDetailedService.updateById(finSelectedReceivablesDetailed); |
|
|
|
//ToDo:查询是否符合待出库的条件
|
|
|
|
//该合同编号下的该车架号的所有认款金额
|
|
|
|
List<FinSelectedReceivablesDetailedVo> voList = finSelectedReceivablesDetailedService.selectListByVin(v.getContractNo(),v.getVIN()); |
|
|
|
BigDecimal bigDecimalVinAll = voList.stream().map(FinSelectedReceivablesDetailedVo::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
//查询该合同编号下的销售订单的单车成交价
|
|
|
|
ResultBean<BusSalesOrderPrice> resultBean = busSalesOrderFeign.selectByContractNo(v.getContractNo()); |
|
|
|
if(resultBean.getSuccess()){ |
|
|
|
BusSalesOrderPrice busSalesOrderPrice = resultBean.getData(); |
|
|
|
BigDecimal singleFinalPrice = busSalesOrderPrice.getSingleFinalPrice(); |
|
|
|
if(singleFinalPrice.compareTo(bigDecimalVinAll) == 0){//推送待出库
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
}); |
|
|
|
//查询该申请已认款金额总数
|
|
|
|
subscriptionMoneyAll = finSelectedReceivablesDetailedVos.stream().map(FinSelectedReceivablesDetailedVo::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
} |
|
|
|
|
|
|
|
//查询该申请所有的款项明细
|
|
|
|
finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid, 3); |
|
|
|
//查询该申请已认款金额总数
|
|
|
|
BigDecimal subscriptionMoneyAll = finSelectedReceivablesDetailedVos.stream().map(FinSelectedReceivablesDetailedVo::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
//与收款金额作比较:更新认款状态 1未认款/2部分认款/3已认款
|
|
|
|
confirmation.setPaymentState(confirmation.getCollectionMoney().compareTo(subscriptionMoneyAll) == 0 ? 3 : subscriptionMoneyAll.compareTo(BigDecimal.ZERO) == 0 ? 1 : 2); |
|
|
|
//更新收款申请的余额以及审核状态
|
|
|
@ -1245,4 +1269,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
vo.setArrearsMoney(arrearsMoney); |
|
|
|
return rb.success().setData(vo); |
|
|
|
} |
|
|
|
|
|
|
|
public List<String> getList(List<String> stringList, String createBySid, String useOrgSid) { |
|
|
|
return baseMapper.getList(stringList, createBySid, useOrgSid); |
|
|
|
} |
|
|
|
} |