|
|
@ -6,6 +6,11 @@ import com.alibaba.fastjson.JSON; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.google.common.util.concurrent.ThreadFactoryBuilder; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; |
|
|
|
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed; |
|
|
|
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedFeign; |
|
|
|
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJR; |
|
|
|
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRFeign; |
|
|
|
import com.yxt.anrui.flowable.api.flow.FlowableFeign; |
|
|
|
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; |
|
|
|
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; |
|
|
@ -111,6 +116,10 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa |
|
|
|
private LoanSettleCompanyReductionMapper loanSettleCompanyReductionMapper; |
|
|
|
@Autowired |
|
|
|
private LoanSettleVehicleService loanSettleVehicleService; |
|
|
|
@Autowired |
|
|
|
private FinUncollectedReceivablesDetailedJRFeign finUncollectedReceivablesDetailedJRFeign; |
|
|
|
@Autowired |
|
|
|
private FinSelectedReceivablesDetailedFeign finSelectedReceivablesDetailedFeign; |
|
|
|
|
|
|
|
|
|
|
|
public PagerVo<LoanSettleApplyVo> listPageVo(PagerQuery<LoanSettleApplyQuery> pq) { |
|
|
@ -385,6 +394,9 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa |
|
|
|
BeanUtil.copyProperties(loanSettleCompanyReduction, loanSettleCompanyReductionVo); |
|
|
|
} |
|
|
|
loanSettleApplyDetailsVo.setLoanSettleCompanyReductionVo(loanSettleCompanyReductionVo); |
|
|
|
if (loanSettleCompanyReduction.getAmountTo().compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
loanSettleApplyDetailsVo.setConfirmAtn(true); |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(loanSettleApply.getBusSid())) { |
|
|
|
loanSettleApplyDetailsVo.setShowHg(true); |
|
|
@ -682,6 +694,8 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa |
|
|
|
baseMapper.updateBus(loanSettleApply.getBusVinSid()); |
|
|
|
//推送到结清车辆台账
|
|
|
|
pushSettlevehicle(businessSid); |
|
|
|
//推送应收、结转、减免。
|
|
|
|
pushUnColl(businessSid); |
|
|
|
} else { |
|
|
|
//极光推送
|
|
|
|
loanSettleApply = fetchBySid(businessSid); |
|
|
@ -704,6 +718,534 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void pushUnColl(String businessSid) { |
|
|
|
LoanSettleApply loanSettleApply = fetchBySid(businessSid); |
|
|
|
List<FinUncollectedReceivablesDetailedJR> list = new ArrayList<>(); |
|
|
|
List<FinSelectedReceivablesDetailed> selectList = new ArrayList<>(); |
|
|
|
if (loanSettleApply.getTrueReduction() == 0) {//不勾选减免
|
|
|
|
//生成应收、结转贷款保证金
|
|
|
|
list = getLists(list, loanSettleApply); |
|
|
|
selectList = saveList(selectList, loanSettleApply); |
|
|
|
} else { |
|
|
|
//勾选减免
|
|
|
|
//减免后结清合计是否大于0
|
|
|
|
LoanSettleCompanyReduction loanSettleCompanyReduction = loanSettleCompanyReductionService.selectByMainSid(businessSid); |
|
|
|
if (loanSettleCompanyReduction != null) { |
|
|
|
if (loanSettleCompanyReduction.getAmountTo().compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
//生成应收、结转贷款保证金
|
|
|
|
list = getLists(list, loanSettleApply); |
|
|
|
selectList = saveList(selectList, loanSettleApply); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
//生成应收
|
|
|
|
list.removeAll(Collections.singleton(null)); |
|
|
|
if (!list.isEmpty()) { |
|
|
|
ResultBean resultBean = finUncollectedReceivablesDetailedJRFeign.saveAll(list); |
|
|
|
} |
|
|
|
selectList.removeAll(Collections.singleton(null)); |
|
|
|
if (!selectList.isEmpty()) { |
|
|
|
ResultBean resultBean = finSelectedReceivablesDetailedFeign.saveAll(selectList); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public void pushConfirm(String sid) { |
|
|
|
LoanSettleApply loanSettleApply = fetchBySid(sid); |
|
|
|
List<FinUncollectedReceivablesDetailedJR> list = new ArrayList<>(); |
|
|
|
List<FinSelectedReceivablesDetailed> selectList = new ArrayList<>(); |
|
|
|
//需要点击按钮再生成应收、减免资金占用费、以及结转贷款保证金
|
|
|
|
list = getLists(list, loanSettleApply); |
|
|
|
selectList = saveList(selectList, loanSettleApply); |
|
|
|
selectList = saveLists(selectList, loanSettleApply); |
|
|
|
//生成应收
|
|
|
|
list.removeAll(Collections.singleton(null)); |
|
|
|
if (!list.isEmpty()) { |
|
|
|
ResultBean resultBean = finUncollectedReceivablesDetailedJRFeign.saveAll(list); |
|
|
|
} |
|
|
|
selectList.removeAll(Collections.singleton(null)); |
|
|
|
if (!selectList.isEmpty()) { |
|
|
|
ResultBean resultBean = finSelectedReceivablesDetailedFeign.saveAll(selectList); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public List<FinSelectedReceivablesDetailed> saveLists(List<FinSelectedReceivablesDetailed> selectList, LoanSettleApply loanSettleApply) { |
|
|
|
LoanSettleCompanyReduction loanSettleCompanyReduction = loanSettleCompanyReductionService.selectByMainSid(loanSettleApply.getSid()); |
|
|
|
LoanRepaymentPlanDetails planDetails = baseMapper.selectByBusVinSidAndDesc(loanSettleApply.getBusVinSid()); |
|
|
|
BusSalesOrder busSalesOrder = baseMapper.selectByOrderSid(loanSettleApply.getSaleOrderSid()); |
|
|
|
FinUncollectedReceivablesDetailedJR finUncollectedReceivablesDetailedJR = baseMapper.selectByType(planDetails.getSid(), "资金占用费"); |
|
|
|
if (loanSettleCompanyReduction != null) { |
|
|
|
if (loanSettleCompanyReduction.getFundPenalty() != null && loanSettleCompanyReduction.getFundPenalty().compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); |
|
|
|
fin.setCreateBySid(planDetails.getSalesUserSid()); |
|
|
|
fin.setRemarks("减免"); |
|
|
|
fin.setVIN(planDetails.getVinNo()); |
|
|
|
fin.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
fin.setReceivablesName("资金占用费"); |
|
|
|
fin.setSubscriptionMoney(loanSettleCompanyReduction.getFundPenalty()); |
|
|
|
fin.setSubscriptionDate(DateUtil.today()); |
|
|
|
fin.setAuditState(3); |
|
|
|
fin.setKxState("01"); |
|
|
|
if (finUncollectedReceivablesDetailedJR != null) { |
|
|
|
fin.setReceivablesSid(finUncollectedReceivablesDetailedJR.getSid()); |
|
|
|
} else { |
|
|
|
fin.setReceivablesSid(""); |
|
|
|
} |
|
|
|
fin.setPurchaseSystemSid(busSalesOrder.getPurchaseSystemSid()); |
|
|
|
fin.setPurchaseSystemName(busSalesOrder.getPurchaseSystemName()); |
|
|
|
fin.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
fin.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); |
|
|
|
selectList.add(fin); |
|
|
|
} |
|
|
|
} |
|
|
|
return selectList; |
|
|
|
} |
|
|
|
|
|
|
|
public List<FinSelectedReceivablesDetailed> saveList(List<FinSelectedReceivablesDetailed> selectList, LoanSettleApply loanSettleApply) { |
|
|
|
//结转贷款保证金
|
|
|
|
//查询贷款保证金是否大于0,若不大于0,则直接返回list
|
|
|
|
LoanSettleCompanyCost loanSettleCompanyCost = loanSettleCompanyCostService.selectByMainSid(loanSettleApply.getSid()); |
|
|
|
LoanRepaymentPlanDetails planDetails = baseMapper.selectByBusVinSidAndDesc(loanSettleApply.getBusVinSid()); |
|
|
|
BusSalesOrder busSalesOrder = baseMapper.selectByOrderSid(loanSettleApply.getSaleOrderSid()); |
|
|
|
if (loanSettleCompanyCost != null) { |
|
|
|
if (loanSettleCompanyCost.getLoanDeposit().compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
//则按顺序结转
|
|
|
|
//1月还 2垫资方逾期利息 3资金占用费 4资方逾期利息5名义价 6合同违约金7其他费用
|
|
|
|
BigDecimal all = BigDecimal.ZERO; |
|
|
|
if (loanSettleCompanyCost.getLoanDeposit().compareTo(loanSettleCompanyCost.getDeductionAmount()) > 0) { |
|
|
|
all = loanSettleCompanyCost.getLoanDeposit().subtract(loanSettleCompanyCost.getDeductionAmount()); |
|
|
|
} |
|
|
|
if (all.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
if (all.compareTo(planDetails.getDueMoney()) > 0) { |
|
|
|
FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); |
|
|
|
fin.setCreateBySid(planDetails.getSalesUserSid()); |
|
|
|
fin.setRemarks("结转"); |
|
|
|
fin.setVIN(planDetails.getVinNo()); |
|
|
|
fin.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
fin.setReceivablesName("月还"); |
|
|
|
fin.setSubscriptionMoney(planDetails.getDueMoney()); |
|
|
|
fin.setSubscriptionDate(DateUtil.today()); |
|
|
|
fin.setAuditState(3); |
|
|
|
fin.setReceivablesSid(planDetails.getSid()); |
|
|
|
fin.setKxState("01"); |
|
|
|
fin.setPurchaseSystemSid(busSalesOrder.getPurchaseSystemSid()); |
|
|
|
fin.setPurchaseSystemName(busSalesOrder.getPurchaseSystemName()); |
|
|
|
fin.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
fin.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); |
|
|
|
selectList.add(fin); |
|
|
|
all = all.subtract(planDetails.getDueMoney()); |
|
|
|
} else { |
|
|
|
FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); |
|
|
|
fin.setCreateBySid(planDetails.getSalesUserSid()); |
|
|
|
fin.setRemarks("结转"); |
|
|
|
fin.setVIN(planDetails.getVinNo()); |
|
|
|
fin.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
fin.setReceivablesName("月还"); |
|
|
|
fin.setSubscriptionMoney(all); |
|
|
|
fin.setSubscriptionDate(DateUtil.today()); |
|
|
|
fin.setAuditState(3); |
|
|
|
fin.setReceivablesSid(planDetails.getSid()); |
|
|
|
fin.setKxState("01"); |
|
|
|
fin.setPurchaseSystemSid(busSalesOrder.getPurchaseSystemSid()); |
|
|
|
fin.setPurchaseSystemName(busSalesOrder.getPurchaseSystemName()); |
|
|
|
fin.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
fin.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); |
|
|
|
selectList.add(fin); |
|
|
|
all = BigDecimal.ZERO; |
|
|
|
} |
|
|
|
} |
|
|
|
//结转垫资方逾期利息
|
|
|
|
FinUncollectedReceivablesDetailedJR finUncollectedReceivablesDetailedJR = baseMapper.selectByType(planDetails.getSid(), "资方逾期利息"); |
|
|
|
if (all.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
if (all.compareTo(planDetails.getPaymentInterest()) > 0) { |
|
|
|
FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); |
|
|
|
fin.setCreateBySid(planDetails.getSalesUserSid()); |
|
|
|
fin.setRemarks("结转"); |
|
|
|
fin.setVIN(planDetails.getVinNo()); |
|
|
|
fin.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
fin.setReceivablesName("资方逾期利息"); |
|
|
|
fin.setSubscriptionMoney(planDetails.getPaymentInterest()); |
|
|
|
fin.setSubscriptionDate(DateUtil.today()); |
|
|
|
fin.setAuditState(3); |
|
|
|
if (finUncollectedReceivablesDetailedJR != null) { |
|
|
|
fin.setReceivablesSid(finUncollectedReceivablesDetailedJR.getSid()); |
|
|
|
} else { |
|
|
|
fin.setReceivablesSid(""); |
|
|
|
} |
|
|
|
fin.setKxState("01"); |
|
|
|
fin.setPurchaseSystemSid(busSalesOrder.getPurchaseSystemSid()); |
|
|
|
fin.setPurchaseSystemName(busSalesOrder.getPurchaseSystemName()); |
|
|
|
fin.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
fin.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); |
|
|
|
selectList.add(fin); |
|
|
|
all = all.subtract(planDetails.getDueMoney()); |
|
|
|
} else { |
|
|
|
FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); |
|
|
|
fin.setCreateBySid(planDetails.getSalesUserSid()); |
|
|
|
fin.setRemarks("结转"); |
|
|
|
fin.setVIN(planDetails.getVinNo()); |
|
|
|
fin.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
fin.setReceivablesName("资方逾期利息"); |
|
|
|
fin.setSubscriptionMoney(all); |
|
|
|
fin.setSubscriptionDate(DateUtil.today()); |
|
|
|
fin.setAuditState(3); |
|
|
|
if (finUncollectedReceivablesDetailedJR != null) { |
|
|
|
fin.setReceivablesSid(finUncollectedReceivablesDetailedJR.getSid()); |
|
|
|
} else { |
|
|
|
fin.setReceivablesSid(""); |
|
|
|
} |
|
|
|
fin.setKxState("01"); |
|
|
|
fin.setPurchaseSystemSid(busSalesOrder.getPurchaseSystemSid()); |
|
|
|
fin.setPurchaseSystemName(busSalesOrder.getPurchaseSystemName()); |
|
|
|
fin.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
fin.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); |
|
|
|
selectList.add(fin); |
|
|
|
all = BigDecimal.ZERO; |
|
|
|
} |
|
|
|
} |
|
|
|
//资金占用费
|
|
|
|
finUncollectedReceivablesDetailedJR = baseMapper.selectByType(planDetails.getSid(), "资金占用费"); |
|
|
|
if (all.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
if (all.compareTo(loanSettleCompanyCost.getFunfCost()) > 0) { |
|
|
|
FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); |
|
|
|
fin.setCreateBySid(planDetails.getSalesUserSid()); |
|
|
|
fin.setRemarks("结转"); |
|
|
|
fin.setVIN(planDetails.getVinNo()); |
|
|
|
fin.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
fin.setReceivablesName("资金占用费"); |
|
|
|
fin.setSubscriptionMoney(loanSettleCompanyCost.getFunfCost()); |
|
|
|
fin.setSubscriptionDate(DateUtil.today()); |
|
|
|
fin.setAuditState(3); |
|
|
|
if (finUncollectedReceivablesDetailedJR != null) { |
|
|
|
fin.setReceivablesSid(finUncollectedReceivablesDetailedJR.getSid()); |
|
|
|
} else { |
|
|
|
fin.setReceivablesSid(""); |
|
|
|
} |
|
|
|
fin.setKxState("01"); |
|
|
|
fin.setPurchaseSystemSid(busSalesOrder.getPurchaseSystemSid()); |
|
|
|
fin.setPurchaseSystemName(busSalesOrder.getPurchaseSystemName()); |
|
|
|
fin.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
fin.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); |
|
|
|
selectList.add(fin); |
|
|
|
all = all.subtract(planDetails.getDueMoney()); |
|
|
|
} else { |
|
|
|
FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); |
|
|
|
fin.setCreateBySid(planDetails.getSalesUserSid()); |
|
|
|
fin.setRemarks("结转"); |
|
|
|
fin.setVIN(planDetails.getVinNo()); |
|
|
|
fin.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
fin.setReceivablesName("资金占用费"); |
|
|
|
fin.setSubscriptionMoney(all); |
|
|
|
fin.setSubscriptionDate(DateUtil.today()); |
|
|
|
fin.setAuditState(3); |
|
|
|
if (finUncollectedReceivablesDetailedJR != null) { |
|
|
|
fin.setReceivablesSid(finUncollectedReceivablesDetailedJR.getSid()); |
|
|
|
} else { |
|
|
|
fin.setReceivablesSid(""); |
|
|
|
} |
|
|
|
fin.setKxState("01"); |
|
|
|
fin.setPurchaseSystemSid(busSalesOrder.getPurchaseSystemSid()); |
|
|
|
fin.setPurchaseSystemName(busSalesOrder.getPurchaseSystemName()); |
|
|
|
fin.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
fin.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); |
|
|
|
selectList.add(fin); |
|
|
|
all = BigDecimal.ZERO; |
|
|
|
} |
|
|
|
} |
|
|
|
//资方逾期利息
|
|
|
|
finUncollectedReceivablesDetailedJR = baseMapper.selectByType(planDetails.getSid(), "结清时资方逾期利息"); |
|
|
|
if (all.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
if (all.compareTo(loanSettleCompanyCost.getBankOverInterest()) > 0) { |
|
|
|
FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); |
|
|
|
fin.setCreateBySid(planDetails.getSalesUserSid()); |
|
|
|
fin.setRemarks("结转"); |
|
|
|
fin.setVIN(planDetails.getVinNo()); |
|
|
|
fin.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
fin.setReceivablesName("结清时资方逾期利息"); |
|
|
|
fin.setSubscriptionMoney(loanSettleCompanyCost.getBankOverInterest()); |
|
|
|
fin.setSubscriptionDate(DateUtil.today()); |
|
|
|
fin.setAuditState(3); |
|
|
|
if (finUncollectedReceivablesDetailedJR != null) { |
|
|
|
fin.setReceivablesSid(finUncollectedReceivablesDetailedJR.getSid()); |
|
|
|
} else { |
|
|
|
fin.setReceivablesSid(""); |
|
|
|
} |
|
|
|
fin.setKxState("01"); |
|
|
|
fin.setPurchaseSystemSid(busSalesOrder.getPurchaseSystemSid()); |
|
|
|
fin.setPurchaseSystemName(busSalesOrder.getPurchaseSystemName()); |
|
|
|
fin.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
fin.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); |
|
|
|
selectList.add(fin); |
|
|
|
all = all.subtract(planDetails.getDueMoney()); |
|
|
|
} else { |
|
|
|
FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); |
|
|
|
fin.setCreateBySid(planDetails.getSalesUserSid()); |
|
|
|
fin.setRemarks("结转"); |
|
|
|
fin.setVIN(planDetails.getVinNo()); |
|
|
|
fin.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
fin.setReceivablesName("结清时资方逾期利息"); |
|
|
|
fin.setSubscriptionMoney(all); |
|
|
|
fin.setSubscriptionDate(DateUtil.today()); |
|
|
|
fin.setAuditState(3); |
|
|
|
if (finUncollectedReceivablesDetailedJR != null) { |
|
|
|
fin.setReceivablesSid(finUncollectedReceivablesDetailedJR.getSid()); |
|
|
|
} else { |
|
|
|
fin.setReceivablesSid(""); |
|
|
|
} |
|
|
|
fin.setKxState("01"); |
|
|
|
fin.setPurchaseSystemSid(busSalesOrder.getPurchaseSystemSid()); |
|
|
|
fin.setPurchaseSystemName(busSalesOrder.getPurchaseSystemName()); |
|
|
|
fin.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
fin.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); |
|
|
|
selectList.add(fin); |
|
|
|
all = BigDecimal.ZERO; |
|
|
|
} |
|
|
|
} |
|
|
|
//名义价
|
|
|
|
finUncollectedReceivablesDetailedJR = baseMapper.selectByType(planDetails.getSid(), "名义价"); |
|
|
|
if (all.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
if (all.compareTo(loanSettleCompanyCost.getCompanyNominalPrice()) > 0) { |
|
|
|
FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); |
|
|
|
fin.setCreateBySid(planDetails.getSalesUserSid()); |
|
|
|
fin.setRemarks("结转"); |
|
|
|
fin.setVIN(planDetails.getVinNo()); |
|
|
|
fin.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
fin.setReceivablesName("名义价"); |
|
|
|
fin.setSubscriptionMoney(loanSettleCompanyCost.getCompanyNominalPrice()); |
|
|
|
fin.setSubscriptionDate(DateUtil.today()); |
|
|
|
fin.setAuditState(3); |
|
|
|
if (finUncollectedReceivablesDetailedJR != null) { |
|
|
|
fin.setReceivablesSid(finUncollectedReceivablesDetailedJR.getSid()); |
|
|
|
} else { |
|
|
|
fin.setReceivablesSid(""); |
|
|
|
} |
|
|
|
fin.setKxState("01"); |
|
|
|
fin.setPurchaseSystemSid(busSalesOrder.getPurchaseSystemSid()); |
|
|
|
fin.setPurchaseSystemName(busSalesOrder.getPurchaseSystemName()); |
|
|
|
fin.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
fin.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); |
|
|
|
selectList.add(fin); |
|
|
|
all = all.subtract(planDetails.getDueMoney()); |
|
|
|
} else { |
|
|
|
FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); |
|
|
|
fin.setCreateBySid(planDetails.getSalesUserSid()); |
|
|
|
fin.setRemarks("结转"); |
|
|
|
fin.setVIN(planDetails.getVinNo()); |
|
|
|
fin.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
fin.setReceivablesName("名义价"); |
|
|
|
fin.setSubscriptionMoney(all); |
|
|
|
fin.setSubscriptionDate(DateUtil.today()); |
|
|
|
fin.setAuditState(3); |
|
|
|
if (finUncollectedReceivablesDetailedJR != null) { |
|
|
|
fin.setReceivablesSid(finUncollectedReceivablesDetailedJR.getSid()); |
|
|
|
} else { |
|
|
|
fin.setReceivablesSid(""); |
|
|
|
} |
|
|
|
fin.setKxState("01"); |
|
|
|
fin.setPurchaseSystemSid(busSalesOrder.getPurchaseSystemSid()); |
|
|
|
fin.setPurchaseSystemName(busSalesOrder.getPurchaseSystemName()); |
|
|
|
fin.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
fin.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); |
|
|
|
selectList.add(fin); |
|
|
|
all = BigDecimal.ZERO; |
|
|
|
} |
|
|
|
} |
|
|
|
//合同违约金
|
|
|
|
finUncollectedReceivablesDetailedJR = baseMapper.selectByType(planDetails.getSid(), "合同违约金"); |
|
|
|
if (all.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
if (all.compareTo(loanSettleCompanyCost.getContractLiquidated()) > 0) { |
|
|
|
FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); |
|
|
|
fin.setCreateBySid(planDetails.getSalesUserSid()); |
|
|
|
fin.setRemarks("结转"); |
|
|
|
fin.setVIN(planDetails.getVinNo()); |
|
|
|
fin.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
fin.setReceivablesName("合同违约金"); |
|
|
|
fin.setSubscriptionMoney(loanSettleCompanyCost.getContractLiquidated()); |
|
|
|
fin.setSubscriptionDate(DateUtil.today()); |
|
|
|
fin.setAuditState(3); |
|
|
|
if (finUncollectedReceivablesDetailedJR != null) { |
|
|
|
fin.setReceivablesSid(finUncollectedReceivablesDetailedJR.getSid()); |
|
|
|
} else { |
|
|
|
fin.setReceivablesSid(""); |
|
|
|
} |
|
|
|
fin.setKxState("01"); |
|
|
|
fin.setPurchaseSystemSid(busSalesOrder.getPurchaseSystemSid()); |
|
|
|
fin.setPurchaseSystemName(busSalesOrder.getPurchaseSystemName()); |
|
|
|
fin.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
fin.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); |
|
|
|
selectList.add(fin); |
|
|
|
all = all.subtract(planDetails.getDueMoney()); |
|
|
|
} else { |
|
|
|
FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); |
|
|
|
fin.setCreateBySid(planDetails.getSalesUserSid()); |
|
|
|
fin.setRemarks("结转"); |
|
|
|
fin.setVIN(planDetails.getVinNo()); |
|
|
|
fin.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
fin.setReceivablesName("合同违约金"); |
|
|
|
fin.setSubscriptionMoney(all); |
|
|
|
fin.setSubscriptionDate(DateUtil.today()); |
|
|
|
fin.setAuditState(3); |
|
|
|
if (finUncollectedReceivablesDetailedJR != null) { |
|
|
|
fin.setReceivablesSid(finUncollectedReceivablesDetailedJR.getSid()); |
|
|
|
} else { |
|
|
|
fin.setReceivablesSid(""); |
|
|
|
} |
|
|
|
fin.setKxState("01"); |
|
|
|
fin.setPurchaseSystemSid(busSalesOrder.getPurchaseSystemSid()); |
|
|
|
fin.setPurchaseSystemName(busSalesOrder.getPurchaseSystemName()); |
|
|
|
fin.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
fin.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); |
|
|
|
selectList.add(fin); |
|
|
|
all = BigDecimal.ZERO; |
|
|
|
} |
|
|
|
} |
|
|
|
//其他费用
|
|
|
|
finUncollectedReceivablesDetailedJR = baseMapper.selectByType(planDetails.getSid(), "其他费用"); |
|
|
|
if (all.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
if (all.compareTo(loanSettleCompanyCost.getCompanyOtherPrice()) > 0) { |
|
|
|
FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); |
|
|
|
fin.setCreateBySid(planDetails.getSalesUserSid()); |
|
|
|
fin.setRemarks("结转"); |
|
|
|
fin.setVIN(planDetails.getVinNo()); |
|
|
|
fin.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
fin.setReceivablesName("其他费用"); |
|
|
|
fin.setSubscriptionMoney(loanSettleCompanyCost.getCompanyOtherPrice()); |
|
|
|
fin.setSubscriptionDate(DateUtil.today()); |
|
|
|
fin.setAuditState(3); |
|
|
|
if (finUncollectedReceivablesDetailedJR != null) { |
|
|
|
fin.setReceivablesSid(finUncollectedReceivablesDetailedJR.getSid()); |
|
|
|
} else { |
|
|
|
fin.setReceivablesSid(""); |
|
|
|
} |
|
|
|
fin.setKxState("01"); |
|
|
|
fin.setPurchaseSystemSid(busSalesOrder.getPurchaseSystemSid()); |
|
|
|
fin.setPurchaseSystemName(busSalesOrder.getPurchaseSystemName()); |
|
|
|
fin.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
fin.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); |
|
|
|
selectList.add(fin); |
|
|
|
all = all.subtract(planDetails.getDueMoney()); |
|
|
|
} else { |
|
|
|
FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); |
|
|
|
fin.setCreateBySid(planDetails.getSalesUserSid()); |
|
|
|
fin.setRemarks("结转"); |
|
|
|
fin.setVIN(planDetails.getVinNo()); |
|
|
|
fin.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
fin.setReceivablesName("其他费用"); |
|
|
|
fin.setSubscriptionMoney(all); |
|
|
|
fin.setSubscriptionDate(DateUtil.today()); |
|
|
|
fin.setAuditState(3); |
|
|
|
if (finUncollectedReceivablesDetailedJR != null) { |
|
|
|
fin.setReceivablesSid(finUncollectedReceivablesDetailedJR.getSid()); |
|
|
|
} else { |
|
|
|
fin.setReceivablesSid(""); |
|
|
|
} |
|
|
|
fin.setKxState("01"); |
|
|
|
fin.setPurchaseSystemSid(busSalesOrder.getPurchaseSystemSid()); |
|
|
|
fin.setPurchaseSystemName(busSalesOrder.getPurchaseSystemName()); |
|
|
|
fin.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
fin.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); |
|
|
|
selectList.add(fin); |
|
|
|
all = BigDecimal.ZERO; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return selectList; |
|
|
|
} |
|
|
|
|
|
|
|
public List<FinUncollectedReceivablesDetailedJR> getLists(List<FinUncollectedReceivablesDetailedJR> list, LoanSettleApply loanSettleApply) { |
|
|
|
//资方逾期利息应收、名义价应收、合同违约金应收、其他费用应收
|
|
|
|
LoanSettleCompanyCost loanSettleCompanyCost = loanSettleCompanyCostService.selectByMainSid(loanSettleApply.getSid()); |
|
|
|
LoanRepaymentPlanDetails planDetails = baseMapper.selectByBusVinSidAndDesc(loanSettleApply.getBusVinSid()); |
|
|
|
if (loanSettleCompanyCost.getBankOverInterest().compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
//资方逾期利息应收
|
|
|
|
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); |
|
|
|
jr.setBusSid(planDetails.getSid()); |
|
|
|
jr.setReveivableMoney(loanSettleCompanyCost.getBankOverInterest()); |
|
|
|
jr.setPayCostTitleKey("012"); |
|
|
|
jr.setPayCostTitleValue("结清时资方逾期利息"); |
|
|
|
jr.setOrgSidPath(planDetails.getOrgSidPath()); |
|
|
|
jr.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
jr.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
jr.setStaffDeptName(planDetails.getDept()); |
|
|
|
jr.setStaffName(planDetails.getStaffName()); |
|
|
|
jr.setStaffDeptSid(planDetails.getDeptSid()); |
|
|
|
jr.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
list.add(jr); |
|
|
|
|
|
|
|
} |
|
|
|
if (loanSettleCompanyCost.getCompanyNominalPrice().compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
//名义价应收
|
|
|
|
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); |
|
|
|
jr.setBusSid(planDetails.getSid()); |
|
|
|
jr.setReveivableMoney(loanSettleCompanyCost.getCompanyNominalPrice()); |
|
|
|
jr.setPayCostTitleKey("009"); |
|
|
|
jr.setPayCostTitleValue("名义价"); |
|
|
|
jr.setOrgSidPath(planDetails.getOrgSidPath()); |
|
|
|
jr.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
jr.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
jr.setStaffDeptName(planDetails.getDept()); |
|
|
|
jr.setStaffName(planDetails.getStaffName()); |
|
|
|
jr.setStaffDeptSid(planDetails.getDeptSid()); |
|
|
|
jr.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
list.add(jr); |
|
|
|
|
|
|
|
} |
|
|
|
if (loanSettleCompanyCost.getContractLiquidated().compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
//合同违约金应收
|
|
|
|
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); |
|
|
|
jr.setBusSid(planDetails.getSid()); |
|
|
|
jr.setReveivableMoney(loanSettleCompanyCost.getContractLiquidated()); |
|
|
|
jr.setPayCostTitleKey("010"); |
|
|
|
jr.setPayCostTitleValue("合同违约金"); |
|
|
|
jr.setOrgSidPath(planDetails.getOrgSidPath()); |
|
|
|
jr.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
jr.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
jr.setStaffDeptName(planDetails.getDept()); |
|
|
|
jr.setStaffName(planDetails.getStaffName()); |
|
|
|
jr.setStaffDeptSid(planDetails.getDeptSid()); |
|
|
|
jr.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
list.add(jr); |
|
|
|
} |
|
|
|
if (loanSettleCompanyCost.getCompanyOtherPrice().compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
//公司其他费用应收
|
|
|
|
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); |
|
|
|
jr.setBusSid(planDetails.getSid()); |
|
|
|
jr.setReveivableMoney(loanSettleCompanyCost.getCompanyOtherPrice()); |
|
|
|
jr.setPayCostTitleKey("011"); |
|
|
|
jr.setPayCostTitleValue("其他费用"); |
|
|
|
jr.setOrgSidPath(planDetails.getOrgSidPath()); |
|
|
|
jr.setUseOrgName(planDetails.getUseOrgName()); |
|
|
|
jr.setUseOrgSid(planDetails.getUseOrgSid()); |
|
|
|
jr.setStaffDeptName(planDetails.getDept()); |
|
|
|
jr.setStaffName(planDetails.getStaffName()); |
|
|
|
jr.setStaffDeptSid(planDetails.getDeptSid()); |
|
|
|
jr.setStaffUserSid(planDetails.getSalesUserSid()); |
|
|
|
list.add(jr); |
|
|
|
|
|
|
|
} |
|
|
|
return list; |
|
|
|
} |
|
|
|
|
|
|
|
private void pushSettlevehicle(String businessSid) { |
|
|
|
LoanSettleVehicleDto loanSettleVehicleDto = new LoanSettleVehicleDto(); |
|
|
|
LoanSettleApply loanSettleApply = fetchBySid(businessSid); |
|
|
@ -1028,4 +1570,9 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa |
|
|
|
return p; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean confirmAtn(String sid) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
pushConfirm(sid); |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
} |
|
|
|