|
|
@ -30,6 +30,7 @@ import cn.hutool.core.date.DateUtil; |
|
|
|
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.base.api.basemiddleman.BaseMiddlemanDetailsVo; |
|
|
|
import com.yxt.anrui.base.api.basemiddleman.BaseMiddlemanFeign; |
|
|
|
import com.yxt.anrui.base.api.basetrailer.BaseTrailerFeign; |
|
|
@ -102,12 +103,14 @@ import com.yxt.messagecenter.api.message.MessageFeign; |
|
|
|
import com.yxt.messagecenter.api.message.MessageFlowVo; |
|
|
|
import com.yxt.messagecenter.api.message.MessageFlowableQuery; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.apache.tomcat.util.threads.ThreadPoolExecutor; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.*; |
|
|
|
import java.util.concurrent.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
@ -647,213 +650,266 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp |
|
|
|
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { |
|
|
|
baseMapper.updateStateBySid(3, bv.getBusinessSid()); |
|
|
|
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); |
|
|
|
//推送开票申请=======
|
|
|
|
List<BusDeliveredApplyDetails> detailsList = busDeliveredApplyDetailsService.selectByApplySid(busDeliveredApply.getSid()); |
|
|
|
FinBillApplicationDto finBillApplicationDto = new FinBillApplicationDto(); |
|
|
|
finBillApplicationDto.setUseOrgSid(busDeliveredApply.getUseOrgSid()); |
|
|
|
finBillApplicationDto.setCreateBySid(busDeliveredApply.getApplySid()); |
|
|
|
finBillApplicationDto.setCreateByName(busDeliveredApply.getApplyName()); |
|
|
|
finBillApplicationDto.setContractNo(busDeliveredApply.getContractNo()); |
|
|
|
//根据合同编号查询销售订单的信息
|
|
|
|
ResultBean<AppOrderDetailsVo> orderDetailsVoResultBean = busSalesOrderService.getSaleOrderDetailsByContractNo(busDeliveredApply.getContractNo()); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
|
log.error("获取销售订单详情出错啦!!!"); |
|
|
|
return rb; |
|
|
|
} |
|
|
|
AppOrderDetailsVo appOrderDetailsVo = orderDetailsVoResultBean.getData(); |
|
|
|
finBillApplicationDto.setCustomerSid(appOrderDetailsVo.getCustomerSid()); |
|
|
|
finBillApplicationDto.setCustomerName(busDeliveredApply.getName()); |
|
|
|
finBillApplicationDto.setDeptSid(busDeliveredApply.getApplyDeptSid()); |
|
|
|
finBillApplicationDto.setDeptName(busDeliveredApply.getApplyDept()); |
|
|
|
finBillApplicationDto.setModelName(busDeliveredApply.getModelName()); |
|
|
|
finBillApplicationDto.setModelSid(busDeliveredApply.getModelSid()); |
|
|
|
//根据用户sid查询staffSid
|
|
|
|
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(busDeliveredApply.getStaffUserSid()); |
|
|
|
if (!userVoResultBean.getSuccess()) { |
|
|
|
return rb.setMsg(userVoResultBean.getMsg()); |
|
|
|
} |
|
|
|
finBillApplicationDto.setStaffSid(userVoResultBean.getData().getStaffSid()); |
|
|
|
finBillApplicationDto.setStaffName(busDeliveredApply.getStaffName()); |
|
|
|
finBillApplicationDto.setSaleDeptSid(busDeliveredApply.getStaffDeptSid()); |
|
|
|
finBillApplicationDto.setSaleDeptName(busDeliveredApply.getStaffDeptName()); |
|
|
|
finBillApplicationDto.setSaleTypeKey(busDeliveredApply.getPaymentMethodKey()); |
|
|
|
finBillApplicationDto.setSaleTypeValue(busDeliveredApply.getPaymentMethod()); |
|
|
|
//开票单位
|
|
|
|
if (StringUtils.isNotBlank(appOrderDetailsVo.getPurchaseSystemSid())) { |
|
|
|
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(appOrderDetailsVo.getUseOrgSid(), appOrderDetailsVo.getPurchaseSystemSid()); |
|
|
|
if (invoicingDetailsVoResultBean.getData() != null) { |
|
|
|
finBillApplicationDto.setOpenTickUnitName(invoicingDetailsVoResultBean.getData().getName()); |
|
|
|
} |
|
|
|
} |
|
|
|
finBillApplicationDto.setBillStateKey("001"); |
|
|
|
finBillApplicationDto.setBillStateValue("正常开票"); |
|
|
|
List<FinBillVehicleDto> finBillVehicles = new ArrayList<>(); |
|
|
|
for (int i = 0; i < detailsList.size(); i++) { |
|
|
|
FinBillVehicleDto finBillVehicleDto = new FinBillVehicleDto(); |
|
|
|
BusDeliveredApplyDetails busDeliveredApplyDetails = detailsList.get(i); |
|
|
|
finBillVehicleDto.setVinNo(busDeliveredApplyDetails.getVinNo()); |
|
|
|
finBillVehicleDto.setVehSid(busDeliveredApplyDetails.getVinSid()); |
|
|
|
//合格证状态
|
|
|
|
BaseVehicleCertificateVo baseVehicleCertificate = baseVehicleCertificateFeign.selStateByVehicleSid(busDeliveredApplyDetails.getVinSid()).getData(); |
|
|
|
if (baseVehicleCertificate != null) { |
|
|
|
finBillVehicleDto.setCertificateStateKey(baseVehicleCertificate.getCertificateState()); |
|
|
|
finBillVehicleDto.setCertificateStateValue(baseVehicleCertificate.getCertificateSituationValue()); |
|
|
|
} |
|
|
|
finBillVehicles.add(finBillVehicleDto); |
|
|
|
} |
|
|
|
finBillApplicationDto.setFinBillVehicles(finBillVehicles); |
|
|
|
finBillApplicationDto.setArrearsMoney("0"); |
|
|
|
finBillApplicationDto.setApplyDate(DateUtil.today()); |
|
|
|
finBillApplicationDto.setOrgSidPath(busDeliveredApply.getOrgSidPath()); |
|
|
|
ResultBean finBillResult = finBillApplicationFeign.save(finBillApplicationDto); |
|
|
|
//====================推送开票结束
|
|
|
|
//推送优惠包待准备开始
|
|
|
|
//查询该是否有优惠包信息
|
|
|
|
List<BusDeliveredDetailsDiscount> discountList = busDeliveredDetailsDiscountService.selectByApplySid(busDeliveredApply.getSid()); |
|
|
|
BusDiscountpackageHandoverDto busDiscountpackageHandoverDto = new BusDiscountpackageHandoverDto(); |
|
|
|
//合同编号
|
|
|
|
busDiscountpackageHandoverDto.setContractNo(busDeliveredApply.getContractNo()); |
|
|
|
//车型名称
|
|
|
|
busDiscountpackageHandoverDto.setVehModel(busDeliveredApply.getModelName()); |
|
|
|
//出库台数
|
|
|
|
busDiscountpackageHandoverDto.setVehCount(String.valueOf(detailsList.size())); |
|
|
|
List<String> vinList = detailsList.stream().map(v -> v.getVinNo()).collect(Collectors.toList()); |
|
|
|
String vins = String.join(",", vinList); |
|
|
|
busDiscountpackageHandoverDto.setVinNo(vins); |
|
|
|
busDiscountpackageHandoverDto.setRecUserSid(busDeliveredApply.getApplySid()); |
|
|
|
busDiscountpackageHandoverDto.setCustomerName(busDeliveredApply.getName()); |
|
|
|
busDiscountpackageHandoverDto.setRecName(busDeliveredApply.getApplyName()); |
|
|
|
busDiscountpackageHandoverDto.setRecTime(new Date()); |
|
|
|
busDiscountpackageHandoverDto.setCreateBySid(busDeliveredApply.getApplySid()); |
|
|
|
//根据用户sid查询电话
|
|
|
|
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(busDeliveredApply.getApplySid()); |
|
|
|
if (sysUserVoResultBean.getData() != null) { |
|
|
|
busDiscountpackageHandoverDto.setRecPhone(sysUserVoResultBean.getData().getMobile()); |
|
|
|
} |
|
|
|
busDiscountpackageHandoverDto.setBusSid(busDeliveredApply.getSid()); |
|
|
|
busDiscountpackageHandoverDto.setCreateOrgSid(busDeliveredApply.getUseOrgSid()); |
|
|
|
busDiscountpackageHandoverDto.setUseOrgSid(busDeliveredApply.getUseOrgSid()); |
|
|
|
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(busDeliveredApply.getUseOrgSid()); |
|
|
|
if (sysOrganizationVoResultBean.getData() != null) { |
|
|
|
busDiscountpackageHandoverDto.setCreateOrgName(sysOrganizationVoResultBean.getData().getName()); |
|
|
|
busDiscountpackageHandoverDto.setUseOrgName(sysOrganizationVoResultBean.getData().getName()); |
|
|
|
} |
|
|
|
List<BusDiscountpackageHandoverListDto> busDiscountpackageHandoverLists = new ArrayList<>(); |
|
|
|
discountList.removeAll(Collections.singleton(null)); |
|
|
|
if (!discountList.isEmpty()) { |
|
|
|
for (int i = 0; i < discountList.size(); i++) { |
|
|
|
BusDeliveredDetailsDiscount busDeliveredDetailsDiscount = discountList.get(i); |
|
|
|
BusDiscountpackageHandoverListDto busDiscountpackageHandoverListDto = new BusDiscountpackageHandoverListDto(); |
|
|
|
busDiscountpackageHandoverListDto.setPrice(new BigDecimal(busDeliveredDetailsDiscount.getPrice())); |
|
|
|
busDiscountpackageHandoverListDto.setNumber(String.valueOf(busDeliveredDetailsDiscount.getGiveNum())); |
|
|
|
busDiscountpackageHandoverListDto.setDiscountName(busDeliveredDetailsDiscount.getName()); |
|
|
|
busDiscountpackageHandoverListDto.setPackageExplain(busDeliveredDetailsDiscount.getDiscountExplain()); |
|
|
|
busDiscountpackageHandoverListDto.setRemarks(busDeliveredDetailsDiscount.getRemarks()); |
|
|
|
busDiscountpackageHandoverListDto.setTotalPrice(new BigDecimal(busDeliveredDetailsDiscount.getPrice()).multiply(new BigDecimal(busDeliveredDetailsDiscount.getGiveNum()))); |
|
|
|
busDiscountpackageHandoverLists.add(busDiscountpackageHandoverListDto); |
|
|
|
|
|
|
|
try { |
|
|
|
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() |
|
|
|
.setNameFormat("demo-pool-%d").build(); |
|
|
|
ExecutorService pool = new ThreadPoolExecutor(1, 2, |
|
|
|
1000, TimeUnit.MILLISECONDS, |
|
|
|
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); |
|
|
|
List<BusDeliveredApplyDetails> detailsList = busDeliveredApplyDetailsService.selectByApplySid(busDeliveredApply.getSid()); |
|
|
|
ResultBean<AppOrderDetailsVo> orderDetailsVoResultBean = busSalesOrderService.getSaleOrderDetailsByContractNo(busDeliveredApply.getContractNo()); |
|
|
|
if (!orderDetailsVoResultBean.getSuccess()) { |
|
|
|
log.error("获取销售订单详情出错啦!!!"); |
|
|
|
} |
|
|
|
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(busDeliveredApply.getStaffUserSid()); |
|
|
|
Future future1 = pool.submit(() -> { |
|
|
|
pushInvoice(busDeliveredApply, detailsList, orderDetailsVoResultBean.getData(), userVoResultBean.getData()); |
|
|
|
}); |
|
|
|
Future future2 = pool.submit(() -> { |
|
|
|
pushDiscountPackage(busDeliveredApply, detailsList); |
|
|
|
}); |
|
|
|
Future future3 = pool.submit(() -> { |
|
|
|
pushOutApply(busDeliveredApply, detailsList, orderDetailsVoResultBean.getData(), userVoResultBean.getData()); |
|
|
|
}); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
log.error("推送数据失败=========================" + e.getMessage()); |
|
|
|
return rb.setMsg("推送数据失败"); |
|
|
|
} |
|
|
|
|
|
|
|
busDiscountpackageHandoverDto.setBusDiscountpackageHandoverLists(busDiscountpackageHandoverLists); |
|
|
|
busDiscountpackageHandoverService.saveOrUpdateDto(busDiscountpackageHandoverDto); |
|
|
|
|
|
|
|
//推送出库查询
|
|
|
|
BaseVehicleZSOutApplyDto baseVehicleZSOutApplyDto = new BaseVehicleZSOutApplyDto(); |
|
|
|
baseVehicleZSOutApplyDto.setCreateBySid(busDeliveredApply.getApplySid()); |
|
|
|
baseVehicleZSOutApplyDto.setCreateByName(busDeliveredApply.getApplyName()); |
|
|
|
if("1".equals(busDeliveredApply.getPaymentMethodKey())){ |
|
|
|
baseVehicleZSOutApplyDto.setSaleTypeKey("001"); |
|
|
|
baseVehicleZSOutApplyDto.setSaleTypeValue("全款车"); |
|
|
|
}else{ |
|
|
|
baseVehicleZSOutApplyDto.setSaleTypeKey("002"); |
|
|
|
baseVehicleZSOutApplyDto.setSaleTypeValue("贷款车"); |
|
|
|
} |
|
|
|
baseVehicleZSOutApplyDto.setSaleDate(DateUtil.today()); |
|
|
|
baseVehicleZSOutApplyDto.setOrgSid(busDeliveredApply.getStaffDeptSid()); |
|
|
|
baseVehicleZSOutApplyDto.setOrgName(busDeliveredApply.getStaffDeptName()); |
|
|
|
baseVehicleZSOutApplyDto.setStaffSid(userVoResultBean.getData().getStaffSid()); |
|
|
|
baseVehicleZSOutApplyDto.setStaffName(busDeliveredApply.getStaffName()); |
|
|
|
baseVehicleZSOutApplyDto.setCustomerName(busDeliveredApply.getName()); |
|
|
|
baseVehicleZSOutApplyDto.setMobile(busDeliveredApply.getMobile()); |
|
|
|
baseVehicleZSOutApplyDto.setCustomerSid(busDeliveredApply.getCustomerSid()); |
|
|
|
//总成交价
|
|
|
|
baseVehicleZSOutApplyDto.setTotalDealPrice(new BigDecimal(busDeliveredApply.getPrice()).multiply(new BigDecimal(detailsList.size())).toString()); |
|
|
|
baseVehicleZSOutApplyDto.setCreateOrgSid(busDeliveredApply.getUseOrgSid()); |
|
|
|
ResultBean<SysOrganizationVo> organizationVoResultBean = sysOrganizationFeign.fetchBySid(busDeliveredApply.getUseOrgSid()); |
|
|
|
if (organizationVoResultBean.getData() != null) { |
|
|
|
baseVehicleZSOutApplyDto.setCreateOrgName(organizationVoResultBean.getData().getName()); |
|
|
|
} |
|
|
|
//内部引荐人姓名
|
|
|
|
if (orderDetailsVoResultBean.getData() != null) { |
|
|
|
baseVehicleZSOutApplyDto.setInnerUserSid(orderDetailsVoResultBean.getData().getRecommenderUserSid()); |
|
|
|
baseVehicleZSOutApplyDto.setInnerName(orderDetailsVoResultBean.getData().getRecommender()); |
|
|
|
} |
|
|
|
//合同编号
|
|
|
|
baseVehicleZSOutApplyDto.setContractNo(busDeliveredApply.getContractNo()); |
|
|
|
//客户编码
|
|
|
|
ResultBean<CrmCustomerTempVo> crmCustomerTempVoResultBean = crmCustomerTempFeign.fetchSid(busDeliveredApply.getCustomerSid()); |
|
|
|
if (crmCustomerTempVoResultBean.getData() != null) { |
|
|
|
baseVehicleZSOutApplyDto.setCustomerNo(crmCustomerTempVoResultBean.getData().getCustomerNo()); |
|
|
|
} |
|
|
|
return rb.success().setData(resultBean.getData()); |
|
|
|
} else { |
|
|
|
return rb.setMsg("操作失败!提交的数据不一致"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 出库办理后推送开票 |
|
|
|
* |
|
|
|
* @param busDeliveredApply |
|
|
|
*/ |
|
|
|
public void pushInvoice(BusDeliveredApply busDeliveredApply, |
|
|
|
List<BusDeliveredApplyDetails> detailsList, |
|
|
|
AppOrderDetailsVo appOrderDetailsVo, |
|
|
|
SysUserVo sysUserVo) { |
|
|
|
//推送开票申请=======
|
|
|
|
FinBillApplicationDto finBillApplicationDto = new FinBillApplicationDto(); |
|
|
|
finBillApplicationDto.setUseOrgSid(busDeliveredApply.getUseOrgSid()); |
|
|
|
finBillApplicationDto.setCreateBySid(busDeliveredApply.getApplySid()); |
|
|
|
finBillApplicationDto.setCreateByName(busDeliveredApply.getApplyName()); |
|
|
|
finBillApplicationDto.setContractNo(busDeliveredApply.getContractNo()); |
|
|
|
if (appOrderDetailsVo != null) { |
|
|
|
finBillApplicationDto.setCustomerSid(appOrderDetailsVo.getCustomerSid()); |
|
|
|
//开票单位
|
|
|
|
if (StringUtils.isNotBlank(appOrderDetailsVo.getPurchaseSystemSid())) { |
|
|
|
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(appOrderDetailsVo.getUseOrgSid(), appOrderDetailsVo.getPurchaseSystemSid()); |
|
|
|
if (invoicingDetailsVoResultBean.getData() != null) { |
|
|
|
finBillApplicationDto.setOpenTickUnitName(invoicingDetailsVoResultBean.getData().getName()); |
|
|
|
} |
|
|
|
//实际购车人key
|
|
|
|
baseVehicleZSOutApplyDto.setBuyerTypeKey(busDeliveredApply.getTypeKey()); |
|
|
|
baseVehicleZSOutApplyDto.setBuyerTypeValue(busDeliveredApply.getType()); |
|
|
|
baseVehicleZSOutApplyDto.setBusSid(busDeliveredApply.getSid()); |
|
|
|
List<BaseVehicleZSOutDto> baseVehicleZSOutDtos = new ArrayList<>(); |
|
|
|
for (int i = 0; i < detailsList.size(); i++) { |
|
|
|
BusDeliveredApplyDetails busDeliveredApplyDetails = detailsList.get(i); |
|
|
|
//主车
|
|
|
|
BaseVehicleZSOutDto baseVehicleZSOutDto = new BaseVehicleZSOutDto(); |
|
|
|
baseVehicleZSOutDto.setVinSid(busDeliveredApplyDetails.getVinSid()); |
|
|
|
baseVehicleZSOutDto.setVinNo(busDeliveredApplyDetails.getVinNo()); |
|
|
|
baseVehicleZSOutDto.setPrice(busDeliveredApply.getPrice()); |
|
|
|
//赠品价值
|
|
|
|
baseVehicleZSOutDto.setGiftsDescription(busDeliveredApplyDetails.getDiscountAll()); |
|
|
|
baseVehicleZSOutDto.setSalesAllowance(busDeliveredApplyDetails.getSingleCarDiscountPrice()); |
|
|
|
//中介人
|
|
|
|
baseVehicleZSOutDto.setMiddleOne(busDeliveredApply.getDistributorName()); |
|
|
|
if (orderDetailsVoResultBean.getData() != null) { |
|
|
|
if (orderDetailsVoResultBean.getData().getIntermediary1() != null) { |
|
|
|
baseVehicleZSOutDto.setMiddleOneSid(orderDetailsVoResultBean.getData().getIntermediary1().getIntermediarySid()); |
|
|
|
ResultBean<BaseMiddlemanDetailsVo> resultBean1 = baseMiddlemanFeign.fetchDetailsBySid(baseVehicleZSOutDto.getMiddleOneSid()); |
|
|
|
if(resultBean1.getData() != null){ |
|
|
|
baseVehicleZSOutDto.setMiddleCodeOne(resultBean1.getData().getMiddleCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
finBillApplicationDto.setCustomerName(busDeliveredApply.getName()); |
|
|
|
finBillApplicationDto.setDeptSid(busDeliveredApply.getApplyDeptSid()); |
|
|
|
finBillApplicationDto.setDeptName(busDeliveredApply.getApplyDept()); |
|
|
|
finBillApplicationDto.setModelName(busDeliveredApply.getModelName()); |
|
|
|
finBillApplicationDto.setModelSid(busDeliveredApply.getModelSid()); |
|
|
|
if (sysUserVo != null) { |
|
|
|
finBillApplicationDto.setStaffSid(sysUserVo.getStaffSid()); |
|
|
|
} |
|
|
|
finBillApplicationDto.setStaffName(busDeliveredApply.getStaffName()); |
|
|
|
finBillApplicationDto.setSaleDeptSid(busDeliveredApply.getStaffDeptSid()); |
|
|
|
finBillApplicationDto.setSaleDeptName(busDeliveredApply.getStaffDeptName()); |
|
|
|
finBillApplicationDto.setSaleTypeKey(busDeliveredApply.getPaymentMethodKey()); |
|
|
|
finBillApplicationDto.setSaleTypeValue(busDeliveredApply.getPaymentMethod()); |
|
|
|
finBillApplicationDto.setBillStateKey("001"); |
|
|
|
finBillApplicationDto.setBillStateValue("正常开票"); |
|
|
|
List<FinBillVehicleDto> finBillVehicles = new ArrayList<>(); |
|
|
|
for (int i = 0; i < detailsList.size(); i++) { |
|
|
|
FinBillVehicleDto finBillVehicleDto = new FinBillVehicleDto(); |
|
|
|
BusDeliveredApplyDetails busDeliveredApplyDetails = detailsList.get(i); |
|
|
|
finBillVehicleDto.setVinNo(busDeliveredApplyDetails.getVinNo()); |
|
|
|
finBillVehicleDto.setVehSid(busDeliveredApplyDetails.getVinSid()); |
|
|
|
//合格证状态
|
|
|
|
BaseVehicleCertificateVo baseVehicleCertificate = baseVehicleCertificateFeign.selStateByVehicleSid(busDeliveredApplyDetails.getVinSid()).getData(); |
|
|
|
if (baseVehicleCertificate != null) { |
|
|
|
finBillVehicleDto.setCertificateStateKey(baseVehicleCertificate.getCertificateState()); |
|
|
|
finBillVehicleDto.setCertificateStateValue(baseVehicleCertificate.getCertificateSituationValue()); |
|
|
|
} |
|
|
|
finBillVehicles.add(finBillVehicleDto); |
|
|
|
} |
|
|
|
finBillApplicationDto.setFinBillVehicles(finBillVehicles); |
|
|
|
finBillApplicationDto.setArrearsMoney("0"); |
|
|
|
finBillApplicationDto.setApplyDate(DateUtil.today()); |
|
|
|
finBillApplicationDto.setOrgSidPath(busDeliveredApply.getOrgSidPath()); |
|
|
|
ResultBean finBillResult = finBillApplicationFeign.save(finBillApplicationDto); |
|
|
|
//====================推送开票结束
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
if (orderDetailsVoResultBean.getData().getIntermediary2() != null) { |
|
|
|
baseVehicleZSOutDto.setMiddleTwoSid(orderDetailsVoResultBean.getData().getIntermediary2().getIntermediarySid()); |
|
|
|
ResultBean<BaseMiddlemanDetailsVo> resultBean1 = baseMiddlemanFeign.fetchDetailsBySid(baseVehicleZSOutDto.getMiddleTwoSid()); |
|
|
|
if(resultBean1.getData() != null){ |
|
|
|
baseVehicleZSOutDto.setMiddleCodeTwo(resultBean1.getData().getMiddleCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
/** |
|
|
|
* 出库办理后推送优惠包待准备 |
|
|
|
* |
|
|
|
* @param busDeliveredApply |
|
|
|
* @param detailsList |
|
|
|
*/ |
|
|
|
public void pushDiscountPackage(BusDeliveredApply busDeliveredApply, List<BusDeliveredApplyDetails> detailsList) { |
|
|
|
//推送优惠包待准备开始
|
|
|
|
//查询该是否有优惠包信息
|
|
|
|
List<BusDeliveredDetailsDiscount> discountList = busDeliveredDetailsDiscountService.selectByApplySid(busDeliveredApply.getSid()); |
|
|
|
BusDiscountpackageHandoverDto busDiscountpackageHandoverDto = new BusDiscountpackageHandoverDto(); |
|
|
|
//合同编号
|
|
|
|
busDiscountpackageHandoverDto.setContractNo(busDeliveredApply.getContractNo()); |
|
|
|
//车型名称
|
|
|
|
busDiscountpackageHandoverDto.setVehModel(busDeliveredApply.getModelName()); |
|
|
|
//出库台数
|
|
|
|
busDiscountpackageHandoverDto.setVehCount(String.valueOf(detailsList.size())); |
|
|
|
List<String> vinList = detailsList.stream().map(v -> v.getVinNo()).collect(Collectors.toList()); |
|
|
|
String vins = String.join(",", vinList); |
|
|
|
busDiscountpackageHandoverDto.setVinNo(vins); |
|
|
|
busDiscountpackageHandoverDto.setRecUserSid(busDeliveredApply.getApplySid()); |
|
|
|
busDiscountpackageHandoverDto.setCustomerName(busDeliveredApply.getName()); |
|
|
|
busDiscountpackageHandoverDto.setRecName(busDeliveredApply.getApplyName()); |
|
|
|
busDiscountpackageHandoverDto.setRecTime(new Date()); |
|
|
|
busDiscountpackageHandoverDto.setCreateBySid(busDeliveredApply.getApplySid()); |
|
|
|
//根据用户sid查询电话
|
|
|
|
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(busDeliveredApply.getApplySid()); |
|
|
|
if (sysUserVoResultBean.getData() != null) { |
|
|
|
busDiscountpackageHandoverDto.setRecPhone(sysUserVoResultBean.getData().getMobile()); |
|
|
|
} |
|
|
|
busDiscountpackageHandoverDto.setBusSid(busDeliveredApply.getSid()); |
|
|
|
busDiscountpackageHandoverDto.setCreateOrgSid(busDeliveredApply.getUseOrgSid()); |
|
|
|
busDiscountpackageHandoverDto.setUseOrgSid(busDeliveredApply.getUseOrgSid()); |
|
|
|
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(busDeliveredApply.getUseOrgSid()); |
|
|
|
if (sysOrganizationVoResultBean.getData() != null) { |
|
|
|
busDiscountpackageHandoverDto.setCreateOrgName(sysOrganizationVoResultBean.getData().getName()); |
|
|
|
busDiscountpackageHandoverDto.setUseOrgName(sysOrganizationVoResultBean.getData().getName()); |
|
|
|
} |
|
|
|
List<BusDiscountpackageHandoverListDto> busDiscountpackageHandoverLists = new ArrayList<>(); |
|
|
|
discountList.removeAll(Collections.singleton(null)); |
|
|
|
if (!discountList.isEmpty()) { |
|
|
|
for (int i = 0; i < discountList.size(); i++) { |
|
|
|
BusDeliveredDetailsDiscount busDeliveredDetailsDiscount = discountList.get(i); |
|
|
|
BusDiscountpackageHandoverListDto busDiscountpackageHandoverListDto = new BusDiscountpackageHandoverListDto(); |
|
|
|
busDiscountpackageHandoverListDto.setPrice(new BigDecimal(busDeliveredDetailsDiscount.getPrice())); |
|
|
|
busDiscountpackageHandoverListDto.setNumber(String.valueOf(busDeliveredDetailsDiscount.getGiveNum())); |
|
|
|
busDiscountpackageHandoverListDto.setDiscountName(busDeliveredDetailsDiscount.getName()); |
|
|
|
busDiscountpackageHandoverListDto.setPackageExplain(busDeliveredDetailsDiscount.getDiscountExplain()); |
|
|
|
busDiscountpackageHandoverListDto.setRemarks(busDeliveredDetailsDiscount.getRemarks()); |
|
|
|
busDiscountpackageHandoverListDto.setTotalPrice(new BigDecimal(busDeliveredDetailsDiscount.getPrice()).multiply(new BigDecimal(busDeliveredDetailsDiscount.getGiveNum()))); |
|
|
|
busDiscountpackageHandoverLists.add(busDiscountpackageHandoverListDto); |
|
|
|
} |
|
|
|
} |
|
|
|
busDiscountpackageHandoverDto.setBusDiscountpackageHandoverLists(busDiscountpackageHandoverLists); |
|
|
|
busDiscountpackageHandoverService.saveOrUpdateDto(busDiscountpackageHandoverDto); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 出库办理后推送出库查询 |
|
|
|
* |
|
|
|
* @param busDeliveredApply |
|
|
|
* @param detailsList |
|
|
|
*/ |
|
|
|
public void pushOutApply(BusDeliveredApply busDeliveredApply, |
|
|
|
List<BusDeliveredApplyDetails> detailsList, |
|
|
|
AppOrderDetailsVo appOrderDetailsVo, |
|
|
|
SysUserVo sysUserVo) { |
|
|
|
//推送出库查询
|
|
|
|
BaseVehicleZSOutApplyDto baseVehicleZSOutApplyDto = new BaseVehicleZSOutApplyDto(); |
|
|
|
baseVehicleZSOutApplyDto.setCreateBySid(busDeliveredApply.getApplySid()); |
|
|
|
baseVehicleZSOutApplyDto.setCreateByName(busDeliveredApply.getApplyName()); |
|
|
|
if ("1".equals(busDeliveredApply.getPaymentMethodKey())) { |
|
|
|
baseVehicleZSOutApplyDto.setSaleTypeKey("001"); |
|
|
|
baseVehicleZSOutApplyDto.setSaleTypeValue("全款车"); |
|
|
|
} else { |
|
|
|
baseVehicleZSOutApplyDto.setSaleTypeKey("002"); |
|
|
|
baseVehicleZSOutApplyDto.setSaleTypeValue("贷款车"); |
|
|
|
} |
|
|
|
baseVehicleZSOutApplyDto.setSaleDate(DateUtil.today()); |
|
|
|
baseVehicleZSOutApplyDto.setOrgSid(busDeliveredApply.getStaffDeptSid()); |
|
|
|
baseVehicleZSOutApplyDto.setOrgName(busDeliveredApply.getStaffDeptName()); |
|
|
|
if (sysUserVo != null) { |
|
|
|
baseVehicleZSOutApplyDto.setStaffSid(sysUserVo.getStaffSid()); |
|
|
|
} |
|
|
|
|
|
|
|
baseVehicleZSOutApplyDto.setStaffName(busDeliveredApply.getStaffName()); |
|
|
|
baseVehicleZSOutApplyDto.setCustomerName(busDeliveredApply.getName()); |
|
|
|
baseVehicleZSOutApplyDto.setMobile(busDeliveredApply.getMobile()); |
|
|
|
baseVehicleZSOutApplyDto.setCustomerSid(busDeliveredApply.getCustomerSid()); |
|
|
|
//总成交价
|
|
|
|
baseVehicleZSOutApplyDto.setTotalDealPrice(new BigDecimal(busDeliveredApply.getPrice()).multiply(new BigDecimal(detailsList.size())).toString()); |
|
|
|
baseVehicleZSOutApplyDto.setCreateOrgSid(busDeliveredApply.getUseOrgSid()); |
|
|
|
ResultBean<SysOrganizationVo> organizationVoResultBean = sysOrganizationFeign.fetchBySid(busDeliveredApply.getUseOrgSid()); |
|
|
|
if (organizationVoResultBean.getData() != null) { |
|
|
|
baseVehicleZSOutApplyDto.setCreateOrgName(organizationVoResultBean.getData().getName()); |
|
|
|
} |
|
|
|
//内部引荐人姓名
|
|
|
|
if (appOrderDetailsVo != null) { |
|
|
|
baseVehicleZSOutApplyDto.setInnerUserSid(appOrderDetailsVo.getRecommenderUserSid()); |
|
|
|
baseVehicleZSOutApplyDto.setInnerName(appOrderDetailsVo.getRecommender()); |
|
|
|
} |
|
|
|
//合同编号
|
|
|
|
baseVehicleZSOutApplyDto.setContractNo(busDeliveredApply.getContractNo()); |
|
|
|
//客户编码
|
|
|
|
ResultBean<CrmCustomerTempVo> crmCustomerTempVoResultBean = crmCustomerTempFeign.fetchSid(busDeliveredApply.getCustomerSid()); |
|
|
|
if (crmCustomerTempVoResultBean.getData() != null) { |
|
|
|
baseVehicleZSOutApplyDto.setCustomerNo(crmCustomerTempVoResultBean.getData().getCustomerNo()); |
|
|
|
} |
|
|
|
//实际购车人key
|
|
|
|
baseVehicleZSOutApplyDto.setBuyerTypeKey(busDeliveredApply.getTypeKey()); |
|
|
|
baseVehicleZSOutApplyDto.setBuyerTypeValue(busDeliveredApply.getType()); |
|
|
|
baseVehicleZSOutApplyDto.setBusSid(busDeliveredApply.getSid()); |
|
|
|
List<BaseVehicleZSOutDto> baseVehicleZSOutDtos = new ArrayList<>(); |
|
|
|
for (int i = 0; i < detailsList.size(); i++) { |
|
|
|
BusDeliveredApplyDetails busDeliveredApplyDetails = detailsList.get(i); |
|
|
|
//主车
|
|
|
|
BaseVehicleZSOutDto baseVehicleZSOutDto = new BaseVehicleZSOutDto(); |
|
|
|
baseVehicleZSOutDto.setVinSid(busDeliveredApplyDetails.getVinSid()); |
|
|
|
baseVehicleZSOutDto.setVinNo(busDeliveredApplyDetails.getVinNo()); |
|
|
|
baseVehicleZSOutDto.setPrice(busDeliveredApply.getPrice()); |
|
|
|
//赠品价值
|
|
|
|
baseVehicleZSOutDto.setGiftsDescription(busDeliveredApplyDetails.getDiscountAll()); |
|
|
|
baseVehicleZSOutDto.setSalesAllowance(busDeliveredApplyDetails.getSingleCarDiscountPrice()); |
|
|
|
//中介人
|
|
|
|
baseVehicleZSOutDto.setMiddleOne(busDeliveredApply.getDistributorName()); |
|
|
|
if (appOrderDetailsVo != null) { |
|
|
|
if (appOrderDetailsVo.getIntermediary1() != null) { |
|
|
|
baseVehicleZSOutDto.setMiddleOneSid(appOrderDetailsVo.getIntermediary1().getIntermediarySid()); |
|
|
|
ResultBean<BaseMiddlemanDetailsVo> resultBean1 = baseMiddlemanFeign.fetchDetailsBySid(baseVehicleZSOutDto.getMiddleOneSid()); |
|
|
|
if (resultBean1.getData() != null) { |
|
|
|
baseVehicleZSOutDto.setMiddleCodeOne(resultBean1.getData().getMiddleCode()); |
|
|
|
} |
|
|
|
baseVehicleZSOutDto.setRebateMoneyOne(busDeliveredApply.getDistributorPrice()); |
|
|
|
baseVehicleZSOutDto.setMiddleTwo(busDeliveredApply.getDistributorNameTwo()); |
|
|
|
baseVehicleZSOutDto.setRebateMoneyTwo(busDeliveredApply.getDistributorPriceTwo()); |
|
|
|
baseVehicleZSOutDto.setRemarks(busDeliveredApplyDetails.getRemarks()); |
|
|
|
ResultBean<BaseVehicleSelectVo> vehicleResultBean = baseVehicleFeign.details(baseVehicleZSOutDto.getVinSid()); |
|
|
|
if(vehicleResultBean.getData() != null){ |
|
|
|
BaseVehicleSelectVo baseVehicleSelectVo = vehicleResultBean.getData(); |
|
|
|
baseVehicleZSOutDto.setManPurOrderTypeKey(baseVehicleSelectVo.getManPurOrderTypeKey()); |
|
|
|
baseVehicleZSOutDto.setManPurOrderTypeValue(baseVehicleSelectVo.getManPurOrderTypeValue()); |
|
|
|
|
|
|
|
} |
|
|
|
if (appOrderDetailsVo.getIntermediary2() != null) { |
|
|
|
baseVehicleZSOutDto.setMiddleTwoSid(appOrderDetailsVo.getIntermediary2().getIntermediarySid()); |
|
|
|
ResultBean<BaseMiddlemanDetailsVo> resultBean1 = baseMiddlemanFeign.fetchDetailsBySid(baseVehicleZSOutDto.getMiddleTwoSid()); |
|
|
|
if (resultBean1.getData() != null) { |
|
|
|
baseVehicleZSOutDto.setMiddleCodeTwo(resultBean1.getData().getMiddleCode()); |
|
|
|
} |
|
|
|
baseVehicleZSOutDto.setMaterialCode(busDeliveredApplyDetails.getVinNo()); |
|
|
|
baseVehicleZSOutDto.setMaterialName("主车"); |
|
|
|
baseVehicleZSOutDto.setMaterialSid(busDeliveredApplyDetails.getVinSid()); |
|
|
|
baseVehicleZSOutDto.setMaterialTypeKey("001"); |
|
|
|
baseVehicleZSOutDto.setMaterialTypeValue("主车"); |
|
|
|
baseVehicleZSOutDtos.add(baseVehicleZSOutDto); |
|
|
|
} |
|
|
|
baseVehicleZSOutApplyDto.setBaseVehicleZSOutDtos(baseVehicleZSOutDtos); |
|
|
|
ResultBean vehicleZsOutResultBean = baseVehicleOutFeign.vehicleZSOut(baseVehicleZSOutApplyDto); |
|
|
|
|
|
|
|
} |
|
|
|
return rb.success().setData(resultBean.getData()); |
|
|
|
} else { |
|
|
|
return rb.setMsg("操作失败!提交的数据不一致"); |
|
|
|
baseVehicleZSOutDto.setRebateMoneyOne(busDeliveredApply.getDistributorPrice()); |
|
|
|
baseVehicleZSOutDto.setMiddleTwo(busDeliveredApply.getDistributorNameTwo()); |
|
|
|
baseVehicleZSOutDto.setRebateMoneyTwo(busDeliveredApply.getDistributorPriceTwo()); |
|
|
|
baseVehicleZSOutDto.setRemarks(busDeliveredApplyDetails.getRemarks()); |
|
|
|
ResultBean<BaseVehicleSelectVo> vehicleResultBean = baseVehicleFeign.details(baseVehicleZSOutDto.getVinSid()); |
|
|
|
if (vehicleResultBean.getData() != null) { |
|
|
|
BaseVehicleSelectVo baseVehicleSelectVo = vehicleResultBean.getData(); |
|
|
|
baseVehicleZSOutDto.setManPurOrderTypeKey(baseVehicleSelectVo.getManPurOrderTypeKey()); |
|
|
|
baseVehicleZSOutDto.setManPurOrderTypeValue(baseVehicleSelectVo.getManPurOrderTypeValue()); |
|
|
|
} |
|
|
|
baseVehicleZSOutDto.setMaterialCode(busDeliveredApplyDetails.getVinNo()); |
|
|
|
baseVehicleZSOutDto.setMaterialName("主车"); |
|
|
|
baseVehicleZSOutDto.setMaterialSid(busDeliveredApplyDetails.getVinSid()); |
|
|
|
baseVehicleZSOutDto.setMaterialTypeKey("001"); |
|
|
|
baseVehicleZSOutDto.setMaterialTypeValue("主车"); |
|
|
|
baseVehicleZSOutDtos.add(baseVehicleZSOutDto); |
|
|
|
} |
|
|
|
baseVehicleZSOutApplyDto.setBaseVehicleZSOutDtos(baseVehicleZSOutDtos); |
|
|
|
ResultBean vehicleZsOutResultBean = baseVehicleOutFeign.vehicleZSOut(baseVehicleZSOutApplyDto); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -1474,7 +1530,7 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
return rb.setMsg("请选择要出库的车辆"); |
|
|
|
} |
|
|
|
|
|
|
|