|
|
@ -33,6 +33,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.google.common.util.concurrent.ThreadFactoryBuilder; |
|
|
|
import com.yxt.anrui.base.api.basemiddleman.BaseMiddlemanDetailsVo; |
|
|
|
import com.yxt.anrui.base.api.basemiddleman.BaseMiddlemanFeign; |
|
|
|
import com.yxt.anrui.base.api.basetrailer.BaseTrailerDetailsVo; |
|
|
|
import com.yxt.anrui.base.api.basetrailer.BaseTrailerFeign; |
|
|
|
import com.yxt.anrui.base.api.basetrailer.TraliveredVo; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign; |
|
|
@ -52,9 +53,13 @@ import com.yxt.anrui.base.api.commoncontract.CommonContractFeign; |
|
|
|
import com.yxt.anrui.base.common.enums.CertificState; |
|
|
|
import com.yxt.anrui.base.common.utils.Rule; |
|
|
|
import com.yxt.anrui.buscenter.api.busarrearscarryvehicleapply.BusArrearsCarryVehicleApply; |
|
|
|
import com.yxt.anrui.buscenter.api.busarrearscarryvehicleapply.BusArrearsCarryVehicleApplyVo; |
|
|
|
import com.yxt.anrui.buscenter.api.busbillapplication.BusBillApplication; |
|
|
|
import com.yxt.anrui.buscenter.api.busbillapplication.BusBillApplicationDetailsVo; |
|
|
|
import com.yxt.anrui.buscenter.api.busbillapplication.BusBillApplicationDto; |
|
|
|
import com.yxt.anrui.buscenter.api.busbillapplication.BusBillApplicationVo; |
|
|
|
import com.yxt.anrui.buscenter.api.busbilltrailer.BusBillTrailerVo; |
|
|
|
import com.yxt.anrui.buscenter.api.busbillvehicle.BusBillVehicleVo; |
|
|
|
import com.yxt.anrui.buscenter.api.busdelivered.AppDeliveredDetailsVo; |
|
|
|
import com.yxt.anrui.buscenter.api.busdelivered.BusDelivered; |
|
|
|
import com.yxt.anrui.buscenter.api.busdelivered.DeliveredDictVo; |
|
|
@ -75,11 +80,16 @@ import com.yxt.anrui.buscenter.api.bushandoverpreparevehicle.AppBusHandoverPrepa |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDetailsVo; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorderdiscount.BusSalesOrderDiscount; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesordersubmit.SubmitVo; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleDetailsVo; |
|
|
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingDto; |
|
|
|
import com.yxt.anrui.buscenter.api.busvehicleinformationhandover.BusVehicleInformationHandoverDto; |
|
|
|
import com.yxt.anrui.buscenter.biz.busarrearscarryvehicleapply.BusArrearsCarryVehicleApplyService; |
|
|
|
import com.yxt.anrui.buscenter.biz.busbillapplication.BusBillApplicationService; |
|
|
|
import com.yxt.anrui.buscenter.biz.busbilltrailer.BusBillTrailerService; |
|
|
|
import com.yxt.anrui.buscenter.biz.busbillvehicle.BusBillVehicleService; |
|
|
|
import com.yxt.anrui.buscenter.biz.busdelivered.BusDeliveredService; |
|
|
|
import com.yxt.anrui.buscenter.biz.busdeliveredapplydetails.BusDeliveredApplyDetailsService; |
|
|
|
import com.yxt.anrui.buscenter.biz.busdelivereddetailsdiscount.BusDeliveredDetailsDiscountService; |
|
|
@ -89,12 +99,15 @@ import com.yxt.anrui.buscenter.biz.bushandoverprepare.BusHandoverPrepareService; |
|
|
|
import com.yxt.anrui.buscenter.biz.bussalesorder.BusSalesOrderService; |
|
|
|
import com.yxt.anrui.buscenter.biz.bussalesorderdiscount.BusSalesOrderDiscountService; |
|
|
|
import com.yxt.anrui.buscenter.biz.bussalesordervehicle.BusSalesOrderVehicleService; |
|
|
|
import com.yxt.anrui.buscenter.biz.busvalcustfiling.BusValcustFilingService; |
|
|
|
import com.yxt.anrui.buscenter.biz.busvehicleinformationhandover.BusVehicleInformationHandoverService; |
|
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; |
|
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo; |
|
|
|
import com.yxt.anrui.fin.api.finbillapplication.FinBillApplicationDto; |
|
|
|
import com.yxt.anrui.fin.api.finbillapplication.FinBillApplicationFeign; |
|
|
|
import com.yxt.anrui.fin.api.finbilltrailer.FinBillTrailerVo; |
|
|
|
import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleDto; |
|
|
|
import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleVo; |
|
|
|
import com.yxt.anrui.fin.api.fincollectionconfirmation.FinCollectionConfirmationDetailsVo; |
|
|
|
import com.yxt.anrui.fin.api.fincollectionconfirmation.FinCollectionConfirmationFeign; |
|
|
|
import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingDetailsVo; |
|
|
@ -106,6 +119,7 @@ import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedRec |
|
|
|
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.ReceiveInvoiceVo; |
|
|
|
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.ReceiveSeleteVo; |
|
|
|
import com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoice; |
|
|
|
import com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoiceDto; |
|
|
|
import com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoiceFeign; |
|
|
|
import com.yxt.anrui.fin.api.finvehicleinvoice.InvoiceVo; |
|
|
|
import com.yxt.anrui.flowable.api.flow.FlowProcessMapQuery; |
|
|
@ -126,6 +140,7 @@ import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserVo; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.UserQuery; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterFeign; |
|
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign; |
|
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; |
|
|
|
import com.yxt.common.base.service.MybatisBaseService; |
|
|
@ -232,6 +247,16 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp |
|
|
|
private BaseVehicleStateFeign baseVehicleStateFeign; |
|
|
|
@Autowired |
|
|
|
private BusBillApplicationService busBillApplicationService; |
|
|
|
@Autowired |
|
|
|
private BusBillVehicleService busBillVehicleService; |
|
|
|
@Autowired |
|
|
|
private BusBillTrailerService busBillTrailerService; |
|
|
|
@Autowired |
|
|
|
private LoanParameterFeign loanParameterFeign; |
|
|
|
@Autowired |
|
|
|
private BusValcustFilingService busValcustFilingService; |
|
|
|
@Autowired |
|
|
|
private BusArrearsCarryVehicleApplyService busArrearsCarryVehicleApplyService; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
@ -863,10 +888,148 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp |
|
|
|
log.error("获取销售订单详情出错啦!!!"); |
|
|
|
} |
|
|
|
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(busDeliveredApply.getStaffUserSid()); |
|
|
|
//推送开票申请数据
|
|
|
|
Future future1 = pool.submit(() -> { |
|
|
|
pushInvoice(busDeliveredApply, detailsList, orderDetailsVoResultBean.getData(), userVoResultBean.getData()); |
|
|
|
}); |
|
|
|
if ("1".equals(busDeliveredApply.getHasInvoiceKey())){ |
|
|
|
BusSalesOrderPrice data = busSalesOrderService.selectByContractNoOne(busDeliveredApply.getContractNo()).getData(); |
|
|
|
BusSalesOrder busSalesOrder = busSalesOrderService.selectByContractNos(busDeliveredApply.getContractNo()); |
|
|
|
BusBillApplication busBillApplication = busBillApplicationService.selectByCkSidAll(busDeliveredApply.getSid()); |
|
|
|
List<BusBillVehicleVo> busBillVehicleVos = busBillVehicleService.fetchVehBySid(busBillApplication.getSid()); |
|
|
|
List<BusBillTrailerVo> busBillTrailerVos = busBillTrailerService.fetchByMainSid(busBillApplication.getSid()); |
|
|
|
if (!data.getSingleFinalPrice().equals(busBillApplication.getOneBillMoney())) {//是高低开
|
|
|
|
BusValcustFilingDto busValcustFilingDto = new BusValcustFilingDto(); |
|
|
|
busValcustFilingDto.setCreateBySid(busBillApplication.getCreateBySid()); |
|
|
|
busValcustFilingDto.setCreateByName(busBillApplication.getCreateByName()); |
|
|
|
busValcustFilingDto.setOrgSidPath(busBillApplication.getOrgSidPath()); |
|
|
|
busValcustFilingDto.setUseOrgSid(busBillApplication.getUseOrgSid()); |
|
|
|
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(busBillApplication.getUseOrgSid()).getData(); |
|
|
|
busValcustFilingDto.setUseOrgName(sysOrganizationVo.getName()); |
|
|
|
busValcustFilingDto.setApplyDeptSid(busBillApplication.getDeptSid()); |
|
|
|
busValcustFilingDto.setApplyDeptName(busBillApplication.getDeptName()); |
|
|
|
busValcustFilingDto.setContractNo(busBillApplication.getContractNo()); |
|
|
|
busValcustFilingDto.setModelSid(busBillApplication.getModelSid()); |
|
|
|
busValcustFilingDto.setModelName(busBillApplication.getModelName()); |
|
|
|
String vinSid = ""; |
|
|
|
String vinNo = ""; |
|
|
|
for (BusBillVehicleVo busBillVehicleVo : busBillVehicleVos) { |
|
|
|
vinSid = vinSid + busBillVehicleVo.getVehSid() + ","; |
|
|
|
vinNo = vinNo + busBillVehicleVo.getVinNo() + ","; |
|
|
|
} |
|
|
|
busValcustFilingDto.setVinSid(vinSid.substring(0, vinSid.lastIndexOf(","))); |
|
|
|
busValcustFilingDto.setVinNo(vinNo.substring(0, vinNo.lastIndexOf(","))); |
|
|
|
BigDecimal money = busBillApplication.getOneBillMoney().subtract(data.getSingleFinalPrice()); |
|
|
|
int i = money.compareTo(BigDecimal.ZERO); |
|
|
|
if (i == 1) { |
|
|
|
busValcustFilingDto.setIsGdk("0"); |
|
|
|
String parameterValue = loanParameterFeign.fetchByParNo("CW_JZPZSXFBL").getData(); |
|
|
|
busValcustFilingDto.setYsMoney(money.multiply(new BigDecimal(parameterValue)).toString()); |
|
|
|
} else { |
|
|
|
busValcustFilingDto.setIsGdk("1"); |
|
|
|
busValcustFilingDto.setYsMoney("0"); |
|
|
|
} |
|
|
|
busValcustFilingDto.setMoney(money.abs().toString()); |
|
|
|
busValcustFilingDto.setSaleOrderSid(busSalesOrder.getSid()); |
|
|
|
busValcustFilingDto.setBusSid(busBillApplication.getSid()); |
|
|
|
busValcustFilingDto.setBusSource("0"); |
|
|
|
busValcustFilingService.saveOrUpdateDto(busValcustFilingDto); |
|
|
|
} else {//不是高低开
|
|
|
|
for (BusBillVehicleVo busBillVehicleVo : busBillVehicleVos) { |
|
|
|
int count = finVehicleInvoiceFeign.selectCountByVinSid(busBillVehicleVo.getVehSid()).getData(); |
|
|
|
if (count == 0) { |
|
|
|
FinVehicleInvoiceDto finVehicleInvoiceDto = new FinVehicleInvoiceDto(); |
|
|
|
finVehicleInvoiceDto.setInvoiceTitle(busBillApplication.getOpenTickUnitName()); |
|
|
|
finVehicleInvoiceDto.setContractNo(busBillApplication.getContractNo()); |
|
|
|
finVehicleInvoiceDto.setCustomerName(busBillApplication.getCustomerName()); |
|
|
|
finVehicleInvoiceDto.setVehicleSid(busBillVehicleVo.getVehSid()); |
|
|
|
finVehicleInvoiceDto.setVIN(busBillVehicleVo.getVinNo()); |
|
|
|
finVehicleInvoiceDto.setInvoiceTypeKey(busBillVehicleVo.getBillTypeKey()); |
|
|
|
finVehicleInvoiceDto.setInvoiceType(busBillVehicleVo.getBillTypeValue()); |
|
|
|
finVehicleInvoiceDto.setInvoiceAmount(busBillApplication.getOneBillMoney()); |
|
|
|
finVehicleInvoiceDto.setBillingStateKey("001"); |
|
|
|
finVehicleInvoiceDto.setBillingState("未开票"); |
|
|
|
finVehicleInvoiceDto.setTransferStateKey("001"); |
|
|
|
finVehicleInvoiceDto.setTransferState("未移交"); |
|
|
|
finVehicleInvoiceDto.setVehicleType("主车"); |
|
|
|
finVehicleInvoiceDto.setBillingSid(busBillApplication.getSid()); |
|
|
|
finVehicleInvoiceDto.setInvoicingName(busBillApplication.getOpenTickName()); |
|
|
|
finVehicleInvoiceDto.setCreateBySid(busBillApplication.getCreateBySid()); |
|
|
|
BusArrearsCarryVehicleApplyVo busArrearsCarryVehicleApplyVo = busArrearsCarryVehicleApplyService.selComByVehSid(busBillVehicleVo.getVehSid()).getData(); |
|
|
|
if (busArrearsCarryVehicleApplyVo == null) { |
|
|
|
finVehicleInvoiceDto.setBusinessStateKey(busBillApplication.getBillStateKey()); |
|
|
|
finVehicleInvoiceDto.setBusinessState(busBillApplication.getBillStateValue()); |
|
|
|
} else { |
|
|
|
finVehicleInvoiceDto.setBusinessStateKey("005"); |
|
|
|
finVehicleInvoiceDto.setBusinessState("欠款提车"); |
|
|
|
} |
|
|
|
finVehicleInvoiceDto.setUseOrgSid(busBillApplication.getUseOrgSid()); |
|
|
|
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.fetchDetailsVoBySid(busBillVehicleVo.getOpenTickSid()).getData(); |
|
|
|
if (StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) { |
|
|
|
finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress()); |
|
|
|
finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone()); |
|
|
|
finVehicleInvoiceDto.setOpeningBank(finCompanyInvoicingDetailsVo.getBankName()); |
|
|
|
finVehicleInvoiceDto.setBankNum(finCompanyInvoicingDetailsVo.getBankAccount()); |
|
|
|
finVehicleInvoiceDto.setTaxpayerNo(finCompanyInvoicingDetailsVo.getTaxpayerNo()); |
|
|
|
} else { |
|
|
|
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(busBillVehicleVo.getOpenTickSid()).getData(); |
|
|
|
finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile()); |
|
|
|
finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber()); |
|
|
|
} |
|
|
|
finVehicleInvoiceDto.setIsTakeTicket("是"); |
|
|
|
finVehicleInvoiceFeign.mySave(finVehicleInvoiceDto); |
|
|
|
} |
|
|
|
} |
|
|
|
if (busBillTrailerVos != null) { |
|
|
|
for (BusBillTrailerVo busBillTrailerVo : busBillTrailerVos) { |
|
|
|
String gcVinNo = busBillTrailerVo.getGcVinNo(); |
|
|
|
BaseTrailerDetailsVo baseTrailerDetailsVo = baseTrailerFeign.fetchByGcVinNo(gcVinNo).getData(); |
|
|
|
int count = finVehicleInvoiceFeign.selectCountByVinSid(baseTrailerDetailsVo.getSid()).getData(); |
|
|
|
if (count == 0) { |
|
|
|
FinVehicleInvoiceDto finVehicleInvoiceDto = new FinVehicleInvoiceDto(); |
|
|
|
finVehicleInvoiceDto.setInvoiceTitle(busBillApplication.getOpenTickUnitName()); |
|
|
|
finVehicleInvoiceDto.setContractNo(busBillApplication.getContractNo()); |
|
|
|
finVehicleInvoiceDto.setCustomerName(busBillApplication.getCustomerName()); |
|
|
|
finVehicleInvoiceDto.setVehicleSid(baseTrailerDetailsVo.getSid()); |
|
|
|
finVehicleInvoiceDto.setVIN(gcVinNo); |
|
|
|
finVehicleInvoiceDto.setInvoiceTypeKey(busBillTrailerVo.getBillTypeKey()); |
|
|
|
finVehicleInvoiceDto.setInvoiceType(busBillTrailerVo.getBillTypeValue()); |
|
|
|
finVehicleInvoiceDto.setInvoiceAmount(new BigDecimal(busBillTrailerVo.getOneBillMoney())); |
|
|
|
finVehicleInvoiceDto.setBillingStateKey("001"); |
|
|
|
finVehicleInvoiceDto.setBillingState("未开票"); |
|
|
|
finVehicleInvoiceDto.setTransferStateKey("001"); |
|
|
|
finVehicleInvoiceDto.setTransferState("未移交"); |
|
|
|
finVehicleInvoiceDto.setVehicleType("挂车"); |
|
|
|
finVehicleInvoiceDto.setBillingSid(busBillApplication.getSid()); |
|
|
|
finVehicleInvoiceDto.setInvoicingName(busBillTrailerVo.getOpenTickName()); |
|
|
|
finVehicleInvoiceDto.setCreateBySid(busBillApplication.getCreateBySid()); |
|
|
|
finVehicleInvoiceDto.setBusinessStateKey(busBillApplication.getBillStateKey()); |
|
|
|
finVehicleInvoiceDto.setBusinessState(busBillApplication.getBillStateValue()); |
|
|
|
finVehicleInvoiceDto.setUseOrgSid(busBillApplication.getUseOrgSid()); |
|
|
|
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.fetchDetailsVoBySid(busBillTrailerVo.getOpenTickSid()).getData(); |
|
|
|
if (StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) { |
|
|
|
finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress()); |
|
|
|
finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone()); |
|
|
|
finVehicleInvoiceDto.setOpeningBank(finCompanyInvoicingDetailsVo.getBankName()); |
|
|
|
finVehicleInvoiceDto.setBankNum(finCompanyInvoicingDetailsVo.getBankAccount()); |
|
|
|
finVehicleInvoiceDto.setTaxpayerNo(finCompanyInvoicingDetailsVo.getTaxpayerNo()); |
|
|
|
} else { |
|
|
|
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(busBillTrailerVo.getOpenTickSid()).getData(); |
|
|
|
finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile()); |
|
|
|
finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber()); |
|
|
|
} |
|
|
|
finVehicleInvoiceDto.setIsTakeTicket("是"); |
|
|
|
finVehicleInvoiceFeign.mySave(finVehicleInvoiceDto); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
BigDecimal oneBillMoney = busSalesOrder.getOneBillMoney(); |
|
|
|
if (oneBillMoney == null) { |
|
|
|
busSalesOrderService.updateOneBillMoneyByOrderSid(busSalesOrder.getSid(), busBillApplication.getOneBillMoney().toString()); |
|
|
|
} |
|
|
|
} |
|
|
|
}else { |
|
|
|
//推送开票申请数据
|
|
|
|
Future future1 = pool.submit(() -> { |
|
|
|
pushInvoice(busDeliveredApply, detailsList, orderDetailsVoResultBean.getData(), userVoResultBean.getData()); |
|
|
|
}); |
|
|
|
} |
|
|
|
//推送优惠包交接数据
|
|
|
|
Future future2 = pool.submit(() -> { |
|
|
|
pushDiscountPackage(busDeliveredApply, detailsList); |
|
|
@ -2538,6 +2701,14 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp |
|
|
|
if (busBillApplicationDetailsVo == null){ |
|
|
|
return rb.setMsg("未保存开票信息,无法提交"); |
|
|
|
} |
|
|
|
List<BusBillVehicleVo> busBillVehicleVos = busBillVehicleService.fetchByMainSid(busBillApplicationDetailsVo.getSid()); |
|
|
|
for (BusBillVehicleVo busBillVehicleVo : busBillVehicleVos) { |
|
|
|
if (StringUtils.isBlank(busBillVehicleVo.getBillTypeKey())){ |
|
|
|
return rb.setMsg(busBillVehicleVo.getVinNo() + "开票类型不能为空"); |
|
|
|
}else if (StringUtils.isBlank(busBillVehicleVo.getOpenTickName())){ |
|
|
|
return rb.setMsg(busBillVehicleVo.getVinNo() + "开票名称不能为空"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
String orgSidPath = ""; |
|
|
|
if (StringUtils.isNotBlank(busDeliveredApply.getOrgSidPath())) { |
|
|
|