|
@ -28,7 +28,6 @@ package com.yxt.anrui.buscenter.biz.bussalesorder; |
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
import cn.hutool.core.date.DateTime; |
|
|
import cn.hutool.core.date.DateTime; |
|
|
import cn.hutool.core.date.DateUtil; |
|
|
import cn.hutool.core.date.DateUtil; |
|
|
import cn.hutool.core.lang.Console; |
|
|
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
import com.alibaba.fastjson.JSON; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
@ -36,7 +35,6 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder; |
|
|
import com.yxt.anrui.base.api.basebrandletpricepowimit.BaseBrandMitQuery; |
|
|
import com.yxt.anrui.base.api.basebrandletpricepowimit.BaseBrandMitQuery; |
|
|
import com.yxt.anrui.base.api.basebrandletpricepowimit.BaseBrandletpricepowimitFeign; |
|
|
import com.yxt.anrui.base.api.basebrandletpricepowimit.BaseBrandletpricepowimitFeign; |
|
|
import com.yxt.anrui.base.api.basediscountpackage.BaseDiscountpackageFeign; |
|
|
import com.yxt.anrui.base.api.basediscountpackage.BaseDiscountpackageFeign; |
|
|
import com.yxt.anrui.base.api.basedistributor.BaseDistributor; |
|
|
|
|
|
import com.yxt.anrui.base.api.basemiddleman.BaseMiddlemanDetailsVo; |
|
|
import com.yxt.anrui.base.api.basemiddleman.BaseMiddlemanDetailsVo; |
|
|
import com.yxt.anrui.base.api.basemiddleman.BaseMiddlemanFeign; |
|
|
import com.yxt.anrui.base.api.basemiddleman.BaseMiddlemanFeign; |
|
|
import com.yxt.anrui.base.api.basemodelconfig.AppCarConfigSummaryVo; |
|
|
import com.yxt.anrui.base.api.basemodelconfig.AppCarConfigSummaryVo; |
|
@ -52,7 +50,6 @@ import com.yxt.anrui.base.api.basevehiclemodelappendix.BaseVehicleModelAppendixF |
|
|
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateDto; |
|
|
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateDto; |
|
|
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateEnum; |
|
|
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateEnum; |
|
|
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateFeign; |
|
|
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateFeign; |
|
|
import com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstate; |
|
|
|
|
|
import com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstateFeign; |
|
|
import com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstateFeign; |
|
|
import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelConfigFeign; |
|
|
import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelConfigFeign; |
|
|
import com.yxt.anrui.base.api.busvehicleapplydetail.AppBusVehicleApplyListVo; |
|
|
import com.yxt.anrui.base.api.busvehicleapplydetail.AppBusVehicleApplyListVo; |
|
@ -66,10 +63,8 @@ import com.yxt.anrui.base.api.commoncontract.CommonContractVo; |
|
|
import com.yxt.anrui.base.common.enums.BillTypeEnum; |
|
|
import com.yxt.anrui.base.common.enums.BillTypeEnum; |
|
|
import com.yxt.anrui.base.common.enums.CommonContractEnum; |
|
|
import com.yxt.anrui.base.common.enums.CommonContractEnum; |
|
|
import com.yxt.anrui.base.common.enums.VehicleState; |
|
|
import com.yxt.anrui.base.common.enums.VehicleState; |
|
|
import com.yxt.anrui.base.common.enums.VehicleStateTempOrLast; |
|
|
|
|
|
import com.yxt.anrui.base.common.utils.Rule; |
|
|
import com.yxt.anrui.base.common.utils.Rule; |
|
|
import com.yxt.anrui.base.common.utils.domain.BillNo; |
|
|
import com.yxt.anrui.base.common.utils.domain.BillNo; |
|
|
import com.yxt.anrui.buscenter.api.busarrearscarryvehicleapply.BusArrearsCarryVehicleApply; |
|
|
|
|
|
import com.yxt.anrui.buscenter.api.busdeposit.BusDeposit; |
|
|
import com.yxt.anrui.buscenter.api.busdeposit.BusDeposit; |
|
|
import com.yxt.anrui.buscenter.api.busdepositfictitious.BusDepositFictitious; |
|
|
import com.yxt.anrui.buscenter.api.busdepositfictitious.BusDepositFictitious; |
|
|
import com.yxt.anrui.buscenter.api.busdepositfictitious.BusDepositFictitiousDetailsVo; |
|
|
import com.yxt.anrui.buscenter.api.busdepositfictitious.BusDepositFictitiousDetailsVo; |
|
@ -111,10 +106,10 @@ import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusBorrowVehicleVo; |
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; |
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; |
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleDetailsVo; |
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleDetailsVo; |
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleDto; |
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleDto; |
|
|
|
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehiclecost.BusSalesOrderVehicleCostVo; |
|
|
import com.yxt.anrui.buscenter.api.bussalesvehicleorder.BusSalesVehicleOrder; |
|
|
import com.yxt.anrui.buscenter.api.bussalesvehicleorder.BusSalesVehicleOrder; |
|
|
import com.yxt.anrui.buscenter.api.bussalesvehicleorder.BusSalesVehicleOrderDetailsVo; |
|
|
import com.yxt.anrui.buscenter.api.bussalesvehicleorder.BusSalesVehicleOrderDetailsVo; |
|
|
import com.yxt.anrui.buscenter.api.bussalesvehicleorder.BusSalesVehicleOrderDto; |
|
|
import com.yxt.anrui.buscenter.api.bussalesvehicleorder.BusSalesVehicleOrderDto; |
|
|
import com.yxt.anrui.buscenter.api.bussolutionschange.BusSolutionsChange; |
|
|
|
|
|
import com.yxt.anrui.buscenter.api.common.BusSalesOrderConstantUtils; |
|
|
import com.yxt.anrui.buscenter.api.common.BusSalesOrderConstantUtils; |
|
|
import com.yxt.anrui.buscenter.biz.busarrearscarryvehicleapply.BusArrearsCarryVehicleApplyService; |
|
|
import com.yxt.anrui.buscenter.biz.busarrearscarryvehicleapply.BusArrearsCarryVehicleApplyService; |
|
|
import com.yxt.anrui.buscenter.biz.busdeposit.BusDepositService; |
|
|
import com.yxt.anrui.buscenter.biz.busdeposit.BusDepositService; |
|
@ -131,6 +126,7 @@ import com.yxt.anrui.buscenter.biz.bussalesorderprice.BusSalesOrderPriceService; |
|
|
import com.yxt.anrui.buscenter.biz.bussalesordersubmit.BusSalesOrderSubmitService; |
|
|
import com.yxt.anrui.buscenter.biz.bussalesordersubmit.BusSalesOrderSubmitService; |
|
|
import com.yxt.anrui.buscenter.biz.bussalesordertrailer.BusSalesOrderTrailerService; |
|
|
import com.yxt.anrui.buscenter.biz.bussalesordertrailer.BusSalesOrderTrailerService; |
|
|
import com.yxt.anrui.buscenter.biz.bussalesordervehicle.BusSalesOrderVehicleService; |
|
|
import com.yxt.anrui.buscenter.biz.bussalesordervehicle.BusSalesOrderVehicleService; |
|
|
|
|
|
import com.yxt.anrui.buscenter.biz.bussalesordervehiclecost.BusSalesOrderVehicleCostService; |
|
|
import com.yxt.anrui.buscenter.biz.bussalesvehicleorder.BusSalesVehicleOrderService; |
|
|
import com.yxt.anrui.buscenter.biz.bussalesvehicleorder.BusSalesVehicleOrderService; |
|
|
import com.yxt.anrui.buscenter.biz.bussolutionschange.BusSolutionsChangeService; |
|
|
import com.yxt.anrui.buscenter.biz.bussolutionschange.BusSolutionsChangeService; |
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.AppCrmCustomerTempInfoVo; |
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.AppCrmCustomerTempInfoVo; |
|
@ -152,35 +148,36 @@ import com.yxt.anrui.flowable.api.flow.FlowableFeign; |
|
|
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; |
|
|
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; |
|
|
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; |
|
|
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; |
|
|
import com.yxt.anrui.flowable.api.flow2.FlowFeign; |
|
|
import com.yxt.anrui.flowable.api.flow2.FlowFeign; |
|
|
import com.yxt.anrui.flowable.api.flowtask.*; |
|
|
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; |
|
|
|
|
|
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; |
|
|
|
|
|
import com.yxt.anrui.flowable.api.flowtask.FlowableQuery; |
|
|
|
|
|
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; |
|
|
import com.yxt.anrui.flowable.api.utils.ProcDefEnum; |
|
|
import com.yxt.anrui.flowable.api.utils.ProcDefEnum; |
|
|
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; |
|
|
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; |
|
|
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign; |
|
|
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign; |
|
|
import com.yxt.anrui.portal.api.dictcommon.DictCommonVo; |
|
|
import com.yxt.anrui.portal.api.dictcommon.DictCommonVo; |
|
|
import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList; |
|
|
import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList; |
|
|
|
|
|
import com.yxt.anrui.portal.api.sysfunction.ButtonPermissionQuery; |
|
|
|
|
|
import com.yxt.anrui.portal.api.sysfunction.ButtonPermissionVo; |
|
|
|
|
|
import com.yxt.anrui.portal.api.sysfunction.SysFunctionFeign; |
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganization; |
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganization; |
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; |
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; |
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; |
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; |
|
|
import com.yxt.anrui.portal.api.sysstaffinfo.SysStaffinfoFeign; |
|
|
import com.yxt.anrui.portal.api.sysstaffinfo.SysStaffinfoFeign; |
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; |
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; |
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; |
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; |
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo; |
|
|
|
|
|
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; |
|
|
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; |
|
|
import com.yxt.anrui.portal.api.sysuser.SysUser; |
|
|
import com.yxt.anrui.portal.api.sysuser.SysUser; |
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserVo; |
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserVo; |
|
|
import com.yxt.anrui.portal.api.sysuser.app.AppUserOrgInfoVo; |
|
|
import com.yxt.anrui.portal.api.sysuser.app.AppUserOrgInfoVo; |
|
|
import com.yxt.anrui.portal.config.DictCommonType; |
|
|
import com.yxt.anrui.portal.config.DictCommonType; |
|
|
import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApply; |
|
|
|
|
|
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy; |
|
|
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy; |
|
|
import com.yxt.anrui.riskcenter.api.loanhomevisitprep.HomeVisitDto; |
|
|
import com.yxt.anrui.riskcenter.api.loanhomevisitprep.HomeVisitDto; |
|
|
import com.yxt.anrui.riskcenter.api.loanhomevisitprep.LoanHomevisitPrepDto; |
|
|
|
|
|
import com.yxt.anrui.riskcenter.api.loanhomevisitprep.LoanHomevisitPrepFeign; |
|
|
import com.yxt.anrui.riskcenter.api.loanhomevisitprep.LoanHomevisitPrepFeign; |
|
|
import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanPreloanCreditApply; |
|
|
import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanPreloanCreditApply; |
|
|
import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanPreloanCreditApplyVo; |
|
|
|
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; |
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; |
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign; |
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign; |
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsVo; |
|
|
|
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionListVo; |
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionListVo; |
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; |
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; |
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionssVo; |
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionssVo; |
|
@ -188,7 +185,6 @@ import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetail; |
|
|
import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetailFeign; |
|
|
import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetailFeign; |
|
|
import com.yxt.anrui.riskcenter.api.loansolutionsotherpolicy.LoanSolutionsOtherpolicy; |
|
|
import com.yxt.anrui.riskcenter.api.loansolutionsotherpolicy.LoanSolutionsOtherpolicy; |
|
|
import com.yxt.anrui.riskcenter.api.loansolutionsotherpolicy.LoanSolutionsOtherpolicyFeign; |
|
|
import com.yxt.anrui.riskcenter.api.loansolutionsotherpolicy.LoanSolutionsOtherpolicyFeign; |
|
|
import com.yxt.anrui.scm.api.scmpurchasechannel.ScmPurchaseChannelDto; |
|
|
|
|
|
import com.yxt.anrui.scm.api.scmpurchasechannel.ScmPurchaseChannelFeign; |
|
|
import com.yxt.anrui.scm.api.scmpurchasechannel.ScmPurchaseChannelFeign; |
|
|
import com.yxt.anrui.scm.api.scmpurchasechannel.ScmPurchaseChannelPush; |
|
|
import com.yxt.anrui.scm.api.scmpurchasechannel.ScmPurchaseChannelPush; |
|
|
import com.yxt.anrui.scm.api.scmwarehouse.ScmWarehouseFeign; |
|
|
import com.yxt.anrui.scm.api.scmwarehouse.ScmWarehouseFeign; |
|
@ -247,6 +243,10 @@ import static java.util.Comparator.comparing; |
|
|
public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper, BusSalesOrder> { |
|
|
public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper, BusSalesOrder> { |
|
|
public static final Logger log = LoggerFactory.getLogger(BusSalesOrderService.class); |
|
|
public static final Logger log = LoggerFactory.getLogger(BusSalesOrderService.class); |
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
|
private SysFunctionFeign sysFunctionFeign; |
|
|
|
|
|
@Autowired |
|
|
|
|
|
private BusSalesOrderVehicleCostService busSalesOrderVehicleCostService; |
|
|
@Autowired |
|
|
@Autowired |
|
|
private BusSalesOrderModelService busSalesOrderModelService; |
|
|
private BusSalesOrderModelService busSalesOrderModelService; |
|
|
@Autowired |
|
|
@Autowired |
|
@ -428,6 +428,13 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
vo.setCreateDate(DateUtil.formatDate(entity.getCreateDate())); |
|
|
vo.setCreateDate(DateUtil.formatDate(entity.getCreateDate())); |
|
|
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(entity.getUseOrgSid()).getData(); |
|
|
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(entity.getUseOrgSid()).getData(); |
|
|
vo.setUseOrgName(sysOrganizationVo.getName()); |
|
|
vo.setUseOrgName(sysOrganizationVo.getName()); |
|
|
|
|
|
/**************************车辆成本信息**********************************/ |
|
|
|
|
|
BusSalesOrderVehicleCostVo vehicleCostVo = busSalesOrderVehicleCostService.getVehicleCostVoByOrderSid(sid).getData(); |
|
|
|
|
|
if (null != vehicleCostVo) { |
|
|
|
|
|
AppBusSalesOrderVehicleCostVo orderVehicleCostVo = new AppBusSalesOrderVehicleCostVo(); |
|
|
|
|
|
BeanUtil.copyProperties(vehicleCostVo,orderVehicleCostVo); |
|
|
|
|
|
vo.setVehicleCostObj(orderVehicleCostVo); |
|
|
|
|
|
} |
|
|
/***************************车型信息***************************************/ |
|
|
/***************************车型信息***************************************/ |
|
|
AppOrderModelInfoVo modelInfo = busSalesOrderModelService.selectModel(sid); |
|
|
AppOrderModelInfoVo modelInfo = busSalesOrderModelService.selectModel(sid); |
|
|
if (modelInfo != null) { |
|
|
if (modelInfo != null) { |
|
@ -4278,6 +4285,519 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
return rb.success().setData(vo); |
|
|
return rb.success().setData(vo); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 销售订单的详情 |
|
|
|
|
|
* |
|
|
|
|
|
* @param sid 销售订单sid |
|
|
|
|
|
* @param userSid 用户sid |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
|
|
|
public ResultBean<AppOrderDetailsVo> getSaleOrderDetails2(String sid,String userSid) { |
|
|
|
|
|
ResultBean<AppOrderDetailsVo> rb = ResultBean.fireFail(); |
|
|
|
|
|
BusSalesOrder busSalesOrder = fetchBySid(sid); |
|
|
|
|
|
if (busSalesOrder == null) { |
|
|
|
|
|
return rb.setMsg("该销售订单单据不存在"); |
|
|
|
|
|
} |
|
|
|
|
|
AppOrderDetailsVo vo = new AppOrderDetailsVo(); |
|
|
|
|
|
vo = baseMapper.getSaleOrderDetails(sid); |
|
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getNodeState())) { |
|
|
|
|
|
vo.setShowShareAndComment(true); |
|
|
|
|
|
} |
|
|
|
|
|
vo.setBusSalesOrderSid(sid); |
|
|
|
|
|
ResultBean<CommonContractVo> commonContractVoResultBean = commonContractFeign.getContractBySalesOrderSid(sid); |
|
|
|
|
|
if (commonContractVoResultBean.getData() != null) { |
|
|
|
|
|
vo.setContractId(commonContractVoResultBean.getData().getContractNo()); |
|
|
|
|
|
} |
|
|
|
|
|
vo.setUserSid(busSalesOrder.getCreateBySid()); |
|
|
|
|
|
vo.setProcInsId(busSalesOrder.getProcInstId()); |
|
|
|
|
|
vo.setTaskId(busSalesOrder.getTaskId()); |
|
|
|
|
|
vo.setIsInsurance(busSalesOrder.getIsInsurance()); |
|
|
|
|
|
vo.setInsuranceState(StringUtils.isNotBlank(busSalesOrder.getIsInsurance())); |
|
|
|
|
|
vo.setRemarksState(StringUtils.isNotBlank(busSalesOrder.getNotes()) || StringUtils.isNotBlank(vo.getImagesFile())); |
|
|
|
|
|
String imagesFile = vo.getImagesFile(); |
|
|
|
|
|
if (StringUtils.isNotBlank(imagesFile)) { |
|
|
|
|
|
List<String> imagess = Arrays.asList(imagesFile.split(",")); |
|
|
|
|
|
imagess.removeAll(Collections.singleton(null)); |
|
|
|
|
|
if (!imagess.isEmpty()) { |
|
|
|
|
|
for (int i = 0; i < imagess.size(); i++) { |
|
|
|
|
|
if (!imagess.get(i).contains(fileUploadComponent.getUrlPrefix())) { |
|
|
|
|
|
imagess.set(i, fileUploadComponent.getUrlPrefix() + imagess.get(i)); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
vo.setImages(imagess); |
|
|
|
|
|
} |
|
|
|
|
|
//根据销售部门sid查询分公司名称
|
|
|
|
|
|
ResultBean<String> resultBean = sysStaffOrgFeign.getOrgSidBySid(vo.getOrgSid()); |
|
|
|
|
|
if (!"0".equals(resultBean.getData())) { |
|
|
|
|
|
//根据分公司sid查询分公司名称
|
|
|
|
|
|
ResultBean<SysOrganization> organizationResultBean = sysOrganizationFeign.selectBySid(resultBean.getData()); |
|
|
|
|
|
if (organizationResultBean.getSuccess()) { |
|
|
|
|
|
vo.setSalesOrg(organizationResultBean.getData().getName()); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
/***************************保险信息***************************************/ |
|
|
|
|
|
BusSalesOrderInsuranceDetailsVo busSalesOrderInsurance = busSalesOrderInsuranceService.details(sid); |
|
|
|
|
|
if (busSalesOrderInsurance != null) { |
|
|
|
|
|
if (BusSalesOrderConstantUtils.InsuranceType.NO.getCode().equals(busSalesOrder.getIsInsurance())) { |
|
|
|
|
|
vo.setInsuranceInfo("未在公司入保" + "\n\n" + "备注:" + busSalesOrderInsurance.getRemarks()); |
|
|
|
|
|
} else if (BusSalesOrderConstantUtils.InsuranceType.YES.getCode().equals(busSalesOrder.getIsInsurance())) { |
|
|
|
|
|
String x = "、"; |
|
|
|
|
|
String x1 = "单台车保费预估金额(元):"; |
|
|
|
|
|
String x2 = "公司入保期数:"; |
|
|
|
|
|
String info = "公司投保、保险公司名称:" + busSalesOrderInsurance.getInsuranceName() + x + x1 + busSalesOrderInsurance.getInsuranceCarMoney() + "元" + x + x2 + busSalesOrderInsurance.getInsuranceNum(); |
|
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrderInsurance.getRemarks())) { |
|
|
|
|
|
info = info + "\n\n" + "备注:" + busSalesOrderInsurance.getRemarks(); |
|
|
|
|
|
} |
|
|
|
|
|
vo.setInsuranceInfo(info); |
|
|
|
|
|
String infoMessage = "公司投保、" + x2 + busSalesOrderInsurance.getInsuranceNum(); |
|
|
|
|
|
vo.setInsuranceInfoMessage(infoMessage); |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
if (BusSalesOrderConstantUtils.InsuranceType.NO.getCode().equals(busSalesOrder.getIsInsurance())) { |
|
|
|
|
|
vo.setInsuranceInfo("未在公司入保"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
/***************************车型信息***************************************/ |
|
|
|
|
|
AppOrderModelInfoVo modelInfo = busSalesOrderModelService.selectModel(sid); |
|
|
|
|
|
if (modelInfo != null) { |
|
|
|
|
|
modelInfo.setOrgPath(busSalesOrder.getOrgSidPath()); |
|
|
|
|
|
//若前端传值的订单类型为0则为现车,为1采购订单,为2排产
|
|
|
|
|
|
//数据库中1为现车,2为采购订单,3为排产
|
|
|
|
|
|
if ("0".equals(modelInfo.getType())) { |
|
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getNowCarUnknownVinNum()) && !"0".equals(busSalesOrder.getNowCarUnknownVinNum())) { |
|
|
|
|
|
List<String> vinList = new ArrayList<>(); |
|
|
|
|
|
vinList.add("不确定车架号(" + busSalesOrder.getNowCarUnknownVinNum() + ")"); |
|
|
|
|
|
modelInfo.setVinList(vinList); |
|
|
|
|
|
} else { |
|
|
|
|
|
//查询车架号
|
|
|
|
|
|
List<VinListsVo> vinLists = busSalesOrderVehicleService.selectLists(sid); |
|
|
|
|
|
//包含采购系统的车架号
|
|
|
|
|
|
List<String> vinList = vinLists.stream().map(v -> v.getVinNo()).collect(Collectors.toList()); |
|
|
|
|
|
List<String> orderVinList = busSalesOrderVehicleService.selectList(sid); |
|
|
|
|
|
if (!vinList.isEmpty()) { |
|
|
|
|
|
for (int i = 0; i < vinLists.size(); i++) { |
|
|
|
|
|
VinListsVo vinListsVo = vinLists.get(i); |
|
|
|
|
|
BigDecimal initBigDecimalTwo = BigDecimal.ZERO; |
|
|
|
|
|
//根据sid去查询销售政策的sid,根据销售政策查询销售政策的金额
|
|
|
|
|
|
ResultBean<List<String>> listResultBean = baseDiscountpackageFeign.getMoney(vinListsVo.getVinSid(), busSalesOrder.getUseOrgSid()); |
|
|
|
|
|
if (listResultBean.getSuccess() && !listResultBean.getData().isEmpty()) { |
|
|
|
|
|
List<String> stringList = listResultBean.getData(); |
|
|
|
|
|
initBigDecimalTwo = initBigDecimalTwo.add(stringList.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add)); |
|
|
|
|
|
} |
|
|
|
|
|
if (initBigDecimalTwo.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
|
|
vinList.set(i, vinList.get(i) + ",促销(" + initBigDecimalTwo.toString() + "元)"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
modelInfo.setVinList(vinList); |
|
|
|
|
|
modelInfo.setOrderVinList(orderVinList); |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
if ("1".equals(modelInfo.getType())) { |
|
|
|
|
|
//查询采购订单编号
|
|
|
|
|
|
List<BusSalesVehicleOrder> stringLists = busSalesVehicleOrderService.selectLists(sid); |
|
|
|
|
|
//包含采购系统的采购订单编号
|
|
|
|
|
|
List<String> stringList = stringLists.stream().map(v -> v.getLinkNo()).collect(Collectors.toList()); |
|
|
|
|
|
List<String> orderStringList = busSalesVehicleOrderService.selectList(sid); |
|
|
|
|
|
modelInfo.setOrderList(stringList); |
|
|
|
|
|
modelInfo.setOrderStringList(orderStringList); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
List<VinListsVo> vinListVoList = busSalesOrderVehicleService.selectByDetailsSid(sid); |
|
|
|
|
|
modelInfo.setVinListsVos(vinListVoList); |
|
|
|
|
|
ResultBean<String> images = baseVehicleModelAppendixFeign.selectImage(modelInfo.getModelSid()); |
|
|
|
|
|
if (images.getSuccess()) { |
|
|
|
|
|
modelInfo.setModelImage(images.getData()); |
|
|
|
|
|
} |
|
|
|
|
|
vo.setModelInfo(modelInfo); |
|
|
|
|
|
} |
|
|
|
|
|
/***************************挂车信息***************************************/ |
|
|
|
|
|
List<BusSalesOrderTrailerDetailsVo> busSalesOrderTrailerDetailsVos = busSalesOrderTrailerService.fetchAllByOrderSid(sid); |
|
|
|
|
|
List<AppOrderTrailerInfoVo> appOrderTrailerInfoVos = new ArrayList<>(); |
|
|
|
|
|
for (BusSalesOrderTrailerDetailsVo busSalesOrderTrailerDetailsVo : busSalesOrderTrailerDetailsVos) { |
|
|
|
|
|
AppOrderTrailerInfoVo appOrderTrailerInfoVo = new AppOrderTrailerInfoVo(); |
|
|
|
|
|
BeanUtil.copyProperties(busSalesOrderTrailerDetailsVo, appOrderTrailerInfoVo, "contractFile", "certFile"); |
|
|
|
|
|
List<BusSalesOrderTrailerFile> contractFile = busSalesOrderTrailerDetailsVo.getContractFile(); |
|
|
|
|
|
List<BusSalesOrderTrailerFile> certFile = busSalesOrderTrailerDetailsVo.getCertFile(); |
|
|
|
|
|
ArrayList<String> contractFileString = new ArrayList<>(); |
|
|
|
|
|
ArrayList<String> certFileString = new ArrayList<>(); |
|
|
|
|
|
for (BusSalesOrderTrailerFile busSalesOrderTrailerFile : contractFile) { |
|
|
|
|
|
contractFileString.add(busSalesOrderTrailerFile.getUrl()); |
|
|
|
|
|
} |
|
|
|
|
|
for (BusSalesOrderTrailerFile busSalesOrderTrailerFile : certFile) { |
|
|
|
|
|
certFileString.add(busSalesOrderTrailerFile.getUrl()); |
|
|
|
|
|
} |
|
|
|
|
|
appOrderTrailerInfoVo.setContractFile(contractFileString); |
|
|
|
|
|
appOrderTrailerInfoVo.setCertFile(certFileString); |
|
|
|
|
|
appOrderTrailerInfoVo.setAppearanceSizeLong("长" + appOrderTrailerInfoVo.getAppearanceSizeLong() + "m"); |
|
|
|
|
|
appOrderTrailerInfoVo.setTotalPrice(appOrderTrailerInfoVo.getSingleFinalPrice().multiply(new BigDecimal(appOrderTrailerInfoVo.getTrailerCount()))); |
|
|
|
|
|
appOrderTrailerInfoVos.add(appOrderTrailerInfoVo); |
|
|
|
|
|
} |
|
|
|
|
|
for (int i = 0; i < appOrderTrailerInfoVos.size(); i++) { |
|
|
|
|
|
AppOrderTrailerInfoVo appOrderTrailerInfoVo = appOrderTrailerInfoVos.get(i); |
|
|
|
|
|
if (appOrderTrailerInfoVos.size() == 1) { |
|
|
|
|
|
appOrderTrailerInfoVo.setTrailerName("挂车"); |
|
|
|
|
|
} else { |
|
|
|
|
|
appOrderTrailerInfoVo.setTrailerName("挂车" + (i + 1)); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
vo.setTrailerInfo(appOrderTrailerInfoVos); |
|
|
|
|
|
/***************************价格信息***************************************/ |
|
|
|
|
|
AppOrderPriceInfoVo priceInfo = busSalesOrderPriceService.selectPrice(sid); |
|
|
|
|
|
if (priceInfo != null) { |
|
|
|
|
|
if (vo.getModelInfo() != null) { |
|
|
|
|
|
priceInfo.setTransactionPrice(vo.getModelInfo().getPrice()); |
|
|
|
|
|
} |
|
|
|
|
|
if (StringUtils.isNotBlank(priceInfo.getPlannedPickUpLocationKey())) { |
|
|
|
|
|
ScmWarehouseVo scmWarehouseVo = scmWarehouseFeign.fetchBySid(priceInfo.getPlannedPickUpLocationKey()).getData(); |
|
|
|
|
|
if (StringUtils.isNotBlank(scmWarehouseVo.getCity()) && StringUtils.isNotBlank(scmWarehouseVo.getCounty())) { |
|
|
|
|
|
priceInfo.setAddress(priceInfo.getAddress() + "(" + scmWarehouseVo.getCity() + scmWarehouseVo.getCounty() + scmWarehouseVo.getWarehouseAttribute() + ")"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (appOrderTrailerInfoVos.size() == 1) { |
|
|
|
|
|
priceInfo.setGcOneConPrice(appOrderTrailerInfoVos.get(0).getSingleFinalPrice().toString()); |
|
|
|
|
|
priceInfo.setGcOneCount(appOrderTrailerInfoVos.get(0).getTrailerCount().toString()); |
|
|
|
|
|
} else if (appOrderTrailerInfoVos.size() == 2) { |
|
|
|
|
|
priceInfo.setGcOneConPrice(appOrderTrailerInfoVos.get(0).getSingleFinalPrice().toString()); |
|
|
|
|
|
priceInfo.setGcOneCount(appOrderTrailerInfoVos.get(0).getTrailerCount().toString()); |
|
|
|
|
|
priceInfo.setGcTwoConPrice(appOrderTrailerInfoVos.get(1).getSingleFinalPrice().toString()); |
|
|
|
|
|
priceInfo.setGcTwoCount(appOrderTrailerInfoVos.get(1).getTrailerCount().toString()); |
|
|
|
|
|
} else { |
|
|
|
|
|
priceInfo.setGcOneConPrice(""); |
|
|
|
|
|
priceInfo.setGcOneCount(""); |
|
|
|
|
|
priceInfo.setGcTwoConPrice(""); |
|
|
|
|
|
priceInfo.setGcTwoCount(""); |
|
|
|
|
|
} |
|
|
|
|
|
vo.setPriceInfo(priceInfo); |
|
|
|
|
|
} |
|
|
|
|
|
/***************************上装信息***************************************/ |
|
|
|
|
|
String topPriice = ""; |
|
|
|
|
|
if (BusSalesOrderConstantUtils.TopType.YES.getCode().equals(busSalesOrder.getIsTop())) { |
|
|
|
|
|
AppOrderTopInfoVo topInfo = busSalesOrderMakeupService.selectTop(sid); |
|
|
|
|
|
if (topInfo != null) { |
|
|
|
|
|
if (StringUtils.isNotBlank(topInfo.getContractPath())) { |
|
|
|
|
|
List<String> stringList = Arrays.asList(topInfo.getContractPath().split(",")); |
|
|
|
|
|
if (!stringList.isEmpty()) { |
|
|
|
|
|
List<String> stringList1 = new ArrayList<>(); |
|
|
|
|
|
stringList.stream().forEach(i -> { |
|
|
|
|
|
stringList1.add(fileUploadComponent.getUrlPrefix() + i); |
|
|
|
|
|
}); |
|
|
|
|
|
topInfo.setContractImages(stringList1); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (StringUtils.isNotBlank(topInfo.getRemarks())) { |
|
|
|
|
|
topInfo.setTopBean(topInfo.getTopBean() + "\n\n" + "备注:" + topInfo.getRemarks()); |
|
|
|
|
|
} |
|
|
|
|
|
vo.setTopInfo(topInfo); |
|
|
|
|
|
topPriice = "¥" + topInfo.getTopPrice(); |
|
|
|
|
|
} |
|
|
|
|
|
BusSalesOrderMakeup busSalesOrderMakeup = busSalesOrderMakeupService.detailsss(sid); |
|
|
|
|
|
String topMessage = ""; |
|
|
|
|
|
if (busSalesOrderMakeup != null) { |
|
|
|
|
|
//颜色
|
|
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrderMakeup.getColor())) { |
|
|
|
|
|
topMessage = topMessage + busSalesOrderMakeup.getColor(); |
|
|
|
|
|
} |
|
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrderMakeup.getTopName())) { |
|
|
|
|
|
topMessage = topMessage + busSalesOrderMakeup.getTopName(); |
|
|
|
|
|
} |
|
|
|
|
|
//板材厚度
|
|
|
|
|
|
String ssMessage = ""; |
|
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrderMakeup.getThicknessBottom())) { |
|
|
|
|
|
ssMessage = "底" + busSalesOrderMakeup.getThicknessBottom() + "mm"; |
|
|
|
|
|
} |
|
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrderMakeup.getThicknessEdge())) { |
|
|
|
|
|
ssMessage = ssMessage + "边" + busSalesOrderMakeup.getThicknessEdge() + "mm"; |
|
|
|
|
|
} |
|
|
|
|
|
if (StringUtils.isNotBlank(ssMessage)) { |
|
|
|
|
|
topMessage = topMessage + "、" + ssMessage; |
|
|
|
|
|
} |
|
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrderMakeup.getPlateMaterial())) { |
|
|
|
|
|
topMessage = topMessage + "、" + busSalesOrderMakeup.getPlateMaterial(); |
|
|
|
|
|
} |
|
|
|
|
|
//篷布滑道
|
|
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrderMakeup.getTarpaulinSlide()) && !"-".equals(busSalesOrderMakeup.getTarpaulinSlide())) { |
|
|
|
|
|
topMessage = topMessage + "、" + busSalesOrderMakeup.getTarpaulinSlide(); |
|
|
|
|
|
} |
|
|
|
|
|
//冷藏冷机
|
|
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrderMakeup.getRefirgerator())) { |
|
|
|
|
|
topMessage = topMessage + "、" + busSalesOrderMakeup.getRefirgerator(); |
|
|
|
|
|
if (!busSalesOrderMakeup.getRefirgerator().contains("机")) { |
|
|
|
|
|
topMessage = topMessage + "冷机"; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
//自卸液压盖板
|
|
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrderMakeup.getSelfUnHyCoPl()) && !"-".equals(busSalesOrderMakeup.getSelfUnHyCoPl())) { |
|
|
|
|
|
topMessage = topMessage + "、" + busSalesOrderMakeup.getSelfUnHyCoPl(); |
|
|
|
|
|
} |
|
|
|
|
|
//底板加热
|
|
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrderMakeup.getFloorHeating()) && !"-".equals(busSalesOrderMakeup.getFloorHeating())) { |
|
|
|
|
|
topMessage = topMessage + "、" + busSalesOrderMakeup.getFloorHeating(); |
|
|
|
|
|
} |
|
|
|
|
|
//更多配置
|
|
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrderMakeup.getMoreConfig()) && !"-".equals(busSalesOrderMakeup.getMoreConfig())) { |
|
|
|
|
|
topMessage = topMessage + "、" + busSalesOrderMakeup.getMoreConfig(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
vo.setTopMessage(topMessage); |
|
|
|
|
|
} |
|
|
|
|
|
/***************************主车优惠***************************************/ |
|
|
|
|
|
List<AppOrderDiscountListVo> discountList = busSalesOrderDiscountService.selectDiscount(sid); |
|
|
|
|
|
discountList.removeAll(Collections.singleton(null)); |
|
|
|
|
|
if (!discountList.isEmpty()) { |
|
|
|
|
|
BigDecimal bigDecimalAll = new BigDecimal("0"); |
|
|
|
|
|
vo.setDiscountList(discountList); |
|
|
|
|
|
for (AppOrderDiscountListVo v : discountList) { |
|
|
|
|
|
bigDecimalAll = bigDecimalAll.add(new BigDecimal(v.getTotal())); |
|
|
|
|
|
} |
|
|
|
|
|
vo.setTotaldiscount(bigDecimalAll.toString()); |
|
|
|
|
|
} |
|
|
|
|
|
/*************************返利信息*******************************************/ |
|
|
|
|
|
BigDecimal zjAll = BigDecimal.ZERO; |
|
|
|
|
|
BusSalesOrderSubmit busSalesOrderSubmit = busSalesOrderSubmitService.selectBySaleOrderSid(sid); |
|
|
|
|
|
if (busSalesOrderSubmit != null) { |
|
|
|
|
|
//内部推荐人
|
|
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrderSubmit.getName())) { |
|
|
|
|
|
vo.setRecommender(busSalesOrderSubmit.getName()); |
|
|
|
|
|
} |
|
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrderSubmit.getUserSid())) { |
|
|
|
|
|
vo.setRecommenderUserSid(busSalesOrderSubmit.getUserSid()); |
|
|
|
|
|
} |
|
|
|
|
|
//中介返利(元/台)
|
|
|
|
|
|
String zjReturnPrice = ""; |
|
|
|
|
|
boolean isShow = false; |
|
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrderSubmit.getDistributorName())) { |
|
|
|
|
|
SubmitVo submitVo = new SubmitVo(); |
|
|
|
|
|
submitVo.setIntermediaryName(busSalesOrderSubmit.getDistributorName()); |
|
|
|
|
|
submitVo.setIntermediaryMobile(busSalesOrderSubmit.getDistributorMobile()); |
|
|
|
|
|
submitVo.setIntermediarySid(busSalesOrderSubmit.getDistributorSid()); |
|
|
|
|
|
if (busSalesOrderSubmit.getDistributorPrice() != null) { |
|
|
|
|
|
isShow = true; |
|
|
|
|
|
zjAll = zjAll.add(busSalesOrderSubmit.getDistributorPrice()); |
|
|
|
|
|
submitVo.setAgencyFee(busSalesOrderSubmit.getDistributorPrice().toString()); |
|
|
|
|
|
if (priceInfo != null) { |
|
|
|
|
|
submitVo.setAgencyFeeTotal(busSalesOrderSubmit.getDistributorPrice().multiply(new BigDecimal(priceInfo.getNumber())).toString()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
vo.setIntermediary1(submitVo); |
|
|
|
|
|
} |
|
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrderSubmit.getDistributorNameTwo())) { |
|
|
|
|
|
SubmitVo submitVo = new SubmitVo(); |
|
|
|
|
|
submitVo.setIntermediaryName(busSalesOrderSubmit.getDistributorNameTwo()); |
|
|
|
|
|
submitVo.setIntermediaryMobile(busSalesOrderSubmit.getDistributorMobileTwo()); |
|
|
|
|
|
submitVo.setIntermediarySid(busSalesOrderSubmit.getDistributorSidTwo()); |
|
|
|
|
|
if (busSalesOrderSubmit.getDistributorPriceTwo() != null) { |
|
|
|
|
|
isShow = true; |
|
|
|
|
|
zjAll = zjAll.add(busSalesOrderSubmit.getDistributorPriceTwo()); |
|
|
|
|
|
submitVo.setAgencyFee(busSalesOrderSubmit.getDistributorPriceTwo().toString()); |
|
|
|
|
|
if (priceInfo != null) { |
|
|
|
|
|
submitVo.setAgencyFeeTotal(busSalesOrderSubmit.getDistributorPriceTwo().multiply(new BigDecimal(priceInfo.getNumber())).toString()); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
vo.setIntermediary2(submitVo); |
|
|
|
|
|
} |
|
|
|
|
|
if (priceInfo != null) { |
|
|
|
|
|
if (isShow) { |
|
|
|
|
|
if (zjAll.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
|
|
//如果中介返利小于0,乘以-1
|
|
|
|
|
|
zjReturnPrice = "-¥" + zjAll.toString(); |
|
|
|
|
|
} else { |
|
|
|
|
|
zjAll = zjAll.multiply(new BigDecimal(-1)); |
|
|
|
|
|
zjReturnPrice = "¥" + zjAll.toString(); |
|
|
|
|
|
} |
|
|
|
|
|
priceInfo.setZjReturnPrice(zjReturnPrice); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
//计算单台折让
|
|
|
|
|
|
BigDecimal bigDecimalSing = new BigDecimal("0"); |
|
|
|
|
|
if (priceInfo != null) { |
|
|
|
|
|
//销售指导价-成交价+单车优惠包成本+单车返利):***元(单车优惠包成本是总优惠包价值除以台数)
|
|
|
|
|
|
if (StringUtils.isNotBlank(priceInfo.getSingleGuildPrice())) { |
|
|
|
|
|
bigDecimalSing = bigDecimalSing.add(new BigDecimal(priceInfo.getSingleGuildPrice())); |
|
|
|
|
|
} |
|
|
|
|
|
//单台成交价
|
|
|
|
|
|
if (StringUtils.isNotBlank(priceInfo.getSingleFinalPrice())) { |
|
|
|
|
|
bigDecimalSing = bigDecimalSing.subtract(new BigDecimal(priceInfo.getSingleFinalPrice())); |
|
|
|
|
|
} else { |
|
|
|
|
|
bigDecimalSing = bigDecimalSing.subtract(bigDecimalSing); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (StringUtils.isNotBlank(vo.getTotaldiscount())) { |
|
|
|
|
|
if (priceInfo != null) { |
|
|
|
|
|
BigDecimal discountA = new BigDecimal(vo.getTotaldiscount()).divide(new BigDecimal(priceInfo.getNumber()), BigDecimal.ROUND_CEILING); |
|
|
|
|
|
bigDecimalSing = bigDecimalSing.add(discountA); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (busSalesOrderSubmit != null) { |
|
|
|
|
|
BigDecimal agen = new BigDecimal("0"); |
|
|
|
|
|
if (busSalesOrderSubmit.getDistributorPrice() != null) { |
|
|
|
|
|
agen = agen.add(busSalesOrderSubmit.getDistributorPrice()); |
|
|
|
|
|
} |
|
|
|
|
|
if (busSalesOrderSubmit.getDistributorPriceTwo() != null) { |
|
|
|
|
|
agen = agen.add(busSalesOrderSubmit.getDistributorPriceTwo()); |
|
|
|
|
|
} |
|
|
|
|
|
bigDecimalSing = bigDecimalSing.add(agen); |
|
|
|
|
|
} |
|
|
|
|
|
if (priceInfo != null) { |
|
|
|
|
|
priceInfo.setSingleCarDiscountPrice(bigDecimalSing.toString()); |
|
|
|
|
|
} |
|
|
|
|
|
/***************************订金信息***************************************/ |
|
|
|
|
|
AppOrderDepositInfoVo depositInfo = busSalesOrderDepositService.selectDeposit(sid); |
|
|
|
|
|
if (depositInfo != null) { |
|
|
|
|
|
String a = "由"; |
|
|
|
|
|
if (BusSalesOrderConstantUtils.DepositType.DEPOSIT_CARRY_FORWARD.getCode().equals(depositInfo.getDepositTypeKey())) { |
|
|
|
|
|
List<BusDepositFictitiousDetailsVo> list = busDepositFictitiousService.detailsList(depositInfo.getSid()); |
|
|
|
|
|
list.removeAll(Collections.singleton(null)); |
|
|
|
|
|
List<String> stringList = new ArrayList<>(); |
|
|
|
|
|
if (!list.isEmpty()) { |
|
|
|
|
|
for (int j = 0; j < list.size(); j++) { |
|
|
|
|
|
BusDepositFictitiousDetailsVo v = list.get(j); |
|
|
|
|
|
String b = ""; |
|
|
|
|
|
if (j == list.size() - 1) { |
|
|
|
|
|
b = "编号为" + v.getDepositBillNo() + "简易订单订金转入" + v.getPrice() + "元。"; |
|
|
|
|
|
} else { |
|
|
|
|
|
b = "编号为" + v.getDepositBillNo() + "简易订单订金转入" + v.getPrice() + "元,"; |
|
|
|
|
|
} |
|
|
|
|
|
a = a + b; |
|
|
|
|
|
if (StringUtils.isNotBlank(v.getPayPath())) { |
|
|
|
|
|
List<String> payPathList = Arrays.asList(v.getPayPath().split(",")); |
|
|
|
|
|
for (int i = 0; i < payPathList.size(); i++) { |
|
|
|
|
|
stringList.add(fileUploadComponent.getUrlPrefix() + payPathList.get(i)); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
// a = a + "原订金额度使用完后,其收据自动作废。";
|
|
|
|
|
|
depositInfo.setDepositRemarks(a); |
|
|
|
|
|
depositInfo.setImages(stringList); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (StringUtils.isNotBlank(depositInfo.getPayDepositDays())) { |
|
|
|
|
|
depositInfo.setPayDepositDays(depositInfo.getPayDepositDays()); |
|
|
|
|
|
} else { |
|
|
|
|
|
depositInfo.setPayDepositDays("/"); |
|
|
|
|
|
} |
|
|
|
|
|
vo.setDepositInfo(depositInfo); |
|
|
|
|
|
} |
|
|
|
|
|
/****************************金融方案***************************************/ |
|
|
|
|
|
if ("2".equals(busSalesOrder.getPayTypeKey())) { |
|
|
|
|
|
vo.setFinState(true); |
|
|
|
|
|
} else { |
|
|
|
|
|
if ("1".equals(busSalesOrder.getFinancePlan())) { |
|
|
|
|
|
vo.setFinState(false); |
|
|
|
|
|
} else { |
|
|
|
|
|
vo.setFinState(true); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
// vo = selectSolution(vo, sid);
|
|
|
|
|
|
vo = selectSolutions(vo, sid); |
|
|
|
|
|
//===============================================
|
|
|
|
|
|
//挂车价格(金融方案中取)
|
|
|
|
|
|
ResultBean<SolutionsDetailsVo> solutionsDetailsVoResultBean = loanSolutionsFeign.selectDetailsss(sid); |
|
|
|
|
|
List<OrderSolutionVo> list = new ArrayList<>(); |
|
|
|
|
|
if (solutionsDetailsVoResultBean.getData() != null) { |
|
|
|
|
|
SolutionsDetailsVo solutionsDetailsVo = solutionsDetailsVoResultBean.getData(); |
|
|
|
|
|
//挂车
|
|
|
|
|
|
if (StringUtils.isNotBlank(solutionsDetailsVo.getTrailerAmount())) { |
|
|
|
|
|
if (priceInfo != null) { |
|
|
|
|
|
// priceInfo.setGcPrice(solutionsDetailsVo.getTrailerAmount());
|
|
|
|
|
|
BigDecimal finalPriceAll = BigDecimal.ZERO; |
|
|
|
|
|
if (StringUtils.isNotBlank(priceInfo.getSingleFinalPrice())) { |
|
|
|
|
|
finalPriceAll = finalPriceAll.add(new BigDecimal(priceInfo.getSingleFinalPrice())); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (priceInfo != null) { |
|
|
|
|
|
if (StringUtils.isNotBlank(topPriice)) { |
|
|
|
|
|
priceInfo.setSzPrice(topPriice); |
|
|
|
|
|
} |
|
|
|
|
|
//价格折让 = 销售合同价(整体成交价)-销售指导价(整体指导价)
|
|
|
|
|
|
//销售合同价-销售指导价
|
|
|
|
|
|
BigDecimal all = BigDecimal.ZERO; |
|
|
|
|
|
if (StringUtils.isNotBlank(priceInfo.getSingleFinalPrice())) { |
|
|
|
|
|
all = new BigDecimal(priceInfo.getSingleFinalPrice()); |
|
|
|
|
|
} |
|
|
|
|
|
if (StringUtils.isNotBlank(priceInfo.getSingleGuildPrice())) { |
|
|
|
|
|
all = all.subtract(new BigDecimal(priceInfo.getSingleGuildPrice())); |
|
|
|
|
|
} |
|
|
|
|
|
String priceAll = ""; |
|
|
|
|
|
if (all.compareTo(BigDecimal.ZERO) < 0) { |
|
|
|
|
|
//如果价格折让小于0,乘以-1
|
|
|
|
|
|
all = all.multiply(new BigDecimal(-1)); |
|
|
|
|
|
priceAll = "-¥" + all.toString(); |
|
|
|
|
|
} else { |
|
|
|
|
|
priceAll = "¥" + all.toString(); |
|
|
|
|
|
} |
|
|
|
|
|
priceInfo.setPriceDiscount(priceAll); |
|
|
|
|
|
//优惠套餐 = 优惠套餐总额/台数(保留到个位)
|
|
|
|
|
|
String pkgPrice = ""; |
|
|
|
|
|
BigDecimal oneAll = BigDecimal.ZERO; |
|
|
|
|
|
if (StringUtils.isNotBlank(vo.getTotaldiscount())) { |
|
|
|
|
|
//总优惠/台数
|
|
|
|
|
|
oneAll = new BigDecimal(vo.getTotaldiscount()).divide(new BigDecimal(priceInfo.getNumber()), BigDecimal.ROUND_CEILING); |
|
|
|
|
|
if (oneAll.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
|
|
pkgPrice = "-¥" + oneAll.toString(); |
|
|
|
|
|
} else { |
|
|
|
|
|
//如果小于0,乘以-1
|
|
|
|
|
|
oneAll = oneAll.multiply(new BigDecimal(-1)); |
|
|
|
|
|
pkgPrice = "¥" + oneAll.toString(); |
|
|
|
|
|
} |
|
|
|
|
|
priceInfo.setPkgPrice(pkgPrice); |
|
|
|
|
|
} |
|
|
|
|
|
//实际成交 = 销售指导价-价格折让-中介返利-优惠套餐
|
|
|
|
|
|
BigDecimal realAll = BigDecimal.ZERO; |
|
|
|
|
|
if (StringUtils.isNotBlank(priceInfo.getSingleFinalPrice())) { |
|
|
|
|
|
realAll = realAll.add(new BigDecimal(priceInfo.getSingleFinalPrice())); |
|
|
|
|
|
} |
|
|
|
|
|
realAll = realAll.subtract(zjAll).subtract(oneAll); |
|
|
|
|
|
priceInfo.setRealPrice("¥" + realAll.toString()); |
|
|
|
|
|
//差额 = 实际成交价-销售指导价
|
|
|
|
|
|
BigDecimal diffAll = BigDecimal.ZERO; |
|
|
|
|
|
diffAll = realAll.subtract(new BigDecimal(priceInfo.getSingleGuildPrice())); |
|
|
|
|
|
if (diffAll.compareTo(BigDecimal.ZERO) < 0) { |
|
|
|
|
|
//如果价格折让小于0,乘以-1
|
|
|
|
|
|
diffAll = diffAll.multiply(new BigDecimal(-1)); |
|
|
|
|
|
priceInfo.setDiffPrice("-¥" + diffAll.toString()); |
|
|
|
|
|
} else { |
|
|
|
|
|
priceInfo.setDiffPrice("¥" + diffAll.toString()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
/***************************车辆成本信息*************************************/ |
|
|
|
|
|
if (StringUtils.isNotBlank(userSid)) { |
|
|
|
|
|
boolean vehCostShow = true; |
|
|
|
|
|
ButtonPermissionQuery buttonPermissionQuery = new ButtonPermissionQuery(); |
|
|
|
|
|
buttonPermissionQuery.setUrl("/xiaoshouguanli/dingdanxinxi"); |
|
|
|
|
|
buttonPermissionQuery.setType("0"); |
|
|
|
|
|
buttonPermissionQuery.setUserSid(userSid); |
|
|
|
|
|
List<ButtonPermissionVo> permissionVos = sysFunctionFeign.getButtonPermissions(buttonPermissionQuery).getData(); |
|
|
|
|
|
if (!permissionVos.isEmpty()) { |
|
|
|
|
|
for (ButtonPermissionVo permissionVo : permissionVos) { |
|
|
|
|
|
if (permissionVo.getButtonId().equals("car_cost_detail")) { |
|
|
|
|
|
vehCostShow = false; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (vehCostShow) { |
|
|
|
|
|
AppBusSalesOrderVehicleCostVo appBusSalesOrderVehicleCostVo = new AppBusSalesOrderVehicleCostVo(); |
|
|
|
|
|
BusSalesOrderVehicleCostVo data = busSalesOrderVehicleCostService.getVehicleCostVoByOrderSid(sid).getData(); |
|
|
|
|
|
if (null != data) { |
|
|
|
|
|
BeanUtil.copyProperties(data,appBusSalesOrderVehicleCostVo); |
|
|
|
|
|
} |
|
|
|
|
|
vo.setVehicleCostObj(appBusSalesOrderVehicleCostVo); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return rb.success().setData(vo); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private AppOrderDetailsVo selectSolutions(AppOrderDetailsVo appOrderDetailsVo, String sid) { |
|
|
private AppOrderDetailsVo selectSolutions(AppOrderDetailsVo appOrderDetailsVo, String sid) { |
|
|
/* ResultBean<SolutionsDetailsVo> solutionsDetailsVoResultBean = loanSolutionsFeign.selectDetailsss(sid); |
|
|
/* ResultBean<SolutionsDetailsVo> solutionsDetailsVoResultBean = loanSolutionsFeign.selectDetailsss(sid); |
|
|
List<OrderSolutionVo> list = new ArrayList<>(); |
|
|
List<OrderSolutionVo> list = new ArrayList<>(); |
|
@ -7360,7 +7880,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
bv.setModelId(busSalesOrder.getProcDefId()); |
|
|
bv.setModelId(busSalesOrder.getProcDefId()); |
|
|
//若为贷款业务的,在金融服务经理审批环节可以调整开票单位信息。全款业务的,在销售支持部审批环节可以调整开票单位信息。
|
|
|
//若为贷款业务的,在金融服务经理审批环节可以调整开票单位信息。全款业务的,在销售支持部审批环节可以调整开票单位信息。
|
|
|
if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款
|
|
|
if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款
|
|
|
if ("Activity_10w0sy1".equals(bv.getTaskDefKey())) {//销售支持部经理审核
|
|
|
if ("Activity_10w0sy1".equals(bv.getTaskDefKey())) {//销售支持部经理审批
|
|
|
if (StringUtils.isBlank(orderFlowableQuery.getCompanyInvoicingSid())) { |
|
|
if (StringUtils.isBlank(orderFlowableQuery.getCompanyInvoicingSid())) { |
|
|
return rb.setMsg("开票单位不能为空"); |
|
|
return rb.setMsg("开票单位不能为空"); |
|
|
} |
|
|
} |
|
@ -7376,7 +7896,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
if (resultBean.getSuccess()) { |
|
|
if (resultBean.getSuccess()) { |
|
|
busSalesOrder = fetchBySid(orderFlowableQuery.getBusinessSid()); |
|
|
busSalesOrder = fetchBySid(orderFlowableQuery.getBusinessSid()); |
|
|
if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款
|
|
|
if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款
|
|
|
if ("Activity_10w0sy1".equals(bv.getTaskDefKey())) {//销售支持部经理审核
|
|
|
if ("Activity_10w0sy1".equals(bv.getTaskDefKey())) {//销售支持部经理审批
|
|
|
String companyInvoicingName = orderFlowableQuery.getCompanyInvoicingName(); |
|
|
String companyInvoicingName = orderFlowableQuery.getCompanyInvoicingName(); |
|
|
String companyInvoicingSid = orderFlowableQuery.getCompanyInvoicingSid(); |
|
|
String companyInvoicingSid = orderFlowableQuery.getCompanyInvoicingSid(); |
|
|
busSalesOrder.setCompanyInvoicingSid(companyInvoicingSid); |
|
|
busSalesOrder.setCompanyInvoicingSid(companyInvoicingSid); |
|
@ -7420,6 +7940,21 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
if ("Activity_10w0sy1".equals(bv.getTaskDefKey()) || "Activity_0dcm1iu".equals(bv.getTaskDefKey())) { //销售支持部经理、事业部运营经理审核
|
|
|
|
|
|
//保存车辆成本信息
|
|
|
|
|
|
busSalesOrderVehicleCostService.delByOrderSid(orderFlowableQuery.getBusinessSid()); |
|
|
|
|
|
if (StringUtils.isNotBlank(orderFlowableQuery.getRemarks()) |
|
|
|
|
|
|| StringUtils.isNotBlank(orderFlowableQuery.getPolicyDetails()) |
|
|
|
|
|
|| StringUtils.isNotBlank(orderFlowableQuery.getPolicyAmount()) |
|
|
|
|
|
|| StringUtils.isNotBlank(orderFlowableQuery.getCost()) |
|
|
|
|
|
|| StringUtils.isNotBlank(orderFlowableQuery.getManufacturerSettleAmount()) |
|
|
|
|
|
) { |
|
|
|
|
|
BusSalesOrderVehicleCostVo vo = new BusSalesOrderVehicleCostVo(); |
|
|
|
|
|
BeanUtil.copyProperties(orderFlowableQuery,vo); |
|
|
|
|
|
vo.setSalesOrderSid(orderFlowableQuery.getBusinessSid()); |
|
|
|
|
|
busSalesOrderVehicleCostService.saveVehicleCost(vo); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
//销售订单在销售支持部经理审核后,自动生成应收,此时也可以生成合同,生成合同的同时生成合同审核待办。
|
|
|
//销售订单在销售支持部经理审核后,自动生成应收,此时也可以生成合同,生成合同的同时生成合同审核待办。
|
|
|
//查询应收是否已生成
|
|
|
//查询应收是否已生成
|
|
|
/* if ("Activity_10w0sy1".equals(bv.getTaskDefKey())) {//销售支持部经理审核
|
|
|
/* if ("Activity_10w0sy1".equals(bv.getTaskDefKey())) {//销售支持部经理审核
|
|
|