Browse Source

出库

master
dimengzhe 2 years ago
parent
commit
629c4de2b1
  1. 4
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/AppDeliveredDetailsVo.java
  2. 18
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/DeliveredLeavesVo.java
  3. 56
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/AppDeliveredApplyDto.java
  4. 1
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/BusDeliveredApply.java
  5. 3
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivereddetailsdiscount/BusDeliveredDetailsDiscountsVo.java
  6. 30
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredusemessage/BusDeliveredUseMessage.java
  7. 32
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredService.java
  8. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.xml
  9. 244
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java
  10. 4
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapplydetails/BusDeliveredApplyDetailsService.java
  11. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivereddetailsdiscount/BusDeliveredDetailsDiscountMapper.xml
  12. 75
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/retrieval/DeliveredApplyDto.java
  13. 45
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/retrieval/DeliveredDetailsVo.java
  14. 3
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/retrieval/DeliveredDiscountVo.java
  15. 20
      doc/databases/bus-center_tables.sql

4
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/AppDeliveredDetailsVo.java

@ -56,8 +56,8 @@ public class AppDeliveredDetailsVo implements Vo {
private String loanMobile;
@ApiModelProperty("总备注")
private String remarks;
//ToDo:剩余
@ApiModelProperty("剩余")
private List<DeliveredLeavesVo> discountLeave = new ArrayList<>();
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("记录sid")

18
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/DeliveredLeavesVo.java

@ -0,0 +1,18 @@
package com.yxt.anrui.buscenter.api.busdelivered;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2023/4/11 20:39
* @Description
*/
@Data
public class DeliveredLeavesVo {
@ApiModelProperty("剩余数量")
private Integer discountLeaveNum;
@ApiModelProperty("销售订单和车辆关联的sid")
private String discountSid;
}

56
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/AppDeliveredApplyDto.java

@ -1,6 +1,6 @@
package com.yxt.anrui.buscenter.api.busdeliveredapply;
import com.yxt.anrui.buscenter.api.busdeliveredapplydetails.AppCarListDto;
import com.yxt.anrui.buscenter.api.busdeliveredapplydetails.AppCarListVo;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -11,8 +11,60 @@ import java.util.List;
public class AppDeliveredApplyDto implements Dto {
private static final long serialVersionUID = -5676508927519131616L;
@ApiModelProperty("合同编号")
private String contractId;
//销售类型
private String paymentMethod;
private String paymentMethodKey;
@ApiModelProperty("销售部门")
private String staffDeptSid;
private String staffDeptName;
private String staffUserSid;
@ApiModelProperty("销售专员")
private String staffName;
@ApiModelProperty("发起日期")
private String createTime;
@ApiModelProperty("客户名称")
private String name;
@ApiModelProperty("客户电话")
private String mobile;
@ApiModelProperty("车型名称")
private String modelName;
@ApiModelProperty("单车中介人1")
private String distributorName;
@ApiModelProperty("单车中介人2")
private String distributorNameTwo;
@ApiModelProperty("车型sid")
private String modelSid;
@ApiModelProperty("配置sid")
private String configSid;
@ApiModelProperty("主车成交价")
private String price;
@ApiModelProperty("购车人类型key")
private String typeKey;
@ApiModelProperty("购车人类型值")
private String type;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("贷款人sid")
private String loanSid;
@ApiModelProperty("贷款人电话")
private String loanMobile;
@ApiModelProperty("总备注")
private String remarks;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("记录sid")
private String sid;
@ApiModelProperty("orgPath")
private String orgPath;
@ApiModelProperty("车辆集合")
private List<AppCarListVo> carList;
/* @ApiModelProperty("记录sid")
private String sid;
@ApiModelProperty("合同id")
private String contractNo;
@ -51,5 +103,5 @@ public class AppDeliveredApplyDto implements Dto {
private String mobile;
@ApiModelProperty("客户名称")
private String name;
private String name;*/
}

1
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/BusDeliveredApply.java

@ -105,6 +105,7 @@ public class BusDeliveredApply extends BaseEntity {
@ApiModelProperty("实际购车人类型:0订单客户,1贷款人,2其他人")
private String type;
private String typeKey;
@ApiModelProperty("成交价")
private String price;

3
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivereddetailsdiscount/BusDeliveredDetailsDiscountsVo.java

@ -25,4 +25,7 @@ public class BusDeliveredDetailsDiscountsVo {
@ApiModelProperty("优惠包价格")
private String discountPrice;
@ApiModelProperty("总数量")
private Integer totalNum;
}

30
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredusemessage/BusDeliveredUseMessage.java

@ -50,25 +50,29 @@ import lombok.Data;
public class BusDeliveredUseMessage extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("合同编号")
private String contractNo; // 合同编号
@ApiModelProperty("车架号")
private String vinNo; // 车架号
@ApiModelProperty("客户名称")
private String name; // 客户名称
private String name;
@ApiModelProperty("联系电话")
private String mobile; // 联系电话
private String mobile;
@ApiModelProperty("证件号码")
private String idNo; // 证件号码
@ApiModelProperty("县")
private String idNo;
@ApiModelProperty("联系地址")
private String address;
@ApiModelProperty(value = "出库申请sid")
private String applySid;
@ApiModelProperty("是否确定实际购车人")
private String isConfirmRealBuyer;
private String customerType;
@ApiModelProperty("客户类型")
private String customerTypeKey;
@ApiModelProperty("联系人")
private String contacts;
/* @ApiModelProperty("县")
private String county;
@ApiModelProperty("市")
private String city;
@ApiModelProperty("省")
private String province;
@ApiModelProperty("联系地址")
private String address; // 联系地址
@ApiModelProperty(value = "出库申请sid")
private String applySid;
private String province;*/
}

32
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredService.java

@ -30,6 +30,8 @@ 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.yxt.anrui.base.api.basetrailer.BaseTrailerFeign;
import com.yxt.anrui.base.api.basetrailer.TrailerVo;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstateFeign;
import com.yxt.anrui.buscenter.api.busdelivered.*;
@ -42,6 +44,7 @@ import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderPriceInfoVo;
import com.yxt.anrui.buscenter.api.bussalesorderdiscount.BusSalesOrderDiscount;
import com.yxt.anrui.buscenter.api.bussalesordersubmit.SubmitVo;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.biz.busdelivereddetailsdiscount.BusDeliveredDetailsDiscountService;
import com.yxt.anrui.buscenter.biz.bussalesorder.BusSalesOrderService;
import com.yxt.anrui.buscenter.biz.bussalesorderdiscount.BusSalesOrderDiscountService;
import com.yxt.anrui.buscenter.biz.bussalesordervehicle.BusSalesOrderVehicleService;
@ -103,6 +106,10 @@ public class BusDeliveredService extends MybatisBaseService<BusDeliveredMapper,
private BusSalesOrderDiscountService busSalesOrderDiscountService;
@Autowired
private DictCommonFeign dictCommonFeign;
@Autowired
private BusDeliveredDetailsDiscountService busDeliveredDetailsDiscountService;
@Autowired
private BaseTrailerFeign baseTrailerFeign;
/**
* 构造出库车辆分页列表查询条件
@ -284,6 +291,21 @@ public class BusDeliveredService extends MybatisBaseService<BusDeliveredMapper,
AppOrderPriceInfoVo appOrderPriceInfoVo = appOrderDetailsVo.getPriceInfo();
//主车成交价
appDeliveredDetailsVo.setPrice(appOrderPriceInfoVo.getTransactionPrice());
List<DeliveredLeavesVo> discountLeave = new ArrayList<>();
List<BusSalesOrderDiscount> busSalesOrderDiscountLists = busSalesOrderDiscountService.selectListByContractNo(contractNo);
for (BusSalesOrderDiscount busSalesOrderDiscount : busSalesOrderDiscountLists) {
DeliveredLeavesVo deliveredLeavesVo = new DeliveredLeavesVo();
String discountSid = busSalesOrderDiscount.getSid();
deliveredLeavesVo.setDiscountSid(discountSid);
//已使用的数量:根据优惠包sid查询出库已提交以及出库已办结的数量
int intCount = busDeliveredDetailsDiscountService.selectCounts(discountSid);
int count = busSalesOrderDiscount.getNum();
//剩余数量
int discountLeaveNum = count - intCount;
deliveredLeavesVo.setDiscountLeaveNum(discountLeaveNum);
discountLeave.add(deliveredLeavesVo);
}
appDeliveredDetailsVo.setDiscountLeave(discountLeave);
List<AppCarListVo> carList = new ArrayList<>();
//根据合同编号和车辆sid查询
for (int i = 0; i < list.size(); i++) {
@ -293,8 +315,13 @@ public class BusDeliveredService extends MybatisBaseService<BusDeliveredMapper,
AppCarListVo appCarListVo = new AppCarListVo();
appCarListVo.setVinSid(list.get(i));
appCarListVo.setDiscount(appOrderPriceInfoVo.getSingleCarDiscountPrice());
//ToDo:是否显示挂车
//查询该车辆是否有挂车
ResultBean<List<TrailerVo>> trailerList = baseTrailerFeign.trailerList(vinSid);
if (trailerList.getData().isEmpty()) {
appCarListVo.setShowHandCarBtn(false);
} else {
appCarListVo.setShowHandCarBtn(true);
}
//优惠包使用情况
List<BusDeliveredDetailsDiscountsVo> discountList = new ArrayList<>();
List<BusSalesOrderDiscount> busSalesOrderDiscountList = busSalesOrderDiscountService.selectListByContractNo(contractNo);
@ -302,10 +329,11 @@ public class BusDeliveredService extends MybatisBaseService<BusDeliveredMapper,
BusDeliveredDetailsDiscountsVo busDeliveredDetailsDiscountsVo = new BusDeliveredDetailsDiscountsVo();
BusSalesOrderDiscount orderDiscountVo = busSalesOrderDiscountList.get(j);
busDeliveredDetailsDiscountsVo.setDiscountInfo(orderDiscountVo.getDiscountExplain());
busDeliveredDetailsDiscountsVo.setDiscountNum(orderDiscountVo.getNum());
busDeliveredDetailsDiscountsVo.setDiscountSid(orderDiscountVo.getSid());
busDeliveredDetailsDiscountsVo.setDiscountPrice(orderDiscountVo.getPrice());
busDeliveredDetailsDiscountsVo.setDiscountNum(0);
busDeliveredDetailsDiscountsVo.setTotalNum(orderDiscountVo.getNum());
busDeliveredDetailsDiscountsVo.setDiscountName(orderDiscountVo.getName());
discountList.add(busDeliveredDetailsDiscountsVo);
}
appCarListVo.setDiscountUse(discountList);

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.xml

@ -43,7 +43,7 @@
bd.contractNo as contractId,
bd.applyName,
bd.name as customerName,
DATE_FORMAT(bd.applyDate, '%Y-%m-%d') as `date`
DATE_FORMAT(bd.createTime, '%Y-%m-%d') as `date`
FROM bus_delivered_apply bd
<where>
${ew.sqlSegment}

244
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java

@ -30,22 +30,27 @@ 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.yxt.anrui.base.api.basevehicle.BaseVehicle;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.commoncontract.CommonContract;
import com.yxt.anrui.base.api.commoncontract.CommonContractFeign;
import com.yxt.anrui.buscenter.api.busdeliveredapply.*;
import com.yxt.anrui.buscenter.api.busdeliveredapplydetails.AppCarListDto;
import com.yxt.anrui.buscenter.api.busdeliveredapplydetails.AppCarListVo;
import com.yxt.anrui.buscenter.api.busdeliveredapplydetails.BusDeliveredApplyDetails;
import com.yxt.anrui.buscenter.api.busdeliveredapplydetails.BusDeliveredApplyDetailsDto;
import com.yxt.anrui.buscenter.api.busdeliveredapplydetails.BusDeliveredApplyDetailsVo;
import com.yxt.anrui.buscenter.api.busdelivereddetailsdiscount.BusDeliveredDetailsDiscount;
import com.yxt.anrui.buscenter.api.busdelivereddetailsdiscount.BusDeliveredDetailsDiscountsVo;
import com.yxt.anrui.buscenter.api.busdeliveredusemessage.AppUseInfoVo;
import com.yxt.anrui.buscenter.api.busdeliveredusemessage.BusDeliveredUseMessage;
import com.yxt.anrui.buscenter.api.busdeliveredusemessage.BusDeliveredUseMessageVo;
import com.yxt.anrui.buscenter.api.busdeliveredusemessage.BusDeliveredUseMessagesVo;
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesordersubmit.SubmitVo;
import com.yxt.anrui.buscenter.biz.busdelivered.BusDeliveredService;
import com.yxt.anrui.buscenter.biz.busdeliveredapplydetails.BusDeliveredApplyDetailsService;
import com.yxt.anrui.buscenter.biz.busdelivereddetailsdiscount.BusDeliveredDetailsDiscountService;
import com.yxt.anrui.buscenter.biz.busdeliveredusemessage.BusDeliveredUseMessageService;
import com.yxt.anrui.buscenter.biz.bussalesorder.BusSalesOrderService;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
@ -55,6 +60,7 @@ import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
@ -72,6 +78,7 @@ 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.stream.Collectors;
@ -117,6 +124,8 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
private MessageFeign messageFeign;
@Autowired
private BusDeliveredDetailsDiscountService busDeliveredDetailsDiscountService;
@Autowired
private BusSalesOrderService busSalesOrderService;
/**
* 构造出库申请的查询条件
@ -728,16 +737,235 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
} else {
orgSid = sysStaffOrgFeign.getPathSidByUserSid(pagerQuery.getParams().getUserSid()).getData();
}
qw.eq("orgSid", orgSid);
qw.eq("useOrgSid", orgSid);
qw.eq("applySid",pagerQuery.getParams().getUserSid());
IPage<AppDeliveredApplyPageQuery> page = PagerUtil.queryToPage(pagerQuery);
IPage<AppDeliveredApplyPageVo> iPage = baseMapper.getRetrievalApplyList(page, qw, pagerQuery.getParams().getName());
return iPage;
}
public ResultBean saveRetrievalApplyInfo(AppDeliveredApplyDto appDeliveredApplyDto) {
public ResultBean saveRetrievalApplyInfo(AppDeliveredApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
String dtoSid = appDeliveredApplyDto.getSid();
String sid = dto.getSid();
String orgPath = dto.getOrgPath();
String contractNo = dto.getContractId();
if (StringUtils.isBlank(sid)) {
//根据合同编号查询销售订单
//根据orgPath以及用户sid查询申请人
String userSid = dto.getUserSid();
String deptName = "";
String deptSid = "";
if (StringUtils.isNotBlank(orgPath)) {
List<String> split = Arrays.asList(orgPath.split("/"));
if (split.size() > 1) {
//获取本级sid获取本级部门信息
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(split.size() - 2)).getData();
SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData();
deptName = sysOrganization.getName() + "/" + sysOrganization1.getName();
deptName = sysOrganization1.getName();
deptSid = sysOrganization1.getSid();
} else {
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData();
deptName = sysOrganization.getName();
deptName = sysOrganization.getName();
deptSid = sysOrganization.getSid();
}
}
//根据用户sid查询人员姓名
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(userSid);
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
BusDeliveredApply busDeliveredApply = new BusDeliveredApply();
BeanUtil.copyProperties(dto, busDeliveredApply, "sid");
busDeliveredApply.setContractNo(contractNo);
busDeliveredApply.setApplySid(userSid);
busDeliveredApply.setCreateBySid(userSid);
busDeliveredApply.setApplyName(userVoResultBean.getData().getName());
busDeliveredApply.setStaffDeptName(deptName);
busDeliveredApply.setApplyDept(deptName);
busDeliveredApply.setApplyDeptSid(deptSid);
busDeliveredApply.setStaffDeptSid(deptSid);
busDeliveredApply.setStaffUserSid(userSid);
busDeliveredApply.setStaffName(userVoResultBean.getData().getName());
//根据合同编号查询销售订单的信息
ResultBean<AppOrderDetailsVo> resultBean = busSalesOrderService.getSaleOrderDetailsByContractNo(contractNo);
if (!resultBean.getSuccess()) {
log.error("获取销售订单详情出错啦!!!");
return rb;
}
AppOrderDetailsVo appOrderDetailsVo = resultBean.getData();
//销售类型
busDeliveredApply.setPaymentMethod(appOrderDetailsVo.getPayType());
busDeliveredApply.setPaymentMethodKey(appOrderDetailsVo.getPayTypeKey());
//中介人
SubmitVo intermediary1 = appOrderDetailsVo.getIntermediary1();
if (intermediary1 != null) {
String agencyFee = intermediary1.getAgencyFee();
if (StringUtils.isNotBlank(agencyFee)) {
busDeliveredApply.setDistributorPrice(agencyFee);
}
busDeliveredApply.setDistributorName(intermediary1.getIntermediaryName());
}
//中介人2
SubmitVo intermediary2 = appOrderDetailsVo.getIntermediary2();
if (intermediary2 != null) {
String agencyFee = intermediary2.getAgencyFee();
if (StringUtils.isNotBlank(agencyFee)) {
busDeliveredApply.setDistributorPriceTwo(agencyFee);
}
busDeliveredApply.setDistributorNameTwo(intermediary2.getIntermediaryName());
}
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData();
busDeliveredApply.setUseOrgSid(useOrgSid);
//车辆列表
List<AppCarListVo> carList = dto.getCarList();
for (int i = 0; i < carList.size(); i++) {
AppCarListVo appCarListVo = carList.get(i);
BusDeliveredApplyDetails busDeliveredApplyDetails = new BusDeliveredApplyDetails();
busDeliveredApplyDetails.setSingleCarDiscountPrice(appCarListVo.getDiscount());
busDeliveredApplyDetails.setVinSid(appCarListVo.getVinSid());
busDeliveredApplyDetails.setApplySid(busDeliveredApply.getSid());
BusDeliveredUseMessagesVo busDeliveredUseMessagesVo = appCarListVo.getRealBuyer();
busDeliveredApplyDetails.setVinNo(busDeliveredUseMessagesVo.getVin());
//赠送套餐
BigDecimal discountAll = BigDecimal.ZERO;
StringBuilder discountRemarks = new StringBuilder();
List<BusDeliveredDetailsDiscountsVo> discountUse = appCarListVo.getDiscountUse();
for (int j = 0; j < discountUse.size(); j++) {
BusDeliveredDetailsDiscountsVo busDeliveredDetailsDiscountsVo = discountUse.get(j);
BusDeliveredDetailsDiscount busDeliveredDetailsDiscount = new BusDeliveredDetailsDiscount();
//出库申请sid
busDeliveredDetailsDiscount.setApplySid(busDeliveredApply.getSid());
//出库车辆表sid
busDeliveredDetailsDiscount.setDetailsSid(busDeliveredApplyDetails.getSid());
//优惠包名称
busDeliveredDetailsDiscount.setName(busDeliveredDetailsDiscountsVo.getDiscountName());
//价值
busDeliveredDetailsDiscount.setPrice(busDeliveredDetailsDiscountsVo.getDiscountPrice());
//优惠包项目说明
busDeliveredDetailsDiscount.setDiscountExplain(busDeliveredDetailsDiscountsVo.getDiscountInfo());
//数量
busDeliveredDetailsDiscount.setNum(busDeliveredDetailsDiscountsVo.getTotalNum());
//本次赠送数量
busDeliveredDetailsDiscount.setGiveNum(busDeliveredDetailsDiscountsVo.getDiscountNum());
//销售订单中主车优惠的sid
busDeliveredDetailsDiscount.setDiscountSid(busDeliveredDetailsDiscountsVo.getDiscountSid());
busDeliveredDetailsDiscountService.insert(busDeliveredDetailsDiscount);
discountAll = discountAll.add(new BigDecimal(busDeliveredDetailsDiscount.getPrice()).multiply(new BigDecimal(busDeliveredDetailsDiscount.getGiveNum())));
if (j == 0 || j == discountUse.size() - 1) {
String disInfo = busDeliveredDetailsDiscountsVo.getDiscountInfo() + "X" + busDeliveredDetailsDiscount.getGiveNum();
discountRemarks = discountRemarks.append(disInfo).append(",");
} else {
String disInfo = busDeliveredDetailsDiscountsVo.getDiscountInfo() + "X" + busDeliveredDetailsDiscount.getGiveNum();
discountRemarks = discountRemarks.append(disInfo);
}
}
busDeliveredApplyDetails.setDiscountAll(discountAll.toString());
busDeliveredApplyDetails.setRemarks(discountRemarks.toString());
//使用人信息
BusDeliveredUseMessage busDeliveredUseMessage = new BusDeliveredUseMessage();
BeanUtil.copyProperties(busDeliveredUseMessagesVo, busDeliveredUseMessage);
busDeliveredUseMessage.setApplySid(busDeliveredApply.getSid());
busDeliveredUseMessageService.insert(busDeliveredUseMessage);
busDeliveredApplyDetails.setUseMessageSid(busDeliveredUseMessage.getSid());
busDeliveredApplyDetailsService.insert(busDeliveredApplyDetails);
}
baseMapper.insert(busDeliveredApply);
} else {
//根据出库申请sid查询出库申请是否存在
BusDeliveredApply busDeliveredApply = fetchBySid(sid);
if (busDeliveredApply == null) {
return rb.setMsg("该出库申请不存在");
}
BeanUtil.copyProperties(dto, busDeliveredApply, "sid");
//根据合同编号查询销售订单的信息
ResultBean<AppOrderDetailsVo> resultBean = busSalesOrderService.getSaleOrderDetailsByContractNo(contractNo);
if (!resultBean.getSuccess()) {
log.error("获取销售订单详情出错啦!!!");
return rb;
}
AppOrderDetailsVo appOrderDetailsVo = resultBean.getData();
//中介人
SubmitVo intermediary1 = appOrderDetailsVo.getIntermediary1();
if (intermediary1 != null) {
String agencyFee = intermediary1.getAgencyFee();
if (StringUtils.isNotBlank(agencyFee)) {
busDeliveredApply.setDistributorPrice(agencyFee);
}
busDeliveredApply.setDistributorName(intermediary1.getIntermediaryName());
}
//中介人2
SubmitVo intermediary2 = appOrderDetailsVo.getIntermediary2();
if (intermediary2 != null) {
String agencyFee = intermediary2.getAgencyFee();
if (StringUtils.isNotBlank(agencyFee)) {
busDeliveredApply.setDistributorPriceTwo(agencyFee);
}
busDeliveredApply.setDistributorNameTwo(intermediary2.getIntermediaryName());
}
//删除
busDeliveredApplyDetailsService.deleteByApplySid(sid);
busDeliveredUseMessageService.deleteByApplySid(sid);
busDeliveredDetailsDiscountService.deleteByApplySid(sid);
//车辆列表
List<AppCarListVo> carList = dto.getCarList();
for (int i = 0; i < carList.size(); i++) {
AppCarListVo appCarListVo = carList.get(i);
BusDeliveredApplyDetails busDeliveredApplyDetails = new BusDeliveredApplyDetails();
busDeliveredApplyDetails.setSingleCarDiscountPrice(appCarListVo.getDiscount());
busDeliveredApplyDetails.setVinSid(appCarListVo.getVinSid());
busDeliveredApplyDetails.setApplySid(busDeliveredApply.getSid());
BusDeliveredUseMessagesVo busDeliveredUseMessagesVo = appCarListVo.getRealBuyer();
busDeliveredApplyDetails.setVinNo(busDeliveredUseMessagesVo.getVin());
//赠送套餐
BigDecimal discountAll = BigDecimal.ZERO;
StringBuilder discountRemarks = new StringBuilder();
List<BusDeliveredDetailsDiscountsVo> discountUse = appCarListVo.getDiscountUse();
for (int j = 0; j < discountUse.size(); j++) {
BusDeliveredDetailsDiscountsVo busDeliveredDetailsDiscountsVo = discountUse.get(j);
BusDeliveredDetailsDiscount busDeliveredDetailsDiscount = new BusDeliveredDetailsDiscount();
//出库申请sid
busDeliveredDetailsDiscount.setApplySid(busDeliveredApply.getSid());
//出库车辆表sid
busDeliveredDetailsDiscount.setDetailsSid(busDeliveredApplyDetails.getSid());
//优惠包名称
busDeliveredDetailsDiscount.setName(busDeliveredDetailsDiscountsVo.getDiscountName());
//价值
busDeliveredDetailsDiscount.setPrice(busDeliveredDetailsDiscountsVo.getDiscountPrice());
//优惠包项目说明
busDeliveredDetailsDiscount.setDiscountExplain(busDeliveredDetailsDiscountsVo.getDiscountInfo());
//数量
busDeliveredDetailsDiscount.setNum(busDeliveredDetailsDiscountsVo.getTotalNum());
//本次赠送数量
busDeliveredDetailsDiscount.setGiveNum(busDeliveredDetailsDiscountsVo.getDiscountNum());
//销售订单中主车优惠的sid
busDeliveredDetailsDiscount.setDiscountSid(busDeliveredDetailsDiscountsVo.getDiscountSid());
busDeliveredDetailsDiscountService.insert(busDeliveredDetailsDiscount);
discountAll = discountAll.add(new BigDecimal(busDeliveredDetailsDiscount.getPrice()).multiply(new BigDecimal(busDeliveredDetailsDiscount.getGiveNum())));
if (j == 0 || j == discountUse.size() - 1) {
String disInfo = busDeliveredDetailsDiscountsVo.getDiscountInfo() + "X" + busDeliveredDetailsDiscount.getGiveNum();
discountRemarks = discountRemarks.append(disInfo).append(",");
} else {
String disInfo = busDeliveredDetailsDiscountsVo.getDiscountInfo() + "X" + busDeliveredDetailsDiscount.getGiveNum();
discountRemarks = discountRemarks.append(disInfo);
}
}
busDeliveredApplyDetails.setDiscountAll(discountAll.toString());
busDeliveredApplyDetails.setRemarks(discountRemarks.toString());
//使用人信息
BusDeliveredUseMessage busDeliveredUseMessage = new BusDeliveredUseMessage();
BeanUtil.copyProperties(busDeliveredUseMessagesVo, busDeliveredUseMessage);
busDeliveredUseMessage.setApplySid(busDeliveredApply.getSid());
busDeliveredUseMessageService.insert(busDeliveredUseMessage);
busDeliveredApplyDetails.setUseMessageSid(busDeliveredUseMessage.getSid());
busDeliveredApplyDetailsService.insert(busDeliveredApplyDetails);
}
baseMapper.updateById(busDeliveredApply);
}
/*String dtoSid = appDeliveredApplyDto.getSid();
SysUserVo sysUserVo = sysUserFeign.fetchBySid(appDeliveredApplyDto.getUserSid()).getData();
BaseVehicle baseVehicle = null;
if (StringUtils.isBlank(dtoSid)) {
@ -787,7 +1015,8 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
}
updateById(busDeliveredApply);
return rb.success().setData(busDeliveredApply.getSid());
}
}*/
return rb.success();
}
public ResultBean<AppDeliveredApplyInfoVo> getRetrievalApplyInfoBySid (String sid){
@ -923,7 +1152,8 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
* @param dto
* @return
*/
private synchronized int submitAppBusinessData(AppSubmitDeliveredApplyDto dto, BusDeliveredApply busDeliveredApply) {
private synchronized int submitAppBusinessData (AppSubmitDeliveredApplyDto dto, BusDeliveredApply
busDeliveredApply){
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;

4
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapplydetails/BusDeliveredApplyDetailsService.java

@ -163,9 +163,9 @@ public class BusDeliveredApplyDetailsService extends MybatisBaseService<BusDeliv
if (carList.get(i).getUseInfo() != null) {
AppUseInfoDto useInfo = carList.get(i).getUseInfo();
BusDeliveredUseMessage busDeliveredUseMessage = new BusDeliveredUseMessage();
busDeliveredUseMessage.setProvince(useInfo.getProvince());
/* busDeliveredUseMessage.setProvince(useInfo.getProvince());
busDeliveredUseMessage.setCity(useInfo.getCity());
busDeliveredUseMessage.setCounty(useInfo.getCounty());
busDeliveredUseMessage.setCounty(useInfo.getCounty());*/
busDeliveredUseMessage.setAddress(useInfo.getAddress());
busDeliveredUseMessage.setIdNo(useInfo.getIdNumber());
busDeliveredUseMessage.setName(useInfo.getCustomer());

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivereddetailsdiscount/BusDeliveredDetailsDiscountMapper.xml

@ -8,7 +8,7 @@
</select>
<select id="selectCounts" resultType="int">
select sum(bd.giveNum)
select IFNULL(SUM(cast(bd.giveNum as signed)),0) as count
from bus_delivered_details_discount bd
left join bus_delivered_apply_details bad on bad.sid = bd.detailsSid
left join bus_delivered_apply bda on bda.sid = bad.applySid

75
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/retrieval/DeliveredApplyDto.java

@ -5,17 +5,86 @@ import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class DeliveredApplyDto implements Dto {
private static final long serialVersionUID = 1435828778500563915L;
@ApiModelProperty("合同编号")
private String contractId;
@JsonProperty("saleType")
@ApiModelProperty("销售类型")
private String paymentMethod;
private String paymentMethodKey;
@ApiModelProperty("发起信息:部门-人员名")
private String publishInfo;
@ApiModelProperty("销售部门sid")
private String staffDeptSid;
@ApiModelProperty("销售部门")
@JsonProperty("sellerDept")
private String staffDeptName;
@ApiModelProperty("销售专员")
@JsonProperty("sellerName")
private String staffName;
@ApiModelProperty("发起日期")
@JsonProperty("date")
private String createTime;
@ApiModelProperty("客户名称")
private String name;
@ApiModelProperty("客户电话")
private String mobile;
@ApiModelProperty("车型")
@JsonProperty("model")
private String modelName;
@ApiModelProperty("单车中介人1")
@JsonProperty("intermediaryName")
private String distributorName;
@ApiModelProperty("单车中介人2")
@JsonProperty("intermediaryName2")
private String distributorNameTwo;
@ApiModelProperty("车型sid")
private String modelSid;
@ApiModelProperty("配置sid")
private String configSid;
@ApiModelProperty("主车成交价")
private String price;
@ApiModelProperty("购车人类型")
private List<DictVo> buyerType = new ArrayList<>();
@ApiModelProperty("购车人类型key")
@JsonProperty("terminalKey")
private String typeKey;
@ApiModelProperty("购车人类型值")
@JsonProperty("terminalValue")
private String type;
@ApiModelProperty("贷款人")
@JsonProperty("lender")
private String loanName;
@ApiModelProperty("贷款人sid")
@JsonProperty("lenderSid")
private String loanSid;
@ApiModelProperty("贷款人电话")
@JsonProperty("lenderPhone")
private String loanMobile;
@ApiModelProperty("总备注")
private String remarks;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("记录sid")
private String sid;
@ApiModelProperty("orgPath")
private String orgPath;
@ApiModelProperty("车辆集合")
private List<CarListVo> carList = new ArrayList<>();
@ApiModelProperty("剩余")
private List<DeliveredLeaveVo> discountLeave = new ArrayList<>();
@ApiModelProperty("合同id")
/* @ApiModelProperty("合同id")
@JsonProperty("contractId")
private String contractNo;
@ -62,5 +131,5 @@ public class DeliveredApplyDto implements Dto {
@ApiModelProperty("客户名称")
@JsonProperty("name")
private String name;
private String name;*/
}

45
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/retrieval/DeliveredDetailsVo.java

@ -21,7 +21,7 @@ public class DeliveredDetailsVo implements Vo {
@ApiModelProperty("发起信息:部门-人员名")
private String publishInfo;
@ApiModelProperty("销售部门")
@ApiModelProperty("销售部门sid")
private String staffDeptSid;
@ApiModelProperty("销售部门")
@JsonProperty("sellerDept")
@ -31,53 +31,52 @@ public class DeliveredDetailsVo implements Vo {
@JsonProperty("sellerName")
private String staffName;
//发起日期
@ApiModelProperty("发起日期")
@JsonProperty("date")
private String createTime;
//客户名称
@ApiModelProperty("客户名称")
private String name;
//客户电话
@ApiModelProperty("客户电话")
private String mobile;
//车型名称
@ApiModelProperty("车型")
@JsonProperty("model")
private String modelName;
//单车中介人1
@ApiModelProperty("单车中介人1")
@JsonProperty("intermediaryName")
private String distributorName;
//单车中介人2
@ApiModelProperty("单车中介人2")
@JsonProperty("intermediaryName2")
private String distributorNameTwo;
//车型sid
@ApiModelProperty("车型sid")
private String modelSid;
//配置sid
@ApiModelProperty("配置sid")
private String configSid;
//主车成交价
@ApiModelProperty("主车成交价")
private String price;
//购车人类型数据字典
//购车人类型key
@ApiModelProperty("购车人类型")
private List<DictVo> buyerType = new ArrayList<>();
@ApiModelProperty("购车人类型key")
@JsonProperty("terminalKey")
private String typeKey;
//购车人类型值
@ApiModelProperty("购车人类型值")
@JsonProperty("terminalValue")
private String type;
//贷款人
@ApiModelProperty("贷款人")
@JsonProperty("lender")
private String loanName;
//贷款人sid
@ApiModelProperty("贷款人sid")
@JsonProperty("lenderSid")
private String loanSid;
//贷款人电话
@ApiModelProperty("贷款人电话")
@JsonProperty("lenderPhone")
private String loanMobile;
//总备注
@ApiModelProperty("总备注")
private String remarks;
//剩余
//车辆集合
//用户sid
@ApiModelProperty("用户sid")
private String userSid;
//记录sid
@ApiModelProperty("记录sid")
private String sid;
//orgPath
@ApiModelProperty("orgPath")
private String orgPath;
private String applyName;
@ -87,8 +86,6 @@ public class DeliveredDetailsVo implements Vo {
private String applyDept;
@ApiModelProperty("车辆集合")
private List<CarListVo> carList = new ArrayList<>();
@ApiModelProperty("购车人类型")
private List<DictVo> buyerType = new ArrayList<>();
@ApiModelProperty("剩余")
private List<DeliveredLeaveVo> discountLeave = new ArrayList<>();
}

3
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/retrieval/DeliveredDiscountVo.java

@ -25,4 +25,7 @@ public class DeliveredDiscountVo {
@ApiModelProperty("优惠包价格")
private String discountPrice;
@ApiModelProperty("总数量")
private Integer totalNum;
}

20
doc/databases/bus-center_tables.sql

@ -300,12 +300,12 @@ CREATE TABLE `bus_delivered_details_discount`
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`applySid` varchar(64) DEFAULT NULL COMMENT '出库申请sid',
`detailsSid` VARCHAR(64) DEFAULT NULL COMMENT '出库车辆表sid',
`name` varchar(64) DEFAULT NULL COMMENT '优惠包名称',
`price` varchar(64) DEFAULT NULL COMMENT '价值',
`discountExplain` VARCHAR(64) DEFAULT NULL COMMENT '优惠包项目说明',
`num` int(32) DEFAULT NULL COMMENT '数量',
`giveNum` int(32) DEFAULT NULL COMMENT '本次赠送数量',
`discountSid` varchar(32) DEFAULT NULL COMMENT '销售订单中主车优惠sid',
`name` varchar(200) DEFAULT NULL COMMENT '优惠包名称',
`price` varchar(200) DEFAULT NULL COMMENT '价值',
`discountExplain` VARCHAR(500) DEFAULT NULL COMMENT '优惠包项目说明',
`num` int(64) DEFAULT NULL COMMENT '数量',
`giveNum` int(64) DEFAULT NULL COMMENT '本次赠送数量',
`discountSid` varchar(64) DEFAULT NULL COMMENT '销售订单中主车优惠sid',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
@ -326,13 +326,15 @@ CREATE TABLE `bus_delivered_use_message`
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`contractNo` VARCHAR(64) DEFAULT NULL COMMENT '合同编号',
`vinNo` varchar(64) DEFAULT NULL COMMENT '车架号',
`name` varchar(64) DEFAULT NULL COMMENT '客户名称',
`mobile` VARCHAR(64) DEFAULT NULL COMMENT '联系电话',
`idNo` VARCHAR(64) DEFAULT NULL COMMENT '证件号码',
`idNo` VARCHAR(200) DEFAULT NULL COMMENT '证件号码',
`address` VARCHAR(200) DEFAULT NULL COMMENT '联系地址',
`applySid` VARCHAR(64) DEFAULT NULL COMMENT '出库申请sid',
`isConfirmRealBuyer` VARCHAR(64) DEFAULT NULL COMMENT '是否确定实际购车人',
`customerTypeKey` VARCHAR(64) DEFAULT NULL COMMENT '客户类型',
`customerType` VARCHAR(64) DEFAULT NULL COMMENT '客户类型',
`contacts` VARCHAR(64) DEFAULT NULL COMMENT '联系人',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB

Loading…
Cancel
Save