Browse Source

修改凭证及车辆利润报表部分

zhanglei
dimengzhe 3 weeks ago
parent
commit
39d732d1db
  1. 2
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicle.java
  2. 57
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  3. 80
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/carsSoldProfit/CarsSoldProfit.java
  4. 78
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/carsSoldProfit/CarsSoldProfitDto.java
  5. 31
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/carsSoldProfit/CarsSoldProfitFeign.java
  6. 12
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/carsSoldProfit/CarsSoldProfitFeignFallback.java
  7. 25
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/carsSoldProfit/CarsSoldProfitQuery.java
  8. 71
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/carsSoldProfit/CarsSoldProfitVo.java
  9. 22
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/carsSoldProfit/CarsSoldProfitMapper.java
  10. 16
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/carsSoldProfit/CarsSoldProfitMapper.xml
  11. 40
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/carsSoldProfit/CarsSoldProfitRest.java
  12. 138
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/carsSoldProfit/CarsSoldProfitService.java
  13. 14
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/FileQuery.java
  14. 7
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/LoanSecondarySalesCustomer.java
  15. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/LoanSecondarySalesCustomerDto.java
  16. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/SalesInitVo.java
  17. 163
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java
  18. 56
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescustomer/LoanSecondarySalesCustomerService.java
  19. 8
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyService.java
  20. 50
      doc/databases/统计报表/车辆利润报表.sql

2
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicle.java

@ -93,7 +93,7 @@ public class BusSalesOrderVehicle extends BaseEntity {
private String vehMark;
@ApiModelProperty("结清申请提交时间")
private Date settleApplyDate;
//风控状态(0正常,1交回,2赎回,3转租,4不追偿,5处置损失,6亏损立案,7亏损执行,8亏损结案)
//风控状态(0正常,1交回,2赎回,3转租,4不追偿,5处置损失,6亏损立案,7亏损执行,8亏损结案、9赎回中,10 二次销售中、11转租中
@ApiModelProperty("风控状态")
private Integer riskState;
//是否生成资金占用费(1生成,0不生成.默认生成,交回后改为不生成,若赎回改为生成)

57
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java

@ -4789,19 +4789,21 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
}
if ("9".equals(busSalesOrderVehicle.getRiskState().toString()) || "1".equals(busSalesOrderVehicle.getRiskState().toString())) {//赎回中-赎回凭证
if ("9".equals(busSalesOrderVehicle.getRiskState().toString()) || "1".equals(busSalesOrderVehicle.getRiskState().toString()) || "11".equals(busSalesOrderVehicle.getRiskState().toString())) {//赎回中-赎回凭证--交回--转租中
////营业费用_催收费用 上门催收费用--收回车辆费用(赎回通过后推送的费用)
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf2 = new Voucher.VoucherResultDetailDto();
if ("收回车辆费用".equals(v.getReceivablesName())) {
all = all.add(new BigDecimal(v.getSubscriptionMoney()));
voucherResultDetailDtoJf2.setSummary("收款-赎回费用");
voucherResultDetailDtoJf2.setSubjectNo("6601.32.05");
//核算部门
voucherResultDetailDtoJf2.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoJf2.setDimensionCustom(customerNumber);
voucherResultDetailDtoJf2.setDebit(new BigDecimal(v.getSubscriptionMoney()).negate().toString());
list.add(voucherResultDetailDtoJf2);
if ("9".equals(busSalesOrderVehicle.getRiskState().toString()) || "1".equals(busSalesOrderVehicle.getRiskState().toString())){
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf2 = new Voucher.VoucherResultDetailDto();
if ("收回车辆费用".equals(v.getReceivablesName())) {
all = all.add(new BigDecimal(v.getSubscriptionMoney()));
voucherResultDetailDtoJf2.setSummary("收款-赎回费用");
voucherResultDetailDtoJf2.setSubjectNo("6601.32.05");
//核算部门
voucherResultDetailDtoJf2.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoJf2.setDimensionCustom(customerNumber);
voucherResultDetailDtoJf2.setDebit(new BigDecimal(v.getSubscriptionMoney()).negate().toString());
list.add(voucherResultDetailDtoJf2);
}
}
//预提费用 待确认逾期利息 待确认途期利息--资金占用费转收入
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf3 = new Voucher.VoucherResultDetailDto();
@ -4815,11 +4817,23 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
voucherResultDetailDtoJf3.setDebit(v.getSubscriptionMoney());
list.add(voucherResultDetailDtoJf3);
}
//资金占用费转收入--其他业务收入_消贷收入_消贷利息
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf3 = new Voucher.VoucherResultDetailDto();
if ("资金占用费".equals(v.getReceivablesName())) {//贷方
voucherResultDetailDtoDf3.setSummary("资金占用费转收入");
voucherResultDetailDtoDf3.setSubjectNo("6002.01.17");
//核算部门
voucherResultDetailDtoDf3.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoDf3.setDimensionCustom(customerNumber);
voucherResultDetailDtoDf3.setCredit(v.getSubscriptionMoney());
list.add(voucherResultDetailDtoDf3);
}
//应收贷款车欠款_待处理欠款_扣回车辆--月还/资方逾期利息
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto();
if ("月还".equals(v.getReceivablesName()) || "资方逾期利息".equals(v.getReceivablesName())) {
all = all.add(new BigDecimal(v.getSubscriptionMoney()));
voucherResultDetailDtoDf.setSummary("收款-赎回款");
voucherResultDetailDtoDf.setSummary("收款-"+finalConfirmation.getPayerName());
voucherResultDetailDtoDf.setSubjectNo("1201.03.01");
//核算部门
voucherResultDetailDtoDf.setDimensionDept(deptVo.getOrgCode());
@ -4833,7 +4847,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf2 = new Voucher.VoucherResultDetailDto();
if ("资金占用费".equals(v.getReceivablesName())) {
all = all.add(new BigDecimal(v.getSubscriptionMoney()));
voucherResultDetailDtoDf2.setSummary("收款-赎回款");
voucherResultDetailDtoDf2.setSummary("收款-"+finalConfirmation.getPayerName());
voucherResultDetailDtoDf2.setSubjectNo("1201.02.03");
//核算部门
voucherResultDetailDtoDf2.setDimensionDept(deptVo.getOrgCode());
@ -4842,18 +4856,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
voucherResultDetailDtoDf2.setCredit(v.getSubscriptionMoney());
list.add(voucherResultDetailDtoDf2);
}
//资金占用费转收入--其他业务收入_消贷收入_消贷利息
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf3 = new Voucher.VoucherResultDetailDto();
if ("资金占用费".equals(v.getReceivablesName())) {//贷方
voucherResultDetailDtoDf3.setSummary("资金占用费转收入");
voucherResultDetailDtoDf3.setSubjectNo("6002.01.17");
//核算部门
voucherResultDetailDtoDf3.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoDf3.setDimensionCustom(customerNumber);
voucherResultDetailDtoDf3.setCredit(v.getSubscriptionMoney());
list.add(voucherResultDetailDtoDf3);
}
} else if ("10".equals(busSalesOrderVehicle.getRiskState().toString())) {//二次销售中-二次销售凭证
if ("月还".equals(v.getReceivablesName()) || "资方逾期利息".equals(v.getReceivablesName())) {
@ -4921,7 +4924,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
voucherResultDetailDtoJf.setBankAccount(finalConfirmation.getCollectionBankNum());
}
voucherResultDetailDtoJf.setSubjectNo(payType);
voucherResultDetailDtoJf.setSummary("收款-赎回款" + "(" + collectionDate + ")");
voucherResultDetailDtoJf.setSummary("收款-"+finalConfirmation.getPayerName() + "(" + collectionDate + ")");
voucherResultDetailDtoJf.setDebit(String.valueOf(all));
list.add(voucherResultDetailDtoJf);
}

80
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/carsSoldProfit/CarsSoldProfit.java

@ -0,0 +1,80 @@
package com.yxt.anrui.reportcenter.api.carsSoldProfit;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/9
**/
@Data
public class CarsSoldProfit extends BaseEntity {
private static final long serialVersionUID = 3918454271608275795L;
private String orgSidPath;
@ApiModelProperty("销售专员sid")
private String staffSid;
@ApiModelProperty("销售专员")
private String staffName;
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("销售日期")
private Date saleDate;
@ApiModelProperty("分公司sid")
private String useOrgSid;
@ApiModelProperty("分公司名称")
private String useOrgName;
@ApiModelProperty("车型sid")
private String vehModelSid;
@ApiModelProperty("车型配置sid")
private String vehMConfigSid;
@ApiModelProperty("采购系统sid")
private String purchaseSystemSid;
@ApiModelProperty("采购系统名称")
private String purchaseSystemName;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车辆sid")
private String vinSid;
@ApiModelProperty("存放地点sid")
private String locationSid;
@ApiModelProperty("存放地点")
private String locationName;
@ApiModelProperty("采购类型")
private String type;
@ApiModelProperty("出库价")
private BigDecimal exStockPrice;
@ApiModelProperty("预计毛利")
private BigDecimal expectedMaori;
@ApiModelProperty("返利调整")
private BigDecimal rebatesAdjust;
@ApiModelProperty("调整后毛利")
private BigDecimal adjustedMaori;
@ApiModelProperty("厂家结算价")
private BigDecimal makersSettlementPrice;
@ApiModelProperty("返利合计")
private BigDecimal rebatesTotal;
@ApiModelProperty("车辆成本")
private BigDecimal carCost;
@ApiModelProperty("金融服务费")
private BigDecimal financeServiceCharge;
@ApiModelProperty("中介返利费")
private BigDecimal mediatorRebatePrice;
@ApiModelProperty("调车费")
private BigDecimal moveCarPrice;
@ApiModelProperty("排产订单编号")
private String schedulingId;
@ApiModelProperty("变速箱")
private String gearbox;
@ApiModelProperty("数据日期")
private Date createDate;
@ApiModelProperty("更新日期")
private Date updateDate;
}

78
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/carsSoldProfit/CarsSoldProfitDto.java

@ -0,0 +1,78 @@
package com.yxt.anrui.reportcenter.api.carsSoldProfit;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/9
**/
@Data
public class CarsSoldProfitDto {
private String orgSidPath;
@ApiModelProperty("销售专员sid")
private String staffSid;
@ApiModelProperty("销售专员")
private String staffName;
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("销售日期")
private String saleDate;
@ApiModelProperty("分公司sid")
private String useOrgSid;
@ApiModelProperty("分公司名称")
private String useOrgName;
@ApiModelProperty("车型sid")
private String vehModelSid;
@ApiModelProperty("车型配置sid")
private String vehMConfigSid;
@ApiModelProperty("采购系统sid")
private String purchaseSystemSid;
@ApiModelProperty("采购系统名称")
private String purchaseSystemName;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车辆sid")
private String vinSid;
@ApiModelProperty("存放地点sid")
private String locationSid;
@ApiModelProperty("存放地点")
private String locationName;
@ApiModelProperty("采购类型")
private String type;
@ApiModelProperty("出库价")
private String exStockPrice;
@ApiModelProperty("预计毛利")
private String expectedMaori;
@ApiModelProperty("返利调整")
private String rebatesAdjust;
@ApiModelProperty("调整后毛利")
private String adjustedMaori;
@ApiModelProperty("厂家结算价")
private String makersSettlementPrice;
@ApiModelProperty("返利合计")
private String rebatesTotal;
@ApiModelProperty("车辆成本")
private String carCost;
@ApiModelProperty("金融服务费")
private String financeServiceCharge;
@ApiModelProperty("中介返利费")
private String mediatorRebatePrice;
@ApiModelProperty("调车费")
private String moveCarPrice;
@ApiModelProperty("排产订单编号")
private String schedulingId;
@ApiModelProperty("变速箱")
private String gearbox;
@ApiModelProperty("数据日期")
private String createDate;
@ApiModelProperty("更新日期")
private String updateDate;
}

31
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/carsSoldProfit/CarsSoldProfitFeign.java

@ -0,0 +1,31 @@
package com.yxt.anrui.reportcenter.api.carsSoldProfit;
import com.yxt.anrui.reportcenter.api.dailyreport.DailyReportFeignFallback;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/9
**/
@FeignClient(
contextId = "anrui-reportcenter-CarsSoldProfit",
name = "anrui-reportcenter",
path = "v1/carsSoldProfit",
fallback = CarsSoldProfitFeignFallback.class)
public interface CarsSoldProfitFeign {
@PostMapping("saveOrUpdate")
@ResponseBody
ResultBean saveOrUpdate(@RequestBody CarsSoldProfitDto dto);
@PostMapping("list")
@ResponseBody
ResultBean<PagerVo<CarsSoldProfitVo>> list(@RequestBody PagerQuery<CarsSoldProfitQuery> pagerQuery);
}

12
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/carsSoldProfit/CarsSoldProfitFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.reportcenter.api.carsSoldProfit;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/9
**/
@Component
public class CarsSoldProfitFeignFallback {
}

25
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/carsSoldProfit/CarsSoldProfitQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.reportcenter.api.carsSoldProfit;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/9
**/
@Data
public class CarsSoldProfitQuery implements Query {
private static final long serialVersionUID = -2577600843922228724L;
@ApiModelProperty("菜单sid")
private String menuSid;
@ApiModelProperty("机构组织全路径")
private String orgSidPath;
@ApiModelProperty("搜索分公司、车架号、车型、排产订单、销售专员")
private String names;
private String date;
private String userSid;
}

71
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/carsSoldProfit/CarsSoldProfitVo.java

@ -0,0 +1,71 @@
package com.yxt.anrui.reportcenter.api.carsSoldProfit;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/9
**/
@Data
public class CarsSoldProfitVo {
@ApiModelProperty("销售专员")
@JsonProperty("seller")
private String staffName;
@ApiModelProperty("客户名称")
@JsonProperty("customer")
private String customerName;
@ApiModelProperty("销售日期")
@JsonProperty("saleTime")
private String saleDate;
@ApiModelProperty("分公司")
@JsonProperty("branch")
private String useOrgName;
@ApiModelProperty("事业部")
private String division;
@ApiModelProperty("车型")
private String model;
@ApiModelProperty("采购系统")
@JsonProperty("buySystem")
private String purchaseSystemName;
@ApiModelProperty("车架号")
@JsonProperty("vin")
private String vinNo;
@ApiModelProperty("出库价")
private String exStockPrice;
@ApiModelProperty("预计毛利")
private String expectedMaori;
@ApiModelProperty("返利调整")
private String rebatesAdjust;
@ApiModelProperty("调整后毛利")
private String adjustedMaori;
@ApiModelProperty("厂家结算价")
private String makersSettlementPrice;
@ApiModelProperty("返利合计")
private String rebatesTotal;
@ApiModelProperty("车辆成本")
private String carCost;
@ApiModelProperty("金融服务费")
private String financeServiceCharge;
@ApiModelProperty("中介返利费")
private String mediatorRebatePrice;
@ApiModelProperty("调车费")
private String moveCarPrice;
@ApiModelProperty("变速箱")
private String gearbox;
@ApiModelProperty("排产订单编号")
private String schedulingId;
@ApiModelProperty("数据日期")
private String dataTime;
@ApiModelProperty("更新日期")
private String updateTime;
private String sid;
}

22
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/carsSoldProfit/CarsSoldProfitMapper.java

@ -0,0 +1,22 @@
package com.yxt.anrui.reportcenter.biz.carsSoldProfit;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.reportcenter.api.carsSoldProfit.CarsSoldProfit;
import com.yxt.anrui.reportcenter.api.carsSoldProfit.CarsSoldProfitVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/9
**/
@Mapper
public interface CarsSoldProfitMapper extends BaseMapper<CarsSoldProfit> {
CarsSoldProfit selectByVinSid(String vinSid);
IPage<CarsSoldProfitVo> listPage(IPage<CarsSoldProfit> page, @Param(Constants.WRAPPER)QueryWrapper<CarsSoldProfit> qw);
}

16
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/carsSoldProfit/CarsSoldProfitMapper.xml

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.reportcenter.biz.carsSoldProfit.CarsSoldProfitMapper">
<select id="selectByVinSid" resultType="com.yxt.anrui.reportcenter.api.carsSoldProfit.CarsSoldProfit">
select *
from cars_sole_profit
where vinSid = #{vinSid}
</select>
<select id="listPage" resultType="com.yxt.anrui.reportcenter.api.carsSoldProfit.CarsSoldProfitVo">
select * from cars_sole_profit
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

40
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/carsSoldProfit/CarsSoldProfitRest.java

@ -0,0 +1,40 @@
package com.yxt.anrui.reportcenter.biz.carsSoldProfit;
import com.yxt.anrui.reportcenter.api.carsSoldProfit.CarsSoldProfitDto;
import com.yxt.anrui.reportcenter.api.carsSoldProfit.CarsSoldProfitFeign;
import com.yxt.anrui.reportcenter.api.carsSoldProfit.CarsSoldProfitQuery;
import com.yxt.anrui.reportcenter.api.carsSoldProfit.CarsSoldProfitVo;
import com.yxt.anrui.reportcenter.api.dailyreport.DailyReportVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/9
**/
@Api(tags = "车辆利润报表")
@RestController
@RequestMapping("v1/carsSoldProfit")
public class CarsSoldProfitRest implements CarsSoldProfitFeign {
@Autowired
private CarsSoldProfitService carsSoldProfitService;
@Override
public ResultBean saveOrUpdate(CarsSoldProfitDto dto) {
return carsSoldProfitService.saveProfit(dto);
}
@Override
public ResultBean<PagerVo<CarsSoldProfitVo>> list(PagerQuery<CarsSoldProfitQuery> pagerQuery) {
ResultBean rb = ResultBean.fireFail();
PagerVo<CarsSoldProfitVo> pv = carsSoldProfitService.listPage(pagerQuery);
return rb.success().setData(pv);
}
}

138
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/carsSoldProfit/CarsSoldProfitService.java

@ -0,0 +1,138 @@
package com.yxt.anrui.reportcenter.biz.carsSoldProfit;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.reportcenter.api.carsSoldProfit.CarsSoldProfit;
import com.yxt.anrui.reportcenter.api.carsSoldProfit.CarsSoldProfitDto;
import com.yxt.anrui.reportcenter.api.carsSoldProfit.CarsSoldProfitQuery;
import com.yxt.anrui.reportcenter.api.carsSoldProfit.CarsSoldProfitVo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.Date;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/9
**/
@Service
public class CarsSoldProfitService extends MybatisBaseService<CarsSoldProfitMapper, CarsSoldProfit> {
@Autowired
private SysUserFeign sysUserFeign;
public ResultBean saveProfit(CarsSoldProfitDto dto) {
ResultBean rb = ResultBean.fireFail();
CarsSoldProfit carsSoldProfit = baseMapper.selectByVinSid(dto.getVinSid());
if (carsSoldProfit != null) {
//预计毛利
if (StringUtils.isNotBlank(dto.getExpectedMaori())) {
carsSoldProfit.setExpectedMaori(new BigDecimal(dto.getExpectedMaori()));
}
//返利调整
if (StringUtils.isNotBlank(dto.getRebatesAdjust())) {
carsSoldProfit.setRebatesAdjust(new BigDecimal(dto.getRebatesAdjust()));
}
//调整后毛利
if (StringUtils.isNotBlank(dto.getAdjustedMaori())) {
carsSoldProfit.setAdjustedMaori(new BigDecimal(dto.getAdjustedMaori()));
}
//
carsSoldProfit.setUpdateDate(new Date());
baseMapper.updateById(carsSoldProfit);
} else {
carsSoldProfit = new CarsSoldProfit();
BeanUtil.copyProperties(dto, carsSoldProfit);
baseMapper.insert(carsSoldProfit);
}
return rb.success();
}
public PagerVo<CarsSoldProfitVo> listPage(PagerQuery<CarsSoldProfitQuery> pagerQuery) {
CarsSoldProfitQuery query = pagerQuery.getParams();
QueryWrapper<CarsSoldProfit> qw = new QueryWrapper<>();
if (query != null) {
if (StringUtils.isNotBlank(query.getMenuSid())) {
//=======================
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgSidPath());
privilegeQuery.setMenuSid(query.getMenuSid());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (org.apache.commons.lang3.StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgSidPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("bd.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("bd.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("bd.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("bd.orgSidPath", orgSidPath);
} else {
PagerVo<CarsSoldProfitVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<CarsSoldProfitVo> p = new PagerVo<>();
return p;
}
}
String date = query.getDate();
if (StringUtils.isNotBlank(date)) {
String[] s = date.split("至");
String startDate = s[0];
if (StringUtils.isNotBlank(startDate)) {
qw.ge("saleDate", startDate);
}
String endDate = s[1];
if (StringUtils.isNotBlank(endDate)) {
qw.le("saleDate", endDate);
}
}
String names = query.getNames();
// 多字段模糊查询
if (StringUtils.isNotBlank(names)) {
qw.and(wrapper -> wrapper.like("useOrgName", names)
.or().like("vinNo", names)
.or().like("model", names)
.or().like("schedulingId", names)
.or().like("staffName", names));
}
}
IPage<CarsSoldProfit> page = PagerUtil.queryToPage(pagerQuery);
IPage<CarsSoldProfitVo> pagging = baseMapper.listPage(page, qw);
List<CarsSoldProfitVo> recordList = pagging.getRecords();
recordList.removeAll(Collections.singleton(null));
PagerVo<CarsSoldProfitVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
}

14
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/FileQuery.java

@ -0,0 +1,14 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalescustomer;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/13
**/
@Data
public class FileQuery {
private String url;
}

7
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/LoanSecondarySalesCustomer.java

@ -4,6 +4,8 @@ import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -32,4 +34,9 @@ public class LoanSecondarySalesCustomer extends BaseEntity {
private String endDate;
@ApiModelProperty("证件地址")
private String certificateAddress;
@ApiModelProperty("二次销售合同")
private String contractFiles;
@ApiModelProperty("其他证件")
private String otherFiles;
}

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/LoanSecondarySalesCustomerDto.java

@ -5,6 +5,8 @@ import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -35,4 +37,8 @@ public class LoanSecondarySalesCustomerDto implements Dto {
private String endDate;
@ApiModelProperty("证件地址")
private String certificateAddress;
@ApiModelProperty("二次销售合同")
private List<String> contractFiles;
@ApiModelProperty("其他证件")
private List<String> otherFiles;
}

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/SalesInitVo.java

@ -45,4 +45,8 @@ public class SalesInitVo {
private String certificateAddress;
@ApiModelProperty("车辆列表")
private List<LoanSecondarySalesVehVo> loanSecondarySalesVehVoList = new ArrayList<>();
@ApiModelProperty("二次销售合同")
private List<FileQuery> contractFiles;
@ApiModelProperty("其他证件")
private List<FileQuery> otherFiles;
}

163
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java

@ -640,16 +640,37 @@ public class LoanOutboundApplyService extends MybatisBaseService<LoanOutboundApp
Future future2 = pool.submit(() -> {
//推送财务凭证
//TOdO:
pushRiskToFin(finalLoanOutboundApply,busVinSidList);
pushRiskToFinSh(finalLoanOutboundApply,busVinSidList);
});
} catch (Exception e) {
e.printStackTrace();
}
}/*else if("二次转租".equals(loanOutboundApply.getDisposal())){
}else if("二次转租".equals(loanOutboundApply.getDisposal())){
busVinStateSetQuery.setState(3);
ResultBean resultBean1 = busSalesOrderVehicleFeign.setRiskState(busVinStateSetQuery);
}*/else if("二次销售".equals(loanOutboundApply.getDisposal())){
//推送金蝶财务其他出库单--二次转租推送的凭证与赎回推送的凭证一样
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new org.apache.tomcat.util.threads.ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new org.apache.tomcat.util.threads.ThreadPoolExecutor.AbortPolicy());
LoanOutboundApply finalLoanOutboundApply = loanOutboundApply;
Future future1 = pool.submit(() -> {
//推送其他出库单
//TOdO:
pushStkOut(finalLoanOutboundApply,busVinSidList);
});
Future future2 = pool.submit(() -> {
//推送财务凭证
//TOdO:
pushRiskToFinZz(finalLoanOutboundApply,busVinSidList);
});
} catch (Exception e) {
e.printStackTrace();
}
}else if("二次销售".equals(loanOutboundApply.getDisposal())){
//ToDo:
//推送金蝶财务其他出库单
try {
@ -715,6 +736,140 @@ public class LoanOutboundApplyService extends MybatisBaseService<LoanOutboundApp
return rb.setMsg("操作失败!提交的数据不一致");
}
}
//转租
private void pushRiskToFinZz(LoanOutboundApply loanOutboundApply, List<String> busVinSidList) {
Voucher voucher = new Voucher();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(loanOutboundApply.getUseOrgSid()).getData();
if (null != organizationVo) {
voucher.setAccountBook(organizationVo.getOrgCode());
voucher.setVoucherNo(organizationVo.getOrgCode());
}
List<Voucher.VoucherResultDetailDto> voucherResultDetailDtos = new ArrayList<>();
SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(loanOutboundApply.getDeptSid()).getData();
for (int i = 0; i < busVinSidList.size(); i++) {
String busVinSid = busVinSidList.get(i);
//ToDo:
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(busVinSid).getData();
String customerNumber = "";
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(busSalesOrderVehicle.getSalesOrderSid()).getData();
if (salesOrder != null && busSalesOrderVehicle != null) {
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
// List<BdCustomer> bdCustomers = new ArrayList<>();
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
if (StringUtils.isNotBlank(salesOrder.getPurchaseSystemSid())) {
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
}
bdCustomer.setTOrgIds(deptVo.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
}
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
}
AlrepaidAndArrVo alrepaidAndArrVo = loanRestoreReportApplyService.getAlrepaidAndArr2(busVinSid);
//应收贷款车欠款_待处理欠款_扣回车辆
BigDecimal all = BigDecimal.ZERO;
//应收贷款车欠款_到期欠款_累欠
BigDecimal lqMoney = BigDecimal.ZERO;
//应收贷款车欠款_未到期欠款_未到期欠款
BigDecimal wdqMoney = BigDecimal.ZERO;
//应收贷款车欠款_到期欠款_本金
BigDecimal bjMoney = BigDecimal.ZERO;
String lq = loanRepaymentPlanDetailsService.getYqLq(busVinSid);
lqMoney = lqMoney.add(new BigDecimal(StringUtils.isBlank(lq) ? "0" : lq));
//未到期欠款
String wdq = alrepaidAndArrVo.getUnexpiredMoney();
wdqMoney = wdqMoney.add(new BigDecimal(StringUtils.isBlank(wdq) ? "0" : wdq));
String bj = loanRepaymentPlanDetailsService.getBj(busVinSid);
bjMoney = bjMoney.add(new BigDecimal(StringUtils.isBlank(bj) ? "0" : bj));
all = lqMoney.add(wdqMoney).add(bjMoney);
//贷方
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto();
//借方
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto();
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf2 = new Voucher.VoucherResultDetailDto();
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf3 = new Voucher.VoucherResultDetailDto();
//-------------------------------------------应收贷款车欠款_待处理欠款_扣回车辆
if (all.compareTo(BigDecimal.ZERO) > 0) {
voucherResultDetailDtoDf.setSummary("**扣回车辆转租结转");
voucherResultDetailDtoDf.setSubjectNo("1201.03.01");
//核算部门
voucherResultDetailDtoDf.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoDf.setDimensionCustom(customerNumber);
voucherResultDetailDtoDf.setCredit(all.toString());
voucherResultDetailDtos.add(voucherResultDetailDtoDf);
}
//---------------------------------------------应收贷款车欠款_到期欠款_累欠
if (lqMoney.compareTo(BigDecimal.ZERO) > 0) {
voucherResultDetailDtoJf.setSummary("**扣回车辆转租结转");
voucherResultDetailDtoJf.setSubjectNo("1201.02.03");
//核算部门
voucherResultDetailDtoJf.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoJf.setDimensionCustom(customerNumber);
voucherResultDetailDtoJf.setDebit(lqMoney.toString());
voucherResultDetailDtos.add(voucherResultDetailDtoJf);
}
//--------------------------------------------应收贷款车欠款_未到期欠款_未到期欠款
if (wdqMoney.compareTo(BigDecimal.ZERO) > 0) {
voucherResultDetailDtoJf2.setSummary("**扣回车辆转租结转");
voucherResultDetailDtoJf2.setSubjectNo("1201.01.00");
//核算部门
voucherResultDetailDtoJf2.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoJf2.setDimensionCustom(customerNumber);
voucherResultDetailDtoJf2.setDebit(wdqMoney.toString());
voucherResultDetailDtos.add(voucherResultDetailDtoJf2);
}
//-------------------------------------------应收贷款车欠款_到期欠款_本金
if (bjMoney.compareTo(BigDecimal.ZERO) > 0) {
voucherResultDetailDtoJf3.setSummary("**扣回车辆转租结转");
voucherResultDetailDtoJf3.setSubjectNo("1201.02.01");
//核算部门
voucherResultDetailDtoJf3.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoJf3.setDimensionCustom(customerNumber);
voucherResultDetailDtoJf3.setDebit(bjMoney.toString());
voucherResultDetailDtos.add(voucherResultDetailDtoJf3);
}
}
if (!voucherResultDetailDtos.isEmpty()) {
voucher.setResultDetails(voucherResultDetailDtos);
finKingDeeFeign.saveVoucher(voucher);
}
}
private void pushRiskToFin2(LoanOutboundApply loanOutboundApply, List<String> busVinSidList) {
LoanSecondarySalesApply loanSecondarySalesApply = loanSecondarySalesApplyService.fetchBySid(loanOutboundApply.getApplySid());
@ -905,7 +1060,7 @@ public class LoanOutboundApplyService extends MybatisBaseService<LoanOutboundApp
}
//推送赎回凭证结转
public void pushRiskToFin(LoanOutboundApply loanOutboundApply,List<String> busVinSidList) {
public void pushRiskToFinSh(LoanOutboundApply loanOutboundApply,List<String> busVinSidList) {
Voucher voucher = new Voucher();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(loanOutboundApply.getUseOrgSid()).getData();
if (null != organizationVo) {

56
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescustomer/LoanSecondarySalesCustomerService.java

@ -7,6 +7,7 @@ import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CustomerSecondSalesDto;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApply;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost;
import com.yxt.anrui.riskcenter.api.loansecondarysalescustomer.FileQuery;
import com.yxt.anrui.riskcenter.api.loansecondarysalescustomer.LoanSecondarySalesCustomer;
import com.yxt.anrui.riskcenter.api.loansecondarysalescustomer.LoanSecondarySalesCustomerDto;
import com.yxt.anrui.riskcenter.api.loansecondarysalescustomer.SalesInitVo;
@ -15,14 +16,15 @@ import com.yxt.anrui.riskcenter.biz.loansecondarysalesapply.LoanSecondarySalesAp
import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostMapper;
import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostService;
import com.yxt.anrui.riskcenter.biz.loansecondarysalesveh.LoanSecondarySalesVehService;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
* @description:
@ -40,6 +42,8 @@ public class LoanSecondarySalesCustomerService extends MybatisBaseService<LoanSe
private LoanSecondarySalesVehService loanSecondarySalesVehService;
@Autowired
private LoanSecondarySalesCostMapper loanSecondarySalesCostMapper;
@Autowired
private FileUploadComponent fileUploadComponent;
public ResultBean saveSalesCustomer(LoanSecondarySalesCustomerDto dto) {
ResultBean rb = ResultBean.fireFail();
@ -62,6 +66,16 @@ public class LoanSecondarySalesCustomerService extends MybatisBaseService<LoanSe
loanSecondarySalesCustomer = new LoanSecondarySalesCustomer();
BeanUtil.copyProperties(dto, loanSecondarySalesCustomer);
loanSecondarySalesCustomer.setCustomerSid(customerSid);
List<String> contractFileList = dto.getContractFiles();
List<String> otherFileList = dto.getOtherFiles();
if(!contractFileList.isEmpty()){
String contractFiles = String.join(",",contractFileList.stream().map(v->v.replaceAll(fileUploadComponent.getUrlPrefix(),"")).collect(Collectors.toList()));
loanSecondarySalesCustomer.setContractFiles(contractFiles);
}
if(!otherFileList.isEmpty()){
String otherFiles = String.join(",",otherFileList.stream().map(v->v.replaceAll(fileUploadComponent.getUrlPrefix(),"")).collect(Collectors.toList()));
loanSecondarySalesCustomer.setOtherFiles(otherFiles);
}
baseMapper.insert(loanSecondarySalesCustomer);
} else {
//新增客户
@ -76,6 +90,20 @@ public class LoanSecondarySalesCustomerService extends MybatisBaseService<LoanSe
customerSid = resultBean.getData();
BeanUtil.copyProperties(dto, loanSecondarySalesCustomer);
loanSecondarySalesCustomer.setCustomerSid(customerSid);
List<String> contractFileList = dto.getContractFiles();
List<String> otherFileList = dto.getOtherFiles();
if(!contractFileList.isEmpty()){
String contractFiles = String.join(",",contractFileList.stream().map(v->v.replaceAll(fileUploadComponent.getUrlPrefix(),"")).collect(Collectors.toList()));
loanSecondarySalesCustomer.setContractFiles(contractFiles);
}else{
loanSecondarySalesCustomer.setContractFiles("");
}
if(!otherFileList.isEmpty()){
String otherFiles = String.join(",",otherFileList.stream().map(v->v.replaceAll(fileUploadComponent.getUrlPrefix(),"")).collect(Collectors.toList()));
loanSecondarySalesCustomer.setOtherFiles(otherFiles);
}else{
loanSecondarySalesCustomer.setOtherFiles("");
}
baseMapper.updateById(loanSecondarySalesCustomer);
}
return rb.success();
@ -104,6 +132,30 @@ public class LoanSecondarySalesCustomerService extends MybatisBaseService<LoanSe
salesInitVo.setSaleDate(loanSecondarySalesApply.getCloseDate());
LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostMapper.selectMainSid(sid);
salesInitVo.setSalePrice(loanSecondarySalesCost.getVehPrice().toString());
String contractFiles = loanSecondarySalesCustomer.getContractFiles();
String otherFiles = loanSecondarySalesCustomer.getOtherFiles();
if(StringUtils.isNotBlank(contractFiles)){
List<FileQuery> contractFilesList = Arrays.stream(contractFiles.split(","))
.map(c -> {
FileQuery f = new FileQuery();
f.setUrl(fileUploadComponent.getUrlPrefix() + c);
return f;
})
.collect(Collectors.toList());
salesInitVo.setContractFiles(contractFilesList);
}
if(StringUtils.isNotBlank(otherFiles)){
List<FileQuery> otherFileList = Arrays.stream(otherFiles.split(","))
.map(c -> {
FileQuery f = new FileQuery();
f.setUrl(fileUploadComponent.getUrlPrefix() + c);
return f;
})
.collect(Collectors.toList());
salesInitVo.setOtherFiles(otherFileList);
}
return rb.success().setData(salesInitVo);
}
}

8
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyService.java

@ -10,6 +10,7 @@ import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusVinStateSetQuery;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo;
@ -104,6 +105,8 @@ public class LoanSubletApplyService extends MybatisBaseService<LoanSubletApplyMa
private CrmCustomerTempFeign crmCustomerTempFeign;
@Autowired
private LoanReturnVehLedgerService loanReturnVehLedgerService;
@Autowired
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign;
public PagerVo<LoanSubletApplyVo> listPage(PagerQuery<LoanSubletApplyQuery> pq) {
IPage<LoanSubletApply> page = PagerUtil.queryToPage(pq);
@ -696,6 +699,11 @@ public class LoanSubletApplyService extends MybatisBaseService<LoanSubletApplyMa
loanReturnVehLedgerService.updateById(loanReturnVehLedger);
}
}
//--更新销售订单车辆表的风控状态为二次转租中
BusVinStateSetQuery busVinStateSetQuery = new BusVinStateSetQuery();
List<String> busVinSidList = subletVinLists.stream().map(v->v.getBusVinSid()).collect(Collectors.toList());
busVinStateSetQuery.setState(11);//二次转租中
ResultBean resultBeanss = busSalesOrderVehicleFeign.setRiskState(busVinStateSetQuery);
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();

50
doc/databases/统计报表/车辆利润报表.sql

@ -0,0 +1,50 @@
DROP TABLE IF EXISTS `car_sold_profit`;
CREATE TABLE `car_sold_profit`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NULL DEFAULT NULL COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`orgSidPath` varchar(500) DEFAULT NULL COMMENT '组织机构',
`staffSid` varchar(64) DEFAULT NULL COMMENT '销售专员sid',
`staffName` varchar(64) DEFAULT NULL COMMENT '销售专员名称',
`customerSid` varchar(500) DEFAULT NULL COMMENT '客户sid',
`customerName` varchar(500) DEFAULT NULL COMMENT '客户名称',
`saleDate` varchar(64) DEFAULT NULL COMMENT '销售日期',
`useOrgSid` varchar(64) DEFAULT NULL COMMENT '分公司sid',
`useOrgName` varchar(64) DEFAULT NULL COMMENT '分公司名称',
`vehModelSid` varchar(64) DEFAULT NULL COMMENT '车型sid',
`vehModel` varchar(64) DEFAULT NULL COMMENT '车型',
`vehMConfigSid` varchar(64) DEFAULT NULL COMMENT '车型配置sid',
`purchaseSystemSid` varchar(64) DEFAULT NULL COMMENT '采购系统sid',
`purchaseSystemName` varchar(64) DEFAULT NULL COMMENT '采购系统名称',
`vinNo` varchar(64) DEFAULT NULL COMMENT '车架号',
`vinSid` varchar(200) DEFAULT NULL COMMENT '车辆sid',
`locationSid` varchar(200) DEFAULT NULL COMMENT '存放地点sid',
`locationName` varchar(200) DEFAULT NULL COMMENT '存放地点',
`type` varchar(200) DEFAULT NULL COMMENT '类型',
`exStockPrice` decimal(10, 2) DEFAULT NULL COMMENT '出库价',
`expectedMaori` decimal(10, 2) DEFAULT NULL COMMENT '预计毛利',
`rebatesAdjust` decimal(10, 2) DEFAULT NULL COMMENT '返利调整',
`adjustedMaori` decimal(10, 2) DEFAULT NULL COMMENT '调整后毛利',
`makersSettlementPrice` decimal(10, 2) DEFAULT NULL COMMENT '厂家结算价',
`rebatesTotal` decimal(10, 2) DEFAULT NULL COMMENT '返利合计',
`carCost` decimal(10, 2) DEFAULT NULL COMMENT '车辆成本',
`financeServiceCharge` decimal(10, 2) DEFAULT NULL COMMENT '金融服务费',
`mediatorRebatePrice` decimal(10, 2) DEFAULT NULL COMMENT '中介返利费',
`moveCarPrice` decimal(10, 2) DEFAULT NULL COMMENT '调车费',
`schedulingId` varchar(500) DEFAULT NULL COMMENT '排产订单编号',
`gearbox` varchar(500) DEFAULT NULL COMMENT '变速箱',
`createDate` date DEFAULT NULL COMMENT '数据日期',
`updateDate` date DEFAULT NULL COMMENT '更新日期',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='车辆销售利润报表';
Loading…
Cancel
Save